[inseparable changes from patch from perl5.003_12 to perl5.003_13]
[p5sagit/p5-mst-13.2.git] / Makefile.SH
old mode 100644 (file)
new mode 100755 (executable)
index a31db2a..db3b776
@@ -1,3 +1,4 @@
+#! /bin/sh
 case $CONFIG in
 '')
        if test -f config.sh; then TOP=.;
@@ -22,27 +23,19 @@ case "$d_dosuid" in
 *) suidperl='';;
 esac
 
-shrpdir=$archlibexp/CORE
-
 case "$useshrplib" in
 true)
     pldlflags="$cccdlflags"
-    case "$osname" in 
-    os2)       shrpenv='' ;;
-       *)              shrpenv="env LD_RUN_PATH=$shrpdir";;
-       esac
+       # NeXT-4 specific stuff.  Can't we do this in the hint file?
        case "${osname}${osvers}" in
        next4*)
-               # Can't we do this in the hint file?
                ld='libtool -dynamic -undefined warning -framework System \
                -compatibility_version 1 -current_version $(PATCHLEVEL) \
                -prebind -seg1addr 0x27000000 -install_name $(SHRPDIR)/$@'
                ;;
        esac
     ;;
-*)
-       pldlflags=''
-       shrpenv=''
+*)     pldlflags=''
        ;;
 esac
 
@@ -217,18 +210,6 @@ utilities: miniperl lib/Config.pm FORCE
 FORCE:
        @sh -c true
 
-# The $& notation tells Sequent machines that it can do a parallel make,
-# and is harmless otherwise.
-# The miniperl -w -MExporter line is a basic cheap test to catch errors
-# before make goes on to run preplibrary and then MakeMaker on extensions.
-# This is very handy because later errors are often caused by miniperl
-# build problems but that's not obvious to the novice.
-# The Module used here must not depend on Config or any extensions.
-
-miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL)
-       $(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) $(LIBPERL) $(libs)
-       @./miniperl -w -Ilib -MExporter -e 0 || $(MAKE) minitest
-
 miniperlmain$(OBJ_EXT): miniperlmain.c
        $(CCCMD) $(PLDLFLAGS) $*.c
 
@@ -245,19 +226,10 @@ perlmain$(OBJ_EXT): perlmain.c
 ext.libs: $(static_ext)
        -@test -f ext.libs || touch ext.libs
 
-perl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
-       $(SHRPENV) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LIBPERL) `cat ext.libs` $(libs)
-
-pureperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
-       purify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LIBPERL) `cat ext.libs` $(libs)
-
-quantperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
-       quantify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LIBPERL) `cat ext.libs` $(libs)
-
-$(LIBPERL): $& perl$(OBJ_EXT) $(obj)
 !NO!SUBS!
+
 # How to build libperl.  This is still rather convoluted.
-# Load up custom Makefile.SH fragments?
+# Load up custom Makefile.SH fragment for shared loading and executables:
 if test -r $osname/Makefile.SHs ; then
        . $osname/Makefile.SHs
        $spitshell >>Makefile <<!GROK!THIS!
@@ -265,10 +237,13 @@ if test -r $osname/Makefile.SHs ; then
 Makefile: $osname/Makefile.SHs
 !GROK!THIS!
 else
+       $spitshell >>Makefile <<'!NO!SUBS!'
+$(LIBPERL): $& perl$(OBJ_EXT) $(obj)
+!NO!SUBS!
        case "$useshrplib" in
        true)
                $spitshell >>Makefile <<'!NO!SUBS!'
-       $(LD) $(LDDLFLAGS) -o $@ perl$(OBJ_EXT) $(obj)
+       $(LD) $(LDDLFLAGS) -o $@ perl$(OBJ_EXT) $(obj) $(libs)
 !NO!SUBS!
                ;;
        *)
@@ -279,9 +254,30 @@ else
 !NO!SUBS!
                ;;
        esac
-fi
-               
-$spitshell >>Makefile <<'!NO!SUBS!'
+       $spitshell >>Makefile <<'!NO!SUBS!'
+
+# How to build executables.
+
+# The $& notation tells Sequent machines that it can do a parallel make,
+# and is harmless otherwise.
+# The miniperl -w -MExporter line is a basic cheap test to catch errors
+# before make goes on to run preplibrary and then MakeMaker on extensions.
+# This is very handy because later errors are often caused by miniperl
+# build problems but that's not obvious to the novice.
+# The Module used here must not depend on Config or any extensions.
+
+miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL)
+       $(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) $(LIBPERL) $(libs)
+       @./miniperl -w -Ilib -MExporter -e 0 || $(MAKE) minitest
+
+perl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
+       $(SHRPENV) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LIBPERL) `cat ext.libs` $(libs)
+
+pureperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
+       purify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LIBPERL) `cat ext.libs` $(libs)
+
+quantperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
+       quantify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LIBPERL) `cat ext.libs` $(libs)
 
 # This version, if specified in Configure, does ONLY those scripts which need
 # set-id emulation.  Suidperl must be setuid root.  It contains the "taint"
@@ -289,7 +285,13 @@ $spitshell >>Makefile <<'!NO!SUBS!'
 # has been invoked correctly.
 
 suidperl: $& sperl$(OBJ_EXT) perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
-       $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o suidperl perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) `cat ext.libs` $(libs)
+       $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o suidperl perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LIBPERL) `cat ext.libs` $(libs)
+
+!NO!SUBS!
+
+fi
+
+$spitshell >>Makefile <<'!NO!SUBS!'
 
 sperl$(OBJ_EXT): perl.c perly.h patchlevel.h $(h)
        $(RMS) sperl.c
@@ -340,9 +342,10 @@ run_byacc: FORCE
        @ echo 'Expect' 130 shift/reduce and 1 reduce/reduce conflict
        $(BYACC) -d perly.y
        sh $(shellflags) ./perly.fixer y.tab.c perly.c
-       sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' perly.c >perly.tmp && mv perly.tmp perly.c
-       mv y.tab.h perly.h
-       echo 'extern YYSTYPE yylval;' >>perly.h
+       sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
+           -e 's/y\.tab/perly/g' perly.c >perly.tmp && mv perly.tmp perly.c
+       echo 'extern YYSTYPE yylval;' >>y.tab.h
+       cmp -s y.tab.h perly.h && rm -f y.tab.h || mv y.tab.h perly.h
        - perl vms/vms_yfix.pl perly.c perly.h vms/perly_c.vms vms/perly_h.vms
 
 # We don't want to regenerate perly.c and perly.h, but they might
@@ -398,7 +401,16 @@ clean:
        done
        rm -f perl suidperl miniperl $(LIBPERL)
 
-realclean: clean
+realclean: clean _cleaner
+       @echo "Note that make realclean does not delete config.sh"
+
+clobber:       clean _cleaner
+       rm -f config.sh cppstdin
+
+distclean:     clobber
+
+# Do not 'make _cleaner' directly.
+_cleaner:
        -cd os2; rm -f Makefile
        -cd pod; $(MAKE) realclean
        -cd utils; $(MAKE) realclean
@@ -414,12 +426,6 @@ realclean: clean
        rm -f lib/.exists
        rm -f h2ph.man pstruct
        rm -rf .config
-       @echo "Note that make realclean does not delete config.sh"
-
-clobber:       realclean
-       rm -f config.sh cppstdin
-
-distclean:     clobber
 
 # The following lint has practically everything turned on.  Unfortunately,
 # you have to wade through a lot of mumbo jumbo that can't be suppressed.
@@ -436,7 +442,7 @@ MAKEDEPEND = makedepend
 $(FIRSTMAKEFILE):      Makefile $(MAKEDEPEND)
        $(MAKE) depend MAKEDEPEND=
 
-config.h: config.sh
+config.h: config_h.SH config.sh
        $(SHELL) config_h.SH
 
 perl.exp: perl_exp.SH config.sh
@@ -457,7 +463,7 @@ check test: miniperl perl preplibrary $(dynamic_ext)
 
 # Can't depend on lib/Config.pm because that might be where miniperl
 # is crashing.
-minitest: miniperl 
+minitest: miniperl
        @echo "You may see some irrelevant test failures if you have been unable"
        @echo "to build lib/Config.pm."
        - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
@@ -475,15 +481,12 @@ shlist: $(sh)
 pllist: $(pl)
        echo $(pl) | tr ' ' '\012' >.pllist
 
-Makefile: Makefile.SH ./config.sh 
+Makefile: Makefile.SH ./config.sh
        $(SHELL) Makefile.SH
 
-distcheck : FORCE
+distcheck: FORCE
        perl '-MExtUtils::Manifest=&fullcheck' -e 'fullcheck()'
 
-manifest  : 
-       perl '-MExtUtils::Manifest=&mkmanifest' -e 'mkmanifest()'
-
 # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
 # If this runs make out of memory, delete /usr/include lines.
 !NO!SUBS!