(svn r14227) -Fix [configure]: detect if we are in a new directory, and rerun configure in those cases. Should avoid confusion (idea by Eddi)
authortruebrain
Tue, 02 Sep 2008 16:28:31 +0000
changeset 10060 e4d56b76c100
parent 10059 7a8d30d55bdc
child 10061 6a7bce2eca5c
(svn r14227) -Fix [configure]: detect if we are in a new directory, and rerun configure in those cases. Should avoid confusion (idea by Eddi)
Makefile.in
config.lib
--- a/Makefile.in	Tue Sep 02 15:59:21 2008 +0000
+++ b/Makefile.in	Tue Sep 02 16:28:31 2008 +0000
@@ -11,6 +11,7 @@
 
 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 @@
 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 @@
 	@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 @@
 # 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 @@
 	$(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)
 
--- a/config.lib	Tue Sep 02 15:59:21 2008 +0000
+++ b/config.lib	Tue Sep 02 16:28:31 2008 +0000
@@ -2312,6 +2312,7 @@
 		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 @@
 	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