У меня есть файл version.c в моем проекте, который содержит текущую ревизию проекта и некоторые другие вещи, которые передаются как определение (опция компилятора CN00) из makefile.
Я знаю, что заставить make компилировать version.c всегда независимо от даты модификации, я могу touch version.c
.
Есть ли способ makefile только для этого? Если я пишу .PHONY: version.o
объектный файл вообще не .PHONY: version.o
.
EDIT: Вот мой makefile:
export CC = gcc
export MODULES = $(sort \
sys \
cim \
version \
)
export FILES = $(sort \
main.c \
cim.c \
version.c \
)
VPATH = $(MODULES)
OBJS = $(FILES:.c=.o)
INCLUDES = $(addprefix -I,$(MODULES))
all:$(OBJS)
$(CC) $(INCLUDES) $(OBJS) -o main.exe
clean:
rm -rf *.o *.exe
cim.o: cim.c
main.o: main.c cim.o
version.o: version.c
.PHONY: version.o
.c.o :
$(CC) $(CFLAGS) $(INCLUDES) -c $<