LINUX.ORG.RU

История изменений

Исправление IvanR, (текущая версия) :

вот универсальный makefile, который отслеживает все хидеры и зависимости, правда завязан на gcc

CC := gcc
PROG := awesome-prog
SOURCES := $(wildcard *.c)
OBJECTS := $(patsubst %c,%o,$(SOURCES))
DEPFILES := $(patsubst %.c,%.d,$(SOURCES))

$(PROG): $(OBJECTS)
        $(CC) -o $@ $^ $(LDFLAGS)

%.o: %.d

%.d: %.c
        $(CC) $(CFLAGS) -MM -MT '$(patsubst %.c,%.o,$<)' $< -MF $@
        
ifeq (0, $(words $(findstring $(MAKECMDGOALS), clean cleanall)))
include $(DEPFILES)
endif

.PHONY: all
all:
        $(MAKE) $(PROG)

надеюсь, это то, что вам надо

Исходная версия IvanR, :

вот универсальный makefile, который отслеживает все хидеры и зависимости, правда завязан на gcc

CC := gcc
PROG := awesome-prog
SOURCES := $(wildcard *.c)
OBJECTS := $(patsubst %c,%o,$(SOURCES))
DEPFILES := $(patsubst %.c,%.d,$(SOURCES))

$(PROG): $(OBJECTS)
        $(CC) -o $@ $^ $(LDFLAGS)

%.o: %.d

%.d: %.c
        $(CC) $(CFLAGS) -MM -MT '$(patsubst %.c,%.o,$<)' $< -MF $@
        
ifeq (0, $(words $(findstring $(MAKECMDGOALS), clean cleanall)))
include $(DEPFILES)
endif

.PHONY: all
all:
        $(MAKE) $(PROG)