summaryrefslogtreecommitdiff
path: root/regen/uconfig_h.pl
diff options
context:
space:
mode:
Diffstat (limited to 'regen/uconfig_h.pl')
-rwxr-xr-xregen/uconfig_h.pl30
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);