smakefile
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:21k
源码类别:

压缩解压

开发平台:

MultiPlatform

  1. #===========================================================================
  2. # Makefile for UnZip, ZipInfo, fUnZip, MakeSFX      AMIGA SAS/C Version 6.58
  3. # Version:  5.4                                     last revised:  18 Nov 98
  4. #===========================================================================
  5. # from John Bush <john.bush@east.sun.com>
  6. #            or: <JBush@bix.com>
  7. # updated for SAS/C Version 6.56+ and AmigaDOS 3.1 (V40)
  8. # by Haidinger Walter <walthaid@unix.ict.tuwien.ac.at>
  9. # additional supplements and maintenance by Paul Kienitz
  10. # This makefile should work with at least AmigaDOS 2.04 (V37)  (not tested)
  11. # and will probably not work with AmigaDOS 1.3 (V34)
  12. # If you have any improvements, critics or else please feel free to mail.
  13. # Any response is appreciated. Haidinger Walter <walthaid@unix.ict.tuwien.ac.at>
  14. # Available targets:
  15. # all           builds all executables below
  16. # unzip         builds unzip executable
  17. # unzipsfx      builds unzipsfx executable
  18. # funzip        builds funzip executable
  19. # makesfx       builds makesfx executable
  20. # clean         remove all files created by the compilation
  21. # spotless      like clean target but removes binaries too
  22. ##########################
  23. # USER MACRO DEFINITIONS #
  24. ##########################
  25. # Set the processor to generate code for UnZip and fUnZip. Specify one of:
  26. # ANY 68000 68010 68020 68030 68040 68060  (Default: ANY or 68000)
  27. # Use of the assembly versions is not supported yet since some of the asm
  28. # source file do not assemble with 68000 instructions.
  29. # Any help is appreciated of course.
  30. CUSECPU = ANY
  31. # Uncomment both CUTIL and LUTIL to make use of utility.library of OS 2.04+
  32. # The utility.library is *not* used for UnZipSFX to ensure maximum portability
  33. # between the different Amiga systems (minimal config: 68000 and OS 1.2).
  34. # You can change this by adding the $(LUTIL) macro in the UnZipSFX linking
  35. # rules (See below: Final output targets, UnZipSFX:).
  36. # WARNINGS when using the utility library:
  37. # 1. All Executables will *only* work with AmigaDOS 2.04 (v37) or higher.
  38. # 2. You *need not* compile/link with short-integers using the
  39. #    utility.library. It will crash your machine. See Libraries below.
  40. #
  41. # Default: commented (not used)
  42. #
  43. #CUTIL = UTILLIB DEFINE=_UTILLIB
  44. #LUTIL = WITH SC:LIB/utillib.with    # include necessary linker defines
  45. # Choose one stack-handling method (default=faster)
  46. # StackExtend: Dynamic runtime stack extension. You won't notice stack overflows.
  47. # StackCheck: On a stack overflow a requester appears which allows you to exit.
  48. # Note that either stack watching will slow down your executable because of the
  49. # extra code run on each function entry. On the other hand, you won't crash
  50. # anymore due to stack overflows. However, you should not have *any* stack
  51. # problems with info-zip if you raise your stack to 20000 (which I'd
  52. # recommend as a minimum default stack for all applications) or more using the
  53. # shell stack command. Type 'Stack 20000' or add it to your S:Shell-Startup.
  54. # BTW: Typing 'Stack' prints your current stack size.
  55. #
  56. CSTACK = NOSTACKCHECK STACKEXTEND     # slow, but always works
  57. #CSTACK = STACKCHECK NOSTACKEXTEND    # slow, requester & graceful exit
  58. #CSTACK = NOSTACKCHECK NOSTACKEXTEND  # faster but relies on larger stack (>=10K)
  59. #
  60. # LIBRARIES
  61. # ---------
  62. # Choose one DATAOPTS , SASLIB and LSTARTUP
  63. # Always comment/uncomment all macros of a set.
  64. # Library to use with near data and 2-byte integers
  65. # Notes: o  slower than 4-byte integers with 68000 cpu
  66. #        o  *not* recommended due to poor overall performance
  67. #        o  see comment in amiga/osdep.h
  68. #DATAOPTS = DATA=NEAR SHORTINTEGERS DEF=_NEAR_DATA
  69. #SASLIB   = scs
  70. #LSTARTUP = cres.o
  71. # Library to use with near data and 4-byte integers (DEFAULT)
  72. # *** use this with the utility.library ***
  73. DATAOPTS = DATA=NEAR DEF=_NEAR_DATA
  74. SASLIB   = sc
  75. LSTARTUP = cres.o
  76. # Library to use with far data and 2-byte integers
  77. # use if DYN_ALLOC is not defined
  78. # old default - far data always works but is slower
  79. #DATAOPTS = DATA=FAR SHORTINTEGERS DEF=_FAR_DATA
  80. #SASLIB   = scsnb
  81. #LSTARTUP = c.o
  82. # Library to use with far data and 4-byte integers
  83. # if everything else fails: try this
  84. #DATAOPTS = DATA=FAR DEF=_FAR_DATA
  85. #SASLIB   = scnb
  86. #LSTARTUP = c.o
  87. #
  88. # DEBUGGING
  89. # ---------
  90. # Default: No debugging information added.
  91. # The two macros below will be overwritten if you choose to add
  92. # debug info, therefore need to comment.
  93. CDBG = NODEBUG NOPROFILE NOCOVERAGE    # default: no debug info
  94. LDBG = STRIPDEBUG                      # default: no debug info
  95. # Compiler and loader debug flags.  Uncomment as needed.  Recomment when done.
  96. # Optimization disabled for faster compilation (by using NOOPT)
  97. #CDBG1 = DEF=DEBUG DEF=DEBUG_TIME     # enables Info-ZIP's debug output
  98. # Enable profiling and coverage when desired. Option COVERAGE commented
  99. # seperately because running coverage may corrupt your drive in case of a
  100. # system crash since a file 'cover.dat' is created in your working directory.
  101. # Note that the use of COVERAGE forces the use of the c.o startup module.
  102. #CDBG2 = PROFILE
  103. #CDBG3 = COVERAGE        # must use c.o startup code:
  104. #LSTARTUP = c.o          # Uncomment *only* when you use COVERAGE
  105. # *Uncomment* _HERE_ macros CDBG and LDBG to include debugging information
  106. #CDBG = $(CDBG1) $(CDBG2) $(CDBG3) ADDSYM DEBUG=FULLFLUSH STACKCHECK NOOPT
  107. #LDBG = ADDSYM
  108. # Optional use of memwatch.library which can be found in your
  109. # sc:extras/memlib directory. Please read the short docs (memlib.doc).
  110. # Note that memlib has a small bug: MWTerm() displays always the first entry.
  111. # Get the latest version from aminet (dev/debug/memlib.lha) or
  112. # contact me to get the patch. Uncomment all macros to use.
  113. #CMEMLIB  = DEFINE=MWDEBUG=1       # define to enable library
  114. #LMEMLIB  = SC:LIB/memwatch.lib    # path to library
  115. #LSTARTUP = c.o                    # must use c.o with memlib!
  116. #
  117. # MAPPING
  118. # -------
  119. # Map filenames used when mapping (no need to comment)
  120. #
  121. MAPFS = unzip.map               # UnZip    map filename
  122. MAPFX = unzipsfx.map            # UnZipSFX map filename
  123. MAPFF = funzip.map              # fUnZip   map filename
  124. MAPFM = makesfx.map             # MakeSFX  map filename
  125. # Map file output: Uncomment to highlight and bold headings.
  126. #
  127. #MAPFSTYLE = FANCY
  128. # Map flags for each EXECUTABLE. Uncomment to enable mapping.
  129. # For map options please refer to:
  130. # SAS/C v6 manual, volume 1: user's guide, chapter 8, page 136: map
  131. # Default: all options enabled: f,h,l,o,s,x
  132. #                                 |-> options start here
  133. #LMAPS = $(MAPFSTYLE) MAP $(MAPFS) f,h,l,o,s,x   # UnZip    maps
  134. #LMAPX = $(MAPFSTYLE) MAP $(MAPFX) f,h,l,o,s,x   # UnZipSFX maps
  135. #LMAPF = $(MAPFSTYLE) MAP $(MAPFF) f,h,l,o,s,x   # fUnZip   maps
  136. #LMAPM = $(MAPFSTYLE) MAP $(MAPFM) f,h,l,o,s,x   # MakeSFX  maps
  137. #
  138. # LISTINGS
  139. # --------
  140. # Listfile-extensions for each executable (enter *with* dot)
  141. #
  142. LISTEXTS = .lst         # extension for UnZip and MakeSFX listfiles
  143. LISTEXTX = .xlst        # extension for UnZipSFX listfiles
  144. LISTEXTF = .flst        # extension for fUnZip listfiles
  145. # List files and cross references for each OBJECT.
  146. # Add/remove flags as needed. All listed by default.
  147. # Use LISTINCLUDES only to determine the dependencies for smake
  148. #
  149. CLISTOPT = LISTHEADERS LISTMACROS # LISTSYSTEM LISTINCLUDES
  150. CXREFOPT = XHEAD XSYS
  151. #
  152. # Uncomment to enable listing (default: commented)
  153. # *** WARNING: List files require *lots* of disk space!
  154. #
  155. #CLIST = LIST $(CLISTOPT)
  156. #CXREF = XREF $(CXREFOPT)
  157. #
  158. # SUPPRESSED COMPILER WARNINGS
  159. # ----------------------------
  160. # Compiler warnings to ignore
  161. #
  162. # Warning 105 : module does not define any externally-known symbols
  163. # Warning 304 : Dead assignment eliminated...
  164. # Note    306 : ...function inlined...
  165. # Warning 317 : possibly uninitialized variable...
  166. # Comment to enable.
  167. #
  168. CIGNORE = IGNORE=105,304,306,317
  169. #
  170. # OBJECT EXTENSIONS
  171. #
  172. # Extensions used for objects of each executeable.
  173. # Transformation rules require unique extensions.
  174. # Enter *with* dot.
  175. #
  176. O  = .o         # general extension for objects
  177. OX = .xo        # extension for special UnZipSFX objects
  178. OF = .fo        # extension for special fUnZip objects
  179. # Filename used to store converted options from environment variable
  180. # LOCAL_UNZIP. Default: scoptions_local_unzip
  181. #
  182. CWITHOPT = scoptions_local_unzip
  183. # Filenames to store compiler options to prevent command line overflow
  184. #
  185. # Options file for UnZip and fUnZip
  186. CFILEC = scoptions-unzip
  187. # Options file for UnZipSFX
  188. CFILEX = scoptions-unzipsfx
  189. # Special options for MakeSFX
  190. CFILEM = scoptions-makesfx
  191. # Temp filenames for object lists to load using linker "WITH" command.
  192. #
  193. OBJLISTS = unzip_objlist.with            # UnZip    object list
  194. OBJLISTX = unzipsfx_objlist.with         # UnZipSFX object list
  195. OBJLISTF = funzip_objlist.with           # fUnZip   object list
  196. OBJLISTM = makesfx_objlist.with          # MakeSFX  object list
  197. # Filenames to store linker options
  198. #
  199. LWITHS = unzip.lnk                       # UnZip    linker options
  200. LWITHX = unzipsfx.lnk                    # UnZipSFX linker options
  201. LWITHF = funzip.lnk                      # fUnZip   linker options
  202. LWITHM = makesfx.lnk                     # MakeSFX  linker options
  203. ######################################
  204. #  NOTHING TO CHANGE BEYOND HERE ... #
  205. ######################################
  206. # Compiler definitions
  207. #
  208. CC = sc
  209. #
  210. # Optimizer flags
  211. #
  212. OPTPASSES = 6     # set number of global optimizer passes
  213. #
  214. OPT1 = OPT OPTINL OPTINLOCAL OPTTIME OPTLOOP OPTSCHED
  215. OPT2 = OPTCOMP=$(OPTPASSES) OPTDEP=$(OPTPASSES) OPTRDEP=$(OPTPASSES)
  216. OPT  = $(OPT1) $(OPT2)
  217. # Compiler flags
  218. #
  219. # cpu flags for UnZip and fUnZip
  220. CCPUOPTSF = CPU=$(CUSECPU) $(CUTIL)
  221. # cpu flags for UnzipSFX and MakeSFX (ensures portability to all Amigas)
  222. CCPUOPTXM = CPU=ANY
  223. CDEFINES = $(CMEMLIB) $(CDEFINES) DEF=AMIGA DEF=PROTO
  224. COPTIONS = CODE=NEAR NMINC VERBOSE STRINGMERGE PARAMETERS=BOTH
  225. COPTIONS = $(COPTIONS) ERRORREXX NOERRORCONSOLE MEMSIZE=HUGE $(CLIST) $(CXREF)
  226. COPTIONS = $(COPTIONS) $(CSTACK) STRICT UNSCHAR NOICONS
  227. COPTIONS = $(COPTIONS) $(CIGNORE) $(OPT) $(CDBG)
  228. # common compiler flags
  229. CFLAGSC  = $(CDEFINES) $(DATAOPTS) $(COPTIONS)
  230. # special compiler flags with $(DATAOPTS) excluded
  231. CFLAGSS  = $(CDEFINES) $(COPTIONS)
  232. # Linker definitions
  233. #  See SASLIB definition above
  234. #
  235. LD = slink
  236. # special linker flags for UnZip to create pure (i.e. resident) binary.
  237. LDFLAGSS = FROM SC:LIB/$(LSTARTUP)
  238. # common linker flags for all other executeables
  239. LDFLAGSC = FROM SC:LIB/c.o
  240. LDFLAGS2 = NOICONS $(LDBG)
  241. # special linker flags to select library set above
  242. LIBFLAGSS = LIB $(LMEMLIB) SC:LIB/$(SASLIB).lib SC:LIB/amiga.lib
  243. # common linker flags
  244. LIBFLAGSC = LIB $(LMEMLIB) SC:LIB/sc.lib SC:LIB/amiga.lib
  245. ##################
  246. # TARGET OBJECTS #
  247. ##################
  248. # UnZip Objects
  249. OBJS1 = unzip$(O) crc32$(O) crctab$(O) crypt$(O) envargs$(O) explode$(O)
  250. OBJS2 = extract$(O) fileio$(O) globals$(O) list$(O) inflate$(O) match$(O)
  251. OBJS3 = process$(O) ttyio$(O) unreduce$(O) unshrink$(O) zipinfo$(O)
  252. OBJSA = amiga$(O) time_lib$(O) stat$(O) filedate$(O)
  253. OBJS  = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJSA)
  254. # UnZipSFX Objects
  255. OBJX1 = unzip$(OX) extract$(OX) inflate$(OX) match$(OX) process$(OX)
  256. OBJXI = crypt$(O) crc32$(O) crctab$(O) fileio$(O) globals$(O) ttyio$(O)
  257. OBJXA = amiga$(OX) time_lib$(O) stat$(O) filedate$(O)
  258. OBJX  = $(OBJX1) $(OBJXI) $(OBJXA)
  259. # fUnZip Objects
  260. OBJF1 = funzip$(O)
  261. OBJF2 = crc32$(OF) crypt$(OF) globals$(OF) inflate$(OF) ttyio$(OF)
  262. OBJFA = filedate$(OF) stat$(O)
  263. OBJF  = $(OBJF1) $(OBJF2) $(OBJFA)
  264. # MakeSFX Objects
  265. OBJM = makesfx$(O)
  266. # Common header files
  267. UNZIP_H1 = unzip.h unzpriv.h globals.h
  268. UNZIP_HA = amiga/amiga.h amiga/z-time.h amiga/z-stat.h
  269. UNZIP_H  = $(UNZIP_H1) $(UNZIP_HA)
  270. # Output targets
  271. UNZIPS = UnZip UnZipSFX fUnZip MakeSFX
  272. #######################################
  273. # DEFAULT TARGET AND PROCESSING RULES #
  274. #######################################
  275. all: request flush $(UNZIPS)
  276. # UnZip transformation rules
  277. #
  278. .c$(O) :
  279.         $(CC) WITH=$(CFILEC) LISTFILE=$>$(LISTEXTS) OBJNAME=$@ $*.c
  280. # UnZipSFX transformation rules
  281. #
  282. .c$(OX):
  283.         $(CC) DEF=SFX WITH=$(CFILEC) LISTFILE=$>$(LISTEXTX) OBJNAME=$@ $*.c
  284. # fUnZip transformation rules
  285. #
  286. .c$(OF):
  287.         $(CC) DEF=FUNZIP WITH=$(CFILEC) LISTFILE=$>$(LISTEXTF) OBJNAME=$@ $*.c
  288. #########################
  289. # Final output targets. #
  290. #########################
  291. unzip:    local_unzip CommonFlags $(OBJS)
  292.           @Echo "$(OBJS)" >$(OBJLISTS)
  293.           Type $(OBJLISTS)
  294. # -----
  295. # Note:   Change $(LDFLAGSS) to $(LDFLAGSC) if DYN_ALLOC is *not* defined.
  296. # -----
  297.           @Echo "$(LDFLAGSS) $(LUTIL) WITH $(OBJLISTS) $(LIBFLAGSS) " 
  298.                 "$(LDFLAGS2) $(LMAPS)" >$(LWITHS)
  299.           Type $(LWITHS)
  300.           $(LD) TO UnZip    WITH $(LWITHS)
  301. funzip:   local_unzip CommonFlags $(OBJF)
  302.           @Echo "$(OBJF)" >$(OBJLISTF)
  303.           Type $(OBJLISTF)
  304.           @Echo "$(LDFLAGSC) $(LUTIL) WITH $(OBJLISTF) $(LIBFLAGSS) " 
  305.                 "$(LDFLAGS2) $(LMAPF)" >$(LWITHF)
  306.           Type $(LWITHF)
  307.           $(LD) TO fUnZip   WITH $(LWITHF)
  308. unzipsfx: local_unzip SFXFlags $(OBJX)
  309.           @Echo "$(OBJX)" >$(OBJLISTX)
  310.           Type $(OBJLISTX)
  311. # ----
  312. # Note:   Insert $(LUTIL) here, to use utility library with UnZipSFX.
  313. # -----                      vvvvvvv
  314.           @Echo "$(LDFLAGSC)          WITH $(OBJLISTX) $(LIBFLAGSS) " 
  315.                 "$(LDFLAGS2) $(LMAPX)" >$(LWITHX)
  316.           Type $(LWITHX)
  317.           $(LD) TO UnZipSFX WITH $(LWITHX)
  318. makesfx:  MakeSFXFlags $(OBJM)
  319.           @Echo "$(OBJM)" >$(OBJLISTM)
  320.           Type $(OBJLISTM)
  321.           @Echo "$(LDFLAGSC) $(LUTIL) WITH $(OBJLISTM) $(LIBFLAGSC) " 
  322.                 "$(LDFLAGS2) $(LMAPM)" >$(LWITHM)
  323.           Type $(LWITHM)
  324.           # never use short-integers with MakeSFX !
  325.           $(LD) TO MakeSFX  WITH $(LWITHM)
  326. clean:
  327.         -Delete >nil: $(OBJS) quiet
  328.         -Delete >nil: $(OBJX) quiet
  329.         -Delete >nil: $(OBJF) quiet
  330.         -Delete >nil: $(OBJM) quiet
  331.         -Delete >nil: $(OBJLISTS) $(OBJLISTX) $(OBJLISTF) $(OBJLISTM) quiet
  332.         -Delete >nil: $(MAPFS) $(MAPFX) $(MAPFF) $(MAPFM) quiet
  333.         -Delete >nil: #?$(LISTEXTS) #?$(LISTEXTX) #?$(LISTEXTF) quiet
  334.         -Delete >nil: $(CWITHOPT) $(CFILEC) $(CFILEX) $(CFILEM) quiet
  335.         -Delete >nil: SCOPTIONS SASCOPTS quiet
  336.         -Delete >nil: $(LWITHS) $(LWITHX) $(LWITHF) $(LWITHM) quiet
  337.         -Delete >nil: #?.q.?? #?.tmp #?.cov quiet
  338. spotless: clean
  339.         -Delete >nil: $(UNZIPS) quiet
  340. # UnZip dependencies:
  341. # (objects not needed by Amiga port are commented)
  342. # special rule for adding Amiga internal version number to UnZip
  343. amiga$(O):          amiga/amiga.c $(UNZIP_H) crypt.h env:Workbench
  344. time_lib$(O):       amiga/time_lib.c amiga/z-time.h
  345. stat$(O):           amiga/stat.c     amiga/z-stat.h amiga/z-time.h
  346. filedate$(O):       amiga/filedate.c amiga/z-time.h crypt.h
  347. api$(O):            api.c      $(UNZIP_H) version.h #zlib.h
  348. apihelp$(O):        apihelp.c  $(UNZIP_H) version.h
  349. crc32$(O):          crc32.c    $(UNZIP_H) zip.h
  350. crctab$(O):         crctab.c   $(UNZIP_H) zip.h
  351. crypt$(O):          crypt.c    $(UNZIP_H) zip.h crypt.h ttyio.h
  352. envargs$(O):        envargs.c  $(UNZIP_H)
  353. explode$(O):        explode.c  $(UNZIP_H)
  354. extract$(O):        extract.c  $(UNZIP_H) crypt.h
  355. fileio$(O):         fileio.c   $(UNZIP_H) crypt.h ttyio.h ebcdic.h
  356. globals$(O):        globals.c  $(UNZIP_H)
  357. inflate$(O):        inflate.c  $(UNZIP_H) inflate.h #zlib.h
  358. list$(O):           list.c     $(UNZIP_H)
  359. match$(O):          match.c    $(UNZIP_H)
  360. process$(O):        process.c  $(UNZIP_H)
  361. ttyio$(O):          ttyio.c    $(UNZIP_H) zip.h crypt.h ttyio.h
  362. unreduce$(O):       unreduce.c $(UNZIP_H)
  363. unshrink$(O):       unshrink.c $(UNZIP_H)
  364. unzip$(O):          unzip.c    $(UNZIP_H) crypt.h version.h consts.h #zlib.h
  365. #unzipstb$(O):       unzipstb.c $(UNZIP_H) version.h
  366. zipinfo$(O):        zipinfo.c  $(UNZIP_H)
  367. # UnZipSFX dependencies:
  368. #
  369. # special rule for adding Amiga internal version number to UnZipSFX
  370. amiga$(OX):      amiga/amiga.c $(UNZIP_H) amiga/filedate.c amiga/stat.c crypt.h
  371. unzip$(OX):      unzip.c    $(UNZIP_H) crypt.h version.h consts.h
  372. extract$(OX):    extract.c  $(UNZIP_H) crypt.h
  373. inflate$(OX):    inflate.c  $(UNZIP_H) inflate.h #zlib.h
  374. match$(OX):      match.c    $(UNZIP_H)
  375. process$(OX):    process.c  $(UNZIP_H)
  376. # fUnZip dependencies:
  377. #
  378. funzip$(O):      funzip.c   $(UNZIP_H) crypt.h ttyio.h tables.h
  379. crc32$(OF):      crc32.c    $(UNZIP_H) zip.h
  380. crypt$(OF):      crypt.c    $(UNZIP_H) zip.h crypt.h ttyio.h
  381. globals$(OF):    globals.c  $(UNZIP_H)
  382. inflate$(OF):    inflate.c  $(UNZIP_H) inflate.h crypt.h #zlib.h
  383. ttyio$(OF):      ttyio.c    $(UNZIP_H) zip.h crypt.h ttyio.h
  384. filedate$(OF):   amiga/filedate.c amiga/z-time.h crypt.h
  385. # MakeSFX dependencies
  386. #
  387. # special transformation rules to never use shortintegers:
  388. makesfx$(O):      amiga/makesfx.c
  389.         $(CC) WITH=$(CFILEM) LISTFILE=$>$(LISTEXTS) OBJNAME=$@ $*.c
  390. ########################
  391. # DEPENDECIES END HERE #
  392. ########################
  393. # flush all libraries to provide more mem for compilation
  394. flush:
  395.         @Avail flush >nil:
  396. # write common compiler flags to file and echo to user
  397. CommonFlags:
  398.         @Echo "$(CFLAGSC)" "$(CCPUOPTSF)" >$(CFILEC)
  399.         @Type "$(CWITHOPT)"              >>$(CFILEC)
  400.         -Type $(CFILEC)
  401. SFXFlags:
  402.         @Echo "$(CFLAGSC)" "$(CCPUOPTXM)" >$(CFILEX)
  403.         @Type "$(CWITHOPT)"              >>$(CFILEX)
  404.         -Type $(CFILEX)
  405. # write special MakeSFX flags
  406. MakeSFXFlags:
  407.         @Echo "$(CFLAGSS) $(CCPUOPTXM) DATA=NEAR NOSHORTINTEGERS" >$(CFILEM)
  408.         # not really needed but if someday used:
  409.         @Type "$(CWITHOPT)" >>$(CFILEM)
  410.         -Type $(CFILEM)
  411. # special rule for adding Amiga internal version number to amiga.c
  412. amiga$(O):
  413.         rx > env:VersionDate "say '""'translate(date('E'),'.','/')'""'"
  414.         $(CC) WITH=$(CFILEC) LISTFILE=$>$(LISTEXTS) OBJNAME=$@ $*.c
  415.         -Delete env:VersionDate
  416. # needed in amiga/amiga.c
  417. # should be set in startup-sequence, but just in case:
  418. # (only works with OS 2.04 and above)
  419. env:WorkBench:
  420.         @Execute < < (Workbench_smk.tmp)
  421.            FailAt 21
  422.            If not exists ENV:Workbench
  423.               Version >nil:
  424.               SetEnv Workbench $$Workbench
  425.            Endif
  426.         <
  427. # #################
  428. # ### LOCAL_UNZIP ###
  429. # #################
  430. #
  431. # Read environment variable LOCAL_UNZIP and convert options from old Lattice
  432. # v5 to new SAS/C v6 format. You may also use the new DEFINE= syntax but
  433. # be sure not to mix v5 and v6 options, otherwise lctosc will be confused.
  434. #
  435. # e.g.: to define FOO_ONE and FOO_TWO enter:
  436. #
  437. # SetEnv LOCAL_UNZIP "-DFOO_ONE -DFOO_TWO"
  438. #
  439. # To make this permanent, i.e. survive an reboot, put the statement into
  440. # your startup-sequence or (for AmigaDOS 2.0 or higher only) make sure
  441. # LOCAL_UNZIP is stored in the ENVARC: directory too. To do this, simply
  442. # copy the file from ENV: to ENVARC:
  443. #   Copy ENV:LOCAL_UNZIP ENVARC:
  444. #
  445. # For a list of all valid non-standard compilation options see the INSTALL
  446. # file in the root zip tree. Please read the notes there before using the
  447. # non-standard options.
  448. #
  449. # e.g.: To use the non-standard timezone environment variable "INFOZIP_TZ"
  450. # (or another arbitary name) instead of "TZ", type in your shell:
  451. #
  452. # Setenv LOCAL_UNZIP "-DTZ_ENVVAR=*"INFOZIP_TZ*""
  453. #
  454. # Note that you need to escape the quotes of INFOZIP_TZ with leading stars.
  455. # To verify that LOCAL_UNZIP has been saved correctly, use the Getenv command:
  456. #
  457. # Getenv LOCAL_UNZIP
  458. #
  459. # ...should display:
  460. #
  461. # -DTZ_ENVVAR="INFOZIP_TZ"
  462. #
  463. local_unzip:
  464.         @Execute < < (Local_UnZip_smk.tmp)
  465.            Failat 21
  466.            Echo ""
  467.            If exists ENV:LOCAL_UNZIP
  468.               Echo "Using environment variable LOCAL_UNZIP !"
  469.               Echo "LOCAL_UNZIP: " NOLINE
  470.               GetEnv LOCAL_UNZIP
  471.               Copy >NIL: ENV:LOCAL_UNZIP SASCOPTS
  472.            Else
  473.               Echo "You could use envvar LOCAL_UNZIP to set your special compilation options."
  474.               Echo "See the makefile for more information (LOCAL_UNZIP section)."
  475.               Delete >nil: SASCOPTS quiet
  476.            Endif
  477.            Echo ""
  478.            ; Do not remove the lctosc command! If LOCAL_UNZIP is unset, an
  479.            ; empty file is created which needed by CommonFlags !
  480.            ; Moreover, lctosc also accepts new v6 options, i.e. only changes
  481.            ; known v5 options. Try `lctosc -Dfoo' and `lctosc DEFINE=foo'.
  482.            ; However, you *must not* mix v5 and v6 options!
  483.            lctosc > $(CWITHOPT)
  484.            ; Now make sure that env:sc/scoptions are NOT used
  485.            ; we just create an empty file. The options are stored elsewhere.
  486.            Echo > SCOPTIONS "" NOLINE
  487.         <
  488. # Echo request to the user
  489. #
  490. request:
  491.         @Echo ""
  492.         @Echo " This makefile is for use with SAS/C version 6.58."
  493.         @Echo " If you still have an older version, please upgrade!"
  494.         @Echo " Patches are available on the Aminet under biz/patch/sc#?."
  495.         @Echo ""
  496.         @Echo " Just a simple request..."
  497.         @Echo " Please give me a mail that you compiled whether you encounter any errors"
  498.         @Echo " or not. I'd just like to know how many Amiga users actually make use of"
  499.         @Echo " this makefile."
  500.         @Echo " If you mail me, I'll put you on my mailing-list and notify you whenever"
  501.         @Echo " new versions of Info-Zip are released."
  502.         @Echo " Have a look at the makefile for changes like CPU type, UtilLib, Stack, etc."
  503.         @Echo " Feel free to mail comments, suggestions, critics..."
  504.         @Echo " Enjoy Info-Zip !"
  505.         @Echo " Haidinger Walter, <walthaid@unix.ict.tuwien.ac.at>"
  506.         @Echo ""
  507. # Echo help in case of an error
  508. #
  509. .ONERROR:
  510.         @Echo ""
  511.         @Echo "[sigh] An error running this makefile was detected."
  512.         @Echo "This message may also appear if you interrupted smake by pressing CTRL-C."
  513.         @Echo "Contact Info-ZIP authors at Zip-Bugs@lists.wku.edu or me for help."
  514.         @Echo "Haidinger Walter, <walthaid@unix.ict.tuwien.ac.at>"