home *** CD-ROM | disk | FTP | other *** search
Makefile | 1995-11-29 | 12.5 KB | 375 lines | [TEXT/MPS ] |
- #######################################################################
- # Project : Perl 5
- # File : Makefile - Build everything except examples
- # Author : Matthias Neeracher
- # Language : MPW Shell/Make
- #
- # $Log: Makefile,v $
-
- #
- # Tool options
- #
-
- PerlSrc = :
- PerlObj = :Obj:
- bin = "{MPW}LocalTools"
- privlib = "{MPW}Libraries:PerlLibs"
- helpdir = "{Boot}411"
- YACC = yacc
-
- COpt = -d macintosh -d MULTIPLICITY -d DEBUGGING -w off -sym on
- C68K = MWC68K {COpt} -mc68020 -model far
- CPPC = MWCPPC {COpt} -traceback
- ROptions = -i :
- Lib68K = MWLink68K -xm library -sym on
- LibPPC = MWLinkPPC -xm library -sym on
- LOpt = -sym on -w -xm mpwtool
- Link68K = MWLink68K {LOpt} -model far
- LinkPPC = MWLinkPPC {LOpt}
-
- LibFiles68K = "{MW68KLibraries}MacOS.Lib" ∂
- {PerlLib68K} ∂
- "{MW68KLibraries}GUSIDispatch.Lib.68K" ∂
- "{MW68KLibraries}GUSIMPW.Lib.68K" ∂
- "{MW68KLibraries}MPW_Runtime.o.lib" ∂
- "{MW68KLibraries}new MPW ANSI (4i/8d) C.68K.Lib" ∂
- "{MW68KLibraries}MathLib68K (4i/8d).Lib" ∂
- "{MW68KLibraries}GUSI.Lib.68K" ∂
- "{MW68KLibraries}CPlusPlus.lib" ∂
- "{MW68KLibraries}ToolLibs.o" ∂
- "{MW68KLibraries}PLStringFuncs.glue.lib"
- MoLibs68K = "{MW68KLibraries}db.Lib.68K" ∂
- "{MW68KLibraries}"XL.Lib.68K ∂
- "{MW68KLibraries}OSACompLib.o"
-
- LibFilesPPC = "{MWPPCLibraries}GUSIMPW.Lib.PPC" ∂
- "{MWPPCLibraries}GUSI.Lib.PPC" ∂
- {PerlLibPPC} ∂
- "{MWPPCLibraries}MWStdCRuntime.Lib" ∂
- "{MWPPCLibraries}InterfaceLib" ∂
- "{MWPPCLibraries}ANSI (NL) C++.PPC.Lib" ∂
- "{MWPPCLibraries}ANSI (NL) C.PPC.Lib" ∂
- "{MWPPCLibraries}StdCLib" ∂
- "{MWPPCLibraries}MathLib" ∂
- "{MWPPCLibraries}PPCToolLibs.o"
- MoLibsPPC = "{MWPPCLibraries}db.Lib.PPC" ∂
- "{MWPPCLibraries}"XL.Lib.PPC ∂
- "{MWPPCLibraries}"x80.o ∂
- "{MWPPCLibraries}AppleScriptLib"
-
- Headers = ∂
- EXTERN.h INTERN.h XSUB.h av.h ∂
- config.h cop.h cv.h dosish.h ∂
- embed.h form.h gv.h handy.h ∂
- hv.h keywords.h mg.h op.h ∂
- opcode.h patchlevel.h perl.h perly.h ∂
- pp.h proto.h regcomp.h regexp.h ∂
- scope.h sv.h unixish.h util.h ∂
- macish.h SubLaunch.h
-
- Source = ∂
- av.c scope.c op.c doop.c ∂
- doio.c dump.c hv.c mg.c ∂
- perl.c perly.c pp.c pp_hot.c ∂
- pp_ctl.c pp_sys.c regcomp.c regexec.c ∂
- gv.c sv.c taint.c toke.c ∂
- util.c deb.c run.c miniperlmain.c ∂
- perlmain.c missing.c SubLaunch.c SubLaunch.a
-
- Objects68K = ∂
- {PerlObj}gv.c.68K.o {PerlObj}toke.c.68K.o {PerlObj}perly.c.68K.o ∂
- {PerlObj}op.c.68K.o {PerlObj}regcomp.c.68K.o {PerlObj}dump.c.68K.o ∂
- {PerlObj}util.c.68K.o {PerlObj}mg.c.68K.o {PerlObj}hv.c.68K.o ∂
- {PerlObj}av.c.68K.o {PerlObj}run.c.68K.o {PerlObj}pp_hot.c.68K.o ∂
- {PerlObj}sv.c.68K.o {PerlObj}pp.c.68K.o {PerlObj}scope.c.68K.o ∂
- {PerlObj}pp_ctl.c.68K.o {PerlObj}pp_sys.c.68K.o {PerlObj}doop.c.68K.o ∂
- {PerlObj}doio.c.68K.o {PerlObj}regexec.c.68K.o {PerlObj}taint.c.68K.o ∂
- {PerlObj}deb.c.68K.o {PerlObj}macish.c.68K.o {PerlObj}SubLaunch.c.68K.o
- LibObjects68K = ∂
- {PerlObj}missing.c.o.68K {PerlObj}icemalloc.c.o.68K
-
- ObjectsPPC = ∂
- {PerlObj}gv.c.PPC.o {PerlObj}toke.c.PPC.o {PerlObj}perly.c.PPC.o ∂
- {PerlObj}op.c.PPC.o {PerlObj}regcomp.c.PPC.o {PerlObj}dump.c.PPC.o ∂
- {PerlObj}util.c.PPC.o {PerlObj}mg.c.PPC.o {PerlObj}hv.c.PPC.o ∂
- {PerlObj}av.c.PPC.o {PerlObj}run.c.PPC.o {PerlObj}pp_hot.c.PPC.o ∂
- {PerlObj}sv.c.PPC.o {PerlObj}pp.c.PPC.o {PerlObj}scope.c.PPC.o ∂
- {PerlObj}pp_ctl.c.PPC.o {PerlObj}pp_sys.c.PPC.o {PerlObj}doop.c.PPC.o ∂
- {PerlObj}doio.c.PPC.o {PerlObj}regexec.c.PPC.o {PerlObj}taint.c.PPC.o ∂
- {PerlObj}deb.c.PPC.o {PerlObj}macish.c.PPC.o {PerlObj}SubLaunch.c.PPC.o
- LibObjectsPPC = ∂
- {PerlObj}missing.c.o.PPC {PerlObj}icemalloc.c.o.PPC
-
- PerlCore68K = :PLib:Perl.68K.Lib
- PerlCorePPC = :PLib:Perl.PPC.Lib
- PerlLib68K = :PLib:PerlLib.68K.Lib
- PerlLibPPC = :PLib:PerlLib.PPC.Lib
-
- public =
- dynamic_ext =
- Static_Ext_AutoInit = MacPerl DynaLoader NDBM_File DB_File Socket Fcntl POSIX
- More_Static_Ext = OSA XL
- Static_Ext_AutoInit_PPC = :ext:MacPerl:MacPerl.o.PPC :ext:DynaLoader:DynaLoader.o.PPC :ext:NDBM_File:NDBM_File.o.PPC :ext:DB_File:DB_File.o.PPC :ext:Socket:Socket.o.PPC :ext:Fcntl:Fcntl.o.PPC :ext:POSIX:POSIX.o.PPC
- Static_Ext_AutoInit_68K = :ext:MacPerl:MacPerl.o.68K :ext:DynaLoader:DynaLoader.o.68K :ext:NDBM_File:NDBM_File.o.68K :ext:DB_File:DB_File.o.68K :ext:Socket:Socket.o.68K :ext:Fcntl:Fcntl.o.68K :ext:POSIX:POSIX.o.68K
- Static_Ext_Inc = -i :ext:MacPerl: -i :ext:DynaLoader: -i :ext:NDBM_File: -i :ext:DB_File: -i :ext:Socket: -i :ext:Fcntl: -i :ext:POSIX:
-
- {PerlObj} ƒ :
- :PLib: ƒ :
-
- #
- # To maximally exploit the speed of the Metrowerks compilers, we employ a
- # trick: The majority of object files has the form .c.{ARCH}.o and is subject
- # to bulk compilation, while a few have the form .c.o.{ARCH} and are compiled
- # one by one.
- #
-
- .c.68K.o ƒ .c
- Set Echo 0
- Set Src68K "{Src68K} {DepDir}{Default}.c"
- .c.PPC.o ƒ .c
- Set Echo 0
- Set SrcPPC "{SrcPPC} {DepDir}{Default}.c"
- .c.o.68K ƒ .c
- {C68K} {DepDir}{Default}.c -o {TargDir}{Default}.c.o.68K
- .c.o.PPC ƒ .c
- {CPPC} {DepDir}{Default}.c -o {TargDir}{Default}.c.o.PPC
-
- # all ƒ miniperl preplibrary {public} {dynamic_ext}
- # Directory x2p
- # Set OldEcho {Echo}
- # Set Echo 0
- # BuildProgram all
- # Set Echo {OldEcho}
- # Directory ::
- # Directory pd
- # Set OldEcho {Echo}
- # Set Echo 0
- # BuildProgram all
- # Set Echo {OldEcho}
- # Directory ::
-
- all ƒ miniperl perl preplibrary runperl.c
-
- lib ƒ {PerlLib68K} {PerlLibPPC} runperl.c
-
- {PerlCore68K} ƒ {Objects68K} {PerlObj}perl.c.68K.o
- Set Echo 1
- If "{Src68K}" != ""
- {C68K} -t -fatext {Src68K} -o {PerlObj}
- End
- {Lib68K} -o {PerlCore68K} {Objects68K} {PerlObj}perl.c.68K.o
- {PerlCorePPC} ƒ {ObjectsPPC} {PerlObj}perl.c.PPC.o
- Set Echo 1
- If "{SrcPPC}" != ""
- {CPPC} -t -fatext {SrcPPC} -o {PerlObj}
- End
- {LibPPC} -o {PerlCorePPC} {ObjectsPPC} {PerlObj}perl.c.PPC.o
- {PerlLib68K} ƒ {LibObjects68K}
- Set Echo 1
- If "{Src68K}" != ""
- {C68K} -t -fatext {Src68K} -o {PerlObj}
- End
- {Lib68K} -o {PerlLib68K} {LibObjects68K}
- {PerlLibPPC} ƒ {LibObjectsPPC}
- Set Echo 1
- If "{SrcPPC}" != ""
- {CPPC} -t -fatext {SrcPPC} -o {PerlObj}
- End
- {LibPPC} -o {PerlLibPPC} {LibObjectsPPC}
-
- UnPreload ƒ {PerlObj}UnPreload.c.o.68K
- {Link68K} -o UnPreload {PerlObj}UnPreload.c.o.68K {LibFiles68K}
-
- miniperl.PPC ƒƒ {PerlObj}miniperlmain.c.o.PPC {PerlLibPPC} {PerlCorePPC}
- {LinkPPC} -o miniperl.PPC {PerlObj}miniperlmain.c.o.PPC {LibFilesPPC} {PerlCorePPC}
- miniperl.PPC ƒƒ Perl.r Perl.rsrc
- Rez -a -c 'MPS ' -t MPST -d APPNAME=∂"MiniPerlPPC∂" Perl.r -o miniperl.PPC
-
- miniperl.68K ƒƒ {PerlObj}miniperlmain.c.o.68K {PerlCore68K} {PerlLib68K}
- {Link68K} -o miniperl.68K {PerlObj}miniperlmain.c.o.68K {LibFiles68K} {PerlCore68K}
- miniperl.68K ƒƒ Perl.r Perl.rsrc
- Rez -a -c 'MPS ' -t MPST Perl.r -o miniperl.68K
-
- miniperl ƒ UnPreload miniperl.PPC miniperl.68K
- Duplicate -y miniperl.PPC miniperl
- Echo 'Include "miniperl.68K" '∂''CODE'∂'';Include "miniperl.68K" '∂''DATA'∂'';' ∂
- | Rez -a -c 'MPS ' -t MPST -o miniperl
- UnPreload miniperl
-
- perlmain.c ƒ miniperlmain.c # {Static_Ext_Autoinit}
- miniperl writemain {Static_Ext_Autoinit} {More_Static_Ext}>perlmain.c
-
- runperl.c ƒ miniperlmain.c # {Static_Ext_Autoinit}
- miniperl writemain -runperl {Static_Ext_Autoinit} {More_Static_Ext}>runperl.c
-
- BuildExt ƒ PerlCore.PPC
- For i in {Static_Ext_Autoinit}
- directory :ext:{i}
- Set Echo 0
- buildprogram all
- directory :::
- Set Echo 1
- end
-
- PerlCore.PPC ƒ {PerlObj}perlcore.c.o.PPC {PerlCorePPC}
- MWLinkPPC -w -c cfrg -t shlb -xm sharedLibrary -sym on -name Perl -f Perl.export ∂
- {PerlObj}perlcore.c.o.PPC {PerlCorePPC} {LibFilesPPC} {MoLibsPPC} -o PerlCore.PPC
- MergeFragment -n Perl -c PerlCore.PPC
-
- {PerlObj}perlmain.c.o.PPC ƒ perlmain.c
- {PerlObj}perlmain.c.o.68K ƒ perlmain.c
-
- perl.PPC ƒƒ {PerlObj}perlmain.c.o.PPC {PerlCorePPC} {PerlLibPPC} BuildExt
- {LinkPPC} -name Perl -f Perl.export ∂
- {PerlObj}perlmain.c.o.PPC {Static_Ext_Autoinit_PPC} ∂
- {PerlCorePPC} {LibFilesPPC} {MoLibsPPC} -o perl.PPC
- perl.PPC ƒƒ Perl.r Perl.rsrc
- Rez -a -c 'MPS ' -t MPST -d APPNAME=∂"Perl∂" Perl.r -o perl.PPC
-
- perl.68K ƒƒ {PerlObj}perlmain.c.o.68K {PerlCore68K} {PerlLib68K} BuildExt
- {Link68K} -o perl.68K ∂
- {PerlObj}perlmain.c.o.68K {LibFiles68K} ∂
- {Static_Ext_Autoinit_68K} ∂
- {MoLibs68K} {PerlCore68K}
- perl.68K ƒƒ Perl.r Perl.rsrc
- Rez -a -c 'MPS ' -t MPST Perl.r -o perl.68K
-
- perl ƒ UnPreload perl.PPC perl.68K
- Duplicate -y perl.PPC perl
- Echo 'Include "perl.68K" '∂''CODE'∂'';Include "perl.68K" '∂''DATA'∂'';' ∂
- | Rez -a -c 'MPS ' -t MPST -o perl
- UnPreload perl
-
- opcode.h ƒ opcode.pl
- perl opcode.pl
-
- embed.h ƒ embed_h.pl global.sym interp.sym
- perl embed_h.pl
-
- preplibraryƒ miniperl :lib:Config.pm
- :miniperl -I:lib ∂
- -e 'use AutoSplit; autosplit_lib_modules(@ARGV)' ∂
- :lib:≈.pm :lib:≈:≈.pm
-
- :lib:Config.pmƒ config.mac miniperl
- :miniperl configpm
-
- Distr ƒ Distribution
-
- Distribution ƒ
- Distribute PerlTool.distr Mac_Perl_503r1m_tool.sit
-
- # # I now supply perly.c with the kits, so the following section is
- # # commented out if you don't have byacc.
- #
- # ${comment1}perly.c: perly.y perly.c.diff
- # ${comment1} @ echo 'Expect' 109 shift/reduce and 1 reduce/reduce conflict
- # ${comment1} \$(BYACC) -d perly.y
- # ${comment1} sh \$(shellflags) ./perly.fixer y.tab.c perly.c
- # ${comment1} mv y.tab.h perly.h
- # ${comment1} echo 'extern YYSTYPE yylval;' >>perly.h
- #
- # # This version is used only if you do not have byacc.
- # ${comment2}perly.c: perly.y
- # ${comment2} touch perly.c
- #
- # !GROK!THIS!
- #
- # $spitshell >>Makefile <<'!NO!SUBS!'
- # # Extensions:
- # # Names added to $(dynamic_ext) or $(static_ext) will automatically
- # # get built. There should ordinarily be no need to change any of
- # # this part of makefile.
- # #
- # # The dummy dependency is a place holder in case $(dynamic_ext) or
- # # $(static_ext) is empty.
- # #
- # # DynaLoader may be needed for extensions that use Makefile.PL.
- #
- # $(DYNALOADER): miniperl preplibrary FORCE
- # @sh ext/util/make_ext static $@
- #
- # d_dummy $(dynamic_ext): miniperl preplibrary $(DYNALOADER) FORCE
- # @sh ext/util/make_ext dynamic $@
- #
- # s_dummy $(static_ext): miniperl preplibrary $(DYNALOADER) FORCE
- # @sh ext/util/make_ext static $@
- #
- # clean:
- # rm -f *.o *.a all perl suidperl miniperl
- # rm -f perlmain.c
- # rm -f perl.exp ext.libs ext/util/extlibist
- # -cd x2p; $(MAKE) clean
- # -cd pod; $(MAKE) clean
- # -@for x in ext/* ; do \
- # if test -f $$x/Makefile; then \
- # echo " Making clean in $$x"; \
- # cd $$x; $(MAKE) clean ; cd ../.. ; \
- # fi ; \
- # done
- #
- # realclean: clean
- # -cd x2p; $(MAKE) realclean
- # -@for x in ext/* ; do \
- # if test -f $$x/Makefile; then \
- # echo " Making realclean in $$x"; \
- # cd $$x; $(MAKE) realclean ; cd ../.. ; \
- # fi ; \
- # done
- # rm -f *.orig */*.orig *~ */*~ core t/core
- # rm -rf $(addedbyconf)
- # rm -f Makefile cflags makedepend makedir writemain
- # rm -f config.h t/perl makefile makefile.old
- # rm -f x2p/Makefile x2p/makefile x2p/makefile.old x2p/cflags
- # rm -f lib/Config.pm
- # rm -rf lib/auto
- # rm -f h2ph h2ph.man c2ph pstruct
- # rm -rf .config
- #
- # # The following lint has practically everything turned on. Unfortunately,
- # # you have to wade through a lot of mumbo jumbo that can't be suppressed.
- # # If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message
- # # for that spot.
- #
- # lint: perly.c $(c)
- # lint $(lintflags) $(defs) perly.c $(c) > perl.fuzz
- #
- # makefile: Makefile
- # make depend
- #
- # # When done, touch perlmain.c so that it doesn't get remade each time.
- # depend: makedepend
- # - test -f perly.h || cp /dev/null perly.h
- # ./makedepend
- # - test -s perly.h || /bin/rm -f perly.h
- # - test -s perlmain.c && touch perlmain.c
- # cd x2p; $(MAKE) depend
- #
- # test: miniperl perl preplibrary $(dynamic_ext)
- # - cd t && chmod +x TEST */*.t
- # - cd t && (rm -f perl; $(LNS) ../perl perl) && ./perl TEST </dev/tty
- #
- # clist: $(c)
- # echo $(c) | tr ' ' '\012' >.clist
- #
- # hlist: $(h)
- # echo $(h) | tr ' ' '\012' >.hlist
- #
- # shlist: $(sh)
- # echo $(sh) | tr ' ' '\012' >.shlist
- #
- # # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
- # # If this runs make out of memory, delete /usr/include lines.
- # !NO!SUBS!
- #
- # $eunicefix Makefile
- # case `pwd` in
- # *SH)
- # $rm -f ../Makefile
- # ln Makefile ../Makefile
- # ;;
- # esac
- # rm -f makefile
- #
- #
-