From: Michal Sojka Date: Thu, 28 Aug 2008 07:11:00 +0000 (+0000) Subject: sources-list-pass generates correct dependences in runtime X-Git-Tag: v0.1-sssa~44 X-Git-Url: http://rtime.felk.cvut.cz/gitweb/omk.git/commitdiff_plain/883fb455fc62e5e0b1809a6cdac54fb4b2646653 sources-list-pass generates correct dependences in runtime darcs-hash:20080828071147-f2ef6-d605237a2372bf61e72f56316bce69eac88d8e9b.gz --- diff --git a/snippets/sources-list b/snippets/sources-list index ff5cfaf..efae382 100644 --- a/snippets/sources-list +++ b/snippets/sources-list @@ -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), \