Switch to one dependency file per C file.
authorAndre Noll <maan@systemlinux.org>
Thu, 1 Oct 2009 00:04:40 +0000 (02:04 +0200)
committerAndre Noll <maan@systemlinux.org>
Thu, 1 Oct 2009 00:04:40 +0000 (02:04 +0200)
This prevents to rebuild the full Makefile.deps every time. It also
tracks the dependencies for the cmdline.c files correctly.

Makefile.in

index 9556cff..b156d1a 100644 (file)
@@ -89,9 +89,6 @@ all: $(BINARIES) $(man_pages)
 man: $(man_pages)
 tarball: $(tarball)
 
-Makefile.deps: $(wildcard *.c *.h) $(cmdline_generated)
-       gcc -MM -MG -I$(cmdline_dir) @faad_cppflags@ @mad_cppflags@ @oggvorbis_cppflags@ *.c > $@
--include Makefile.deps
 -include $(ggo_dir)/makefile
 
 %_command_list.c: %.cmd
@@ -145,12 +142,19 @@ $(object_dir)/aac_common.o: aac_common.c | $(object_dir)
 $(object_dir)/aac_afh.o: aac_afh.c | $(object_dir)
        $(CC) -c -o $@ $(CPPFLAGS) $(DEBUG_CPPFLAGS) @faad_cppflags@ $<
 
-$(object_dir)/%.cmdline.o: $(cmdline_dir)/%.cmdline.c | $(object_dir)
+$(object_dir)/%.cmdline.o: $(cmdline_dir)/%.cmdline.c $(cmdline_dir)/%.cmdline.h | $(object_dir)
        $(CC) -c $(CPPFLAGS) -o $@ $<
 
 $(object_dir)/%.o: %.c | $(object_dir)
        $(CC) -c -o $@ $(CPPFLAGS) $(DEBUG_CPPFLAGS) $<
 
+# We depend on the *.cmdline.[ch] files as these must be present for depend.sh
+# to work. The first dependency is explititly given as it is used by $<.
+$(object_dir)/%.cmdline.d: %.cmdline.c $(cmdline_generated) | $(object_dir)
+       ./depend.sh $(object_dir) $(CPPFLAGS) $< > $@
+$(object_dir)/%.d: %.c $(cmdline_generated) | $(object_dir)
+       ./depend.sh  $(object_dir) $(CPPFLAGS) $< > $@
+
 recv_objs := $(addprefix $(object_dir)/, @recv_objs@)
 filter_objs := $(addprefix $(object_dir)/, @filter_objs@)
 client_objs := $(addprefix $(object_dir)/, @client_objs@)
@@ -162,6 +166,11 @@ server_objs := $(addprefix $(object_dir)/, @server_objs@)
 write_objs := $(addprefix $(object_dir)/, @write_objs@)
 afh_objs := $(addprefix $(object_dir)/, @afh_objs@)
 
+all_objs := $(recv_objs) $(filter_objs) $(client_objs) $(gui_objs) \
+       $(audiod_objs ) $(audioc_objs) $(fade_objs) $(server_objs) \
+       $(write_objs) $(afh_objs)
+-include $(all_objs:.o=.d)
+
 para_recv: $(recv_objs)
        $(CC) $(LDFLAGS) $(recv_objs) -o $@ @recv_ldflags@