summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.SH2
-rw-r--r--make_ext.pl14
2 files changed, 16 insertions, 0 deletions
diff --git a/Makefile.SH b/Makefile.SH
index a343d611eb..83f1ad1e5f 100644
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -190,6 +190,8 @@ for f in $dynamic_ext; do
: Parallel makes reveal that we have some interdependencies
case $f in
+ Encode) extra_dep="$extra_dep
+$this_target: lib/auto/Cwd/Cwd.$dlext" ;;
Math/BigInt/FastCalc|Devel/NYTProf) extra_dep="$extra_dep
$this_target: lib/auto/List/Util/Util.$dlext" ;;
Unicode/Normalize) extra_dep="$extra_dep
diff --git a/make_ext.pl b/make_ext.pl
index b0be209a70..fa12621240 100644
--- a/make_ext.pl
+++ b/make_ext.pl
@@ -200,6 +200,20 @@ elsif ($is_VMS) {
push @extspec, (split ' ', $Config{nonxs_ext}) if $nonxs;
}
+{
+ # Cwd needs to be built before Encode recurses into subdirectories.
+ # This seems to be the simplest way to ensure this ordering:
+ my (@first, @other);
+ foreach (@extspec) {
+ if ($_ eq 'Cwd') {
+ push @first, $_;
+ } else {
+ push @other, $_;
+ }
+ }
+ @extspec = (@first, @other);
+}
+
foreach my $spec (@extspec) {
my $mname = $spec;
$mname =~ s!/!::!g;