in reply to Re: perl-5.24.3 build woes
in thread perl-5.24.3 build woes

Yikes! Wisdom and Common Sense.

You're absolutely right. The first time I ran make I ran out of room. I then ran make clean and just as I was about to move the perl-5.24.3 directory to another filesystem with much more room - believe it or not - my power went out.

The next day I completed the relocation. I reran Configure and then make and that's when I started getting the No Makefile errors. My (apparently naive) assumption was that running make clean brought me back to the point just before I ran Configure the first time. Anyway, I've since downloaded the tarball again and this time make fails much earlier, which surprises me. I should mention that while the Makefiles were 0 bytes other files in the same directory were the same size as the files I subsequently downloaded from CPAN as modules.

Writing Makefile for Encode::JP Generating a Unix-style Makefile Writing Makefile for Encode::KR Generating a Unix-style Makefile Writing Makefile for Encode::Symbol Generating a Unix-style Makefile Writing Makefile for Encode::TW Generating a Unix-style Makefile Writing Makefile for Encode::Unicode Generating a Unix-style Makefile Writing Makefile for Encode make[1]: Entering directory '/backups/build/perl-5.24.3/cpan/Encode' make: Not a recognized flag: w usage: make [-einqrst] [-k|-S] [-d[A|adg[1|2]mstv]] [-D variable] [-f +makefile] [-j [jobs]] [variable=value ...] [target ...] make[1]: *** [Makefile:643: subdirs] Error 2 make[1]: Leaving directory '/backups/build/perl-5.24.3/cpan/Encode' make[1]: Entering directory '/backups/build/perl-5.24.3/cpan/Encode' make: Not a recognized flag: w usage: make [-einqrst] [-k|-S] [-d[A|adg[1|2]mstv]] [-D variable] [-f +makefile] [-j [jobs]] [variable=value ...] [target ...] make[1]: *** [Makefile:643: subdirs] Error 2 make[1]: Leaving directory '/backups/build/perl-5.24.3/cpan/Encode' Unsuccessful make(cpan/Encode): code=512 at make_ext.pl line 569. make: *** [makefile:620: lib/auto/Encode/Encode.so] Error 25

line 643 of ./cpan/Encode/Makefile looks like this:

+636 # --- MakeMaker subdirs section: +637 +638 # The default clean, realclean and test targets in this Makefil +e +639 # have automatically been given entries for each subdir. +640 +641 +642 subdirs :: +643 $(NOECHO) cd Byte && $(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFIL +E) all $(PASTHRU) +644 +645 subdirs :: +646 $(NOECHO) cd CN && $(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) + all $(PASTHRU) +647 +648 subdirs :: +649 $(NOECHO) cd EBCDIC && $(MAKE) $(USEMAKEFILE) $(FIRST_MAKEF +ILE) all $(PASTHRU) +650 +651 subdirs :: +652 $(NOECHO) cd JP && $(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) + all $(PASTHRU) +653 +654 subdirs :: +655 $(NOECHO) cd KR && $(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) + all $(PASTHRU)

If this helps with the variable values:

+8 # +9 # MakeMaker ARGV: (q[INSTALLDIRS=perl], q[INSTALLMAN1DIR=non +e], q[INSTALLMAN3DIR=none], q[PERL_CORE=1], q[LIBPERL_A=libper l.a], q[LINKTYPE=dynamic]) .... +83 PREFIX = $(PERLPREFIX) +84 PERLPREFIX = /opt/freeware ....... +127 FIRST_MAKEFILE = Makefile ..... +156 MAKE = make ........... +303 # --- MakeMaker tools_other section: +304 SHELL = /bin/sh +305 CHMOD = chmod +306 CP = cp +307 MV = mv +308 NOOP = $(TRUE) +309 NOECHO = @ ..... +330 USEMAKEFILE = -f .... +365 # --- MakeMaker cflags section: +366 +367 CCFLAGS = -D_THREAD_SAFE -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POS +IX_SOURCE -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -fwrapv -fno -strict-aliasing -pipe -maix64 -DUSE_64_BIT_ALL -D_FORTIFY_SOURCE=2 -W +all -Werror=declaration-after-statement -Wextra -Wc++-compat - Wwrite-strings +368 OPTIMIZE = -O +369 PERLTYPE = +370 MPOLLUTE = +371 ..... +389 # --- MakeMaker pasthru section: +390 +391 PASTHRU = LIBPERL_A="$(LIBPERL_A)"\ +392 LINKTYPE="$(LINKTYPE)"\ +393 OPTIMIZE="$(OPTIMIZE)"\ +394 PREFIX="$(PREFIX)"\ +395 PASTHRU_INC="$(PASTHRU_INC)"

To the extent I understand what is failing, it looks like make is being passed a flag 'w' that it doesn't understand, but I don't see where that is happening or where the 'w' flag is coming from. I apologize for all the detail, but I simply don't know enough to distinguish the crap from the gold.

Replies are listed 'Best First'.
Re^3: perl-5.24.3 build woes
by Anonymous Monk on Apr 07, 2018 at 08:44 UTC

    Missing "Makefile.PL" -- by design! -- file is created by "make" process[0] (I checked only ext/Devel-Peek on my end). Reason for 0-sized "Makefile.PL" most likely is that file system did not have enough physical disk space to populate it but just enough to create an entry (inode) in the directory.

    You would have to wait for someone else about bad "w" flag being passed to "make". (My speculation(!) is that not the right "make" is being detected or wrong "make" is being called.)

      In other words, the "No Makefile" problem was a 'short between the ears'. Thanks for the explanation.

      There's only one make on the system (GNU v.4.2.1). It's from an RPM built by Bull as part of their freeware offerings and was probably built using IBM's XLC. Could that matter? I know some perl modules must be built with gcc and require a perl and some dependencies also be built with gcc (IO::Socket::SSL), which is why I need to build perl myself. I didn't think it would matter with make, though.

      make links to make_32. make_64 exists but won't load because libgmp and libgcc can't be loaded - I haven't explored why yet. Is it possible I need to be using a 64 bit version of make? Not necessarily as a solution to the bad "w" flag - that doesn't seem relevant - just as a rule when building 64 bit applications?

        I build with GNU make 3.81 on AIX 5.3, so 4.x should suffice

        How 'make' is compiled does not influence how perl is compiled. 64-bit make should work fine:

        make: 64-bit XCOFF executable or object module

        If you want to build everything in 64-bitall, you should set your environment accordingly:

        sh $ export OBJECT_MODE=64 csh% setenv OBJECT_MODE 64

        Enjoy, Have FUN! H.Merijn