У меня есть код на Фортране, который можно скомпилировать с помощью следующего файла Makefile:
FC = mpif90
FFLAGS := ...
TARGET = run1
SRC = main.f90 param.f90 ...
OBJ = $(SRC:.f90=.o)
all: $(TARGET)
$(TARGET): $(OBJ) $(FC) $(FFLAGS)
...
В приведенном выше примере TARGET может быть run1 или run2 или run3 , в зависимости от значения переменной в моем скрипте.Например, если у меня есть следующее в param.f90:
character(len=1), parameter :: case_num = "1"
Затем я хочу, чтобы переменная TARGET была установлена в run1 .Теперь вопрос в том, как сделать это автоматически, не меняя вручную каждый раз Makefile?
Я пробовал что-то вроде
num = $(grep 'case_num = "' param.f90 | sed -n -e 's/^.*case_num = "//p' | cut -c1-1)
TARGET = run$num
в Makefile, что не работает.Я проверил правильность предложения grep и sed в обычном скрипте bash.Как сделать это в Фортран Makefile?Любая помощь приветствуется.