Mailing List Archive

MakeMaker fixes against perl5.002beta1
I post this to perl5-porters instead of the makemaker list, because
so many bugs were reported to perl5-porters directly recently.

I have uploaded to CPAN a patch against perl5.002beta1 that brings you
MakeMaker-5.09 and an ExtUtils::Miniperl that contains pods. Get it from

CPAN/authors/id/ANDK/patch-perl5.002beta1-MM5.09.gz

This MakeMaker is known to work on AIX and fixes the three bugs
reported yesterday:

jarkko: 'INC => -I/the/gdbm/directory' was not recognized

paul: MakeMaker tried to create /.exists as dummy for the
INST_MAN3DIR although no manpages were to install

alan: check_hints($self) patch

The other bugs reported yesterday were already fixed in previous
MakeMakers.

Here are the relevant sections of the Changes file.

v5.09 November 22, 1995 by Andreas Koenig

Comparison of cflags' output to MakeMaker's output is not
possible anymore, because we introduced $(INC) as part of
CCCMD. I think it can be dropped safely. We have to take
$new regardless of what $old says.

INSTALLMAN1DIR and INSTALLMAN3DIR being empty still caused
the .exist files to be written. Fixed.

Differentiate between MAN1PODS and MAN3PODS. Pods of
EXE_FILES going to 1 and of PM files and *.pod files going
to 3.

check_hints was called without argument, so $self was not a
known hash ref in the hintsfile.

The POD2MAN wrapper now checks for the timestamps of both
Makefile and pod source (did only for the Makefile).

Added pods to ExtUtils::Liblist.

Ilya's one-line fix to Liblist for OS2 applied.

v5.08 November 21, 1995 by Andreas Koenig

Made the CONFIG variables overridable from Makefile.PL
(following Dean's request to override CC and LD). Added ar,
lib_ext, and obj_ext to the routine that goes through
%Config. Improved documentation for the CONFIG attribute.

Made the three init_ routines *un*overridable from the
Makefile.PL. This is one step towards minimizing the list of
overridable methods before the list is documented.

Completed the Changes file from my archive of old
MakeMakers.

Changed the xsubpp threshold for '-noprototype' to 1.923.

v5.07 November 20, 1995 by Dean Roehrich and Andreas Koenig

Fix to PERLMAINCC, which did not do anything. Should now
work as advertised.

Replaced "depreciated" by "deprecated";

Changed $SIG{__WARN__} so that it writes more warnings again
(only "Use of unitialized variable", "used only once", and
"Subroutine redefined" warnings are suppressed).

Lookup for .c and .h files now case-insensitive.

Added @ARGV to the MAKEAPERL call.

Fixed documentation wrt to INSTALLMAN1DIR.

Changed documentation for PREREQ to make clear, that it is
not available yet.

Added XSOPT attribute for additional arguments to xsubpp.

XSPROTOARG attribute allows independent setting of
-prototype and -noprototype to the xsubpp call. xsubpp
version is checked with a routine provided by Paul Marquess.

ExtUtils::Manifest::mkmanifest now adds MANIFEST itself to
the MANIFEST file. (Suggestion by Steffen Beyer)

Changed the warning when a library is not found from "non-
fatal" to "will try anyway" to give it a little more weight.

Gave he DL_* variables for AIX another fix (untested, as
always, because I have no access to AIX)



patch'n'joy
andreas
Re: MakeMaker fixes against perl5.002beta1 [ In reply to ]
Andreas Koenig writes:
>
> Here are the relevant sections of the Changes file.
>

Another thing I reported to you some time ago is the handling of
$Config{libs}. In some MakeMaker of eons ago the libraries from this
list were added to the compile line for DLLs. Now the only place
MakeMaker addresses this variable is make.a.perl.

The only place I needed this was Socket, which needs -lsocket on
OS/2. I do not know if this is a reason to worry, but these libraries
were marked as needed by Perl already...

Ilya
Re: MakeMaker fixes against perl5.002beta1 [ In reply to ]
>>>>> "ilya" == Ilya Zakharevich <ilya@math.ohio-state.edu> writes:

ilya> Andreas Koenig writes:
>>
>> Here are the relevant sections of the Changes file.
>>

ilya> Another thing I reported to you some time ago is the handling of
ilya> $Config{libs}. In some MakeMaker of eons ago the libraries from this

;-) Well, the messages we exchanged about it are dated Nov 2/3 ;-)

ilya> list were added to the compile line for DLLs. Now the only place
ilya> MakeMaker addresses this variable is make.a.perl.

ilya> The only place I needed this was Socket, which needs -lsocket on
ilya> OS/2. I do not know if this is a reason to worry, but these libraries
ilya> were marked as needed by Perl already...

My famous last words on this topic were:

me> I have heard Nick's warning for Sun OS, that linking of an already
me> linked library is forbidden. Forget what I said, it's apparently OS
me> specific, and should be addressed in Liblist for groups of operating
me> systems.

My modest hope was, that you would bite the pill to supply a patch to
Liblist that does the right thing on OS2. (Hint, hint). I thought
somewhere along these lines:

my $in_perl = ($libs =~ /\B-l${thislib}\b/s);

# Do not add it into the list if it is already linked in
# with the main perl executable.
# We have to special-case the NeXT, because all the math
# is also in libsys_s
unless ($in_perl ||
($Config{'osname'} eq 'next' && $thislib eq 'm') ){
push(@extralibs, "-l$thislib");
}

ilya> Ilya

andreas
Re: MakeMaker fixes against perl5.002beta1 [ In reply to ]
>>>>> "paul" == Paul Marquess <pmarquess@bfsec.bt.co.uk> writes:

>> XSPROTOARG attribute allows independent setting of
>> -prototype and -noprototype to the xsubpp call. xsubpp
>> version is checked with a routine provided by Paul Marquess.

paul> Could you change prototype/noprototype to prototypes/noprototypes
paul> please. That will make it consistant with the global PROTOTYPES:
paul> option.

No problem. Will be in 5.10.

paul> Paul

andreas
Re: MakeMaker fixes against perl5.002beta1 [ In reply to ]
From: Andreas Koenig <k@anna.mind.de>
...
>
>
> Changed the xsubpp threshold for '-noprototype' to 1.923.

Good. I will try a release a 1.924 patch with the prototype stuff in it
shortly.

...
>
> Added XSOPT attribute for additional arguments to xsubpp.
>
> XSPROTOARG attribute allows independent setting of
> -prototype and -noprototype to the xsubpp call. xsubpp
> version is checked with a routine provided by Paul Marquess.

Could you change prototype/noprototype to prototypes/noprototypes
please. That will make it consistant with the global PROTOTYPES:
option.

> patch'n'joy
> andreas
>
>

Paul
Re: MakeMaker fixes against perl5.002beta1 [ In reply to ]
Andreas Koenig writes:
>
> My modest hope was, that you would bite the pill to supply a patch to
> Liblist that does the right thing on OS2. (Hint, hint). I thought
> somewhere along these lines:
>

OK, I wil try to understand what Liblist is about.

Now I tried building out-of-tree. It does not work: MakeMaker is to
smart now and checks for existence of FULLPERL and pod2man. However,
these files have extensions (.exe and .cmd), so in the first case it
just stops when out-of-build-tree (do not ask why it works in the build
tree), in the second it gives a warning message and continues.

Ilya
Re: MakeMaker fixes against perl5.002beta1 [ In reply to ]
ilya> OK, I wil try to understand what Liblist is about.

Thanks!

ilya> Now I tried building out-of-tree. It does not work: MakeMaker is to
ilya> smart now and checks for existence of FULLPERL and pod2man. However,
ilya> these files have extensions (.exe and .cmd), so in the first case it

package ExtUtils::MM_OS2;

sub maybe_command {
my($self,$file) = @_;
return 1 if -x $file && ! -d _;
return 1 if -x "$file.exe" && ! -d _;
return;
}

I need your help, Ilya. OS2 is out of my reach. Please complete the
maybe_command routine to fit your needs.

ilya> just stops when out-of-build-tree (do not ask why it works in the build
ilya> tree), in the second it gives a warning message and continues.

Debugger?

ilya> Ilya


Until monday I will be very short of time,
andreas