X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=configpm;h=46b19721569264855906289f4791815f25930852;hb=a922f900a6916d70770b1348cbacd5ea3df02a9f;hp=ab26eefe407ce1f125f3c2ee90342f797539890a;hpb=9137345a080bfc646c2f9440cdb7bd90b8b37428;p=p5sagit%2Fp5-mst-13.2.git diff --git a/configpm b/configpm index ab26eef..46b1972 100755 --- a/configpm +++ b/configpm @@ -298,14 +298,62 @@ EOT my @need_relocation; if (fetch_string({},'userelocatableinc')) { - foreach my $what (qw(archlibexp + foreach my $what (qw(prefixexp + + archlibexp + html1direxp + html3direxp + man1direxp + man3direxp privlibexp + scriptdirexp sitearchexp + sitebinexp + sitehtml1direxp + sitehtml3direxp sitelibexp - sitelib_stem + siteman1direxp + siteman3direxp + sitescriptexp vendorarchexp + vendorbinexp + vendorhtml1direxp + vendorhtml3direxp vendorlibexp - vendorlib_stem)) { + vendorman1direxp + vendorman3direxp + vendorscriptexp + + siteprefixexp + sitelib_stem + vendorlib_stem + + installarchlib + installhtml1dir + installhtml3dir + installman1dir + installman3dir + installprefix + installprefixexp + installprivlib + installscript + installsitearch + installsitebin + installsitehtml1dir + installsitehtml3dir + installsitelib + installsiteman1dir + installsiteman3dir + installsitescript + installvendorarch + installvendorbin + installvendorhtml1dir + installvendorhtml3dir + installvendorlib + installvendorman1dir + installvendorman3dir + installvendorscript + )) { push @need_relocation, $what if fetch_string({}, $what) =~ m!^\.\.\./!; } } @@ -362,16 +410,12 @@ if (%need_relocation) { print CONFIG_HEAVY @non_v, "\n"; # copy config summary format from the myconfig.SH script -print CONFIG_HEAVY "our \$summary : unique = <<'!END!';\n"; +print CONFIG_HEAVY "our \$summary = <<'!END!';\n"; open(MYCONFIG,") && !/^Summary of/; do { print CONFIG_HEAVY $_ } until !defined($_ = ) || /^\s*$/; close(MYCONFIG); -# NB. as $summary is unique, we need to copy it in a lexical variable -# before expanding it, because may have been made readonly if a perl -# interpreter has been cloned. - print CONFIG_HEAVY "\n!END!\n", <<'EOT'; my $summary_expanded; @@ -399,7 +443,9 @@ if ($Common{byteorder}) { if (@need_relocation) { print CONFIG_HEAVY 'foreach my $what (qw(', join (' ', @need_relocation), ")) {\n", <<'EOT'; - s/^($what=)(['"])(.*?)\2/$1 . $2 . relocate_inc($3) . $2/me; + s<^($what=)(['"])(.*?)\2> + <$1 . $2 . relocate_inc($3) . $2 . "\n" . + 'raw_' . $1 . $2 . $3 . $2>me; } EOT # Currently it only makes sense to do the ... relocation on Unix, so there's @@ -418,7 +464,7 @@ s/(byteorder=)(['"]).*?\2/$1$2$Config::byteorder$2/m; my $config_sh_len = length $_; -our $Config_SH_expanded : unique = "\n$_" . << 'EOVIRTUAL'; +our $Config_SH_expanded = "\n$_" . << 'EOVIRTUAL'; EOT foreach my $prefix (qw(ccflags ldflags)) { @@ -617,13 +663,15 @@ if ($Common{byteorder}) { } my $fast_config = join '', map { " $_,\n" } sort values %Common; +# Sanity check needed to stop an infite loop if Config_heavy.pl fails to define +# &launcher for some reason (eg it got truncated) print CONFIG sprintf <<'ENDOFTIE', $fast_config; sub DESTROY { } sub AUTOLOAD { require 'Config_heavy.pl'; - goto \&launcher; + goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/; die "&Config::AUTOLOAD failed on $Config::AUTOLOAD"; } @@ -861,6 +909,7 @@ EOS $cross =~ s/\*\*\*replace-marker\*\*\*/$Opts{cross}/g; print CROSS $cross; close CROSS; + unshift(@INC,"xlib/$Opts{cross}"); } # Now do some simple tests on the Config.pm file we have created