]> rtime.felk.cvut.cz Git - omk.git/commitdiff
sources-list-pass generates correct dependences in runtime
authorMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 28 Aug 2008 07:11:00 +0000 (07:11 +0000)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 28 Aug 2008 07:11:00 +0000 (07:11 +0000)
darcs-hash:20080828071147-f2ef6-d605237a2372bf61e72f56316bce69eac88d8e9b.gz

snippets/sources-list

index ff5cfafda5b1dbbe9f351cc13ffff5336a751e7d..efae3824c1dc43acce88b163280fdd7acb287b36 100644 (file)
@@ -7,7 +7,8 @@ SOURCES_LIST_FN=sources.txt
 ifndef SOURCES_LIST
 SOURCES_LIST_DIR:=$(RELATIVE_DIR)
 SOURCES_LIST:=$(OUTPUT_DIR)/$(SOURCES_LIST_DIR)/$(SOURCES_LIST_FN)
-export SOURCES_LIST SOURCES_LIST_DIR
+SOURCES_LIST_D := $(LOCAL_BUILD_DIR)/$(SOURCES_LIST_FN).d
+export SOURCES_LIST SOURCES_LIST_DIR SOURCES_LIST_D
 endif
 
 ifeq ($(MAKECMDGOALS),sources-list)
@@ -26,16 +27,23 @@ sources-list: $(SOURCES_LIST)
 
 $(SOURCES_LIST): $(CONFIG_FILES) $(shell find -name $(MAKEFILE_OMK))
        @echo -n "" > "$(SOURCES_LIST).tmp"
+       @echo -n "" > "$(SOURCES_LIST_D).tmp"
        @$(MAKE) --no-print-directory sources-list-pass
        @echo "# Automatically generated list of files in '$(RELATIVE_DIR)' that are used during OMK compilation" > "$(SOURCES_LIST).tmp2"
        @cat "$(SOURCES_LIST).tmp"|sort|uniq >> "$(SOURCES_LIST).tmp2"
        @rm "$(SOURCES_LIST).tmp"
        @mv "$(SOURCES_LIST).tmp2" "$(SOURCES_LIST)"
+       @echo "$(SOURCES_LIST): \\" > "$(SOURCES_LIST_D).tmp2"
+       @cat "$(SOURCES_LIST_D).tmp"|grep -v "$(SOURCES_LIST_D).tmp"|sort|uniq|\
+               sed -e 's/$$/\\/' >> "$(SOURCES_LIST_D).tmp2"
+       @rm "$(SOURCES_LIST_D).tmp"
+       @mv "$(SOURCES_LIST_D).tmp2" "$(SOURCES_LIST_D)"
 endif
 
 $(eval $(call omk_pass_template,sources-list-pass,$$(LOCAL_BUILD_DIR),,always))
 
 sources-list-pass-local:
+       @$(foreach m,$(MAKEFILE_LIST),echo '  $(m)' >> "$(SOURCES_LIST_D).tmp";)
        @$(foreach h,$(include_HEADERS) $(nobase_include_HEADERS) $(kernel_HEADERS),\
          echo "$(RELATIVE_DIR:$(SOURCES_LIST_DIR)/%=%)/$(h)" >> "$(SOURCES_LIST).tmp";)
        @$(foreach ch,$(config_include_HEADERS), \