develooper Front page | perl.perl5.porters | Postings from October 2003

Fwd: [ilya: MakeMaker makefiles not portable enough for perlxstut]

From:
Michael G Schwern
Date:
October 30, 2003 21:32
Subject:
Fwd: [ilya: MakeMaker makefiles not portable enough for perlxstut]
Message ID:
20031031053220.GD704@localhost.comcast.net
I don't understand XS well enough to understand the issue here or what
this patch is doing.  Could someone else comment on it?


----- Forwarded message from Ilya Zakharevich <ilya@Math.Berkeley.EDU> -----

From: Ilya Zakharevich <ilya@Math.Berkeley.EDU>
Date: Thu, 30 Oct 2003 21:24:49 -0800
To: Michael G Schwern <schwern@pobox.com>
Subject: Re: [PATCH 5.8.2 @21574] MakeMaker goof

On Thu, Oct 30, 2003 at 04:44:43PM -0800, Michael G Schwern wrote:
> On Thu, Oct 30, 2003 at 04:31:45PM -0800, Ilya Zakharevich wrote:
> > On Thu, Oct 30, 2003 at 03:58:44PM -0800, Michael G Schwern wrote:
> > > I'm holding up MakeMaker 6.18 on this issue, so if you could let me know 
> > > how that patch goes soon that would be great.  Thanks.

> > It builds.  I'm still running the tests.

> Thanks.

Success.  However, I do not see any trace of

  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2003-04/msg00469.html

being addressed.  Basically, 3 macros should be defined.  It is enough
to define them on Unix so far - the other platforms will follow.

Or one can copy the code from the above posting which makes it work on
Win32 into MM_Unix...

Yours,
Ilya

--- ./lib/ExtUtils/MM_Unix.pm.orig	Tue Oct 28 20:16:48 2003
+++ ./lib/ExtUtils/MM_Unix.pm	Thu Oct 30 21:11:48 2003
@@ -431,11 +431,12 @@ Prints out macros for lots of constants.
 
 sub constants {
     my($self) = @_;
-    my @m = ();
+    my @m = ("EMPTY_STRING =\n");
 
     for my $macro (qw(
 
               AR_STATIC_ARGS DIRFILESEP
+	      AR_PRE_TARGET AR_OBJECT CC_PRE_TARGET
               NAME NAME_SYM 
               VERSION    VERSION_MACRO    VERSION_SYM DEFINE_VERSION
               XS_VERSION XS_VERSION_MACRO             XS_DEFINE_VERSION
@@ -1667,7 +1668,8 @@ sub init_DIRFILESEP {
 
 =item init_main
 
-Initializes AR, AR_STATIC_ARGS, BASEEXT, CONFIG, DISTNAME, DLBASE,
+Initializes AR, AR_PRE_TARGET, AR_OBJECT, AR_STATIC_ARGS, BASEEXT,
+CC_PRE_TARGET, CONFIG, DISTNAME, DLBASE,
 EXE_EXT, FULLEXT, FULLPERL, FULLPERLRUN, FULLPERLRUNINST, INST_*,
 INSTALL*, INSTALLDIRS, LIB_EXT, LIBPERL_A, MAP_TARGET, NAME,
 OBJ_EXT, PARENT_NAME, PERL, PERL_ARCHLIB, PERL_INC, PERL_LIB,
@@ -1868,6 +1870,9 @@ usually solves this kind of problem.
 # But I leave it as a placeholder
 
     $self->{AR_STATIC_ARGS} ||= "cr";
+    $self->{AR_PRE_TARGET}  ||= 'cr $(EMPTY_STRING)';
+    $self->{AR_OBJECT}      ||= '$(OBJECT)';
+    $self->{CC_PRE_TARGET}  ||= '-o $(EMPTY_STRING)';
 
     # These should never be needed
     $self->{OBJ_EXT} ||= '.o';
@@ -3707,7 +3712,7 @@ MAKE_FRAG
         $ar = 'AR';
     }
     push @m, sprintf <<'MAKE_FRAG', $ar;
-	$(%s) $(AR_STATIC_ARGS) $@ $(OBJECT) && $(RANLIB) $@
+	$(%s) $(EXTRA_AR_OPT) $(AR_PRE_TARGET)$@ $(AR_OBJECT) && $(RANLIB) $@
 	$(CHMOD) $(PERM_RWX) $@
 	$(NOECHO) $(ECHO) "$(EXTRALIBS)" > $(INST_ARCHAUTODIR)/extralibs.ld
 MAKE_FRAG

----- End forwarded message -----

-- 
Michael G Schwern        schwern@pobox.com  http://www.pobox.com/~schwern/
Now we come to that part of the email you've all been waiting for--the end.



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About