home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / UNZP50P1.ZIP / Makefile < prev    next >
Makefile  |  1993-01-23  |  23KB  |  621 lines

  1. #==============================================================================
  2. # Makefile for UnZip, ZipInfo & FUnZip:  Unix, OS/2, MS-DOS ("real" makes only)
  3. # Version:  5.0 (inflate,explode)                                20 August 1992
  4. #==============================================================================
  5. #
  6. #
  7. # INSTRUCTIONS (such as they are):
  8. #
  9. # "make vax"    -- makes UnZip on a VAX 11-780 BSD 4.3 in current directory
  10. #           (or a SysV VAX, or an 8600 running Ultrix, or...)
  11. # "make"    -- uses environment variable SYSTEM to set the type
  12. #           system to compile for.  This doesn't work for some
  13. #           particularly brain-damaged versions of make (VAX BSD,
  14. #           Gould, and SCO Unix are in this group).  If SYSTEM not
  15. #           set, gives instructions on what to try instead.
  16. # "make list"    -- lists all supported systems (targets), including related
  17. #           utilities' targets
  18. # "make wombat" -- Chokes and dies if you haven't added the specifics
  19. #           for your Wombat 68000 (or whatever) to the systems list.
  20. #
  21. # CF are flags for the C compiler.  LF are flags for the loader.  LF2 are
  22. # more flags for the loader, if they need to be at the end of the line
  23. # instead of at the beginning (for example, some libraries).  LOCAL_UNZIP
  24. # is an environment variable that can be used to add default C flags to
  25. # your compile without editing the Makefile (e.g., -DDEBUG_STRUC, or -FPi87
  26. # on PCs).
  27. #
  28. # My host (a VAX 11-780 running BSD 4.3) is hereafter referred to as "my host."
  29. #
  30. # My host's /usr/include/sys/param.h defines BSD for me.  You may have to add
  31. # "-DBSD" to the list of CF for your system.
  32. #
  33. # Some versions of make do not define the macro "$(MAKE)" (my host did not).
  34. # The makefile should now handle such systems correctly, more or less; the
  35. # possible exception to this is if you've used a make command-line option
  36. # (for example, the one which displays the commands which WOULD be executed,
  37. # but doesn't actually execute them).  It probably needs some more tinkering.
  38. # If things still don't work, use "make" instead of "$(MAKE)" in your system's
  39. # makerule.  Or try adding the following line to your .login file:
  40. #   setenv MAKE "make"
  41. # (It didn't help on my host.)
  42. #
  43. # Memcpy and memset are provided for those systems that don't have them;
  44. # they're found in misc.c and will be used if -DZMEM is included in the list
  45. # of CF.  These days *almost* all systems have them (they're mandated by
  46. # ANSI), but older systems might be lacking.  And at least one machine's
  47. # version results in some serious performance degradation...
  48. #
  49. # Be sure to test your nice new UnZip; successful compilation does not always
  50. # imply a working program.
  51.  
  52.  
  53. #####################
  54. # MACRO DEFINITIONS #
  55. #####################
  56.  
  57. # Defaults most systems use (use LOCAL_UNZIP in environment to add flags, 
  58. # such as -DNOMEMCPY).
  59.  
  60. CRYPTF =
  61. CRYPTO =
  62. # Uncomment next two lines for decryption version:
  63. #CRYPTF = -DCRYPT
  64. #CRYPTO = crypt$O
  65.  
  66. # UnZip flags
  67. CC = cc#    try using "gcc" target rather than changing this (if you do,
  68. LD = cc#    you MUST change LD, too--else "unresolved symbol:  ___main")
  69. LOC = $(LOCAL_UNZIP) $(CRYPTF)
  70. CF = -O $(LOC)
  71. LF = -o unzip
  72. LF2 = -s
  73.  
  74. # ZipInfo flags
  75. ZC = -DZIPINFO
  76. ZL = -o zipinfo
  77. ZL2 = -s
  78.  
  79. # FUnZip flags
  80. FC = # not used
  81. FL = -o funzip
  82. FL2 = -s
  83.  
  84. # general-purpose stuff
  85. LN = rm -f misc_.c; ln
  86. RM = rm -f
  87. E =
  88. O = .o
  89. SHELL = /bin/sh
  90. INSTALL = cp#            probably can change this to 'install' if you have it
  91. BINDIR = /usr/local/bin#   target directory - where to install executables
  92.  
  93. # object files
  94. OBJS1 = unzip$O $(CRYPTO) envargs$O explode$O extract$O file_io$O inflate$O
  95. OBJS2 = mapname$O match$O misc$O unreduce$O unshrink$O
  96. OBJS = $(OBJS1) $(OBJS2)
  97. LOBJS = $(OBJS)
  98. OS2_OBJS = $(OBJS:.o=.obj) os2unzip.obj
  99. OBJZ = zipinfo$O envargs$O match$O misc_$O
  100. OS2_OBJZ = $(OBJZ:.o=.obj) os2zinfo.obj
  101. OBJF = funzip$O $(CRYPTO) inflate$O
  102. OS2_OBJF = # not yet supported
  103. UNZIPS = unzip$E # zipinfo$E funzip$E    # zipinfo, funzip not fully supported
  104. #                    #  yet (next release)
  105.  
  106. # list of supported systems/targets in this version
  107. SYSTEMS1 = 386i 3Bx 7300 amdahl apollo aviion bsd bull c120 c210 coherent
  108. SYSTEMS2 = convex cray cray_cc cray_v3 cyber_sgi dec dnix encore eta
  109. SYSTEMS3 = gcc gcc_dos generic generic2 gould hk68 hp indigo linux
  110. SYSTEMS4 = minix mips msc_dos next osf1 p_iris pyramid rs6000 rtaix
  111. SYSTEMS5 = sco sco_dos sco_x286 sequent sgi stellar sun sysv sysv6300
  112. SYSTEMS6 = tahoe ultrix vax wombat xos
  113.  
  114. SYS_UTIL1 = zi_dos zi_gcc zi_indigo zipinfo fu_gcc funzip
  115. # SYS_UTIL2 = ship ship_dos ship_sysv
  116.  
  117.  
  118. ####################
  119. # DEFAULT HANDLING #
  120. ####################
  121.  
  122. # The below will try to use your shell variable "SYSTEM" as the type system
  123. # to use (e.g., if you type "make" with no parameters at the command line).
  124. # The test for $(MAKE) is necessary for VAX BSD make (and Gould, apparently),
  125. # as is the "goober" (else stupid makes see an "else ;" statement, which they
  126. # don't like).  "goober" must then be made into a valid target for machines
  127. # which DO define MAKE properly (and have SYSTEM set).  Quel kludge, non?
  128. # And to top it all off, it appears that the VAX, at least, can't pick SYSTEM
  129. # out of the environment either (which, I suppose, should not be surprising).
  130. # [Btw, if the empty "goober" target causes someone else's make to barf, just
  131. # add an "@echo > /dev/null" command (or whatever).  Works OK on the Amdahl
  132. # and Crays, though.]
  133.  
  134. default:
  135.     @if test -z "$(MAKE)"; then\
  136.         if test -z "$(SYSTEM)";\
  137.         then make help;\
  138.         else make $(SYSTEM) MAKE="make";\
  139.         fi;\
  140.     else\
  141.         if test -z "$(SYSTEM)";\
  142.         then $(MAKE) help;\
  143.         else $(MAKE) $(SYSTEM) goober;\
  144.         fi;\
  145.     fi
  146.  
  147. goober:
  148.  
  149. help:
  150.     @echo
  151.     @echo\
  152.  "  If you're not sure about the characteristics of your system, try typing"
  153.     @echo\
  154.  '  "make generic".  If the compiler barfs and says something unpleasant about'
  155.     @echo\
  156.  '  "timezone redefined," try typing "make clean" followed by "make generic2".'
  157.     @echo\
  158.  '  One of these actions should produce a working copy of unzip on most Unix'
  159.     @echo\
  160.  '  systems.  If you know a bit more about the machine on which you work, you'
  161.     @echo\
  162.  '  might try "make list" for a list of the specific systems supported herein.'
  163.     @echo\
  164.  '  And as a last resort, feel free to read the numerous comments within the'
  165.     @echo\
  166.  '  Makefile itself.  Note that to compile the decryption version of UnZip,'
  167.     @echo\
  168.  '  you must obtain crypt.c separately, in addition to uncommenting two lines'
  169.     @echo\
  170.  '  in Makefile (see the main Contents file for ftp and mail-server sites).'
  171.     @echo\
  172.  '  Have an excruciatingly pleasant day.'
  173.     @echo
  174.  
  175. list:
  176.     @echo
  177.     @echo\
  178.  'Type "make <system>", where <system> is one of the following:'
  179.     @echo
  180.     @echo  "    $(SYSTEMS1)"
  181.     @echo  "    $(SYSTEMS2)"
  182.     @echo  "    $(SYSTEMS3)"
  183.     @echo  "    $(SYSTEMS4)"
  184.     @echo  "    $(SYSTEMS5)"
  185.     @echo  "    $(SYSTEMS6)"
  186.     @echo
  187.     @echo\
  188.  'Otherwise set the shell variable SYSTEM to one of these and just type "make".'
  189.     @echo\
  190.  'Targets for related utilities (ZipInfo) include:'
  191.     @echo
  192.     @echo  "    $(SYS_UTIL1)"
  193. #    @echo  "    $(SYS_UTIL2)"
  194.     @echo
  195.     @echo\
  196.  'For further (very useful) information, please read the comments in Makefile.'
  197.     @echo
  198.  
  199.  
  200. ###############################################
  201. # BASIC COMPILE INSTRUCTIONS AND DEPENDENCIES #
  202. ###############################################
  203.  
  204. .c$O :
  205.     $(CC) -c $(CF) $*.c
  206.  
  207. unzips:        $(UNZIPS)
  208.  
  209. unzip$E:    $(OBJS)
  210.     $(LD) $(LF) $(LOBJS) $(LF2)
  211.  
  212. crypt$O:        crypt.c unzip.h zip.h    # may or may not be in distribution
  213. envargs$O:      envargs.c unzip.h
  214. explode$O:      explode.c unzip.h
  215. extract$O:      extract.c unzip.h
  216. file_io$O:      file_io.c unzip.h
  217. funzip$O:       funzip.c unzip.h
  218. inflate$O:      inflate.c unzip.h
  219. mapname$O:      mapname.c unzip.h
  220. match$O:        match.c unzip.h
  221. misc$O:         misc.c unzip.h
  222. os2unzip$O:     os2unzip.c unzip.h    # for OS/2 only
  223. os2zinfo$O:     os2unzip.c unzip.h    # for OS/2 only
  224. unreduce$O:     unreduce.c unzip.h
  225. unshrink$O:     unshrink.c unzip.h
  226. unzip$O:        unzip.c unzip.h
  227.  
  228. all:    generic_msg generic zipinfo
  229.  
  230. generic_msg:
  231.     @echo
  232.     @echo\
  233.  '  Attempting "make generic" and "make zipinfo" now.  If this fails for some'
  234.     @echo\
  235.  '  reason, type "make help" and/or "make list" for suggestions.'
  236.     @echo
  237.  
  238. install:    $(UNZIPS)
  239.     $(INSTALL) $(UNZIPS) $(BINDIR)
  240.  
  241. clean:
  242.     rm -f $(OBJS) unzip$E $(OBJZ) zipinfo$E
  243.  
  244.  
  245. ################################
  246. # INDIVIDUAL MACHINE MAKERULES #
  247. ################################
  248.  
  249. # these are the makerules for various systems
  250. # TABS ARE REQUIRED FOR MANY VERSIONS OF "MAKE"!
  251.  
  252.  
  253. # ---------------------------------------------------------------------------
  254. #   Generic targets (can't assume make utility groks "$(MAKE)")
  255. # ---------------------------------------------------------------------------
  256.  
  257. generic:    unzip    # first try if unknown
  258.  
  259. generic2:        # second try if unknown:  hope make is called "make"...
  260.     make unzip CF="$(CF) -DBSD"
  261.  
  262. # ---------------------------------------------------------------------------
  263. #   "Normal" group (both big- and little-endian, structure-padding or not):
  264. # ---------------------------------------------------------------------------
  265.  
  266. 386i:        unzip    # sun386i, SunOS 4.0.2
  267. 3Bx:        unzip    # AT&T 3B2/1000-80; should work on any WE32XXX machine
  268. 7300:        unzip    # AT&T 7300 (M68000/SysV)
  269. apollo:        unzip    # Apollo Domain/OS machines
  270. bull:        unzip    # Bull DPX/2, BOS 2.00.45 (doesn't require -Xk switch)
  271. coherent:    unzip    # Coherent 3.10, Mark Williams C
  272. cray_cc:    unzip    # Cray-2 and Y-MP, using default (possibly old) compiler
  273. dec:        unzip    # DEC 5820 (MIPS RISC), test version of Ultrix v4.0
  274. encore:        unzip    # Multimax
  275. eta:        unzip    # ETA-10P*, hybrid SysV with BSD 4.3 enhancements
  276. gould:        unzip    # Gould PN9000 running UTX/32 2.1Bu01
  277. hp:        unzip    # HP 9000 series (68020), 4.3BSD or HP-UX A.B3.10 Ver D
  278. hp_ux:        unzip    # (to match zip's makefile entry)
  279. mips:        unzip    # MIPS M120-5(?), SysV.3 [error in sys/param.h file?]
  280. pyramid:    unzip    # Pyramid 90X, prob. all, under >= OSx4.1, BSD universe
  281. rtaix:        unzip    # IBM RT 6150 under AIX 2.2.1
  282. sco:        unzip    # Xenix/386 (tested on 2.3.1); SCO Unix 3.2.0.
  283. stellar:    unzip    # gs-2000
  284. sun:        unzip    # Sun 3, 4; SunOS 4.x (SOME SYSTEMS ARE SYSTEM V!)
  285. tahoe:        unzip    # tahoe (CCI Power6/32), 4.3BSD
  286. ultrix:        unzip    # VAXen, DEC 58x0 (MIPS guts), DECstation 2100; v4.x
  287. vax:        unzip    # general-purpose VAX target (not counting VMS)
  288.  
  289. # ---------------------------------------------------------------------------
  290. #   BSD group (for timezone structs [struct timeb]):
  291. # ---------------------------------------------------------------------------
  292.  
  293. bsd:        _bsd    # generic BSD (BSD 4.2 & Ultrix handled in unzip.h)
  294.  
  295. _bsd:
  296.     $(MAKE) unzip CF="$(CF) -DBSD"
  297.  
  298. # ---------------------------------------------------------------------------
  299. #   SysV group (for extern long timezone and ioctl.h instead of sgtty.h):
  300. # ---------------------------------------------------------------------------
  301.  
  302. amdahl:        _sysv    # Amdahl (IBM) mainframe, UTS (SysV) 1.2.4 and 2.0.1
  303. aviion:         _sysv    # Data General AViiONs, DG/UX 4.3x
  304. sgi:        _sysv    # Silicon Graphics Iris 4D, Irix SysV rel. 3.3.2
  305. sysv:        _sysv    # generic System V Unix
  306. xos:        _sysv    # Olivetti LSX-3005..3045, X/OS 2.3 and 2.4
  307.  
  308. _sysv:
  309.     $(MAKE) unzip CF="$(CF) -DSYSV -DTERMIO"
  310.  
  311. # ---------------------------------------------------------------------------
  312. #   "Unique" group (require non-standard options):
  313. # ---------------------------------------------------------------------------
  314.  
  315. # Apparently the C-120 has an optimization bug, and possibly another
  316. # bug in the (SysV?) time routines which adds 11 years to the date.
  317. # -DCONVEX not needed?  [RZM:  The remark above the C-120 entry 
  318. # about a bug may not be true.  I think it is rather time procedures
  319. # uncompatibility between unixes.] [GRR:  So is -O2 ok for c120?]
  320. #
  321. c120:            # Convex C-120, OS 9.0, with non-vectorizing cc 4.0
  322.     $(MAKE) unzip CF="-O1 $(LOC) -Dunix -DBSD"
  323.  
  324. c210:            # Convex C-210, OS 9.0, cc 4.0
  325.     $(MAKE) unzip CF="-O2 $(LOC) -Dunix -DBSD"
  326.  
  327. # Enclosed you'll find a context diff for the unzip41 makefile
  328. # which enhances compilation on a convex.  The previous version
  329. # probably worked great a couple of years ago, and would still do
  330. # so if one compiles in our "backward compatible" pcc mode.   The
  331. # following allows it to work better in a modern convexian environment.
  332. # [This target results in the following error on various Convex's, 
  333. # however:  "cc: Error on line 79 of file_io.c: 'ioctl' redeclared:
  334. # incompatible types."]
  335. #
  336. convex:            # previous target was tested on C200/C400
  337.     $(MAKE) unzip CF="$(CF) -Dunix -DCONVEX -ext" LF="$(LF) -ext"
  338.  
  339. # Cray-2 and Y-MP, running Unicos 5.1 to 6.1 (SysV + BSD enhancements)
  340. # and Standard (ANSI) C compiler 1.5, 2.0 or 3.0.
  341. cray:
  342.     $(MAKE) unzip CC="scc" LD="scc"
  343.  
  344. # Ditto, for Cray Standard C 3.0 or later.
  345. cray_v3:
  346.     $(MAKE) unzip CC="scc" LD="scc" CF="$(CF) -h scalar3 -h vector3"
  347.  
  348. # The unzip41 build on a Cyber 910/SGI running Irix v3.3.3 was successful
  349. # with the following change to Makefile:
  350. cyber_sgi:
  351.     $(MAKE) unzip CF="$(CF) -I/usr/include/bsd"\
  352.      LF="-lbsd $(LF)"
  353.  
  354. # The DIAB dnix 5.3 compiler does not define __STDC__ but understands
  355. # prototypes, void, etc., anyway.  It also does not provide any predefined
  356. # macros to detect this (aside from "unix" and the four file, line, time
  357. # and date macros).  Thus we must define MODERN and PROTO by hand.
  358. #
  359. dnix:        # 680X0, DIAB dnix 5.2/5.3 (a Swedish System V clone)
  360.     $(MAKE) unzip CF="$(CF) -DPROTO -DMODERN"
  361.  
  362. # Generic BSDish Unix gcc.  ``The -O2 only works with the latest version of
  363. # gcc; you may have to use -O only for earlier versions.  I have no idea why
  364. # -s causes this bug in gcc.''  [Bug:  "nm: unzip: no name list", "collect:
  365. # /usr/bin/nm returned 1 exit status".]  If you don't have strip, don't
  366. # worry about it (it just makes the executable smaller).
  367. #
  368. gcc:
  369.     $(MAKE) unzip CC=gcc LD=gcc CF="-O2 $(LOC)" LF2=""
  370.     strip unzip
  371.  
  372. # MS-DOS with D.J. Delorie's djgcc 1.06.  Note that go32 doesn't support
  373. # dos function 0x38 (yet); to fix, append to line 400 of exphdlr.c (go32)
  374. # the following:  "case 0x38:".
  375. #
  376. gcc_dos:    # may need to add -Uunix to CF
  377.     $(MAKE) unzip CC=gcc LD=gcc CF="-O2 -Wall $(LOC)"\
  378.      LF="-s" LF2="-o unzip"
  379.     aout2exe unzip
  380.  
  381. # Heurikon HK68 (68010), UniPlus+ System V 5.0, Green Hills C-68000
  382. hk68:
  383.     $(MAKE) unzip CC="gcc" LD="gcc" LF="-n $(LF)" \
  384.     CF="-ga -X138 $(LOC) -Dlocaltime=localti -Dtimezone=timezon"
  385.  
  386. # Rules needed to build the unzip program for an Iris Indigo running
  387. # Irix Version 4.0.1
  388. indigo:
  389.     $(MAKE) unzip CF="-cckr $(CF) -DTERMIO"
  390.  
  391. # Linux is almost sysv but not quite
  392. linux:                # Linux pre-0.96 with gcc 2.1
  393.     $(MAKE) unzip CF="$(CF) -DTERMIO -DLINUX" CC=gcc LD=gcc
  394.  
  395. # Minix 1.5 PC for the 386 with gcc or bcc
  396. minix:
  397.     $(MAKE) unzip CC=gcc CF="$(CF) -DMINIX"
  398.  
  399. # PCs (IBM-type), running MS-DOS, Microsoft C 6.0 and NMAKE.  Can't use
  400. # SYSTEM environment variable:  "default" target is > 200 characters.
  401. # "nmake msc_dos" works fine, aside from (possibly) an irrelevant message
  402. # about the creation of a temporary file.  Environment variable LOCAL_UNZIP
  403. # should be set via "SET LOCAL_UNZIP=-FPi87" if you use the 80x87 library;
  404. # also add -G2 or -G3 if using a 286/386/486 system.
  405. #
  406. #msc_dos:
  407. #    $(MAKE) unzip.exe\
  408. #     CF="-Ox $(LOC) -nologo -G2" CC=cl LD=link E=.exe O=.obj\
  409. #     LF="/noi/nol" LF2=",unzip;"
  410.  
  411. msc_dos:    rsp
  412.     $(MAKE) unzip.exe CF="-Ox $(LOC) -nologo" CC=cl LD=link E=.exe\
  413.      O=.obj LOBJS="" LF="@rsp" LF2=""
  414.     del rsp
  415.  
  416. rsp:
  417.     echo $(OBJS1:.o=.obj)+ > rsp
  418.     echo $(OBJS2:.o=.obj)/noi/e/st:0x1000; >> rsp
  419.  
  420. # $(LOCAL_UNZIP):  math libraries and/or any other personal or debugging
  421. #                  definitions:  e.g., SET LOCAL_UNZIP=-FPi87 -DDEBUG_STRUC
  422. # $(NOD):  intended to be used as   SET NOD=-link /nod:slibcep   to allow the
  423. #          use of default library names (slibce.lib) instead of protected-mode
  424. #          names (slibcep.lib), but it fails:  MSC adds its own /nod qualifier,
  425. #          and there seems to be no way to override this.  Typical...
  426. #
  427. msc_os2:        # 16-bit OS/2 (1.x) with MSC 6.00 (use makefile.os2)
  428.     $(MAKE) -nologo unzip.exe zipinfo.exe CC=cl LD=cl E=.exe O=.obj\
  429.      OBJS="$(OS2_OBJS)" OBJZ="$(OS2_OBJZ)"\
  430.      CF="-nologo -AC -Ocegit -G2s -DOS2 -DMSC $(LOC)"\
  431.      LF="-nologo -AC $(LOC) -Lp -F 2000"\
  432.      LF2="unzip.def -o unzip.exe $(NOD)" LN="copy" RM="del"\
  433.      ZL="-nologo -AC $(LOC) -Lp -Fb" ZL2="zipinfo.def -o zipinfo.exe"
  434.  
  435. # NeXT 2.x: make the executable smaller.
  436. next:            # 68030 BSD 4.3+Mach
  437.     $(MAKE) unzip LF2="-object -s"
  438.  
  439. # Rules to build the unzip program on a DecStation running DEC OSF/1 V1.0.
  440. # This machine hasn't got ftime(3) in the standard C library.
  441. osf1:
  442.     $(MAKE) unzip LF2="-lbsd"
  443.  
  444. # I successfully compiled and tested the unzip program (v30) for the
  445. # Silicon Graphics environment (Personal Iris 4D20/G with IRIX v3.2.2)
  446. p_iris:
  447.     $(MAKE) unzip CF="$(CF) -I/usr/include/bsd -DBSD"\
  448.      LF="-lbsd $(LF)"
  449.  
  450. # I have finished porting unzip 3.0 to the Pyramid 90X under OSX4.1.
  451. # The biggest problem was the default structure alignment yielding two
  452. # extra bytes.  The compiler has the -q option to pack structures, and
  453. # this was all that was needed.  To avoid needing ZMEMS we could compile
  454. # in the AT&T universe, but it runs more slowly!
  455. #
  456. #UnZip 5.0f:  moved to regular targets as test
  457. #pyramid:    # Pyramid 90X, probably all, under >= OSx4.1, BSD universe
  458. #    make unzip CF="$(CF) -q"
  459.  
  460. # IBM RS/6000 under AIX 3.2
  461. rs6000:
  462.     $(MAKE) unzip CF="$(CF) -DBSD -D_BSD -DUNIX" LF="-lbsd $(LF)"
  463.  
  464. # SCO cross compile from unix to DOS. Tested with Xenix/386 and OpenDeskTop.
  465. # Should work with xenix/286 as well. (davidsen)  Note that you *must* remove
  466. # the unix objects and executable before doing this!  (Piet Plomp:  gcc won't
  467. # recognize the -M0 flag which forces 8086 code.)
  468. #
  469. sco_dos:    # uncomment zipinfo in UNZIPS if desired
  470.     $(MAKE) unzips CF="-O $(LOC) -DNO_ERRNO -dos -M0" LF="-dos -F 2000"\
  471.      LF2="-o unzip.exe" ZL="-dos" ZL2="-o zipinfo.exe"
  472.  
  473. # SCO Xenix/286 2.2.1
  474. sco_x286:
  475.     $(MAKE) unzip CF="$(CF) -Ml2" LF="$(LF) -Ml2"
  476.  
  477. # Sequent Symmetry is a 386 but needs -DZMEM
  478. # This should also work on Balance but I can't test it just yet.
  479. sequent:    # Sequent w/Dynix
  480.     $(MAKE) unzip CF="$(CF) -DBSD -DZMEM"
  481.  
  482. # AT&T 6300+, running System V.? Unix:  out-of-memory error if don't use -Ml
  483. sysv6300:
  484.     $(MAKE) unzip CF="$(CF) -Ml -DTERMIO" LF="$(LF) -Ml"
  485.  
  486. # I didn't do this.  I swear.  No, really.
  487. wombat:        # Wombat 68000 (or whatever)
  488.     @echo
  489.     @echo  '    Ha ha!  Just kidding.'
  490.     @echo
  491.  
  492.  
  493. #####################
  494. # ZIPINFO MAKERULES #
  495. #####################
  496.  
  497. # ZipInfo section:  less hand-holding here, but it should be pretty
  498. # straightforward by now.
  499.  
  500. zipinfo$O:    zipinfo.c unzip.h
  501.     $(CC) -c $(CF) zipinfo.c
  502.  
  503. misc_$O:    misc.c unzip.h
  504.     $(LN) misc.c misc_.c
  505.     $(CC) -c $(CF) $(ZC) misc_.c
  506.     $(RM) misc_.c
  507.  
  508. os2zinfo$O:    os2unzip.c unzip.h
  509.     $(LN) os2unzip.c os2zinfo.c
  510.     $(CC) -c $(CF) $(ZC) os2zinfo.c
  511.     $(RM) os2zinfo.c
  512.  
  513. zipinfo$E:    $(OBJZ)
  514.     $(LD) $(ZL) $(OBJZ) $(ZL2)
  515.  
  516. zi_gcc:            # GNU gcc under Unix (if no strip, don't worry)
  517.     $(MAKE) zipinfo CC=gcc LD=gcc ZL2=""
  518.     strip zipinfo
  519.  
  520. zi_indigo:        # SGI Iris Indigo
  521.     $(MAKE) zipinfo CF="-cckr -O -DUNIX $(LOC)"
  522.  
  523. zi_dos:            # MSC 6.0 + nmake, MS-DOS
  524.     $(MAKE) zipinfo.exe CF="-Ox -nologo $(LOC) -G2" CC=cl\
  525.      LD=link E=.exe O=.obj ZL="/noi /nol" ZL2=",zipinfo;"\
  526.      LN="copy" RM="DEL"
  527.  
  528.  
  529. ####################
  530. # FUNZIP MAKERULES #
  531. ####################
  532.  
  533. # FUnZip section:  FUnZip (Filter UnZip) is a last-minute addition to the
  534. # UnZip suite and is still VERY raw.  Its purpose is to take a zipfile from 
  535. # stdin and decompress the first entry to stdout.  Only non-encrypted, stored
  536. # or deflated files are allowed at present.  FUnZip may be absorbed into
  537. # regular UnZip in a subsequent release.  This target should work for some
  538. # Unix systems but is not guaranteed to work for all (or even most).
  539.  
  540. funzip$E:    $(OBJF)
  541.     $(LD) $(FL) $(OBJF) $(FL2)
  542.  
  543. fu_gcc:            # GNU gcc under Unix (if no strip, don't worry)
  544.     $(MAKE) funzip CC=gcc LD=gcc FL2=""
  545.     strip funzip
  546.  
  547.  
  548. ################
  549. # ATTRIBUTIONS #
  550. ################
  551.  
  552. # Thanks to the following people for their help in testing and/or porting
  553. # to various machines (and thanks to the many others who aren't listed
  554. # here but should be):
  555. #
  556. #  (original Unix port:  Carl Mascott <cmascott@world.std.com>)
  557. #  386i:    Richard Stephen <stephen@corp.telecom.co.nz>
  558. #  3Bx:        Bob Kemp <hrrca!bobc@cbnewse.att.com>
  559. #  7300:    Richard H. Gumpertz <rhg@cpsolv.CPS.COM>
  560. #        Greg Roelofs <roelofs@amelia.nas.nasa.gov>
  561. #  amdahl:    Kim DeVaughn <ked01@juts.ccc.amdahl.com>, Greg Roelofs
  562. #  apollo:    Tim Geibelhaus
  563. #  aviion:    Bruce Kahn <bkahn@archive.webo.dg.com>
  564. #  bull:    Matt D'Errico <doc@magna.com>
  565. #  c120:    Rafal Maszkowski <sgumk%pltumk11.bitnet>
  566. #  coherent:    David Fenyes <dfenyes@thesis1.med.uth.tmc.edu>
  567. #  convex:    Randy Wright <rwright@convex.com>
  568. #  cray:    Greg Roelofs, Paul Borman <prb@cray.com>
  569. #  cray_cc:    Greg Roelofs
  570. #  cray_v3:    Greg Roelofs
  571. #  cyber_sgi:    Clint Pulley <u001@cs910.cciw.ca>
  572. #  dec:        "Moby" Dick O'Connor <djo7613@u.washington.edu>
  573. #  dnix:    Bo Kullmar <bk@kullmar.se>
  574. #  eta:        Greg Flint <afc@klaatu.cc.purdue.edu>
  575. #  gcc:        Jean-loup Gailly <jloup@chorus.fr>
  576. #  gcc_dos:    Onno van der Linden <linden@fwi.uva.nl>
  577. #  gcc_os2:    Kai Uwe Rommel <rommel@informatik.tu-muenchen.de>
  578. #  gould:    Onno van der Linden
  579. #  hk68:    John Limpert <gronk!johnl@uunet.UU.NET>
  580. #  hp:        Randy McCaskile <rmccask@seas.gwu.edu> (HP-UX)
  581. #        Gershon Elber <gershon@cs.utah.edu> (HP BSD 4.3)
  582. #  icc_os2:    Kai Uwe Rommel
  583. #  indigo:    Kjetil Wiekhorst J|rgensen <jorgens@lise.unit.no>
  584. #  linux:    Humberto Ortiz-Zuazaga <zuazaga@ucunix.san.uc.edu>
  585. #  minix:    Kai Uwe Rommel (Minix 1.5)
  586. #  mips:    Peter Jones <jones@mips1.uqam.ca>
  587. #  msc_dos:    Greg Roelofs <roe2@ellis.uchicago.edu>
  588. #        Piet W. Plomp <piet@icce.rug.nl>
  589. #  msc_os2:    Wim Bonner <wbonner@yoda.eecs.wsu.edu>
  590. #        Kai Uwe Rommel, Greg Roelofs
  591. #  next:    Mark Adler <madler@piglet.caltech.edu>
  592. #  osf1:    Kjetil Wiekhorst J{\o}rgensen
  593. #  p_iris:    Valter V. Cavecchia <root@itnsg1.cineca.it>
  594. #  pyramid:    James Dugal <jpd@usl.edu>
  595. #  rs6000:    Filip Gieszczykiewicz <fmg@smi.med.pitt.edu>
  596. #        Trevor Paquette <tpaquett@ita.lgc.com>
  597. #  rtaix:    Erik-Jan Vens
  598. #  sco:        Onno van der Linden (SCO Unix 3.2.0)
  599. #           Bill Davidsen <davidsen@crdos1.crd.ge.com> (Xenix/386)
  600. #  sco_dos:    Bill Davidsen, Piet W. Plomp
  601. #  sco_x286:    Ricky Mobley <ddi1!lrark!rick@uunet.UU.NET>
  602. #  sequent:    Phil Howard <phil@ux1.cso.uiuc.edu>
  603. #  sgi:        Greg Roelofs (Iris 4D/380?)
  604. #  sun:        Onno van der Linden (Sun 4), Greg Roelofs (Sun 3, 4)
  605. #  sysv:    Greg Roelofs
  606. #  sysv6300:    Peter Mauzey <ptm@mtdcc.att.com>
  607. #  tahoe:    Mark Edwards <mce%sdcc10@ucsd.edu>
  608. #  ultrix:    Greg Flint (VAX)
  609. #        Michael Graff <explorer@iastate.edu> (DECstation 2100?)
  610. #        Greg Roelofs (DEC 5810)
  611. #        Alex A Sergejew <aas@brain.wph.uq.oz.au>
  612. #  vax:        Forrest Gehrke <feg@dodger.att.com> (SysV)
  613. #        David Kirschbaum <kirsch@usasoc.soc.mil> (BSD 4.3)
  614. #        Jim Steiner <steiner@pica.army.mil> (8600+Ultrix)
  615. #  wombat:    Joe Isuzu <joe@trustme.isuzu.com>
  616. #  xos:        Fulvio Marino <fulvio@iconet.ico.olivetti.com>
  617. #  zi_dos:    Greg Roelofs
  618. #  zi_icc:    Kai Uwe Rommel
  619. #  zi_os2:    Greg Roelofs, Kai Uwe Rommel
  620. #  zipinfo:    Greg Roelofs
  621.