X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/fadb13b5b32b5efb354d9083fd201d1dfdb30150..a81071233128e8c31507b9aa6c5f70906ab523f5:/build-aux/cross-options.pl

diff --git a/build-aux/cross-options.pl b/build-aux/cross-options.pl
index 241c741b..0f5009ce 100755
--- a/build-aux/cross-options.pl
+++ b/build-aux/cross-options.pl
@@ -18,46 +18,50 @@ while (<STDIN>)
         \s                # Spaces.
         /x)
     {
-	my ($short, $long, $opt, $arg) = ($1, $2, $3, $4);
-	$short = '' if ! defined $short;
-	$short = '-d' if $long eq '--defines' && ! $short;
-	my $dir = '%' . substr($long, 2);
-	$dir = '' if index ($scanner, "\"$dir\"") < 0;
-	if ($arg)
-	{
+        my ($short, $long, $opt, $arg) = ($1, $2, $3, $4);
+        $short = '' if ! defined $short;
+        $short = '-d' if $long eq '--defines' && ! $short;
+        my $dir = '%' . substr($long, 2);
+        if (index ($scanner, "\"$dir\"") < 0)
+        {
+          if ($long eq '--force-define') { $dir = '%define'; }
+          else { $dir = ''; }
+        }
+        if ($arg)
+        {
             # if $opt, $arg contains the closing ].
             substr ($arg, -1) = ''
                 if $opt eq '[';
-	    $arg =~ s/^=//;
+            $arg =~ s/^=//;
             $arg = lc ($arg);
-	    my $dir_arg = $arg;
+            my $dir_arg = $arg;
             # If the argument is compite (e.g., for --define[=NAME[=VALUE]]),
             # put each word in @var, to build @var{name}[=@var{value}], not
             # @var{name[=value]}].
-	    $arg =~ s/(\w+)/\@var{$1}/g;
-	    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]')
-	    {
-		$dir_arg = '@var{name} ["@var{value}"]';
-	    }
-	    else
-	    {
-		$dir_arg =~ s/(\w+)/\@var{"$1"}/g;
-		$dir_arg = '[' . $dir_arg . ']'
-		    if $opt eq '[';
-	    }
-	    $long = "$long$long_arg";
-	    $short = "$short $arg" if $short && $short ne '-d';
-	    $dir = "$dir $dir_arg" if $dir;
-	}
-	$option{$long} = $short;
-	$directive{$long} = $dir;
+            $arg =~ s/(\w+)/\@var{$1}/g;
+            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]')
+            {
+                $dir_arg = '@var{name} ["@var{value}"]';
+            }
+            else
+            {
+                $dir_arg =~ s/(\w+)/\@var{"$1"}/g;
+                $dir_arg = '[' . $dir_arg . ']'
+                    if $opt eq '[';
+            }
+            $long = "$long$long_arg";
+            $short = "$short $arg" if $short && $short ne '-d';
+            $dir = "$dir $dir_arg" if $dir;
+        }
+        $option{$long} = $short;
+        $directive{$long} = $dir;
     }
 }