📄 smakefile
字号:
# UnZipSFX ObjectsOBJX1 = unzip$(OX) extract$(OX) inflate$(OX) match$(OX) process$(OX)OBJXI = crypt$(OX) crc32$(O) crctab$(OX) fileio$(OX) globals$(OX) ttyio$(OX)OBJXA = amiga$(OX) timezone$(OX)OBJX = $(OBJX1) $(OBJXI) $(OBJXA)# fUnZip ObjectsOBJF1 = funzip$(O)OBJF2 = crc32$(OF) crypt$(OF) globals$(OF) inflate$(OF) ttyio$(OF)OBJFA = filedate$(OF) stat$(O)OBJF = $(OBJF1) $(OBJF2) $(OBJFA)# MakeSFX ObjectsOBJM = makesfx$(O)# Common header filesUNZIP_H1 = unzip.h unzpriv.h globals.hUNZIP_HA = amiga/amiga.h amiga/z-stat.hUNZIP_H = $(UNZIP_H1) $(UNZIP_HA)# Output targetsUNZIPS = UnZip UnZipSFX fUnZip MakeSFX######################################## DEFAULT TARGET AND PROCESSING RULES ########################################all: request flush $(UNZIPS)# UnZip transformation rules#.c$(O) : $(CC) WITH=$(CFILEC) LISTFILE=$>$(LISTEXTS) OBJNAME=$@ $*.c# UnZipSFX transformation rules#.c$(OX): $(CC) DEF=SFX WITH=$(CFILEC) LISTFILE=$>$(LISTEXTX) OBJNAME=$@ $*.c# fUnZip transformation rules#.c$(OF): $(CC) DEF=FUNZIP WITH=$(CFILEC) LISTFILE=$>$(LISTEXTF) OBJNAME=$@ $*.c########################## Final output targets. ##########################unzip: local_unzip CommonFlags $(OBJS) @Echo "$(OBJS)" >$(OBJLISTS) Type $(OBJLISTS)# -----# Note: Change $(LDFLAGSS) to $(LDFLAGSC) if DYN_ALLOC is *not* defined.# ----- @Echo "$(LDFLAGSS) $(LUTIL) WITH $(OBJLISTS) $(LIBFLAGSS) " \ "$(LDFLAGS2) $(LMAPS)" >$(LWITHS) Type $(LWITHS) $(LD) TO UnZip WITH $(LWITHS)funzip: local_unzip CommonFlags $(OBJF) @Echo "$(OBJF)" >$(OBJLISTF) Type $(OBJLISTF) @Echo "$(LDFLAGSC) $(LUTIL) WITH $(OBJLISTF) $(LIBFLAGSS) " \ "$(LDFLAGS2) $(LMAPF)" >$(LWITHF) Type $(LWITHF) $(LD) TO fUnZip WITH $(LWITHF)unzipsfx: local_unzip SFXFlags $(OBJX) @Echo "$(OBJX)" >$(OBJLISTX) Type $(OBJLISTX)# ----# Note: Insert $(LUTIL) here, to use utility library with UnZipSFX.# ----- vvvvvvv @Echo "$(LDFLAGSC) WITH $(OBJLISTX) $(LIBFLAGSS) " \ "$(LDFLAGS2) $(LMAPX)" >$(LWITHX) Type $(LWITHX) $(LD) TO UnZipSFX WITH $(LWITHX)makesfx: MakeSFXFlags $(OBJM) @Echo "$(OBJM)" >$(OBJLISTM) Type $(OBJLISTM) @Echo "$(LDFLAGSC) $(LUTIL) WITH $(OBJLISTM) $(LIBFLAGSC) " \ "$(LDFLAGS2) $(LMAPM)" >$(LWITHM) Type $(LWITHM) # never use short-integers with MakeSFX ! $(LD) TO MakeSFX WITH $(LWITHM)clean: -Delete >nil: $(OBJS) quiet -Delete >nil: $(OBJX) quiet -Delete >nil: $(OBJF) quiet -Delete >nil: $(OBJM) quiet -Delete >nil: $(OBJLISTS) $(OBJLISTX) $(OBJLISTF) $(OBJLISTM) quiet -Delete >nil: $(MAPFS) $(MAPFX) $(MAPFF) $(MAPFM) quiet -Delete >nil: \#?$(LISTEXTS) \#?$(LISTEXTX) \#?$(LISTEXTF) quiet -Delete >nil: $(CWITHOPT) $(CFILEC) $(CFILEX) $(CFILEM) quiet -Delete >nil: SCOPTIONS SASCOPTS quiet -Delete >nil: $(LWITHS) $(LWITHX) $(LWITHF) $(LWITHM) quiet -Delete >nil: \#?.q.?? \#?.tmp \#?.cov quietspotless: clean -Delete >nil: $(UNZIPS) quiet# UnZip dependencies:# (objects not needed by Amiga port are commented)# special rule for adding Amiga internal version number to UnZipamiga$(O): amiga/amiga.c amiga/filedate.c amiga/stat.c $(UNZIP_H) crypt.h timezone.h env:Workbenchstat$(O): amiga/stat.c amiga/z-stat.hfiledate$(O): amiga/filedate.c crypt.h timezone.hapi$(O): api.c $(UNZIP_H) unzvers.h #zlib.hapihelp$(O): apihelp.c $(UNZIP_H) unzvers.hcrc32$(O): crc32.c $(UNZIP_H) zip.hcrctab$(O): crctab.c $(UNZIP_H) zip.hcrypt$(O): crypt.c $(UNZIP_H) zip.h crypt.h ttyio.henvargs$(O): envargs.c $(UNZIP_H)explode$(O): explode.c $(UNZIP_H)extract$(O): extract.c $(UNZIP_H) crypt.hfileio$(O): fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.hglobals$(O): globals.c $(UNZIP_H)inflate$(O): inflate.c $(UNZIP_H) inflate.h #zlib.hlist$(O): list.c $(UNZIP_H)match$(O): match.c $(UNZIP_H)process$(O): process.c $(UNZIP_H)timezone$(O): timezone.c $(UNZIP_H) zip.h timezone.httyio$(O): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.hunreduce$(O): unreduce.c $(UNZIP_H)unshrink$(O): unshrink.c $(UNZIP_H)unzip$(O): unzip.c $(UNZIP_H) crypt.h unzvers.h consts.h #zlib.h#unzipstb$(O): unzipstb.c $(UNZIP_H) unzvers.hzipinfo$(O): zipinfo.c $(UNZIP_H)# UnZipSFX dependencies:## special rule for adding Amiga internal version number to UnZipSFXamiga$(OX): amiga/amiga.c amiga/filedate.c amiga/stat.c $(UNZIP_H) crypt.h timezone.hunzip$(OX): unzip.c $(UNZIP_H) crypt.h unzvers.h consts.hcrctab$(OX): crctab.c $(UNZIP_H) zip.hcrypt$(OX): crypt.c $(UNZIP_H) zip.h crypt.h ttyio.hextract$(OX): extract.c $(UNZIP_H) crypt.hfileio$(OX): fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.hglobals$(OX): globals.c $(UNZIP_H)inflate$(OX): inflate.c $(UNZIP_H) inflate.h #zlib.hmatch$(OX): match.c $(UNZIP_H)process$(OX): process.c $(UNZIP_H)timezone$(OX): timezone.c $(UNZIP_H) zip.h timezone.httyio$(OX): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h# fUnZip dependencies:#funzip$(O): funzip.c $(UNZIP_H) crypt.h ttyio.h tables.hcrc32$(OF): crc32.c $(UNZIP_H) zip.hcrypt$(OF): crypt.c $(UNZIP_H) zip.h crypt.h ttyio.hglobals$(OF): globals.c $(UNZIP_H)inflate$(OF): inflate.c $(UNZIP_H) inflate.h crypt.h #zlib.httyio$(OF): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.hfiledate$(OF): amiga/filedate.c crypt.h# MakeSFX dependencies## special transformation rules to never use shortintegers:makesfx$(O): amiga/makesfx.c $(CC) WITH=$(CFILEM) LISTFILE=$>$(LISTEXTS) OBJNAME=$@ $*.c######################### 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 "$(CFLAGSC)" "$(CCPUOPTSF)" >$(CFILEC) @Type "$(CWITHOPT)" >>$(CFILEC) -Type $(CFILEC)SFXFlags: @Echo "$(CFLAGSC)" "$(CCPUOPTXM)" >$(CFILEX) @Type "$(CWITHOPT)" >>$(CFILEX) -Type $(CFILEX)# write special MakeSFX flagsMakeSFXFlags: @Echo "$(CFLAGSS) $(CCPUOPTXM) DATA=NEAR NOSHORTINTEGERS" >$(CFILEM) # not really needed but if someday used: @Type "$(CWITHOPT)" >>$(CFILEM) -Type $(CFILEM)# special rule for adding Amiga internal version number to amiga.camiga$(O): rx > env:VersionDate "say '""'translate(date('E'),'.','/')'""'" $(CC) WITH=$(CFILEC) LISTFILE=$>$(LISTEXTS) OBJNAME=$@ $*.c -Delete env:VersionDate# needed in amiga/amiga.c# should be set in startup-sequence, but just in case:# (only works with OS 2.04 and above)env\:WorkBench: @Execute < < (Workbench_smk.tmp) FailAt 21 If not exists ENV:Workbench Version >nil: SetEnv Workbench $$Workbench Endif <# ################## ### LOCAL_UNZIP #### ################### Read environment variable LOCAL_UNZIP and convert options from old Lattice# v5 to new SAS/C v6 format. You may also use the new DEFINE= syntax but# be sure not to mix v5 and v6 options, otherwise lctosc will be confused.## e.g.: to define FOO_ONE and FOO_TWO enter:## SetEnv LOCAL_UNZIP "-DFOO_ONE -DFOO_TWO"## To make this permanent, i.e. survive an reboot, put the statement into# your startup-sequence or (for AmigaDOS 2.0 or higher only) make sure# LOCAL_UNZIP is stored in the ENVARC: directory too. To do this, simply# copy the file from ENV: to ENVARC:# Copy ENV:LOCAL_UNZIP ENVARC:## For a list of all valid non-standard compilation options see the INSTALL# file in the root zip tree. Please read the notes there before using the# non-standard options.## e.g.: To use the non-standard timezone environment variable "INFOZIP_TZ"# (or another arbitary name) instead of "TZ", type in your shell:## Setenv LOCAL_UNZIP "-DTZ_ENVVAR=*"INFOZIP_TZ*""## Note that you need to escape the quotes of INFOZIP_TZ with leading stars.# To verify that LOCAL_UNZIP has been saved correctly, use the Getenv command:## Getenv LOCAL_UNZIP## ...should display:## -DTZ_ENVVAR="INFOZIP_TZ"#local_unzip: @Execute < < (Local_UnZip_smk.tmp) Failat 21 Echo "" If exists ENV:LOCAL_UNZIP Echo "Using environment variable LOCAL_UNZIP !" Echo "LOCAL_UNZIP: " NOLINE GetEnv LOCAL_UNZIP Copy >NIL: ENV:LOCAL_UNZIP SASCOPTS Else Echo "You could use envvar LOCAL_UNZIP to set your special compilation options." Echo "See the makefile for more information (LOCAL_UNZIP section)." Delete >nil: SASCOPTS quiet Endif Echo "" ; Do not remove the lctosc command! If LOCAL_UNZIP is unset, an ; empty file is created which needed by CommonFlags ! ; Moreover, lctosc also accepts new v6 options, i.e. only changes ; known v5 options. Try `lctosc -Dfoo' and `lctosc DEFINE=foo'. ; However, you *must not* mix v5 and v6 options! lctosc > $(CWITHOPT) ; Now make sure that env:sc/scoptions are NOT used ; we just create an empty file. The options are stored elsewhere. Echo > SCOPTIONS "" NOLINE <# 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, Stack, etc." @Echo " Feel free to mail comments, suggestions, critics..." @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 + -