X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/e9690142325711b320ef444768fdd40a087d02f7..45d4c012d3dab39a65ea71dee825d1146e0ac4a7:/etc/prefix-gnulib-mk diff --git a/etc/prefix-gnulib-mk b/etc/prefix-gnulib-mk index 3ea9f5bd..81c0924f 100755 --- a/etc/prefix-gnulib-mk +++ b/etc/prefix-gnulib-mk @@ -2,8 +2,46 @@ use strict; use IO::File; +use Getopt::Long; +use File::Basename; # for dirname -my $prefix = "lib/"; +my $VERSION = '2012-01-21 17:13'; # UTC +(my $ME = $0) =~ s|.*/||; + +my $prefix; +my $lib_name; + +sub usage ($) +{ + my ($exit_code) = @_; + my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); + if ($exit_code != 0) + { + print $STREAM "Try '$ME --help' for more information.\n"; + } + else + { + print $STREAM < # lib_libbison_a_SOURCES. - $lhs_and_assign_op =~ s/(libbison)/lib_$1/g; + $lhs_and_assign_op =~ s/($lib_name)/lib_$1/g; return $lhs_and_assign_op . $rhs; } @@ -131,8 +169,33 @@ sub process ($) print $out $contents; } -process ("${prefix}gnulib.mk") - +{ + GetOptions + ( + 'lib-name=s' => \$lib_name, + help => sub { usage 0 }, + version => sub { print "$ME version $VERSION\n"; exit }, + ) or usage 1; + + my $fail = 0; + defined $lib_name + or (warn "$ME: no library name; use --lib-name=NAME\n"), $fail = 1; + + # There must be exactly one argument. + @ARGV == 0 + and (warn "$ME: missing FILE argument\n"), $fail = 1; + 1 < @ARGV + and (warn "$ME: too many arguments:\n", join ("\n", @ARGV), "\n"), + $fail = 1; + $fail + and usage 1; + + my $file = $ARGV[0]; + $prefix = (dirname $file) . '/'; + warn "prefix=$prefix\n"; + + process $file; +} ### Setup "GNU" style for perl-mode and cperl-mode. ## Local Variables: @@ -149,4 +212,9 @@ process ("${prefix}gnulib.mk") ## cperl-extra-newline-before-brace: t ## cperl-merge-trailing-else: nil ## cperl-continued-statement-offset: 2 +## eval: (add-hook 'write-file-hooks 'time-stamp) +## time-stamp-start: "my $VERSION = '" +## time-stamp-format: "%:y-%02m-%02d %02H:%02M" +## time-stamp-time-zone: "UTC" +## time-stamp-end: "'; # UTC" ## End: