More explicit Solaris instructions
[p5sagit/p5-mst-13.2.git] / Makefile.SH
index db3b776..ec99d02 100755 (executable)
@@ -23,18 +23,30 @@ case "$d_dosuid" in
 *) suidperl='';;
 esac
 
+linklibperl='$(LIBPERL)'
+shrpldflags='$(LDDLFLAGS)'
 case "$useshrplib" in
 true)
-    pldlflags="$cccdlflags"
+       pldlflags="$cccdlflags"
        # NeXT-4 specific stuff.  Can't we do this in the hint file?
        case "${osname}${osvers}" in
        next4*)
-               ld='libtool -dynamic -undefined warning -framework System \
-               -compatibility_version 1 -current_version $(PATCHLEVEL) \
-               -prebind -seg1addr 0x27000000 -install_name $(SHRPDIR)/$@'
+               ld=libtool
+               lddlflags="-dynamic -undefined warning -framework System \
+               -compatibility_version 1 -current_version $patchlevel \
+               -prebind -seg1addr 0x27000000 -install_name \$(shrpdir)/\$@"
+               ;;
+       sunos*|freebsd[23]*|netbsd*)
+               linklibperl="-lperl"
+               ;;
+       aix*)
+               shrpldflags="-H512 -T512 -bhalt:4 -bM:SRE -bE:perl.exp"
+               shrpldflags="$shrpldflags -b noentry $ldflags $libs $cryptlib"
+               aixinstdir=`pwd | sed 's/\/UU$//'`
+               linklibperl="-L $archlibexp/CORE -L $aixinstdir -lperl"
                ;;
        esac
-    ;;
+       ;;
 *)     pldlflags=''
        ;;
 esac
@@ -94,10 +106,12 @@ man3ext = $man3ext
 # The following are used to build and install shared libraries for
 # dynamic loading.
 LDDLFLAGS = $lddlflags
+SHRPLDFLAGS = $shrpldflags
 CCDLFLAGS = $ccdlflags
 DLSUFFIX = .$dlext
 PLDLFLAGS = $pldlflags
 LIBPERL = $libperl
+LLIBPERL= $linklibperl
 SHRPENV = $shrpenv
 
 dynamic_ext = $dynamic_list
@@ -243,8 +257,16 @@ $(LIBPERL): $& perl$(OBJ_EXT) $(obj)
        case "$useshrplib" in
        true)
                $spitshell >>Makefile <<'!NO!SUBS!'
-       $(LD) $(LDDLFLAGS) -o $@ perl$(OBJ_EXT) $(obj) $(libs)
+       $(LD) $(SHRPLDFLAGS) -o $@ perl$(OBJ_EXT) $(obj)
+!NO!SUBS!
+               case "$osname" in
+               aix)
+                       $spitshell >>Makefile <<'!NO!SUBS!'
+       mv $@ libperl$(OBJ_EXT)
+       $(AR) qv $(LIBPERL) libperl$(OBJ_EXT)
 !NO!SUBS!
+                       ;;
+               esac
                ;;
        *)
                $spitshell >>Makefile <<'!NO!SUBS!'
@@ -267,17 +289,20 @@ $(LIBPERL): $& perl$(OBJ_EXT) $(obj)
 # 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)
+       $(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) $(LLIBPERL) $(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)
+       $(SHRPENV) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `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)
+       purify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+
+purecovperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
+       purecov $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o purecovperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `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)
+       quantify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `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"
@@ -285,7 +310,7 @@ quantperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs
 # 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) $(DYNALOADER) $(static_ext) $(LIBPERL) `cat ext.libs` $(libs)
+       $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o suidperl perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
 
 !NO!SUBS!
 
@@ -339,7 +364,7 @@ install.man:        all installman
 # normally shouldn't remake perly.[ch].
 
 run_byacc:     FORCE
-       @ echo 'Expect' 130 shift/reduce and 1 reduce/reduce conflict
+       @ echo 'Expect' 113 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' \
@@ -389,25 +414,31 @@ d_dummy $(dynamic_ext):   miniperl preplibrary $(DYNALOADER) FORCE
 s_dummy $(static_ext): miniperl preplibrary $(DYNALOADER) FORCE
        @sh ext/util/make_ext static $@ LIBPERL_A=$(LIBPERL)
 
-clean:
+clean:         _tidy _mopup
+
+realclean:     _cleaner _mopup
+       @echo "Note that make realclean does not delete config.sh"
+
+clobber:       _cleaner _mopup
+       rm -f config.sh cppstdin
+
+distclean:     clobber
+
+# Do not 'make _mopup' directly.
+_mopup:
        rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c
        rm -f perl.exp ext.libs
        -rm -f perl.export perl.dll perl.libexp perl.map perl.def
+       rm -f perl suidperl miniperl $(LIBPERL)
+
+# Do not 'make _tidy' directly.
+_tidy:
        -cd pod; $(MAKE) clean
        -cd utils; $(MAKE) clean
        -cd x2p; $(MAKE) clean
        -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) ; do \
        sh ext/util/make_ext clean $$x ; \
        done
-       rm -f perl suidperl miniperl $(LIBPERL)
-
-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:
@@ -467,7 +498,7 @@ 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)) \
-               && ./perl TEST base/*.t comp/*.t cmd/*.t io/*.t op/*.t </dev/tty
+               && ./perl TEST base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t </dev/tty
 
 clist: $(c)
        echo $(c) | tr ' ' '\012' >.clist