diff options
author | Peter Powell <petpow@saberuk.com> | 2014-10-01 19:52:26 +0100 |
---|---|---|
committer | Peter Powell <petpow@saberuk.com> | 2014-12-07 22:36:42 +0000 |
commit | 133b110534ec3386d8735020e8679236002b6ed1 (patch) | |
tree | d4850417eb23a175e68a20ab70b5b9912a242e44 /make | |
parent | 500a0524d94d596b327ed9aaa17fd0a8ce9ebf96 (diff) |
Improve configure cache file handling.
- Add a version number to the configure cache file.
- Disable configure cache file in non-interactive mode.
- Rename configure cache file to .configure.cache to avoid 2.0 files.
- Use run_test to produce the "reading .configure.cache" message.
Diffstat (limited to 'make')
-rw-r--r-- | make/configure.pm | 30 | ||||
-rw-r--r-- | make/template/main.mk | 7 |
2 files changed, 23 insertions, 14 deletions
diff --git a/make/configure.pm b/make/configure.pm index 7cf08e254..9f4797353 100644 --- a/make/configure.pm +++ b/make/configure.pm @@ -37,7 +37,12 @@ use File::Basename qw(basename); use make::console; use make::utilities; -our @EXPORT = qw(cmd_clean +use constant CONFIGURE_CACHE_FILE => '.configure.cache'; +use constant CONFIGURE_CACHE_VERSION => '1'; + +our @EXPORT = qw(CONFIGURE_CACHE_FILE + CONFIGURE_CACHE_VERSION + cmd_clean cmd_help cmd_update read_configure_cache @@ -81,6 +86,7 @@ sub __get_template_settings($$) { } # Miscellaneous information + $settings{CONFIGURE_CACHE_FILE} = CONFIGURE_CACHE_FILE; $settings{SYSTEM_NAME} = lc $^O; chomp($settings{SYSTEM_NAME_VERSION} = `uname -sr 2>/dev/null`); @@ -88,7 +94,7 @@ sub __get_template_settings($$) { } sub cmd_clean { - unlink '.config.cache'; + unlink CONFIGURE_CACHE_FILE; } sub cmd_help { @@ -159,7 +165,7 @@ EOH } sub cmd_update { - print_error "You have not run $0 before. Please do this before trying to update the generated files." unless -f '.config.cache'; + print_error "You have not run $0 before. Please do this before trying to update the generated files." unless -f CONFIGURE_CACHE_FILE; print "Updating...\n"; my %config = read_configure_cache(); my %compiler = get_compiler_info($config{CXX}); @@ -169,23 +175,23 @@ sub cmd_update { } sub read_configure_cache { - my %cfg = (); - open(CACHE, '.config.cache') or return %cfg; + my %config; + open(CACHE, CONFIGURE_CACHE_FILE) or return %config; while (my $line = <CACHE>) { next if $line =~ /^\s*($|\#)/; my ($key, $value) = ($line =~ /^(\S+)="(.*)"$/); - $cfg{$key} = $value; + $config{$key} = $value; } close(CACHE); - return %cfg; + return %config; } sub write_configure_cache(%) { - print_format "Writing <|GREEN .config.cache|> ...\n"; - my %cfg = @_; - open(CACHE, '>.config.cache') or print_error "unable to write .config.cache: $!"; - while (my ($key, $value) = each %cfg) { - $value = "" unless defined $value; + print_format "Writing <|GREEN ${\CONFIGURE_CACHE_FILE}|> ...\n"; + my %config = @_; + open(CACHE, '>', CONFIGURE_CACHE_FILE) or print_error "unable to write ${\CONFIGURE_CACHE_FILE}: $!"; + while (my ($key, $value) = each %config) { + $value = '' unless defined $value; print CACHE "$key=\"$value\"\n"; } close(CACHE); diff --git a/make/template/main.mk b/make/template/main.mk index c78d9047d..b4a0d6f1c 100644 --- a/make/template/main.mk +++ b/make/template/main.mk @@ -261,7 +261,10 @@ install: target @echo 'Remember to create your config file:' $(CONPATH)/inspircd.conf @echo 'Examples are available at:' $(CONPATH)/examples/ -GNUmakefile BSDmakefile: make/template/main.mk src/version.sh configure .config.cache +@TARGET BSD_MAKE CONFIGURE_CACHE_FILE = @CONFIGURE_CACHE_FILE@ +@TARGET GNU_MAKE CONFIGURE_CACHE_FILE = $(wildcard @CONFIGURE_CACHE_FILE@) + +GNUmakefile BSDmakefile: make/template/main.mk src/version.sh configure $(CONFIGURE_CACHE_FILE) ./configure -update @TARGET BSD_MAKE .MAKEFILEDEPS: BSDmakefile @@ -284,7 +287,6 @@ deinstall: -rm -f $(BASE)/org.inspircd.plist configureclean: - rm -f .config.cache rm -f BSDmakefile rm -f GNUmakefile rm -f include/config.h @@ -293,6 +295,7 @@ configureclean: rm -f inspircd-genssl.1 -rm -f inspircd.service -rm -f org.inspircd.plist + -rm -f @CONFIGURE_CACHE_FILE@ distclean: clean configureclean -rm -rf $(SOURCEPATH)/run |