Просто, чтобы посмотреть терминологию, это структура make-файла 'rule':
target: dependencies ...
commands
...
Это make-файл, который я написал:
CC = mpicc
SHAREDLIB = libfmd.so
CFLAGS = -fPIC -Wall -Wno-unused-result -O3 -fopenmp
LFLAGS = -lm -fopenmp -lgsl -lgslcblas
OBJS = $(patsubst %.c,%.o,$(wildcard *.c))
.PHONY: all shared clean
all: shared
shared: $(SHAREDLIB)
$(SHAREDLIB): depend.mk $(OBJS)
$(CC) $(OBJS) -shared -o $@ $(LFLAGS)
depend.mk: *.c *.h
$(CC) -MM *.c > depend.mk
-include depend.mk
clean:
rm -f *.o libfmd.so depend.mk
Когда папка чистая, и я ввожу make clean
, отображаются следующие строки:
mpicc -MM *.c > depend.mk
rm -f *.o libfmd.so depend.mk
Мне кажется, что -include depend.mk
в дополнение к включению depend.mk
выполняет правило, что depend.mk
является его целью. Я бы хотел остановить это поведение.