나는 읽기를 상당히 단순화하는 매우 큰 Makefile을 가지고 있습니다.
EXEC = EXAMPLEX.exe
FC = gfortran
CC = gcc
LINKER = $(FC)
LINK_FLAGS =
CPP = $(FC)
EXAMPLEX = \
ex1.o \
ex2.o
OBJS = \
$(EXAMPLEX)
.SUFFIXES: .F .f .c .F90 .f90
$(EXEC): $(OBJS)
$(LINKER) $(LINK_FLAGS) $(OBJS) -o $@
.F.o:
$(FC) -c $(F_FLAGS) $(CPP_FLAGS) $(INCLUDES) $<
.f.o:
$(FC) -c $(F_FLAGS) $<
.F90.o:
$(FC) -c $(F90_FLAGS) $(CPP_FLAGS) $(INCLUDES) $<
.f90.o:
$(FC) -c $(F90_FLAGS) $<
.c.o:
$(CC) -c $(C_FLAGS) $<
clean:
rm -f $(OBJS) *.mod
# dependencies
ex2.o: ex1.o
문제는 ex1에 종속성이 없다는 것입니다(그리고 *** Norule to make target 'ex1.o'라는 오류가 발생합니다). 내 질문은 ex1.o:
종속성을 포함해야 하는가 아니면 다른 것을 시도해야 하는가입니다.