diff --git a/Makefile b/Makefile
index 415e3250cebaf0cde6ad7c7995e9f02e2ba2c42a..7a09b516badb1fd84a5e2d59e77685a1f7ca0350 100644 (file)
--- a/Makefile
+++ b/Makefile
# * $(MODULE)/*.cc -- module source files
MODULES := main reader store alien typeregister textmodel fold typepath
-CFLAGS := -I.
+CFLAGS += -I.
# Variables for the modules to write to
SRCS :=
odcread: $(SRCS:.cc=.o)
g++ -o $@ $^
+# This rule build an object (.o) from a source (.cc).
%.o: %.cc
g++ $(CFLAGS) $< -c -o $@
# The .d file is not an explicit target because it will need to be (re-)built
# if and only if the .ih.gch needs to be rebuilt.
%.ih.gch: %.ih
- g++ $(CFLAGS) -x c++-header $< -MM -MF $(dir $@)module.d -MP -MT $@
+ g++ $(CFLAGS) -x c++-header $< -MM -MF $*.d -MP -MT $@
g++ $(CFLAGS) -x c++-header $< -o $@
-# This rule build an object (.o) from a source (.cc).
# Each module has a .ih file that should be *the only* include from the .cc
# files. These .ih files are pre-compiled to .ih.gch, and dependency caching
# is based on the .ih files, not the .cc files.
define depend_on_compiled_header
-$(patsubst %.cc,%.o,$(1)) : $(dir $(1))$(patsubst %/,%,$(dir $(1))).ih.gch
+$(patsubst %.cc,%.o,$(1)) : $(dir $(1))module.ih.gch
endef
$(foreach src,$(SRCS),$(eval $(call depend_on_compiled_header,$(src))))
# Include the generated dependency files (if they exist)
-include $(patsubst %,%/module.d,$(MODULES))
-
-# TODO: rename all %/%.ih files to %/module.ih for simplicity of matching rules