diff options
author | Nicholas Clark <nick@ccl4.org> | 2011-03-22 15:53:20 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2011-03-28 10:21:47 +0100 |
commit | d0817dbe582693d4dbd2f1ae8097b9b0f5f8530e (patch) | |
tree | 5291edaab579d40d272d579e62168edc141d7eef /regen/uconfig_h.pl | |
parent | 88f1af6092edef582e05fbebaf7780bd7cde0504 (diff) | |
download | perl-d0817dbe582693d4dbd2f1ae8097b9b0f5f8530e.tar.gz |
Add regen/uconfig_h.pl to regenerate uconfig.h
Most of the work is done by config_h.SH, but the wrapper is needed to add the
digest lines, so that t/porting/regen.t can verify that it's up to date.
I think that we need to take the "digest" approach, rather than "build to a
temporary file during testing", as we can't rely on a working Unix shell on
all platforms, and we couldn't even be sure that we get the skip list correct.
Diffstat (limited to 'regen/uconfig_h.pl')
-rwxr-xr-x | regen/uconfig_h.pl | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/regen/uconfig_h.pl b/regen/uconfig_h.pl new file mode 100755 index 0000000000..8f714e2877 --- /dev/null +++ b/regen/uconfig_h.pl @@ -0,0 +1,30 @@ +#!/usr/bin/perl -w +# +# Regenerate (overwriting only if changed): +# +# uconfig.h +# +# from uconfig.h config_h.SH +# +# Accepts the standard regen_lib -q and -v args. + +use strict; +use Config; +require 'regen/regen_lib.pl'; + +my ($uconfig_h, $uconfig_h_new, $config_h_sh) + = ('uconfig.h', 'uconfig.h-new', 'config_h.SH'); + +$ENV{CONFIG_SH} = 'uconfig.sh'; +$ENV{CONFIG_H} = $uconfig_h_new; +safer_unlink($uconfig_h_new); + +my $command = 'sh ./config_h.SH'; +system $command and die "`$command` failed, \$?=$?"; + +open FH, ">>$uconfig_h_new" or die "Can't append to $uconfig_h_new: $!"; + +print FH "\n", read_only_bottom([$ENV{CONFIG_SH}, 'config_h.SH']); + +safer_close(*FH); +rename_if_different($uconfig_h_new, $uconfig_h); |