Зависимости, как на рисунке:
Подскажите, как правильно и наиболее кратко описать эти зависимости в makefile?
Сейчас у меня файл выглядит так:
Код: Выделить всё
FC = ifort
FFLAGS = -O0 -g3
SRC_DIR = ./src
OBJ_DIR = ./obj
BIN_DIR = ./bin
PROG_NAME = prog
SOURCES = $(wildcard $(SRC_DIR)/*.f90)
all: $(OBJ_DIR)/main.o
$(FC) $(FFLAGS) -module $(OBJ_DIR) $(wildcard $(OBJ_DIR)/*.o) -o $(BIN_DIR)/$(PROG_NAME)
clean:
rm $(OBJ_DIR)/*.o
rm $(OBJ_DIR)/*.mod
rm $(BIN_DIR)/$(PROG_NAME)
tags:
etags --language=fortran $(SOURCES)
$(OBJ_DIR)/main.o: $(OBJ_DIR)/mod_c.o $(SRC_DIR)/main.f90
$(FC) $(FFLAGS) -module $(OBJ_DIR) -c $^ -o $@
$(OBJ_DIR)/mod_c.o: $(OBJ_DIR)/mod_b.o $(OBJ_DIR)/mod_a.o $(SRC_DIR)/mod_c.f90
$(FC) $(FFLAGS) -module $(OBJ_DIR) -c $^ -o $@
$(OBJ_DIR)/mod_a.o: $(SRC_DIR)/mod_a.f90
$(FC) $(FFLAGS) -module $(OBJ_DIR) -c $^ -o $@
$(OBJ_DIR)/mod_b.o: $(SRC_DIR)/mod_b.f90
$(FC) $(FFLAGS) -module $(OBJ_DIR) -c $^ -o $@
Можно ли это сделать аккуратнее, короче? Можно ли эти зависимости как-то создавать автоматически?