summaryrefslogtreecommitdiff
path: root/makefiles/gmake/depend.mk
diff options
context:
space:
mode:
Diffstat (limited to 'makefiles/gmake/depend.mk')
-rw-r--r--makefiles/gmake/depend.mk56
1 files changed, 51 insertions, 5 deletions
diff --git a/makefiles/gmake/depend.mk b/makefiles/gmake/depend.mk
index bd49fe1..eb832e7 100644
--- a/makefiles/gmake/depend.mk
+++ b/makefiles/gmake/depend.mk
@@ -4,27 +4,73 @@
# requires:
# - compilers CC and CCPP
# - INCLUDEDIRS
-# - OBJS, CPP_OBJS and BIN_OBJS
+# - OBJS, CPP_OBJS and BIN_OBJS, CPP_BIN_OBJS
+# - TEST_BINS, TEST_BIN_OBJS, TEST_CPP_BINS, TEST_CPP_BIN_OBJS
#
# provides:
# - included dependency files
#
# author: Andreas Baumann, abaumann at yahoo dot com
-MAKEDEPEND = $(CC) -MM $(INCLUDE_DIRS)
-CCPP_MAKEDEPEND = $(CCPP) -MM $(INCLUDE_DIRS)
+ifeq "$(COMPILER)" "gcc"
%.d : %.c
@echo Generating dependencies for $<
- @$(MAKEDEPEND) $(CFLAGS) $< | \
+ @$(CC) -DMAKE_DEPENDENCIES -MM -MT $(@:.d=.o) $(CFLAGS) $< | \
sed "s,\($*\.o\)[ :]*\(.*\),$@ : $$\(wildcard \2\)\&\&\&\1 : \2,g" | tr -s '&' "\n" > $@
%.d : %.cpp
@echo Generating dependencies for $<
- @$(CCPP_MAKEDEPEND) $(CCPPFLAGS) $< | \
+ @$(CCPP) -DMAKE_DEPENDENCIES -MM -MT $(@:.d=.o) $(CCPPFLAGS) $< | \
sed "s,\($*\.o\)[ :]*\(.*\),$@ : $$\(wildcard \2\)\&\&\&\1 : \2,g" | tr -s '&' "\n" > $@
+endif
+
+ifeq "$(COMPILER)" "tcc"
+
+%.d : %.c
+ @echo Generating dependencies for $<
+ @makedepend -DMAKE_DEPENDENCIES $(PLATFORM_COMPILE_FLAGS) $(INCLUDE_DIRS) -I/usr/lib/tcc/include -f - $< > $@
+
+endif
+
+ifeq "$(COMPILER)" "icc"
+
+%.d : %.c
+ @echo Generating dependencies for $<
+ @$(CC) -DMAKE_DEPENDENCIES -MM -MT $(@:.d=.o) $(CFLAGS) $< | \
+ sed "s,\($*\.o\)[ :]*\(.*\),$@ : $$\(wildcard \2\)\&\&\&\1 : \2,g" | tr -s '&' "\n" > $@
+
+%.d : %.cpp
+ @echo Generating dependencies for $<
+ @$(CCPP) -DMAKE_DEPENDENCIES -MM -MT $(@:.d=.o) $(CCPPFLAGS) $< | \
+ sed "s,\($*\.o\)[ :]*\(.*\),$@ : $$\(wildcard \2\)\&\&\&\1 : \2,g" | tr -s '&' "\n" > $@
+
+endif
+
+ifeq "$(COMPILER)" "spro"
+
+%.d : %.c
+ @echo Generating dependencies for $<
+ @$(CC) -DMAKE_DEPENDENCIES -xM1 $(CFLAGS) $< > $@
+
+%.d : %.cpp
+ @echo Generating dependencies for $<
+ @$(CCPP) -DMAKE_DEPENDENCIES -xM1 $(CCPPFLAGS) $< > $@
+endif
+
+ifeq "$(COMPILER)" "pcc"
+
+# FIXME: platform in path of compiler include files, mmh, how to fix?
+%.d : %.c
+ @echo Generating dependencies for $<
+ @$(CC) -DMAKE_DEPENDENCIES $(CFLAGS) -M $< > $@
+
+endif
+
-include $(OBJS:.o=.d)
-include $(CPP_OBJS:.o=.d)
-include $(BIN_OBJS:.o=.d)
-include $(CPP_BIN_OBJS:.o=.d)
+-include $(TEST_BIN_OBJS:.o=.d)
+-include $(TEST_CPP_BIN_OBJS:.o=.d)