Je veux faire un plat d'* [cpp, h] fichiers en utilisant l'astuce de gestion automatique des dépendances mis en scène ici: http://locklessinc.com/articles/makefile_tricks/Makefile Génération automatique de dépendance (% de .o)
Mon travail est:
.PHONY: all clean CXX ?= g++ DEBUG ?= "1" ifeq ($(DEBUG), "1") CFLAGS+=-g endif BODIES := ExecuteStart GraphNode IdNodeMap IdValuePairCollection IScenarioReader XMLScenarioReader INodeExecute SRCS := $(addsuffix .cpp, $(BODIES)) OBJECTS := $(addsuffix .o, $(BODIES)) DEPS := $(addsuffix .d, $(SRCS)) dependless = %.o %.a %.d %.h expand = $($(var)) $(var) $(var).d depend_test = $(if $(filter $(dependless),$(var)),$(var),$(expand)) depend = $(sort $(foreach var,$(1),$(depend_test))) default: all include $(wildcard *.d) & = $(filter-out %.h %.d,$^) all: $(OBJECTS) %.cpp.d: %.cpp @echo creating [email protected] for $ [email protected]' clean: rm $(OBJECTS) $(DEPS)
Le problème est que la règle% .o: $ (appel dépend,% .cpp) ne fonctionne pas et donc si je crée --warn-undefined-variables il met en garde sur% .cpp. Le résultat étant des chiffres sur la façon de produire des fichiers * .o et n'utilise pas ma règle.
Est-ce que j'ai un problème ignoré?