From: Ilya Zakharevich <ilya@math.ohio-state.edu>
Date: Fri, 21 Mar 1997 04:13:31 +0000 (-0500)
Subject: Problems with SKIP in makemaker
X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=970322a2e8024294ada6e8d1a027cb98f1f48ee3;p=p5sagit%2Fp5-mst-13.2.git

Problems with SKIP in makemaker

The example in perlxstut (which I created with a lot of pain) works by
coincidence only:

It has

	WriteMakefile(
	    NAME      => 'Mytest2::mylib',
	    SKIP      => [qw(all static static_lib dynamic dynamic_lib)],
	    clean     => {'FILES' => 'libmylib$(LIB_EXT)'},
	);

	sub MY::top_targets {
		'
	all :: static

	static ::       libmylib$(LIB_EXT)

	libmylib$(LIB_EXT): $(O_FILES)
		$(AR) cr libmylib$(LIB_EXT) $(O_FILES)
		$(RANLIB) libmylib$(LIB_EXT)

	';
	}

and work only because $self->MM::top_targets is not called. The reason is
that 'all' chunk is written anyway not depending on the value of SKIPHASH.

In my eText package I do $self->MM::top_targets inside
MY::top_targets, and this bombs.

Patch follows (only for 'all', I did not check any other target):

(The alternative is to patch perlxstut, but this may break some other
programs, not only mine...)

Enjoy,

p5p-msgid: 199703210413.XAA21601@monk.mps.ohio-state.edu
---

diff --git a/lib/ExtUtils/MM_Unix.pm b/lib/ExtUtils/MM_Unix.pm
index 465a075..0b54a7e 100644
--- a/lib/ExtUtils/MM_Unix.pm
+++ b/lib/ExtUtils/MM_Unix.pm
@@ -3110,10 +3110,15 @@ sub top_targets {
     my(@m);
     push @m, '
 #all ::	config $(INST_PM) subdirs linkext manifypods
+';
 
+    push @m, '
 all :: pure_all manifypods
 	'.$self->{NOECHO}.'$(NOOP)
-
+' 
+	  unless $self->{SKIPHASH}{'all'};
+    
+    push @m, '
 pure_all :: config pm_to_blib subdirs linkext
 	'.$self->{NOECHO}.'$(NOOP)