]> git.sesse.net Git - vlc/blobdiff - Makefile.dep
* ./modules/gui/kde/kde.cpp: the interface rc file defaults to the one in
[vlc] / Makefile.dep
index d8178879c9bd58536f066030ab986fc981cb6d1d..de071516deec0ca057c454b62d16f641c15b1689 100644 (file)
@@ -1,12 +1,30 @@
 ################################################################################
-# vlc (VideoLAN Client) dependancies makefile
+# vlc (VideoLAN Client) dependencies makefile
 # (c)1998 VideoLAN
 ################################################################################
 # This Makefile is dedicated to build of .d files. It should not be called
 # directly by user, but only through main Makefile.
-# See notes at the end of the main makefile for explanations.
 ################################################################################
 
+###############################################################################
+# Note on generic rules and dependencies
+###############################################################################
+
+# Note on dependencies: each .c file is associated with a .d file, which
+# depends of it. The .o file associated with a .c file depends of the .d, of the
+# .c itself, and of Makefile. The .d files are stored in a separate .dep/
+# directory.
+# The dep directory should be ignored by CVS.
+
+# Note on inclusions: depending of the target, the dependencies files must
+# or must not be included. The problem is that if we ask make to include a file,
+# and this file does not exist, it is made before it can be included. In a
+# general way, a .d file should be included if and only if the corresponding .o
+# needs to be re-made.
+
+# The object Makefile knows how to make a .o from a .c, and includes
+# dependencies for the target, but only those required.
+
 # All settings and options are passed through main Makefile
 
 ################################################################################
 ################################################################################
 
 default:
-       @echo "This Makefile should not be called directly - see notes at end of"
-       @echo "main Makefile."
+       @echo "This Makefile should not be called directly,"
+       @echo "see notes at end of main Makefile."
 
 ################################################################################
-# Dependancies creation
+# Dependencies creation
 ################################################################################
 
-# A dependancies file needs to be rebuilt if the .c  changed or if one of the 
-# dependancies files have been changed. In other words, it depends from the
+# A dependencies file needs to be rebuilt if the .c  changed or if one of the 
+# dependencies files have been changed. In other words, it depends from the
 # .c and from itself.
 
 -include $(MAKECMDGOALS)
-$(dependancies): .dep/%.d: %.c
-       @test -d .dep/$(dir $*) || mkdir -p .dep/$(dir $*)
-       @echo "generating dependancies for $*.c"
-       @$(SHELL) -ec '$(CC) $(DCFLAGS) $(CFLAGS) $(DEFINE) $< \
-               | sed '\''s/$(subst .,\.,$(notdir $*))\.o[ :]*/$(subst /,\/,$*).o \
-               .dep\/$(subst /,\/,$*).d : /g'\'' > $@; \
-               [ -s $@ ] || rm -f $@'
+
+CFLAGS += -DMAKE_DEP
+
+$(C_DEP): .dep/%.d: %.c
+       @test -d .dep/$(dir $*) || mkdir -p $(shell dirname .dep/$*)
+       @echo "make[$(MAKELEVEL)]: Generating dependencies for \`$*.c'"
+       @$(SHELL) -ec '$(CC) -M $(CFLAGS) 2>/dev/null $< \
+       | sed '\''s/$(subst .,\.,$(notdir $*))\.o[ :]*/$(subst /,\/,$*).o \
+       .dep\/$(subst /,\/,$*).d : /g'\'' > $@; \
+       [ -s $@ ] || rm -f $@'
+
+$(CPP_DEP): .dep/%.dpp: %.cpp
+       @test -d .dep/$(dir $*) || mkdir -p $(shell dirname .dep/$*)
+       @echo "make[$(MAKELEVEL)]: Generating dependencies for \`$*.cpp'"
+       @$(SHELL) -ec '$(CC) -M $(CFLAGS) 2>/dev/null $< \
+       | sed '\''s/$(subst .,\.,$(notdir $*))\.o[ :]*/$(subst /,\/,$*).o \
+       .dep\/$(subst /,\/,$*).dpp : /g'\'' > $@; \
+       [ -s $@ ] || rm -f $@'
+
+$(M_DEP): .dep/%.dm: %.m
+       @test -d .dep/$(dir $*) || mkdir -p $(shell dirname .dep/$*)
+       @echo "make[$(MAKELEVEL)]: Generating dependencies for \`$*.m'"
+       @$(SHELL) -ec '$(CC) -M $(CFLAGS) 2>/dev/null $< \
+       | sed '\''s/$(subst .,\.,$(notdir $*))\.o[ :]*/$(subst /,\/,$*).o \
+       .dep\/$(subst /,\/,$*).dm : /g'\'' > $@; \
+       [ -s $@ ] || rm -f $@'
+