Я новичок в использовании Make и у меня возникли проблемы с выяснением синтаксиса.Я просмотрел несколько примеров и по сути объединил несколько из них, чтобы создать свой собственный файл.Я не уверен, как заставить make игнорировать уже скомпилированные исходные или заголовочные файлы, которые не изменились.Как мне заставить make скомпилировать только файлы, которые изменились?
Я посмотрел на веб-сайте GNU: https://www.gnu.org/software/make/manual/html_node/Avoiding-Compilation.html
Я попробовал некоторые из этих флагов, но все еще не получаюрезультаты, которые я хотел.
# specify compiler
CC=gcc
# set compiler flags
CFLAGS=-Igen/display -Igen/logic -Iman -Ilib/include -pipe -march=native
# set linker flags
LDFLAGS=-lglut32 -loglx -lopengl32 -Llib
# include all sources
SOURCES=gen/display/*.c gen/logic/*.c man/*.c
# create objects from the source files
OBJECTS=$(SOURCES:.cpp=.o)
# specify the name and the output directory of executable
EXECUTABLE=win32/demo
all: $(SOURCES) $(EXECUTABLE)
# compile the target file from sources
# $@ = placeholder for target name
$(EXECUTABLE): $(OBJECTS)
$(CC) $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@
.c.o:
$(CC) $(CFLAGS) $< -o $@
У меня есть несколько заголовочных и исходных файлов в разных каталогах, которые компилируются, но независимо от того, что я делаю, все перекомпилируется.