Change 13432 by jhi@alpha on 2001/12/02 22:35:04

        Be more explicit on the List::Util build trick,
        should also stop unneeded rebuilds on static builds.

Affected files ...

.... //depot/perl/ext/List/Util/Makefile.PL#5 edit

Differences ...

==== //depot/perl/ext/List/Util/Makefile.PL#5 (text) ====
Index: perl/ext/List/Util/Makefile.PL
--- perl/ext/List/Util/Makefile.PL.~1~  Sun Dec  2 15:45:06 2001
+++ perl/ext/List/Util/Makefile.PL      Sun Dec  2 15:45:06 2001
@@ -8,6 +8,15 @@
 
 package MY;
 
+# We go through the ListUtil.c trickery to foil platforms
+# that have the feature combination of
+# (1) static builds
+# (2) allowing only one object by the same name in the static library
+# (3) the object name matching being case-blind
+# This means that we can't have the top-level util.o
+# and the extension-level Util.o in the same build.
+# One such platform is the POSIX-BC BS2000 EBCDIC mainframe platform.
+
 BEGIN {
     use Config;
     unless (defined $Config{usedl}) {
@@ -16,41 +25,19 @@
     my($self) = shift;
     return '' unless $self->needs_linking();
 '
-.xs.c:
-       $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) $(XSPROTOARG) $(XSUBPPARGS) 
$*.xs > List$*.xsc && $(MV) List$*.xsc List$*.c
+ListUtil.c:    Util.xs
+       $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) $(XSPROTOARG) $(XSUBPPARGS) 
+Util.xs > ListUtil.xsc && $(MV) ListUtil.xsc ListUtil.c
 ';
 }
 
-sub c_o {
+sub xs_o {
     my($self) = shift;
     return '' unless $self->needs_linking();
 '
-.c$(OBJ_EXT):
-       $(CCCMD) $(CCCDLFLAGS) -I$(PERL_INC) $(DEFINE) List$*.c
-       $(MV) List$*$(OBJ_EXT) $*$(OBJ_EXT)
-';
-}
 
-sub xs_o {     # many makes are too dumb to use xs_c then c_o
-    my($self) = shift;
-    return '' unless $self->needs_linking();
-'
-.xs$(OBJ_EXT):
-       $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(XSUBPP) $(XSPROTOARG) $(XSUBPPARGS) 
$*.xs > List$*.xsc && $(MV) List$*.xsc List$*.c
-       $(CCCMD) $(CCCDLFLAGS) -I$(PERL_INC) $(DEFINE) List$*.c
-       $(MV) List$*$(OBJ_EXT) $*$(OBJ_EXT)
-';
-}
-
-sub top_targets {      # many makes are too dumb to use xs_c then c_o
-    my($self) = shift;
-    my $out = $self->SUPER::top_targets(@_);
-    $out .
-'
-
-ListUtil.c: Util.c
-       @$(NOOP)
-
+Util$(OBJ_EXT):        ListUtil.c
+       $(CCCMD) $(CCCDLFLAGS) -I$(PERL_INC) $(DEFINE) ListUtil.c
+       $(MV) ListUtil$(OBJ_EXT) Util$(OBJ_EXT)
 ';
 }
 
End of Patch.

Reply via email to