]> git.saurik.com Git - bison.git/blobdiff - build-aux/cross-options.pl
gnulib: update for fix of fprintf-posix, which we'll use soon.
[bison.git] / build-aux / cross-options.pl
index 478303d5665c1cd969a17f6b079dd29ed1892a50..7762e276c27d60cf3e985136f062a7d0930be093 100755 (executable)
@@ -22,7 +22,11 @@ while (<STDIN>)
        $short = '' if ! defined $short;
        $short = '-d' if $long eq '--defines' && ! $short;
        my $dir = '%' . substr($long, 2);
-       $dir = '' if index ($scanner, "\"$dir\"") < 0;
+       if (index ($scanner, "\"$dir\"") < 0)
+       {
+         if ($long eq '--force-define') { $dir = '%define'; }
+         else { $dir = ''; }
+       }
        if ($arg)
        {
             # if $opt, $arg contains the closing ].
@@ -35,8 +39,11 @@ while (<STDIN>)
             # put each word in @var, to build @var{name}[=@var{value}], not
             # @var{name[=value]}].
            $arg =~ s/(\w+)/\@var{$1}/g;
-           $arg = '[' . $arg . ']'
-               if $opt eq '[';
+           my $long_arg = "=$arg";
+           if ($opt eq '[') {
+             $long_arg = "[$long_arg]";
+             $arg = "[$arg]";
+           }
            # For arguments of directives: this only works if all arguments
            # are strings and have the same syntax as on the command line.
            if ($dir_arg eq 'name[=value]')
@@ -49,7 +56,7 @@ while (<STDIN>)
                $dir_arg = '[' . $dir_arg . ']'
                    if $opt eq '[';
            }
-           $long = "$long=$arg";
+           $long = "$long$long_arg";
            $short = "$short $arg" if $short && $short ne '-d';
            $dir = "$dir $dir_arg" if $dir;
        }
@@ -58,9 +65,12 @@ while (<STDIN>)
     }
 }
 
+my $sep = '';
 foreach my $long (sort keys %option)
 {
     # Avoid trailing spaces.
+    print $sep;
+    $sep = "\n";
     print '@item @option{', $long, "}\n\@tab";
     print ' @option{', $option{$long}, '}' if $option{$long};
     print "\n\@tab";