1g/'\(-arch [^ ]\+ \)\+ */s//'/g 2g/=\(-arch [^ ]\+ \)\+ *'/s//='/g 3g/=\(-arch [^ ]\+ \)\+-/s//=-/g 4g/=\(-arch [^ ]\+ \)\+ \+/s//= /g 5/^$_ =/s//my $_str1 =/ 6/^extras=/a 7extrasarch='@EXTRASARCH@' 8extraslib='@EXTRASLIB@' 9. 10/^installarchlib=/s,'.*','@UPDATESARCH@', 11/^installbin/a 12installextrasarch='@EXTRASARCH@' 13installextraslib='@EXTRASLIB@' 14. 15/^installprivlib=/s,'.*','@UPDATESLIB@', 16/^installusrbinperl/i 17installupdatesarch='@UPDATESARCH@' 18installupdateslib='@UPDATESLIB@' 19. 20/^uniq=/a 21updatesarch='@UPDATESARCH@' 22updateslib='@UPDATESLIB@' 23. 24?^local \*_ =?m/^our $byteorder =/ 25i 26my $_archflags = exists($ENV{ARCHFLAGS}) ? $ENV{ARCHFLAGS} : '@ARCHFLAGS@'; 27my %_archkeys = ( 28 archflags => 1, 29 ccflags => 1, 30 ccflags_nolargefiles => 1, 31 lddlflags => 1, 32 ldflags => 1, 33 ldflags_nolargefiles => 1, 34); 35my $_64bit = ((~0>>1) > 2147483647); 36my $_64bitdefine = ($_64bit ? 'define' : 'undef'); 37my $_64bitsize = ($_64bit ? '8' : '4'); 38my $_64bitundef = ($_64bit ? 'undef' : 'define'); 39 40my %_change = ( 41 byteorder => $Config::byteorder, 42 d_nv_preserves_uv => $_64bitundef, 43 gidformat => ($_64bit ? '"u"' : '"lu"'), 44 i32type => ($_64bit ? 'int' : 'long'), 45 i64type => ($_64bit ? 'long' : 'long long'), 46 ivsize => $_64bitsize, 47 longsize => $_64bitsize, 48 need_va_copy => $_64bitdefine, 49 nv_preserves_uv_bits => ($_64bit ? '53' : '32'), 50 ptrsize => $_64bitsize, 51 quadkind => ($_64bit ? '2' : '3'), 52 quadtype => ($_64bit ? 'long' : 'long long'), 53 sizesize => $_64bitsize, 54 u32type => ($_64bit ? 'unsigned int' : 'unsigned long'), 55 u64type => ($_64bit ? 'unsigned long' : 'unsigned long long'), 56 uidformat => ($_64bit ? '"u"' : '"lu"'), 57 uquadtype => ($_64bit ? 'unsigned long' : 'unsigned long long'), 58 use64bitall => $_64bitdefine, 59 use64bitint => $_64bitdefine, 60 uvsize => $_64bitsize, 61); 62if(exists($ENV{RC_XBS}) && $ENV{RC_XBS} eq 'YES') { 63 $_change{installarchlib} = '@ARCHLIB@'; 64 $_change{installprivlib} = '@PRIVLIB@'; 65} 66 67sub _fix { 68 my $in = shift; 69 my($k, $v); 70 local $_; 71 ($k, $_) = split('=', $in, 2); 72 return $in unless defined($k); 73 $_archkeys{$k} && do { s/(['"])/$1$_archflags /; return join('=', $k, $_); }; 74 defined($v = $_change{$k}) && do { s/(['"]).*?\1/$1$v$1/; return join('=', $k, $_); }; 75 $in; 76} 77 78. 79/^s\/(byteorder=/c 80$_ = $_part1 . "archflags='$_archflags'\n"; 81. 82/^our $Config_SH_expanded =/a 83. 84.t/^EOVIRTUAL/ 85s/<<.*/$_part2;/ 86?^our $Config_SH_expanded =?a 87. 88.,/^EOVIRTUAL/m?^local \*_?-1 89?^our $Config_SH_expanded = .*<<?s//my $_part2 = join("\\n", map(_fix($_), split("\\n", <</ 90s/;$/, -1)));/ 91i 92my $_part1 = join("\n", map(_fix($_), split("\n", $_str1, -1))); 93. 94w! 95