From: Michal Sojka Date: Thu, 1 May 2008 02:43:00 +0000 (+0000) Subject: Generated header files didn't depend on all config.files. X-Git-Tag: v0.1-sssa~67 X-Git-Url: http://rtime.felk.cvut.cz/gitweb/omk.git/commitdiff_plain/5a2eaf511f78a04721099c2058c46f2b3846447d Generated header files didn't depend on all config.files. darcs-hash:20080501024350-f2ef6-6843dd83fa476fab51ffb37cd8d3ecbb414cff4e.gz --- diff --git a/snippets/base b/snippets/base index b20f19d..412336f 100644 --- a/snippets/base +++ b/snippets/base @@ -79,8 +79,12 @@ CONFIG_FILE_OK = y endif endif #$(CONFIG_FILE_OK) + +CONFIG_FILES ?= $(wildcard $(CONFIG_FILE)-default) $(wildcard $(MAKERULES_DIR)/config.target) $(wildcard $(CONFIG_FILE)) + + export SOURCES_DIR MAKERULES_DIR RELATIVE_DIR -export CONFIG_FILE OMK_SERIALIZE_INCLUDED OMK_VERBOSE OMK_SILENT +export CONFIG_FILE CONFIG_FILES OMK_SERIALIZE_INCLUDED OMK_VERBOSE OMK_SILENT # OMK_SERIALIZE_INCLUDED has to be exported to submakes because passes # must to be serialized only in the toplevel make. diff --git a/snippets/config_h b/snippets/config_h index 1170302..35cd3aa 100644 --- a/snippets/config_h +++ b/snippets/config_h @@ -11,12 +11,12 @@ # Syntax: $(call BUILD_CONFIG_H_template,,,,) define BUILD_CONFIG_H_template -$(addprefix $(1)/,$(notdir $(addsuffix .stamp,$(2)))) : $(wildcard $(CONFIG_FILE)) $(wildcard $(CONFIG_FILE)-default) +$(addprefix $(1)/,$(notdir $(addsuffix .stamp,$(2)))) : $(CONFIG_FILES) @$(QUIET_CMD_ECHO) " CONFGEN $$(@:%.stamp=%)" @if [ ! -d `dirname $(2).tmp` ] ; then \ mkdir -p `dirname $(2).tmp` ; fi @echo "/* Automatically generated from */" > "$(2).tmp" - @echo "/* config file: $$< */" >> "$(2).tmp" + @echo "/* config files: $$(^:$(MAKERULES_DIR)/%=%) */" >> "$(2).tmp" $(if $(DOXYGEN),@echo "/** @file */" >> "$(2).tmp") @echo "#ifndef $(4)" >> "$(2).tmp" @echo "#define $(4)" >> "$(2).tmp" diff --git a/tests/headers/generated/runtest b/tests/headers/generated/runtest index 452fe66..f91e1cf 100755 --- a/tests/headers/generated/runtest +++ b/tests/headers/generated/runtest @@ -8,17 +8,17 @@ make include-pass || error "Can't run make include-pass" GC=./_compiled/include/global.h test -f "$GC" || error "Can't find the produced global config" -grep -Fv "/* config file:" $GC | diff -u correct/global.h - || error "Global config differs" +grep -Fv "/* config files:" $GC | diff -u correct/global.h - || error "Global config differs" make || error "Can't run make to produce local config" make CFLAGS=-Wall || error "Make failed with custom CFLAGS" LC=$(find _build -wholename '*/lincan/lincan_config.h') test -f "$LC" || error "Can't find the produced local config" -grep -Fv "/* config file:" $LC | diff -u correct/lincan_config.h - || error "Local config differs" +grep -Fv "/* config files:" $LC | diff -u correct/lincan_config.h - || error "Local config differs" TLC=$(find _build -name 'toplevel_config.h') test -f "$TLC" || error "Can't find the produced local config" -grep -Fv "/* config file:" $TLC | diff -u correct/toplevel_config.h - || error "Toplevel local config differs" +grep -Fv "/* config files:" $TLC | diff -u correct/toplevel_config.h - || error "Toplevel local config differs" touch -t 200001010000 $LC stat -c '%z' $LC > stat.log1