This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Give the test file for __builtin_expect() the correct name (try.c, not
[perl5.git] / configpm
index cb6122c..d781b50 100755 (executable)
--- a/configpm
+++ b/configpm
@@ -2,8 +2,8 @@
 #
 # configpm
 #
-# Copyright (C) 1994, 1995, 1996 1997, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006 Larry Wall and others.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007 Larry Wall and others.
 #
 #
 # Regenerate the files
@@ -13,6 +13,7 @@
 #    lib/Config.pod
 #    lib/Cross.pm (optionally)
 #
+#
 # from the contents of the static files
 #
 #    Porting/Glossary
 #
 #    config.sh
 #
+# Note that output directory is xlib/[cross-name]/ for cross-compiling
+#
 # It will only update Config.pm and Config_heavy.pl if the contents of
 # either file would be different. Note that *both* files are updated in
 # this case, since for example an extension makefile that has a dependency
 # on Config.pm should trigger even if only Config_heavy.pl has changed.
 
 sub usage { die <<EOF }
-usage: $0  [ options ] [ Config_file ] [ Glossary_file ]
+usage: $0  [ options ]
     --cross=PLATFORM    cross-compile for a different platform
     --no-glossary       don't include Porting/Glossary in lib/Config.pod
-    --heavy=FILE        alternative name for lib/Config_heavy.pl
-    Config_file         alternative name for lib/Config.pm
-    Glossary_file       alternative name for Porting/Glossary
 EOF
 
 use strict;
@@ -60,7 +60,6 @@ my %Allowed_Opts = (
     'cross'    => '', # --cross=PLATFORM - crosscompiling for PLATFORM
     'glossary' => 1,  # --no-glossary  - no glossary file inclusion,
                       #                  for compactness
-    'heavy' => '',   # pathname of the Config_heavy.pl file
 );
 
 sub opts {
@@ -86,26 +85,25 @@ sub opts {
 
 my %Opts = opts();
 
-my ($Config_PM, $Config_heavy);
-my $Glossary = $ARGV[1] || 'Porting/Glossary';
+my ($Config_SH, $Config_PM, $Config_heavy, $Config_POD);
+my $Glossary = 'Porting/Glossary';
 
 if ($Opts{cross}) {
   # creating cross-platform config file
   mkdir "xlib";
   mkdir "xlib/$Opts{cross}";
-  $Config_PM = $ARGV[0] || "xlib/$Opts{cross}/Config.pm";
-}
-else {
-  $Config_PM = $ARGV[0] || 'lib/Config.pm';
-}
-if ($Opts{heavy}) {
-  $Config_heavy = $Opts{heavy};
+  $Config_PM = "xlib/$Opts{cross}/Config.pm";
+  $Config_POD = "xlib/$Opts{cross}/Config.pod";
+  $Config_SH = "Cross/config-$Opts{cross}.sh";
 }
 else {
-  ($Config_heavy = $Config_PM) =~ s!\.pm$!_heavy.pl!;
-  die "Can't automatically determine name for Config_heavy.pl from '$Config_PM'"
-    if $Config_heavy eq $Config_PM;
+  $Config_PM = "lib/Config.pm";
+  $Config_POD = "lib/Config.pod";
+  $Config_SH = "config.sh";
 }
+($Config_heavy = $Config_PM) =~ s/\.pm$/_heavy.pl/;
+die "Can't automatically determine name for Config_heavy.pl from '$Config_PM'"
+  if $Config_heavy eq $Config_PM;
 
 my $config_txt;
 my $heavy_txt;
@@ -184,7 +182,7 @@ my %Data     = ();
 my %seen_quotes;
 {
   my ($name, $val);
-  open(CONFIG_SH, 'config.sh') || die "Can't open config.sh: $!";
+  open(CONFIG_SH, $Config_SH) || die "Can't open $Config_SH: $!";
   while (<CONFIG_SH>) {
     next if m:^#!/bin/sh:;
 
@@ -717,7 +715,7 @@ tie %%Config, 'Config', {
 ENDOFTIE
 
 
-open(CONFIG_POD, ">lib/Config.pod") or die "Can't open lib/Config.pod: $!";
+open(CONFIG_POD, ">$Config_POD") or die "Can't open $Config_POD: $!";
 print CONFIG_POD <<'ENDOFTAIL';
 =head1 NAME
 
@@ -834,6 +832,8 @@ some of the variables described below, or may have extraneous variables
 specific to that particular port.  See the port specific documentation
 in such cases.
 
+=cut
+
 ENDOFTAIL
 
 if ($Opts{glossary}) {
@@ -850,12 +850,16 @@ sub process {
       print CONFIG_POD <<EOF if $text;
 =back
 
+=cut
+
 EOF
       print CONFIG_POD <<EOF;
 =head2 $c
 
 =over 4
 
+=cut
+
 EOF
      $text = 1;
     }
@@ -917,7 +921,7 @@ ENDOFTAIL
 
 close(GLOS) if $Opts{glossary};
 close(CONFIG_POD);
-print "written lib/Config.pod\n";
+print "written $Config_POD\n";
 
 my $orig_config_txt = "";
 my $orig_heavy_txt = "";