################################################################################ # 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. ################################################################################ ############################################################################### # 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 target ################################################################################ default: @echo "This Makefile should not be called directly," @echo "see notes at end of main Makefile." ################################################################################ # Dependencies creation ################################################################################ # 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) 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 $@'