# File: Makefile # Target: TestEcho (MPW 3.1 libraries), ElWhip (MPW 3.1 libraries) # Created: Sunday, November 29, 2009 11:11:08 PM # # ElWhip uses MPW 3.5 and Link (rather than iLink) and the Libraries and Interfaces # from MPW 3.1 to build a program to run on all System versions, # even earlier than System 6.08. # Copy (or make an Alias of) the Interfaces:CIncludes and Libraries folders from # MPW 3.1 and name them Interfaces:CIncludes-3.1 and Libraries-3.1 # # If you just want to build for 3.5 libraries (losing older system compatibility), # change: # IncFiles = -i {Includes-68K} {Includes} # COptions = -includes unix {IncFiles} {Sym-68K} -mbg off -model near -opt space -w off #-d LIBS_OLD # LibFiles = {LibFiles-68K} Program = "ElWhip" MAKEFILE = MakeFile #¥MondoBuild¥ = {MAKEFILE} # Make blank to avoid rebuilds when makefile is modified ¥MondoBuild¥ = Vers = v0.7.1 ObjDir = : SrcDir = ::::lwip:src: IncDir = {SrcDir}include: APISrc = "{SrcDir}api:" CoreSrc = "{SrcDir}core:" IPV4Src = "{CoreSrc}ipv4:" NetISrc = "{SrcDir}netif:" PPPISrc = "{NetISrc}ppp:" ContribDir = ::: PortsDir = {ContribDir}ports: AppsDir = {ContribDir}apps: MacSrc = {PortsDir}mac: Includes-Old = "{CIncludes}:CIncludes-3.1:" Includes-68K = "{CIncludes}" Includes = ¶ -i {MacSrc}include: ¶ -i {MacSrc}include:arch: ¶ -i {AppsDir} ¶ -i {IncDir} ¶ -i {IncDir}lwip: ¶ -i {IncDir}ipv4: ¶ -i {IncDir}ipv6: ¶ -i {IncDir}netif: ¶ -i {AppsDir}httpserver_raw: ¶ -i {IncDir}netif:ppp: # -i {IncDir}netif:ppp:polarssl: IncFiles = -i {Includes-Old} {Includes} Sym-68K = -sym off COptions = -includes unix {IncFiles} {Sym-68K} -mbg off -model near -opt space -w off -d LIBS_OLD LOptions = -mf -d -t 'APPL' -c 'LWIP' -model near AddDebugOpt = -d LWIP_DEBUG -u LWIP_NOASSERT NoDebugOpt = -u LWIP_DEBUG -d LWIP_NOASSERT ### Source Files ### SrcFiles = {MacSrc}test.c ¶ {MacSrc}sys_arch.c ¶ {MacSrc}sio.c ¶ # {AppsDir}tcpecho_raw:echo.c ¶ {AppsDir}httpserver_raw:httpd.c ¶ {AppsDir}httpserver_raw:fs.c ¶ {APISrc}err.c ¶ # {CoreSrc}init.c ¶ # {CoreSrc}mem.c ¶ {CoreSrc}memp.c ¶ {CoreSrc}netif.c ¶ {CoreSrc}inet_chksum.c ¶ {CoreSrc}pbuf.c ¶ {CoreSrc}raw.c ¶ # {CoreSrc}stats.c ¶ {CoreSrc}tcp_in.c ¶ {CoreSrc}tcp_out.c ¶ {CoreSrc}tcp.c ¶ # {CoreSrc}udp.c ¶ {CoreSrc}timers.c ¶ # {IPV4Src}icmp.c ¶ # {IPV4Src}igmp.c ¶ {IPV4Src}ip4.c ¶ {IPV4Src}ip4_addr.c ¶ # {IPV4Src}ip_frag.c ¶ # {NetISrc}etharp.c ¶ # {NetISrc}slipif.c ¶ {PPPISrc}ppp.c ¶ {PPPISrc}lcp.c ¶ {PPPISrc}magic.c ¶ {PPPISrc}auth.c ¶ # {PPPISrc}upap.c ¶ {PPPISrc}ipcp.c ¶ {PPPISrc}utils.c ¶ {PPPISrc}fsm.c # {PPPISrc}polarssl:md5.c ### Object Files ### ObjectFiles = "{MacSrc}sys_arch.c.l.o" ¶ "{MacSrc}sio.c.p.o" ¶ # "{AppsDir}echo.c.a.o" ¶ "{AppsDir}httpserver_raw:httpd.c.a.o" ¶ "{AppsDir}httpserver_raw:fs.c.a.o" ¶ "{SrcDir}err.c.l.o" ¶ # "{SrcDir}init.c.l.o" ¶ # "{SrcDir}mem.c.l.o" ¶ "{SrcDir}memp.c.l.o" ¶ "{SrcDir}netif.c.ud.o" ¶ "{SrcDir}inet_chksum.c.l.o" ¶ "{SrcDir}pbuf.c.l.o" ¶ "{SrcDir}raw.c.l.o" ¶ # "{SrcDir}stats.c.l.o" ¶ "{SrcDir}tcp_in.c.l.o" ¶ "{SrcDir}tcp_out.c.l.o" ¶ "{SrcDir}tcp.c.l.o" ¶ # "{SrcDir}udp.c.l.o" ¶ "{SrcDir}timers.c.l.o" ¶ # "{SrcDir}autoip.c.l.o" ¶ # "{SrcDir}icmp.c.l.o" ¶ # "{SrcDir}igmp.c.l.o" ¶ "{SrcDir}ip4.c.l.o" ¶ "{SrcDir}ip4_addr.c.l.o" ¶ # "{SrcDir}ip_frag.c.l.o" ¶ # "{NetISrc}etharp.c.l.o" ¶ # "{NetISrc}slipif.c.p.o" ¶ "{NetISrc}ppp.c.p.o" ¶ "{NetISrc}lcp.c.ud.o" ¶ "{NetISrc}magic.c.p.o" ¶ "{NetISrc}auth.c.ud.o" ¶ # "{NetISrc}upap.c.p.o" ¶ "{NetISrc}ipcp.c.ud.o" ¶ "{NetISrc}utils.c.p.o" ¶ "{NetISrc}fsm.c.ud.o" # "{NetISrc}md5.c.p.o" ### Libraries ### # Use the Libraries from MPW 3.1 CLibraries-Old = {CLibraries}::Libraries-3.1:CLibraries: Libraries-Old = {Libraries}::Libraries-3.1:Libraries: LibFiles-Old = ¶ # "{CLibraries-Old}CSANELib.o" ¶ # "{CLibraries-Old}Math.o" ¶ # "{CLibraries-Old}Complex.o" ¶ "{CLibraries-Old}StdCLib.o" ¶ "{CLibraries-Old}CInterface.o" ¶ "{CLibraries-Old}CRuntime.o" ¶ # "{Libraries-Old}ToolLibs.o" ¶ # "{Libraries-Old}Runtime.o" ¶ "{Libraries-Old}Interface.o" LibFiles-68K = ¶ # "{Libraries}MathLib.o" ¶ "{CLibraries}StdCLib.o" ¶ "{Libraries}MacRuntime.o" ¶ "{Libraries}IntEnv.o" ¶ "{Libraries}Interface.o" LibFiles = {LibFiles-Old} # Special case because of the /r/n issues. "{AppsDir}httpserver_raw:httpd.c.a.o" Ä "{AppsDir}httpserver_raw:httpd.c" {C} {Deps} -o {Targ} {COptions} -noMapCR {NoDebugOpt} -seg LWAPP ### Default Rules ### .c.m.o Ä .c {¥MondoBuild¥} {C} {depDir}{default}.c -o {targDir}{default}.c.m.o {COptions} {NoDebugOpt} -seg Main .c.n.o Ä .c {¥MondoBuild¥} {C} {depDir}{default}.c -o {targDir}{default}.c.n.o {COptions} {NoDebugOpt} -seg Main -d TEST_MAIN_DISABLE .c.pp.o Ä .c {¥MondoBuild¥} {C} {depDir}{default}.c -o {targDir}{default}.c.pp.o {COptions} {NoDebugOpt} -seg LWPPPL .c.p.o Ä .c {¥MondoBuild¥} {C} {depDir}{default}.c -o {targDir}{default}.c.p.o {COptions} {NoDebugOpt} -seg LWPPP .c.ud.o Ä .c {¥MondoBuild¥} {C} {depDir}{default}.c -o {targDir}{default}.c.ud.o {COptions} {NoDebugOpt} -seg LWUPDN .c.a.o Ä .c {¥MondoBuild¥} {C} {depDir}{default}.c -o {targDir}{default}.c.a.o {COptions} {NoDebugOpt} -seg LWAPP .c.l.o Ä .c {¥MondoBuild¥} {C} {depDir}{default}.c -o {targDir}{default}.c.l.o {COptions} {NoDebugOpt} -seg LWTCPIP .c.o Ä .c {¥MondoBuild¥} {C} {depDir}{default}.c -o {targDir}{default}.c.o {COptions} {NoDebugOpt} -seg Main {MacSrc} Ä {MacSrc} {NetISrc} Ä {NetISrc} {PPPISrc} {SrcDir} Ä {CoreSrc} {IPV4Src} {APISrc} ### Build Rules ### TestEcho ÄÄ "{MacSrc}test.c.m.o" {ObjectFiles} {LibFiles} {¥MondoBuild¥} Link ¶ -o {Targ} ¶ "{MacSrc}test.c.m.o" ¶ {ObjectFiles} ¶ {LibFiles} ¶ {Sym-68K} ¶ {LOptions} If "{Sym-68K}" =~ /-sym Å[nNuU]Å/ ILinkToSYM {Targ}.NJ -mf -sym 3.2 -c 'sade' End CObjs = "{MacSrc}test.c.n.o" ¶ "{MacSrc}ElWhip.c.n.o" ¶ {ObjectFiles} Clean Ä Delete {CObjs} Delete ElWhip.dmg Delete ElWhip Delete Å.makeout Delete Å.out ElWhip ÄÄ {CObjs} {LibFiles} {¥MondoBuild¥} Link ¶ -o {Targ} ¶ {CObjs} ¶ {LibFiles} ¶ {Sym-68K} ¶ {LOptions} ElWhip ÄÄ ElWhip.r ElWhip_ICN.r ElWhip.h {¥MondoBuild¥} Rez -rd -o {Targ} ElWhip.r -append # Don't Use rsrc files # DeRez "ElWhip_ICN.rsrc" | Rez -o {Targ} -append Rez -rd -o {Targ} ElWhip_ICN.r -append SetFile -a BC {Targ} #ElWhip-distrib Ä ElWhip DiskImg = ':400K.dmg' {Program}.dmg Ä {Program} Duplicate {DiskImg} {Targ} Open -f {Targ} Alert "Click OK after the volume mounts to continue..." Loop If `Exists {Deps}:` Break End End Duplicate :{Deps} {Deps}: SetFile -a BC {Deps} Duplicate :www:[Â.]Å {Deps}: # Convert to mac line feeds and output a copy StreamEdit {ContribDir}README.md -o {Deps}:Readme.txt SetFile -t TEXT {Deps}:Readme.txt Rename {Deps}: {Deps}_{Vers}: Eject {Deps}_{Vers}: .img Ä .dmg Duplicate {Deps} {Targ} ElWhip-vMac Ä ElWhip {DiskImg} Open -f 'Mac OS X:Users:epooch:Documents:MacOS6.dmg' Alert "Click OK after the volume mounts to continue..." Loop If `Exists 'MacOS6:'` Break End End Duplicate ElWhip 'MacOS6:ElWhip-vMac'; Eject MacOS6 ### Optional Dependencies ### ### Build this target to generate "include file" dependencies. ### Dependencies Ä $OutOfDate MakeDepend ¶ -append {MAKEFILE} ¶ -ignore "{CIncludes}" ¶ -objdir "{ObjDir}" ¶ -objext .o ¶ {IncFiles} ¶ {SrcFiles}