From e3a3457a9d50dff8dac230880b7523a208d0c85f Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <mail@waldemar-brodkorb.de>
Date: Wed, 23 Feb 2005 21:50:10 +0000
Subject: [PATCH] I do not believe that users will cleanup kernelsource, when
 switching rootfs. force it with scripts and Makefile changes from Felix
 Fietkau <nbd@vd-s.ath.cx>

SVN-Revision: 290
---
 openwrt/Makefile               | 21 +++++++++++++++++++++
 openwrt/README                 |  2 +-
 openwrt/package/config/mconf.c |  1 -
 openwrt/scripts/configtest.pl  | 11 +++++++++++
 openwrt/{ => scripts}/flash.sh |  0
 openwrt/target/Config.in       |  2 --
 6 files changed, 33 insertions(+), 4 deletions(-)
 create mode 100755 openwrt/scripts/configtest.pl
 rename openwrt/{ => scripts}/flash.sh (100%)

diff --git a/openwrt/Makefile b/openwrt/Makefile
index 92137eac20..dfa272120b 100644
--- a/openwrt/Makefile
+++ b/openwrt/Makefile
@@ -166,27 +166,48 @@ $(CONFIG)/mconf:
 	fi
 
 menuconfig: $(CONFIG)/mconf
+	-touch .config
+	-cp .config .config.test
 	@$(CONFIG)/mconf $(CONFIG_CONFIG_IN)
+	-./scripts/configtest.pl
 
 config: $(CONFIG)/conf
+	-touch .config
+	-cp .config .config.test
 	@$(CONFIG)/conf $(CONFIG_CONFIG_IN)
+	-./scripts/configtest.pl
 
 oldconfig: $(CONFIG)/conf
+	-touch .config
+	-cp .config .config.test
 	@$(CONFIG)/conf -o $(CONFIG_CONFIG_IN)
+	-./scripts/configtest.pl
 
 randconfig: $(CONFIG)/conf
+	-touch .config
+	-cp .config .config.test
 	@$(CONFIG)/conf -r $(CONFIG_CONFIG_IN)
+	-./scripts/configtest.pl
 
 allyesconfig: $(CONFIG)/conf
 	#@$(CONFIG)/conf -y $(CONFIG_CONFIG_IN)
 	#sed -i -e "s/^CONFIG_DEBUG.*/# CONFIG_DEBUG is not set/" .config
+	-touch .config
+	-cp .config .config.test
 	@$(CONFIG)/conf -o $(CONFIG_CONFIG_IN)
+	-./scripts/configtest.pl
 
 allnoconfig: $(CONFIG)/conf
+	-touch .config
+	-cp .config .config.test
 	@$(CONFIG)/conf -n $(CONFIG_CONFIG_IN)
+	-./scripts/configtest.pl
 
 defconfig: $(CONFIG)/conf
+	-touch .config
+	-cp .config .config.test
 	@$(CONFIG)/conf -d $(CONFIG_CONFIG_IN)
+	-./scripts/configtest.pl
 
 #############################################################
 #
diff --git a/openwrt/README b/openwrt/README
index c79070cfa3..7d937e76d3 100644
--- a/openwrt/README
+++ b/openwrt/README
@@ -8,7 +8,7 @@ Simply running 'make' will build your firmware and a tarball
 of kernel modules. It will download all sources, build the 
 cross-compile toolchain, the kernel and all choosen applications.
 
-You can use flash.sh for remotely updating your embedded system
+You can use scripts/flash.sh for remotely updating your embedded system
 via tftp.
 
 
diff --git a/openwrt/package/config/mconf.c b/openwrt/package/config/mconf.c
index 659e49cd64..0db6f8f6c8 100644
--- a/openwrt/package/config/mconf.c
+++ b/openwrt/package/config/mconf.c
@@ -705,7 +705,6 @@ int main(int ac, char **av)
 		conf_write(NULL);
 		printf("\n\n"
 			"*** End of Buildroot configuration.\n"
-			"*** After changing root fs, use make linux-dirclean.\n"
 			"*** Check the top-level Makefile for additional configuration options.\n\n");
 	} else
 		printf("\n\nYour Buildroot configuration changes were NOT saved.\n\n");
diff --git a/openwrt/scripts/configtest.pl b/openwrt/scripts/configtest.pl
new file mode 100755
index 0000000000..61fe8a7b62
--- /dev/null
+++ b/openwrt/scripts/configtest.pl
@@ -0,0 +1,11 @@
+#!/usr/bin/perl
+
+my %change = (
+	'ROOTFS' => 'make linux-dirclean'
+);
+
+foreach my $change (keys %change) {
+	my $v1 = `grep '$change' .config.test`;
+	my $v2 = `grep '$change' .config`;
+	$v1 eq $v2 or system($change{$change});
+}
diff --git a/openwrt/flash.sh b/openwrt/scripts/flash.sh
similarity index 100%
rename from openwrt/flash.sh
rename to openwrt/scripts/flash.sh
diff --git a/openwrt/target/Config.in b/openwrt/target/Config.in
index 0fe83857c9..36616f07b8 100644
--- a/openwrt/target/Config.in
+++ b/openwrt/target/Config.in
@@ -1,5 +1,3 @@
-comment "after changing root fs, use make linux-dirclean"
-
 choice
 	prompt "Target Root Filesystem"
 	source "target/jffs2/Config.in"
-- 
GitLab