summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in16
-rw-r--r--config.lib4
2 files changed, 16 insertions, 4 deletions
diff --git a/Makefile.in b/Makefile.in
index 47fb0f089..cec727b46 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -11,6 +11,7 @@ include Makefile.am
SOURCE_LIST = !!SOURCE_LIST!!
CONFIG_CACHE_SOURCE_LIST = !!CONFIG_CACHE_SOURCE_LIST!!
+CONFIG_CACHE_PWD = !!CONFIG_CACHE_PWD!!
CONFIGURE_FILES = !!CONFIGURE_FILES!!
LIPO = !!LIPO!!
BIN_DIR = !!BIN_DIR!!
@@ -37,9 +38,10 @@ REVISION = !!REVISION!!
AWK = !!AWK!!
DISTCC = !!DISTCC!!
-RES := $(shell if [ ! -f $(CONFIG_CACHE_SOURCE_LIST) ] || [ -n "`cmp $(CONFIG_CACHE_SOURCE_LIST) $(SOURCE_LIST)`" ]; then cp $(SOURCE_LIST) $(CONFIG_CACHE_SOURCE_LIST); fi )
+RES := $(shell if [ ! -f $(CONFIG_CACHE_PWD) ] || [ "`pwd`" != "`cat $(CONFIG_CACHE_PWD)`" ]; then echo "`pwd`" > $(CONFIG_CACHE_PWD); fi )
+RES := $(shell if [ ! -f $(CONFIG_CACHE_SOURCE_LIST) ] || [ -n "`cmp $(CONFIG_CACHE_SOURCE_LIST) $(SOURCE_LIST) 2>/dev/null`" ]; then cp $(SOURCE_LIST) $(CONFIG_CACHE_SOURCE_LIST); fi )
-all: config.cache
+all: config.pwd config.cache
ifdef DISTCC
@if [ -z "`echo '$(MFLAGS)' | grep '\-j'`" ]; then echo; echo "WARNING: you enabled distcc support, but you don't seem to be using the -jN paramter"; echo; fi
endif
@@ -78,7 +80,13 @@ help:
@echo " bundle_lha create the lha installation bundle"
@echo " bundle_dmg create the dmg installation bundle"
+config.pwd: $(CONFIG_CACHE_PWD)
+ $(MAKE) reconfigure
+
config.cache: $(CONFIG_CACHE_SOURCE_LIST) $(CONFIGURE_FILES)
+ $(MAKE) reconfigure
+
+reconfigure:
ifeq ($(shell if test -f config.cache; then echo 1; fi), 1)
@echo "----------------"
@echo "The system detected that source.list or any configure file is altered."
@@ -87,7 +95,7 @@ ifeq ($(shell if test -f config.cache; then echo 1; fi), 1)
# Make sure we don't lock config.cache
@$(shell cat config.cache | sed 's/\\ /\\\\ /g') || exit 1
@echo "----------------"
- @echo "Reconfig done. Now compiling..."
+ @echo "Reconfig done. Please re-execute make."
@echo "----------------"
else
@echo "----------------"
@@ -115,7 +123,7 @@ mrproper:
$(Q)rm -rf objs
$(Q)rm -f Makefile Makefile.am Makefile.bundle
$(Q)rm -f media/openttd.desktop
- $(Q)rm -f $(CONFIG_CACHE_SOURCE_LIST) config.cache config.log
+ $(Q)rm -f $(CONFIG_CACHE_SOURCE_LIST) config.cache config.pwd config.log $(CONFIG_CACHE_PWD)
$(Q)rm -rf $(BUNDLE_DIR)
$(Q)rm -rf $(BUNDLES_DIR)
diff --git a/config.lib b/config.lib
index 7183e9281..3a2c06869 100644
--- a/config.lib
+++ b/config.lib
@@ -2312,6 +2312,7 @@ make_sed() {
s#!!CONFIG_CACHE_SOURCE!!#config.cache.source#g;
s#!!CONFIG_CACHE_VERSION!!#config.cache.version#g;
s#!!CONFIG_CACHE_SOURCE_LIST!!#config.cache.source.list#g;
+ s#!!CONFIG_CACHE_PWD!!#config.cache.pwd#g;
s#!!LANG_SUPPRESS!!#$lang_suppress#g;
s#!!OBJS_C!!#$OBJS_C#g;
s#!!OBJS_CPP!!#$OBJS_CPP#g;
@@ -2380,8 +2381,11 @@ generate_main() {
echo >> Makefile.am
# Make the copy of the source-list, so we don't trigger an unwanted recompile
cp $SOURCE_LIST config.cache.source.list
+ # Add the current directory, so we don't trigger an unwanted recompile
+ echo "`pwd`" > config.cache.pwd
# Make sure config.cache is OLDER then config.cache.source.list
touch config.cache
+ touch config.pwd
if [ "$menu_dir" != "" ]; then
generate_menu_item