📄 smakefile
字号:
LDFLAGSS = FROM SC:LIB/$(LSTARTUP)# common linker flags for all other executeablesLDFLAGSC = FROM SC:LIB/c.oLDFLAGS2 = NOICONS $(LDBG)LIBFLAGS = LIB $(LMEMLIB) SC:LIB/$(SASLIB).lib SC:LIB/amiga.lib# Assembler definitions#ASM = asm## Options used for assembling amiga/deflate.a# Must match defines in C-Source.#AFLAGS0 = -d__SASC -dSASC -dAMIGAAFLAGS1 = $(AUSE020) $(ASMOPTS) $(ADBG)AFLAGS2 = -m$(AUSECPU) -jm -iINCLUDE:AFLAGS = $(AFLAGS0) $(AFLAGS1) $(AFLAGS2)ASMOPTSZ = $(AFLAGS) $(AUSEMEM) -dDYN_ALLOC # Zip asm flagsASMOPTSL = $(AFLAGS) $(ALOWMEM) # Zip low-mem version asm flags################### TARGET OBJECTS #################### Zip objectsOBJZ1 = zip$(O) zipfile$(O) zipup$(O) fileio$(O) util$(O) globals$(O)OBJZ2 = crc32$(O) crctab$(O) crypt$(O) timezone$(O) ttyio$(O)OBJZI = deflate$(O) trees$(O)OBJZA = amiga$(O) amigazip$(O) stat$(O) filedate$(O)OBJZ = $(OBJZ1) $(OBJZ2) $(OBJZI) $(OBJZA)# Shared utility objects for ZipNote, ZipCloak and ZipSplitOBJU1 = globals$(O)OBJUU = zipfile$(OU) fileio$(OU) timezone$(O) util$(OU)OBJUA = amigazip$(OU) amiga$(O) stat$(O) filedate$(O)OBJU = $(OBJU1) $(OBJUU) $(OBJUA)# ZipNote objectsOBJN1 = zipnote$(O)OBJN = $(OBJN1) $(OBJU)# ZipCloak objectsOBJC1 = zipcloak$(O)OBJCU = $(OBJU) crypt$(OU)OBJCS = crctab$(O) ttyio$(O)OBJC = $(OBJC1) $(OBJCU) $(OBJCS)#ZipSplit objectsOBJS1 = zipsplit$(O)OBJS = $(OBJS1) $(OBJU)# ZipLM objectsOBJL1 = zip$(OL) zipfile$(OL) zipup$(OL) fileio$(OL) util$(OL) globals$(OL)OBJL2 = crc32$(OL) crctab$(OL) crypt$(OL) timezone$(OL) ttyio$(OL)OBJLI = deflate$(OL) trees$(OL)OBJLA = amiga$(OL) amigazip$(OL) stat$(OL) filedate$(OL)OBJL = $(OBJL1) $(OBJL2) $(OBJLI) $(OBJLA)# Common header filesZIP_H1 = zip.h ziperr.h tailor.hZIP_HA = amiga/osdep.h amiga/z-stat.hZIP_H = $(ZIP_H1) $(ZIP_HA)# Output targetsZIPS = Zip ZipNote ZipCloak ZipSplit ZipLM# Temp filenames for object lists to load using linker "WITH" command.OBJLISTZ = zip_objlist.with # Zip object listOBJLISTN = zipnote_objlist.with # ZipNote object listOBJLISTC = zipcloak_objlist.with # ZipCloak object listOBJLISTS = zipsplit_objlist.with # ZipSplit object listOBJLISTL = ziplm_objlist.with # Zip low-mem object list######################################## DEFAULT TARGET AND PROCESSING RULES ########################################all: request flush $(ZIPS)# Zip transformation rules#.c$(O): $(CC) WITH=$(CFILE) $(CUSEMEM) LISTFILE=$>$(LISTEXTZ) OBJNAME=$@ $*.c# Zip low-memory version transformation rules#.c$(OL): $(CC) WITH=$(CFILE) $(CLOWMEM) LISTFILE=$>$(LISTEXTL) OBJNAME=$@ $*.c# Utilities (ZipNote, ZipCloak and ZipSplit) transformation rules#.c$(OU): $(CC) WITH=$(CFILE) $(CUSEMEM) DEF=UTIL LISTFILE=$>$(LISTEXTU) OBJNAME=$@ $*.c########################## Final output targets. ##########################zip: local_zip CommonFlags $(OBJZ) @Echo "$(OBJZ)" > $(OBJLISTZ) Type $(OBJLISTZ) @Echo "$(LDFLAGSS) $(LUTIL) WITH $(OBJLISTZ) $(LIBFLAGS)" \ "$(LDFLAGS2) $(LMAPZ)" >$(LWITHZ) Type $(LWITHZ) $(LD) TO Zip WITH $(LWITHZ)zipnote: local_zip CommonFlags $(OBJN) @Echo "$(OBJN)" > $(OBJLISTN) Type $(OBJLISTN) @Echo "$(LDFLAGSS) $(LUTIL) WITH $(OBJLISTN) $(LIBFLAGS) " \ "$(LDFLAGS2) $(LMAPN)" >$(LWITHN) Type $(LWITHN) $(LD) TO ZipNote WITH $(LWITHN)zipcloak: local_zip CommonFlags $(OBJC) @Echo "$(OBJC)" > $(OBJLISTC) Type $(OBJLISTC) @Echo "$(LDFLAGSS) $(LUTIL) WITH $(OBJLISTC) $(LIBFLAGS) " \ "$(LDFLAGS2) $(LMAPC)" >$(LWITHC) Type $(LWITHC) $(LD) TO ZipCloak WITH $(LWITHC)zipsplit: local_zip CommonFlags $(OBJS) @Echo "$(OBJS)" > $(OBJLISTS) Type $(OBJLISTS) @Echo "$(LDFLAGSS) $(LUTIL) WITH $(OBJLISTS) $(LIBFLAGS) " \ "$(LDFLAGS2) $(LMAPS)" >$(LWITHS) Type $(LWITHS) $(LD) TO ZipSplit WITH $(LWITHS)ziplm: local_zip CommonFlags $(OBJL) @Echo "$(OBJL)" > $(OBJLISTL) Type $(OBJLISTL) @Echo "$(LDFLAGSS) $(LUTIL) WITH $(OBJLISTL) $(LIBFLAGS) " \ "$(LDFLAGS2) $(LMAPL)" >$(LWITHL) Type $(LWITHL) $(LD) TO ZipLM WITH $(LWITHL)clean: -Delete >nil: $(OBJZ) quiet -Delete >nil: $(OBJN) quiet -Delete >nil: $(OBJC) quiet -Delete >nil: $(OBJS) quiet -Delete >nil: $(OBJL) quiet -Delete >nil: $(OBJLISTZ) $(OBJLISTL) $(OBJLISTN) $(OBJLISTS) $(OBJLISTC) quiet -Delete >nil: $(MAPFZ) $(MAPFN) $(MAPFC) $(MAPFS) $(MAPFL) quiet -Delete >nil: \#?$(LISTEXTZ) \#?$(LISTEXTU) \#?$(LISTEXTL) quiet -Delete >nil: $(CWITHOPT) $(CFILE) quiet -Delete >nil: $(LWITHZ) $(LWITHN) $(LWITHC) $(LWITHS) $(LWITHL) quiet -Delete >nil: env:VersionDate quiet -Delete >nil: \#?.q.?? \#?.tmp \#?.cov quietspotless: clean -Delete >nil: $(ZIPS) quiet################# DEPENDENCIES ################## To change between the assembler and C sources, you have to comment/uncomment# the approprite lines. C sources are marked by #C-src and assembler sources# #asm-src at the end.# Zip dependencies:#zip$(O): zip.c $(ZIP_H) revision.h crypt.h ttyio.hzipup$(O): zipup.c $(ZIP_H) revision.h crypt.h amiga/zipup.hzipfile$(O): zipfile.c $(ZIP_H) revision.hcrypt$(O): crypt.c $(ZIP_H) crypt.h ttyio.httyio$(O): ttyio.c $(ZIP_H) crypt.h ttyio.hdeflate$(O): deflate.c $(ZIP_H) #C-srctrees$(O): trees.c $(ZIP_H)fileio$(O): fileio.c $(ZIP_H)util$(O): util.c $(ZIP_H)crc32$(O): crc32.c $(ZIP_H)crctab$(O): crctab.c $(ZIP_H)globals$(O): globals.c $(ZIP_H)timezone$(O): timezone.c $(ZIP_H) timezone.h# Amiga specific objectsstat$(O): amiga/stat.c amiga/z-stat.hfiledate$(O): amiga/filedate.c crypt.h timezone.hamiga$(O): amiga/amiga.c ziperr.hamigazip$(O): amiga/amigazip.c $(ZIP_H) amiga/amiga.h env:Workbench# Substitute assembly version of deflate.c:#deflate$(O): amiga/deflate.a #asm-src# $(ASM) $(ASMOPTSZ) -o$@ $*.a #asm-src# Utility (ZipNote, ZipCloak, ZipSplit) dependencies:#zipnote$(O): zipnote.c $(ZIP_H) revision.hzipcloak$(O): zipcloak.c $(ZIP_H) revision.h crypt.h ttyio.hzipsplit$(O): zipsplit.c $(ZIP_H) revision.hzipfile$(OU): zipfile.c $(ZIP_H) revision.hfileio$(OU): fileio.c $(ZIP_H)util$(OU): util.c $(ZIP_H)crypt$(OU): crypt.c $(ZIP_H) crypt.h ttyio.h# Amiga specific objectsamigazip$(OU): amiga/amigazip.c $(ZIP_H) amiga/amiga.h env:Workbench# ZipLM dependencies:#zip$(OL): zip.c $(ZIP_H) revision.h crypt.h ttyio.hzipup$(OL): zipup.c $(ZIP_H) revision.h crypt.h amiga/zipup.hzipfile$(OL): zipfile.c $(ZIP_H) revision.hcrypt$(OL): crypt.c $(ZIP_H) crypt.h ttyio.httyio$(OL): ttyio.c $(ZIP_H) crypt.h ttyio.hdeflate$(OL): deflate.c $(ZIP_H)trees$(OL): trees.c $(ZIP_H)fileio$(OL): fileio.c $(ZIP_H)util$(OL): util.c $(ZIP_H)crc32$(OL): crc32.c $(ZIP_H)crctab$(OL): crctab.c $(ZIP_H)globals$(OL): globals.c $(ZIP_H)timezone$(OL): timezone.c $(ZIP_H) timezone.h# Amiga specific objectsstat$(OL): amiga/stat.c amiga/z-stat.hfiledate$(OL): amiga/filedate.c crypt.h timezone.hamiga$(OL): amiga/amiga.c ziperr.h# Substitute assembly version of deflate.c:#deflate$(OL): amiga/deflate.a# $(ASM) $(ASMOPTSL) -o$@ $*.a######################### DEPENDECIES END HERE ########################## flush all libraries to provide more mem for compilationflush: @Avail flush >nil:# write common compiler flags to file and echo to userCommonFlags: @Echo "$(CFLAGS)" >$(CFILE) @Type "$(CWITHOPT)" >>$(CFILE) -Type $(CFILE)# special rules for adding Amiga internal version number to amiga/amiga.camiga$(O): rx > env:VersionDate "say '""'translate(date('E'),'.','/')'""'" $(CC) WITH=$(CFILE) $(CUSEMEM) LISTFILE=$>$(LISTEXTZ) OBJNAME=$@ $*.c -Delete env:VersionDateamiga$(OL): rx > env:VersionDate "say '""'translate(date('E'),'.','/')'""'" $(CC) WITH=$(CFILE) $(CLOWMEM) LISTFILE=$>$(LISTEXTL) OBJNAME=$@ $*.c -Delete env:VersionDate# needed in amiga/amigazip.c# should be set in startup-sequence, but just in case:# (only works with OS 2.0 and above)env\:WorkBench: @Execute < < (Workbench_smk.tmp) FailAt 21 If not exists ENV:Workbench Version >nil: SetEnv Workbench $$Workbench Endif <# Read environment variable LOCAL_ZIP and convert options to SAS format## e.g.: to define FOO_ONE and FOO_TWO enter:## SetEnv LOCAL_ZIP "-DFOO_ONE -DFOO_TWO"## Put the statement into your startup-sequence or (for AmigaDOS 2.0 or higher# only) make sure LOCAL_ZIP is stored in the ENVARC: directory# ( Copy ENV:LOCAL_ZIP ENVARC: )#local_zip: @Execute < < (Local_Zip_smk.tmp) Failat 21 If exists ENV:LOCAL_ZIP Echo "Using environment variable LOCAL_ZIP !" Copy >NIL: ENV:LOCAL_ZIP SASCOPTS Else Echo "You could use envvar ZIP_OPT to set your special compilation options." Delete >nil: SASCOPTS quiet Endif ; Do not remove the lctosc command! If LOCAL_ZIP is unset, an ; empty file is created which needed by CommonFlags ! lctosc >$(CWITHOPT) <# Echo request to the user#request: @Echo "" @Echo " This makefile is for use with SAS/C version 6.58." @Echo " If you still have an older version, please upgrade!" @Echo " Patches are available on the Aminet under biz/patch/sc\#?." @Echo "" @Echo " Just a simple request..." @Echo " Please give me a mail that you compiled whether you encounter any errors" @Echo " or not. I'd just like to know how many Amiga users actually make use of" @Echo " this makefile." @Echo " If you mail me, I'll put you on my mailing-list and notify you whenever" @Echo " new versions of Info-Zip are released." @Echo " Have a look at the makefile for changes like CPU type, UtilLib, etc." @Echo " Feel free to mail comments, suggestions, etc." @Echo " Enjoy Info-Zip !" @Echo " Haidinger Walter, <walthaid@unix.ict.tuwien.ac.at>" @Echo ""# Echo help in case of an error#.ONERROR: @Echo "" @Echo "[sigh] An error running this makefile was detected." @Echo "This message may also appear if you interrupted smake by pressing CTRL-C." @Echo "Contact Info-Zip authors at Zip-Bugs@lists.wku.edu or me for help." @Echo "Haidinger Walter, <walthaid@unix.ict.tuwien.ac.at>"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -