DEADSOFTWARE

fix gcc 4.0
[odcread.git] / Makefile
index 415e3250cebaf0cde6ad7c7995e9f02e2ba2c42a..b1fac089f138b1ae207a0a16fec379fe5e6e6f2c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -6,7 +6,8 @@
 #  * $(MODULE)/*.cc -- module source files
 MODULES := main reader store alien typeregister textmodel fold typepath
 
-CFLAGS := -I.
+CXXFLAGS = -I.
+CXX = g++
 
 # Variables for the modules to write to
 SRCS := 
@@ -16,10 +17,11 @@ include $(patsubst %,%/Make.inc,$(MODULES))
 
 # This rule just links the object files together
 odcread: $(SRCS:.cc=.o)
-       g++ -o $@ $^
+       $(CXX) -liconv -o $@ $^
 
+# This rule build an object (.o) from a source (.cc). 
 %.o: %.cc
-       g++ $(CFLAGS) $< -c -o $@
+       $(CXX) $(CXXFLAGS) $< -c -o $@
 
 # For each implementation header (.ih) generate a dependency (.d) file which
 # will ensure that the compiled header (.ih.gch) is rebuilt whenever the header
@@ -32,22 +34,21 @@ odcread: $(SRCS:.cc=.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 $< -o $@
+       $(CXX) $(CXXFLAGS) -x c++-header $< -MM -MF $*.d -MP -MT $@
+       $(CXX) $(CXXFLAGS) -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))))
 
 clean:
-       rm -f odcread *.o */*.o */*.d */*.ih.gch
+       rm -f */*.o */module.d */module.ih.gch
 
+dist-clean: clean
+       rm -f odcread
 # 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