home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / unzip532.zip / unix / Makefile < prev    next >
Makefile  |  1997-11-03  |  32KB  |  878 lines

  1. #==============================================================================
  2. # Makefile for UnZip, UnZipSFX and fUnZip:  Unix and MS-DOS ("real" makes only)
  3. # Version:  5.32                                                2 November 1997
  4. #==============================================================================
  5.  
  6.  
  7. # INSTRUCTIONS (such as they are):
  8. #
  9. # "make sunos"    -- makes UnZip in current directory on a generic SunOS 4.x Sun
  10. # "make list"    -- lists all supported systems (targets)
  11. # "make help"    -- provides pointers on what targets to try if problems occur
  12. # "make wombat" -- chokes and dies if you haven't added the specifics for your
  13. #            Wombat 68000 (or whatever) to the systems list
  14. #
  15. # CF are flags for the C compiler.  LF are flags for the loader.  LF2 are more
  16. # flags for the loader, if they need to be at the end of the line instead of at
  17. # the beginning (for example, some libraries).  FL and FL2 are the corre-
  18. # sponding flags for fUnZip.  LOCAL_UNZIP is an environment variable that can
  19. # be used to add default C flags to your compile without editing the Makefile
  20. # (e.g., -DDEBUG_STRUC, or -FPi87 on PCs using Microsoft C).
  21. #
  22. # Some versions of make do not define the macro "$(MAKE)"; this is rare, but
  23. # if things don't work, try using "make" instead of "$(MAKE)" in your system's
  24. # makerule.  Or try adding the following line to your .login file:
  25. #    setenv MAKE "make"
  26. # (That never works--makes that are too stupid to define MAKE are also too
  27. # stupid to look in the environment--but try it anyway for kicks. :-) )
  28. #
  29. # Memcpy and memset are provided for those systems that don't have them; they
  30. # are in fileio.c and will be used if -DZMEM is included in CF.  These days
  31. # almost all systems have them.
  32. #
  33. # Be sure to test your new UnZip (and UnZipSFX and fUnZip); successful compila-
  34. # tion does not always imply a working program.
  35.  
  36.  
  37. #####################
  38. # MACRO DEFINITIONS #
  39. #####################
  40.  
  41. # Defaults most systems use (use LOCAL_UNZIP in environment to add flags,
  42. # such as -DDOSWILD).
  43.  
  44. # UnZip flags
  45. CC = cc#    try using "gcc" target rather than changing this (CC and LD
  46. LD = $(CC)#    must match, else "unresolved symbol:  ___main" is possible)
  47. AS = as
  48. LOC = $(LOCAL_UNZIP)
  49. AF = $(LOC)
  50. CF = -O -I. $(LOC)
  51. LF = -o unzip
  52. LF2 = -s
  53.  
  54. # UnZipSFX flags
  55. SL = -o unzipsfx
  56. SL2 = $(LF2)
  57.  
  58. # fUnZip flags
  59. FL = -o funzip
  60. FL2 = $(LF2)
  61.  
  62. # general-purpose stuff
  63. #CP = cp
  64. CP = ln
  65. LN = ln
  66. RM = rm -f
  67. CHMOD = chmod
  68. STRIP = strip
  69. E =
  70. O = .o
  71. M = unix
  72. SHELL = /bin/sh
  73.  
  74. # defaults for crc32 stuff and system dependent headers
  75. CRC32 = crc32
  76. OSDEP_H =
  77.  
  78. # object files
  79. OBJS1 = unzip$O $(CRC32)$O crctab$O crypt$O envargs$O explode$O
  80. OBJS2 = extract$O fileio$O globals$O inflate$O list$O match$O
  81. OBJS3 = process$O ttyio$O unreduce$O unshrink$O zipinfo$O
  82. OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $M$O
  83. LOBJS = $(OBJS)
  84. OBJSDLL = $(OBJS:.o=.pic.o) api.pic.o
  85. OBJX = unzipsfx$O $(CRC32)$O crctab$O crypt$O extract_$O fileio$O globals$O \
  86.     inflate$O match$O process_$O ttyio$O $M_$O
  87. LOBJX = $(OBJX)
  88. OBJF = funzip$O $(CRC32)$O crypt_$O globals_$O inflate_$O ttyio_$O
  89. #OBJS_OS2 = $(OBJS1:.o=.obj) $(OBJS2:.o=.obj) os2.obj
  90. #OBJF_OS2 = $(OBJF:.o=.obj)
  91. UNZIP_H = unzip.h unzpriv.h globals.h $(OSDEP_H)
  92.  
  93. # installation
  94. # (probably can change next two to `install' and `install -d' if you have it)
  95. INSTALL = cp
  96. INSTALL_D = mkdir -p
  97. # on some systems, manext=l and MANDIR=/usr/man/man$(manext) may be appropriate
  98. manext = 1
  99. prefix = /usr/local
  100. BINDIR = $(prefix)/bin#            where to install executables
  101. MANDIR = $(prefix)/man/man$(manext)#    where to install man pages
  102. INSTALLEDBIN = $(BINDIR)/funzip$E $(BINDIR)/unzip$E $(BINDIR)/unzipsfx$E \
  103.     $(BINDIR)/zipgrep$E $(BINDIR)/zipinfo$E
  104. INSTALLEDMAN = $(MANDIR)/funzip.$(manext) $(MANDIR)/unzip.$(manext) \
  105.     $(MANDIR)/unzipsfx.$(manext) $(MANDIR)/zipgrep.$(manext) \
  106.     $(MANDIR)/zipinfo.$(manext)
  107.  
  108. # Solaris 2.x stuff:
  109. PKGDIR = IZunzip
  110. VERSION = Version 5.32
  111.  
  112. UNZIPS = unzip$E funzip$E unzipsfx$E
  113. # this is a little ugly...well, OK, it's a lot ugly:
  114. MANS = unix/funzip.1 unix/unzip.1 unix/unzipsfx.1 unix/zipgrep.1 unix/zipinfo.1
  115. DOCS = funzip.doc unzip.doc unzipsfx.doc zipgrep.doc zipinfo.doc
  116.  
  117. # list of supported systems/targets in this version
  118. SYSTEMS1 = generic generic2 generic3 generic_zlib
  119. SYSTEMS2 = 386i 3Bx 7300 7300_gcc aix aix_rt amdahl amdahl_eft apollo aviion
  120. SYSTEMS3 = bsd bsdi bsdi_noasm bull coherent convex cray cray_opt cyber_sgi
  121. SYSTEMS4 = dec dnix encore eta freebsd gcc gould hk68 hp hpux isc isc_gcc isi
  122. SYSTEMS5 = linux linux_dos linux_noasm linux_shlib linux_shlibz minix mips 
  123. SYSTEMS6 = next next10 next2x next3x nextfat osf1 pixel ptx pyramid realix 
  124. SYSTEMS7 = regulus rs6000 sco sco_dos sco_sl sco_x286 sequent sgi solaris 
  125. SYSTEMS8 = solaris_pkg stardent stellar sunos3 sunos4 sysv sysv_gcc sysv6300 
  126. SYSTEMS9 = tahoe ti_sysv ultrix vax v7 wombat xenix xos
  127.  
  128.  
  129. ####################
  130. # DEFAULT HANDLING #
  131. ####################
  132.  
  133. # By default, print help on which makefile targets to try.  (The SYSTEM
  134. # variable is no longer supported; use "make <target>" instead.)
  135.  
  136. help:
  137.     @echo ""
  138.     @echo\
  139.  "  If you're not sure about the characteristics of your system, try typing"
  140.     @echo\
  141.  '  "make generic".  If the compiler barfs and says something unpleasant about'
  142.     @echo\
  143.  '  "timezone redefined," try typing "make clean" followed by "make generic2".'
  144.     @echo\
  145.  '  If, on the other hand, it complains about an undefined symbol _ftime, try'
  146.     @echo\
  147.  '  typing "make clean" followed by "make generic3".  One of these actions'
  148.     @echo\
  149.  '  should produce a working copy of unzip on most Unix systems.  If you know'
  150.     @echo\
  151.  '  a bit more about the machine on which you work, you might try "make list"'
  152.     @echo\
  153.  '  for a list of the specific systems supported herein.  (Many of them do'
  154.     @echo\
  155.  "  exactly the same thing, so don't agonize too much over which to pick if"
  156.     @echo\
  157.  '  two or more sound equally likely.)  Also check out the INSTALL file for'
  158.     @echo\
  159.  '  notes on compiling various targets.  As a last resort, feel free to read'
  160.     @echo\
  161.  '  the numerous comments within the Makefile itself.  Note that to compile'
  162.     @echo\
  163.  '  the decryption version of UnZip, you must obtain the full versions of'
  164.     @echo\
  165.  '  crypt.c and crypt.h (see the "WHERE" file for ftp and mail-server sites).'
  166.     @echo\
  167.  '  Have a mostly pretty good day.'
  168.     @echo ""
  169.  
  170. list:
  171.     @echo ""
  172.     @echo\
  173.  'Type "make <system>", where <system> is one of the following:'
  174.     @echo ""
  175.     @echo  "    $(SYSTEMS1)"
  176.     @echo ""
  177.     @echo  "    $(SYSTEMS2)"
  178.     @echo  "    $(SYSTEMS3)"
  179.     @echo  "    $(SYSTEMS4)"
  180.     @echo  "    $(SYSTEMS5)"
  181.     @echo  "    $(SYSTEMS6)"
  182.     @echo  "    $(SYSTEMS7)"
  183.     @echo  "    $(SYSTEMS8)"
  184.     @echo  "    $(SYSTEMS9)"
  185. #    @echo ""
  186. #    @echo\
  187. # 'Targets for related utilities (ZipInfo and fUnZip) include:'
  188. #    @echo ""
  189. #    @echo  "    $(SYS_UTIL1)"
  190. #    @echo  "    $(SYS_UTIL2)"
  191.     @echo ""
  192.     @echo\
  193.  'For further (very useful) information, please read the comments in Makefile.'
  194.     @echo ""
  195.  
  196. generic_msg:
  197.     @echo ""
  198.     @echo\
  199.  '  Attempting "make generic" now.  If this fails for some reason, type'
  200.     @echo\
  201.  '  "make help" and/or "make list" for suggestions.'
  202.     @echo ""
  203.  
  204.  
  205. ###############################################
  206. # BASIC COMPILE INSTRUCTIONS AND DEPENDENCIES #
  207. ###############################################
  208.  
  209. # this is for GNU make; comment out and notify zip-bugs if it causes errors
  210. .SUFFIXES:    .c .o .obj .pic.o
  211.  
  212. # yes, we should be able to use the $O macro to combine these two, but it
  213. # fails on some brain-damaged makes (e.g., AIX's)...no big deal
  214. .c.o:
  215.     $(CC) -c $(CF) $*.c
  216.  
  217. .c.obj:
  218.     $(CC) -c $(CF) $*.c
  219.  
  220. .c.pic.o:
  221.     $(CC) -c $(CF) -o $@ $*.c
  222.  
  223. # this doesn't work...directories are always a pain with implicit rules
  224. #.1.doc:        unix/$<
  225. #    nroff -Tman -man $< | col -b | uniq | \
  226. #     sed 's/Sun Release ..../Info-ZIP        /' > $@
  227.  
  228.  
  229. # these rules may be specific to Linux (or at least the GNU groff package)
  230. # and are really intended only for the authors' use in creating non-Unix
  231. # documentation files (which are provided with both source and binary
  232. # distributions).  We should probably add a ".1.doc" rule for more generic
  233. # systems...
  234.  
  235. funzip.doc:    unix/funzip.1
  236.     nroff -Tman -man unix/funzip.1 | col -b | uniq | expand > $@
  237.  
  238. unzip.doc:    unix/unzip.1
  239.     nroff -Tman -man unix/unzip.1 | col -b | uniq | expand > $@
  240.  
  241. unzipsfx.doc:    unix/unzipsfx.1
  242.     nroff -Tman -man unix/unzipsfx.1 | col -b | uniq | expand > $@
  243.  
  244. zipgrep.doc:    unix/zipgrep.1
  245.     nroff -Tman -man unix/zipgrep.1 | col -b | uniq | expand > $@
  246.  
  247. zipinfo.doc:    unix/zipinfo.1
  248.     nroff -Tman -man unix/zipinfo.1 | col -b | uniq | expand > $@
  249.  
  250.  
  251. all:        generic_msg generic
  252. unzips:        $(UNZIPS)
  253. objs:        $(OBJS)
  254. objsdll:    $(OBJSDLL)
  255. docs:        $(DOCS)
  256. unzipsman:    unzips docs
  257. unzipsdocs:    unzips docs
  258.  
  259.  
  260. # EDIT HERE FOR PARALLEL MAKES on Sequent (and others?)--screws up MS-DOS
  261. # make utilities if default:  change "unzip$E:" to "unzip$E:&"
  262.  
  263. unzip$E:    $(OBJS)            # add `&' for parallel makes
  264.     $(LD) $(LF) $(LOBJS) $(LF2)
  265.  
  266. unzipsfx$E:    $(OBJX)            # add `&' for parallel makes
  267.     $(LD) $(SL) $(LOBJX) $(SL2)
  268.  
  269. funzip$E:    $(OBJF)            # add `&' for parallel makes
  270.     $(LD) $(FL) $(OBJF) $(FL2)
  271.  
  272. zipinfo$E:    unzip$E            # `&' is pointless here...
  273.     @echo\
  274.  '  This is a Unix-specific target.  ZipInfo is not enabled in some MS-DOS'
  275.     @echo\
  276.  '  versions of UnZip; if it is in yours, copy unzip.exe to zipinfo.exe'
  277.     @echo\
  278.  '  or else invoke as "unzip -Z" (in a batch file, for example).'
  279.     $(LN) unzip$E zipinfo$E
  280.  
  281.  
  282. crc32$O:    crc32.c $(UNZIP_H) zip.h
  283. crctab$O:    crctab.c $(UNZIP_H) zip.h
  284. crypt$O:    crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
  285. envargs$O:    envargs.c $(UNZIP_H)
  286. explode$O:    explode.c $(UNZIP_H)
  287. extract$O:    extract.c $(UNZIP_H) crypt.h
  288. fileio$O:    fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
  289. funzip$O:    funzip.c $(UNZIP_H) crypt.h ttyio.h tables.h
  290. globals$O:    globals.c $(UNZIP_H)
  291. inflate$O:    inflate.c inflate.h $(UNZIP_H)
  292. list$O:        list.c $(UNZIP_H)
  293. match$O:    match.c $(UNZIP_H)
  294. process$O:    process.c $(UNZIP_H)
  295. ttyio$O:    ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
  296. unreduce$O:    unreduce.c $(UNZIP_H)
  297. unshrink$O:    unshrink.c $(UNZIP_H)
  298. unzip$O:    unzip.c $(UNZIP_H) crypt.h version.h consts.h
  299. zipinfo$O:    zipinfo.c $(UNZIP_H)
  300.  
  301. crypt_$O:    crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h    # funzip only
  302.     -$(CP) crypt.c crypt_.c
  303.     $(CC) -c $(CF) -DFUNZIP crypt_.c
  304.     $(RM) crypt_.c
  305.  
  306. extract_$O:    extract.c $(UNZIP_H) crypt.h            # unzipsfx only
  307.     -$(CP) extract.c extract_.c
  308.     $(CC) -c $(CF) -DSFX extract_.c
  309.     $(RM) extract_.c
  310.  
  311. globals_$O:    globals.c $(UNZIP_H)                # funzip only
  312.     -$(CP) globals.c globals_.c
  313.     $(CC) -c $(CF) -DFUNZIP globals_.c
  314.     $(RM) globals_.c
  315.  
  316. inflate_$O:    inflate.c inflate.h $(UNZIP_H) crypt.h        # funzip only
  317.     -$(CP) inflate.c inflate_.c
  318.     $(CC) -c $(CF) -DFUNZIP inflate_.c
  319.     $(RM) inflate_.c
  320.  
  321. ttyio_$O:    ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h    # funzip only
  322.     -$(CP) ttyio.c ttyio_.c
  323.     $(CC) -c $(CF) -DFUNZIP ttyio_.c
  324.     $(RM) ttyio_.c
  325.  
  326. # optional assembler replacements
  327. crc_i86$O:    msdos/crc_i86.asm                # 16bit only
  328.     $(AS) $(AF) msdos/crc_i86.asm $(ASEOL)
  329.  
  330. crc_gcc$O:    crc_i386.S                    # 32bit, GNU AS
  331.     $(AS) $(AF) -x assembler-with-cpp -c -o $@ crc_i386.S
  332.  
  333. crc_gcc.pic.o:    crc_i386.S                    # 32bit, GNU AS
  334.     $(AS) $(AF) -x assembler-with-cpp -c -o $@ crc_i386.S
  335.  
  336. crc_sysv$O:    crc_i386.S                    # 32bit, SysV AS
  337.     $(CC) -E $(AF) crc_i386.S >crc_i386.s
  338.     $(AS) -o $@ crc_i386.s
  339.     $(RM) crc_i386.s
  340.  
  341. msdos$O:    msdos/msdos.c $(UNZIP_H) version.h        # DOS only
  342.     $(CC) -c $(CF) msdos/msdos.c
  343.  
  344. msdos_$O:    msdos/msdos.c $(UNZIP_H)            # DOS unzipsfx
  345.     -$(CP) msdos/msdos.c msdos_.c > nul
  346.     $(CC) -c $(CF) -DSFX msdos_.c
  347.     $(RM) msdos_.c
  348.  
  349. #os2$O:        os2/os2.c $(UNZIP_H)                # OS/2 only
  350. #    $(CC) -c $(CF) os2/os2.c
  351.  
  352.  
  353. process_$O:    process.c $(UNZIP_H)                # unzipsfx only
  354.     -$(CP) process.c process_.c
  355.     $(CC) -c $(CF) -DSFX process_.c
  356.     $(RM) process_.c
  357.  
  358. unix$O:        unix/unix.c $(UNZIP_H) version.h        # Unix only
  359.     $(CC) -c $(CF) unix/unix.c
  360.  
  361. unix_$O:    unix/unix.c $(UNZIP_H)                # Unix unzipsfx
  362.     -$(CP) unix/unix.c unix_.c
  363.     $(CC) -c $(CF) -DSFX unix_.c
  364.     $(RM) unix_.c
  365.  
  366. unix.pic.o:    unix/unix.c $(UNZIP_H) version.h        # Unix shlib
  367.     $(CC) -c $(CF) -o $@ unix/unix.c
  368.  
  369. unzipsfx$O:    unzip.c $(UNZIP_H) crypt.h version.h consts.h    # unzipsfx only
  370.     -$(CP) unzip.c unzipsfx.c
  371.     $(CC) -c $(CF) -DSFX unzipsfx.c
  372.     $(RM) unzipsfx.c
  373.  
  374.  
  375. unix_make:
  376. #    @echo\
  377. # '(Ignore any errors from `make'"' due to the following command; it's harmless.)"
  378.     -@2>&1 $(LN) unix/Makefile . > /dev/null || echo > /dev/null
  379.  
  380. # this really only works for Unix targets, unless E and O specified on cmd line
  381. clean:
  382.     @echo ""
  383.     @echo '         This is a Unix-specific target.  (Just so you know.)'
  384.     @echo ""
  385.     rm -f $(UNZIPS) $(OBJS) $(OBJF) $(OBJX) api$O apihelp$O crc_gcc$O \
  386.       crc_sysv$O unzipstb$O crypt_.c extract_.c globals_.c inflate_.c \
  387.       ttyio_.c crc_i386.s msdos_.c process_.c unix_.c unzipsfx.c
  388.     rm -rf ./$(PKGDIR)
  389.  
  390. # Package generation interface (by J.Bush).  Originally tested under Sun
  391. # Solaris 2.x.  Other SVr4s may be very similar and could possibly use this.
  392. # Note:  expects version info to be stored in VERSION macro variable.
  393. # See "README" under ./unix/Packaging
  394. #
  395. svr4package:    unzips
  396.     @echo "Creating SVR4 package for Unix ..."
  397.     -@rm -rf ./$(PKGDIR) ./$(PKGDIR)_`uname -p`.pkg
  398.     -@sed -e "s/.VERSION./$(VERSION)/g" \
  399.           -e "s/.PSTAMP./$(LOGNAME)_`date | tr  ' ' '_'`/g" \
  400.           -e "s/.ARCH./Solaris_`uname -rp | tr ' ' ','`/g" \
  401.           ./unix/Packaging/pkginfo.in > ./unix/Packaging/pkginfo
  402.     -@sed -e "s/.ARCH./`uname -p`/g" \
  403.           ./unix/Packaging/preinstall.in > ./unix/Packaging/preinstall
  404.     /usr/bin/pkgmk -d . -b . -r . -f ./unix/Packaging/prototype $(PKGDIR)
  405.     /usr/bin/pkgtrans -o -s . $(PKGDIR)_`uname -p`.pkg $(PKGDIR)
  406.     @echo " "
  407.     @echo "To install, copy $(PKGDIR)_`uname -p`.pkg to the target system, and"
  408.     @echo "issue the command (as root):  pkgadd -d $(PKGDIR)_`uname -p`.pkg"
  409.     @echo " "
  410.  
  411. install:    $(MANS)
  412.     -$(INSTALL_D) $(BINDIR)
  413.     $(INSTALL) $(UNZIPS) $(BINDIR)
  414.     $(INSTALL) unix/zipgrep $(BINDIR)
  415.     $(RM) $(BINDIR)/zipinfo$E
  416.     $(LN) $(BINDIR)/unzip$E $(BINDIR)/zipinfo$E
  417.     -$(INSTALL_D) $(MANDIR)
  418.     $(INSTALL) unix/funzip.1 $(MANDIR)/funzip.$(manext)
  419.     $(INSTALL) unix/unzip.1 $(MANDIR)/unzip.$(manext)
  420.     $(INSTALL) unix/unzipsfx.1 $(MANDIR)/unzipsfx.$(manext)
  421.     $(INSTALL) unix/zipgrep.1 $(MANDIR)/zipgrep.$(manext)
  422.     $(INSTALL) unix/zipinfo.1 $(MANDIR)/zipinfo.$(manext)
  423.     $(CHMOD) 755  $(INSTALLEDBIN)
  424.     $(CHMOD) 644  $(INSTALLEDMAN)
  425.  
  426. uninstall:
  427.     rm -f $(INSTALLEDBIN) $(INSTALLEDMAN)
  428.  
  429.  
  430. # the test zipfile
  431. TESTZIP = testmake.zip
  432.  
  433. # test some basic features of the build
  434. test:        check
  435.  
  436. check:
  437.     @echo '#####  This is a Unix-specific target.  (Just so you know.)'
  438.     @echo '#####     Make sure unzip, funzip and unzipsfx are compiled and'
  439.     @echo '#####     in this directory.'
  440.     @if test ! -f ./unzip; then \
  441.         echo "#####  ERROR:  can't find ./unzip"; exit 1; fi
  442.     @if test ! -f ./funzip; then \
  443.         echo "#####  ERROR:  can't find ./funzip"; exit 1; fi
  444.     @if test ! -f ./unzipsfx; then \
  445.         echo "#####  ERROR:  can't find ./unzipsfx"; exit 1; fi
  446. #
  447.     @if test ! -f $(TESTZIP); then \
  448.         echo "#####  ERROR:  can't find test file $(TESTZIP)"; exit 1; fi
  449. #
  450.     @echo "#####  testing extraction"
  451.     @./unzip -bo $(TESTZIP) testmake.zipinfo
  452.     @if test ! -f testmake.zipinfo ; then \
  453.         echo "#####  ERROR:  file extraction from $(TESTZIP) failed"; \
  454.         exit 1; fi
  455. #
  456.     @echo '#####  testing zipinfo (unzip -Z)'
  457.     @./unzip -Z $(TESTZIP) > testmake.unzip-Z
  458.     @if diff testmake.unzip-Z testmake.zipinfo; then echo "OK."; else \
  459.         echo "#####  WARNING:  zipinfo output doesn't match stored version"; \
  460.         echo '#####     (If the only difference is the file times, compare your'; \
  461.         echo '#####      timezone with the US Pacific timezone, which is eight'; \
  462.         echo '#####      hours west of Greenwich but effectively 7 hours west'; \
  463.         echo '#####      during summer Daylight Savings Time.  The upper two'; \
  464.         echo '#####      lines should correspond to your local time when the'; \
  465.         echo '#####      files were created, on 18 July 1996 at 6:24am PDT.  If'; \
  466.         echo '#####      the times are consistent, please ignore this warning.)'; \
  467.         fi
  468.     @$(RM) testmake.unzip-Z testmake.zipinfo
  469. #
  470.     @echo '#####  testing unzip -d exdir option'
  471.     @./unzip -bo $(TESTZIP) -d testun notes
  472.     @cat testun/notes
  473. #
  474.     @echo '#####  testing unzip -o and funzip (ignore funzip warning)'
  475.     @./unzip -boq $(TESTZIP) notes -d testun
  476.     @./funzip < $(TESTZIP) > testun/notes2
  477.     @if diff testun/notes testun/notes2; then true; else \
  478.         echo '#####  ERROR:  funzip output disagrees with unzip'; fi
  479. #
  480.     @echo '#####  testing unzipsfx (self-extractor)'
  481.     @cat unzipsfx $(TESTZIP) > testsfx
  482.     @$(CHMOD) 0700 testsfx
  483.     @./testsfx -bo notes
  484.     @if diff notes testun/notes; then true; else \
  485.         echo '#####  ERROR:  unzipsfx file disagrees with unzip'; fi
  486.     @$(RM) testsfx notes testun/notes testun/notes2
  487.     @rmdir testun
  488. #
  489.     @echo '#####  testing complete.'
  490.  
  491.  
  492. ################################
  493. # INDIVIDUAL MACHINE MAKERULES #
  494. ################################
  495.  
  496. #----------------------------------------------------------------------------
  497. #  Generic targets (can't assume make utility groks "$(MAKE)")
  498. #----------------------------------------------------------------------------
  499.  
  500. generic:    unzips       # first try if unknown
  501.  
  502. generic2:    unix_make  # second try if unknown:  hope make is called "make"
  503.     make -f unix/Makefile unzips CF="$(CF) -DBSD"
  504.  
  505. generic3:    unix_make  # third try if unknown:  hope make is called "make"
  506.     make -f unix/Makefile unzips CF="$(CF) -DSYSV"
  507.  
  508. # Generic unzip and funzip target using either shared or static zlib for
  509. # inflate rather than the original UnZip version.  (libz was libgz prior
  510. # to 0.94)  Need to figure out how to force unzipsfx to use static libz.
  511.  
  512. generic_zlib:    unix_make
  513.     @echo\
  514.  "This target assumes zlib (libz.a or libz.so.*) is already installed."
  515.     $(MAKE) unzip funzip CF="$(CF) -DUSE_ZLIB" LF2="-lz $(LF2)"
  516.  
  517. #----------------------------------------------------------------------------
  518. #  "Normal" group (BSD vs. SysV may be set in unzip.h via predefined macros):
  519. #----------------------------------------------------------------------------
  520.  
  521. 386i:        unzips    # sun386i, SunOS 4.0.2
  522. 3Bx:        unzips    # AT&T 3B2/1000-80; should work on any WE32XXX machine
  523. #aix_rt:        unzips    # IBM RT 6150 under AIX 2.2.1
  524. bull:        unzips    # Bull DPX/2, BOS 2.00.45 (doesn't require -Xk switch)
  525. convex:        unzips    # Convex C-120 and C-210 (-O is enough; -ext is default)
  526. cray:        unzips    # Cray-2 and Y-MP, using default (possibly old) compiler
  527. dec:        unzips    # DEC 5820 (MIPS RISC), test version of Ultrix v4.0
  528. encore:        unzips    # Multimax
  529. eta:        unzips    # ETA-10P*, hybrid SysV with BSD 4.3 enhancements
  530. gould:        unzips    # Gould PN9000 running UTX/32 2.1Bu01
  531. hp:        unzips    # HP 9000 series (68020), 4.3BSD or HP-UX A.B3.10 Ver D
  532. hpux:        unzips    # (to match zip's makefile entry)
  533. mips:        unzips    # MIPS M120-5(?), SysV.3 [error in sys/param.h file?]
  534. next10:        unzips    # NeXT (generic; use next2x or next3x for better opt.)
  535. osf1:        unzips    # DECstation, including Alpha-based; DEC OSF/1 v1.x
  536. pyr_:        unzips    # [failsafe target for pyramid target below]
  537. pyr_ucb:    unzips    # Pyramids running BSD universe by default (see below)
  538. realix:        unzips    # Modcomp Real/IX (SysV.3); note "gcc" = GLS C, not GNU
  539. sco:        unzips    # Xenix/386 (tested on 2.3.1); SCO Unix 3.2.0.
  540. sgi:        unzips    # Silicon Graphics; Irix 3.3.2, 4.0.x, 5.2, etc.
  541. stellar:    unzips    # gs-2000
  542. sun:        unzips    # old target; no good with solaris...use "sunos" now
  543. sunos:        unzips    # no good with SunOS 3.x...use "sunos3" or "sunos4" now
  544. sunos4:        unzips    # Sun 3, 4; SunOS 4.x (SOME SYSTEMS ARE SYSTEM V!)
  545. tahoe:        unzips    # tahoe (CCI Power6/32), 4.3BSD
  546. ultrix:        unzips    # VAXen, DEC 58x0 (MIPS guts), DECstation 2100; v4.x
  547. vax:        unzips    # general-purpose VAX target (not counting VMS)
  548.  
  549. #----------------------------------------------------------------------------
  550. #  BSD group (for timezone structs [struct timeb]):
  551. #----------------------------------------------------------------------------
  552.  
  553. bsd:        _bsd    # generic BSD (BSD 4.2 & Ultrix handled in unzip.h)
  554.  
  555. _bsd:        unix_make
  556.     $(MAKE) unzips CF="$(CF) -DBSD"
  557.  
  558. #----------------------------------------------------------------------------
  559. #  SysV group (for extern long timezone and ioctl.h instead of sgtty.h):
  560. #----------------------------------------------------------------------------
  561.  
  562. aix_rt:        _sysv    # IBM RT 6150 under AIX 2.2.1
  563. aviion:        _sysv    # Data General AViiONs, DG/UX 4.3x
  564. pyr_att:    _sysv    # Pyramids running AT&T (SysV) universe by default
  565. solaris:    _sysv    # Sun SPARC & x86, Solaris 2.x
  566. solaris_pkg:    _sysvp    # Sun SPARC & x86, Solaris 2.x; make package when done
  567. stardent:    _sysv    # Stardent ...
  568. sysv:        _sysv    # generic System V Unix (Xenix handled in unzip.h)
  569. xos:        _sysv    # Olivetti LSX-3005..3045, X/OS 2.3 and 2.4
  570.  
  571. _sysv:        unix_make
  572.     $(MAKE) unzips CF="$(CF) -DSYSV"
  573.  
  574. # extension to perform SVR4 package-creation after compilation
  575. _sysvp:        _sysv svr4package
  576.  
  577. #----------------------------------------------------------------------------
  578. #  Version 7 group (old/obsolescent):
  579. #----------------------------------------------------------------------------
  580.  
  581. pixel:        _v7    # Pixel 80, 100 (68000-based, V7/mostly BSD4.1 compat.)
  582. v7:        _v7    # generic Unix Version 7 box (prob. only Pixel...)
  583.  
  584. _v7:
  585.     make -f unix/Makefile unzips \
  586.      CF="$(CF) -DV7 -DNO_PARAM_H -DSHORT_NAMES -DBSD -DZMEM"
  587.  
  588. #----------------------------------------------------------------------------
  589. #  "Unique" group (require non-standard options):
  590. #----------------------------------------------------------------------------
  591.  
  592. # AT&T 3B2/1000-80; should work on any WE32XXX machine
  593. 3Bx:        unix_make
  594.     $(MAKE) unzips CF="$(CF) -DCBREAK=2"
  595.  
  596. # AT&T 7300 (M68000/SysV.3) (add -DSYSV? -DNO_LIMITS?)
  597. 7300:        unix_make
  598.     $(MAKE) unzips CF="$(CF) -DNO_DIR -DNO_MKDIR -DNO_STRNICMP -DNO_UID_GID -DCBREAK=2"
  599.  
  600. 7300_gcc:    unix_make
  601.     $(MAKE) unzips CC=gcc LD=gcc LF2="" \
  602.      CF="-O2 -I. -DNO_DIR -DNO_MKDIR -DNO_STDLIB_H -DNO_STRNICMP -DNO_UID_GID -DCBREAK=2 $(LOC)"
  603.     $(STRIP) $(UNZIPS)
  604.  
  605. # IBM AIX 3.x on an RS/6000:  see rs6000 target below
  606. aix:        rs6000
  607.  
  608. # Amdahl (IBMish) mainframe, UTS (SysV) 1.2.4, 2.0.1, 3.x
  609. amdahl:        unix_make
  610.     $(MAKE) unzips CF="$(CF) -DSYSV -DNO_UID_GID"
  611.  
  612. # Amdahl UTS 2.1.4 with "extended file types" filesystem (aarrrggghhhh...)
  613. amdahl_eft:    unix_make
  614.     $(MAKE) unzips CF="$(CF) -eft -DSYSV -DNO_UID_GID"
  615.  
  616. # Apollo Domain/OS machines (added -D...SOURCE options) [Gordon Fox, 960810]
  617. apollo:        unix_make
  618.     $(MAKE) unzips CF="$(CF) -D_INCLUDE_BSD_SOURCE -D_INCLUDE_XOPEN_SOURCE"
  619.  
  620. # BSDI BSD/OS on 386 platform, using the assembler replacement for crc32.c
  621. bsdi:        unix_make
  622.     @echo 'NOTE:  use bsdi_noasm target for non-Intel BSD/OS compiles.'
  623.     $(MAKE) unzips CC=gcc2 LD=shlicc2 AS=gcc2\
  624.      CF="-O3 -Wall -I. -DASM_CRC -DBSD $(LOC)" CRC32=crc_gcc
  625.  
  626. # BSDI BSD/OS
  627. bsdi_noasm:    unix_make
  628. #    @echo 'NOTE:  use bsd target for non-Intel BSD/OS compiles.'
  629.     $(MAKE) unzips CC=gcc2 LD=shlicc2 AS=gcc2\
  630.      CF="-O3 -Wall -I. -DBSD $(LOC)"
  631.  
  632. # Coherent 3.x/4.x, Mark Williams C.  ``For Coherent's CC, it needs either
  633. # -T0 or -T150000 (or bigger) added to the CFLAGS, otherwise the compiler
  634. # runs out of memory and dies in zipinfo.c.'' [Fred "Fredex" Smith, 940719]
  635. coherent:    unix_make
  636.     $(MAKE) unzips CF="$(CF) -T0"
  637.  
  638. # Cray-2, Y-MP or C90, running Unicos 5.x to 8.x (SysV + BSD enhancements)
  639. # and Standard (ANSI) C compiler 3.0 or later.
  640. cray_opt:    unix_make
  641.     $(MAKE) unzips CF="$(CF) -h scalar3 -h vector3"
  642.  
  643. # The unzip41 build on a Cyber 910/SGI running Irix v3.3.3 was successful
  644. # with the following change to Makefile:
  645. cyber_sgi:    unix_make
  646.     $(MAKE) unzips CF="$(CF) -I/usr/include/bsd"\
  647.      LF="-lbsd $(LF)" SL="-lbsd $(SL)"
  648.  
  649. # 680x0, DIAB dnix 5.2/5.3 (a Swedish System V clone)
  650. #
  651. # Options for the dnix cc:
  652. #  -X7 = cc is strict ANSI C
  653. #  -X9 = warnings if a function is used without a declaration
  654. #
  655. dnix:        unix_make
  656.     $(MAKE) unzips CF="$(CF) -X7 -X9 -DDNIX"
  657.  
  658. # FreeBSD on Intel:
  659. freebsd:        unix_make
  660.     @echo 'NOTE:  use bsd target for non-Intel FreeBSD compiles (if any).'
  661.     $(MAKE) unzips CC=gcc LD=gcc AS=gcc\
  662.      CF="-O3 -Wall -I. -DASM_CRC -DBSD $(LOC)"\
  663.      AF="-Di386 $(AF)" CRC32=crc_gcc
  664.  
  665. # Generic BSDish Unix gcc.  ``The -O3 only works with later versions of gcc;
  666. # you may have to use -O2 or -O for earlier versions.  I have no idea why
  667. # -s causes this bug in gcc.''  [Bug:  "nm: unzip: no name list", "collect:
  668. # /usr/bin/nm returned 1 exit status".]  If you don't have strip, don't
  669. # worry about it (it just makes the executable smaller and can be replaced
  670. # with "echo" instead).
  671. #
  672. gcc:        unix_make
  673.     $(MAKE) unzips CC=gcc LD=gcc CF="-O3 -I. $(LOC)" LF2=""
  674.     $(STRIP) $(UNZIPS)
  675.  
  676. # Heurikon HK68 (68010), UniPlus+ System V 5.0, Green Hills C-68000
  677. hk68:        unix_make
  678.     $(MAKE) unzips CC="gcc" LD="gcc"\
  679.      LF="-n $(LF)" SL="-n $(SL)" FL="-n $(FL)"\
  680.      CF="-ga -X138 -I. $(LOC) -Dlocaltime=localti -Dtimezone=timezon"
  681.  
  682. # ISC Unix on 386 platform
  683. isc:        unix_make
  684.     $(MAKE) unzips LF2="-lc_s $(LF2)" CRC32=crc_sysv \
  685.      CF="-O -I. -DASM_CRC -DSYSV -DNO_UID_GID -DNEED_PTEM $(LOC)" \
  686.      AF="-DNO_UNDERLINE -Djecxz=jcxz -DALIGNMENT='.align 16' $(AF)"
  687.  
  688. isc_gcc:    unix_make
  689.     $(MAKE) unzips AS=gcc CC=gcc LD=gcc CRC32=crc_gcc LF="-shlib $(LF)" \
  690.      SL="-shlib $(SL)" FL="-shlib $(FL)" \
  691.      LF2="" CF="-O3 -I. -DSYSV -DASM_CRC -DNO_UID_GID -DNEED_PTEM $(LOC)" \
  692.      AF="-DNO_UNDERLINE -Djecxz=jcxz -DALIGNMENT='.align 16' $(AF)"
  693.     $(STRIP) $(UNZIPS)
  694.  
  695. # "ISI machine (68025 CPU)" (based on e-mail from Rob White <rsw@tfs.com>;
  696. # no further information).  May also need DIRENT defined.
  697. isi:        unix_make
  698.     $(MAKE) unzips CF="$(CF) -DDECLARE_ERRNO"
  699.  
  700. # Linux on 386 platform, using the assembler replacement for crc32.c. (-O4 and
  701. # -fno-strength-reduce have virtually no effect beyond -O3.  Add "-m486
  702. # -malign-functions=2 -malign-jumps=2 -malign-loops=2" for Pentium [Pro]
  703. # systems.)
  704. linux:        unix_make
  705.     @echo 'NOTE:  use linux_noasm target for non-Intel Linux compiles.'
  706.     $(MAKE) unzips CC=gcc LD=gcc AS=gcc\
  707.      CF="-O3 -Wall -I. -DASM_CRC $(LOC)"\
  708.      AF="-Di386 $(AF)" CRC32=crc_gcc
  709. # GRR:  this echo is pointless; if user gets this far, no difference to install
  710. #    @echo 'Be sure to use the install_asm target rather than the install target'
  711.  
  712. linux_asm:    linux
  713.  
  714. # Linux (Posix, approximately SysV):  virtually any version since before 0.96,
  715. # for any platform.  Change "-O" to "-O3" or whatever, as desired...
  716. linux_noasm:    unix_make
  717.     $(MAKE) unzips CC=gcc LD=gcc CF="-O -Wall -I. $(LOC)"
  718.  
  719. # Linux with lcc compiler:  __inline__ (stat.h) not recognized, and must edit
  720. # /usr/include/gnu/types.h to get rid of "long long" if __LCC__ defined.  -O3
  721. # (or -O2 or -O) is ignored.  [GRR 960828: test target only]
  722. #
  723. linux_lcc:    unix_make
  724.     $(MAKE) unzips CC=lcc LD=lcc CF="-O3 -Wall -I. -D__inline__= $(LOC)"
  725.  
  726. # Linux host with go32 (djgpp) cross-compiler (go32crs.tgz) for 32-bit DOS.
  727. linux_dos:    unix_make
  728.     $(MAKE) unzips CC=go32gcc LD=go32gcc M=msdos CF="-O2 -Wall -I. $(LOC)"
  729. #    go32-strip unzip
  730. #    Due to limitations of the cross-compiling package, this has to be
  731. #    done manually:
  732.     @echo Copy $(UNZIPS) to your DOS partition and use coff2exe.
  733.  
  734. # Linux ELF shared library (ooo, it's so easy).  This is a test target for
  735. # now, and it only makes the UnZip/ZipInfo stuff (not fUnZip or UnZipSFX).
  736. # The version number may eventually change to match the UnZip version.  Or
  737. # not.  Whatever.  Also do "setenv LD_LIBRARY_PATH `pwd`" or similar to test
  738. # the DLL in place (with unzip_shlib, which is UnZip linked with the shared
  739. # library).
  740. #
  741. linux_shlib:    unix_make
  742. #    $(MAKE) objsdll CC=gcc CF="-O3 -Wall -I. -fPIC -DDLL $(LOC)"
  743.     $(MAKE) objsdll CC=gcc CF="-O3 -Wall -I. -fPIC -DDLL -DASM_CRC $(LOC)"\
  744.      AS=gcc AF="-fPIC -Di386 $(AF)" CRC32=crc_gcc
  745.     ln -sf crc_gcc.pic.o crc32.pic.o
  746.     gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(OBJSDLL)
  747.     ln -sf libunzip.so.0.4 libunzip.so.0
  748.     ln -sf libunzip.so.0 libunzip.so
  749.     gcc -c -O unzipstb.c
  750.     gcc -o unzip_shlib unzipstb.o -L. -lunzip
  751.  
  752. # Linux ELF shared library, as above, but using inflate() from zlib (libz.so)
  753. # instead of the original UnZip version.  (libz was libgz prior to 0.94)
  754. linux_shlibz:    unix_make
  755. #    $(MAKE) objsdll CC=gcc CF="-O3 -Wall -I. -fPIC -DDLL -DUSE_ZLIB $(LOC)"
  756.     $(MAKE) objsdll CC=gcc AS=gcc AF="-fPIC -Di386 $(AF)" CRC32=crc_gcc\
  757.      CF="-O3 -Wall -I. -fPIC -DDLL -DUSE_ZLIB -DASM_CRC $(LOC)"
  758.     ln -sf crc_gcc.pic.o crc32.pic.o
  759.     gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(OBJSDLL)
  760.     ln -sf libunzip.so.0.4 libunzip.so.0
  761.     gcc -c -O unzipstb.c
  762.     gcc -o unzip unzipstb.o -L. -lunzip -lz
  763.  
  764. # Minix 1.5 PC for the 386.  Invoke as is to use default cc, or as "make
  765. # minix CC=gcc" to use gcc.  Try "make linux" if you have a working termios.h.
  766. minix:        unix_make
  767.     $(MAKE) unzips CF="$(CF) -DMINIX -DSHORT_NAMES" CC=$(CC) LD=$(CC)
  768.  
  769. # NeXT info.
  770. next:
  771.     @echo
  772.     @echo\
  773.  '  Please pick a specific NeXT target:  "make next10" will create a generic'
  774.     @echo\
  775.  '  NeXT executable; "make next2x" will create a smaller executable (for'
  776.     @echo\
  777.  '  NeXTstep 2.0 and higher); "make next3x" will create a small executable'
  778.     @echo\
  779.  '  with significantly better optimization (NeXTstep 3.0 and higher only);'
  780.     @echo\
  781.  '  "make nextfat" will create a fat, multi-architecture (NeXT plus Intel)'
  782.     @echo\
  783.  '  executable (NeXTstep 3.1 and higher only).'
  784.     @echo
  785.  
  786. # 68030 BSD 4.3+Mach.  NeXT 2.x: make the executable smaller.
  787. next2x:        unix_make
  788.     $(MAKE) unzips LF2="-object -s"
  789.  
  790. # NeXT 3.x: as above, plus better optimization.
  791. next3x:        unix_make
  792.     $(MAKE) unzips CF="-O2 -I. $(LOC)" LF2="-object -s"
  793.  
  794. # NeXT 3.1+: make the executable fat (multi-architecture binary [MAB],
  795. # for "black" [NeXT] and "white" [x86] hardware, so far).
  796. nextfat:    unix_make
  797.     $(MAKE) unzips CF="-O2 -I. $(LOC) -arch i386 -arch m68k" \
  798.      LF2="-arch i386 -arch m68k -object -s"
  799.  
  800. # Sequent Symmetry running Dynix/ptx (sort of SysV.3):  needs to link
  801. # with libseq to get symlink().
  802. ptx:        unix_make
  803.     $(MAKE) unzips CF="$(CF) -DSYSV -DTERMIO -DPTX" LF2="$(LF2) -lseq"
  804.  
  805. # Pyramid 90X (probably all) under >= OSx4.1, either universe.  (This is an
  806. # experimental target!  If it fails, use either pyr_ucb or pyr_att instead.)
  807. # The make in the BSD half is too stupid to understand $(MAKE), sigh...
  808. pyramid:    unix_make
  809.     -make -f unix/Makefile pyr_`universe`
  810.  
  811. # REGULUS:  68040-based, "real-time" SysV.3 mutant; uses gcc, with "REGULUS"
  812. # predefined.
  813. regulus:    unix_make
  814.     $(MAKE) unzips CF="$(CF) -traditional -DSYSV -DNO_MKDIR"
  815.  
  816. # IBM RS/6000 under AIX 3.2
  817. rs6000:        unix_make
  818.     $(MAKE) unzips CF="$(CF) -DBSD -D_BSD -DUNIX" LF2="-lbsd"
  819.  
  820. # SCO cross compile from Unix to DOS. Tested with Xenix/386 and OpenDeskTop.
  821. # Should work with Xenix/286 as well. (davidsen)  Note that you *must* remove
  822. # the Unix objects and executable before doing this!  (Piet Plomp:  gcc won't
  823. # recognize the -M0 flag that forces 8086 code.)  (GRR:  may need to reduce
  824. # stack to 0c00h if using 286/small-model code...?)
  825. sco_dos:    unix_make
  826.     $(MAKE) unzips CF="-O -I. $(LOC) -dos -M0" M=msdos \
  827.      LF="-dos -F 2000" LF2="-o unzip.exe" \
  828.      FL="-dos" FL2="-o funzip.exe" SL="-dos" SL2="-o unzipsfx.exe"
  829.  
  830. # SCO UNIX with shared libraries and no international support.  If you are
  831. # not using a USA-style keyboard and display, you may want to remove -nointl
  832. # to get support.  It adds quite a bit to the size of the executable.
  833. sco_sl:        unix_make
  834.     $(MAKE) unzips LF="$(LF) -nointl" LF2="$(LF2) -lc_s"\
  835.      SL="$(SL) -nointl" FL="$(FL) -nointl"
  836.  
  837. # SCO Xenix/286 2.2.3 or later with development system 2.2.1 or later
  838. sco_x286:    unix_make
  839.     $(MAKE) unzips CF="$(CF) -Mel2 -LARGE -DNO_MKDIR" \
  840.      LF="$(LF) -Mel2 -LARGE -lx" SL="$(SL) -Mel2 -LARGE" \
  841.      FL="$(FL) -Mel2 -LARGE"
  842.  
  843. # Sequent Symmetry with Dynix.  (386, but needs -DZMEM)
  844. # This should also work on Balance but I can't test it just yet.
  845. sequent:    unix_make
  846.     $(MAKE) unzips CF="$(CF) -DBSD -DZMEM"
  847.  
  848. # Sun 2, 3, 4 running SunOS 3.x
  849. sunos3:        unix_make
  850.     $(MAKE) unzips CF="$(CF) -DNO_UID_GID -DUID_USHORT"
  851.  
  852. # Generic System V + GNU C
  853. sysv_gcc:    unix_make
  854.     $(MAKE) unzips CC=gcc LD=gcc CF="-O2 -I. -DSYSV $(LOC)" LF2=""
  855.     $(STRIP) $(UNZIPS)
  856.  
  857. # AT&T 6300+, System V.2 Unix:  run-time out-of-memory error if don't use -Ml;
  858. # also compile-time error if work arrays dimensioned at HSIZE+2 (>32K)
  859. sysv6300:    unix_make
  860.     $(MAKE) unzips CF="$(CF) -Ml -DSYSV" LF="$(LF) -Ml"\
  861.      SL="$(SL) -Ml" FL="$(FL) -Ml"
  862.  
  863. # Texas Instruments System V.3 (running on HP 9000-1500)
  864. ti_sysv:    unix_make
  865.     $(MAKE) unzips CF="$(CF) -DSYSV -DNO_UID_GID -DUID_USHORT"
  866.  
  867. # SCO Xenix (Joe Foster 950508:  "unzip needs to be linked with -lx [for the
  868. # opendir(), readdir(), telldir(), rewinddir(), and closedir() calls]")
  869. xenix:         unix_make
  870.     $(MAKE) unzips LF2="$(LF2) -lx"
  871.  
  872. # Wombat 68000 (or whatever).
  873. # I didn't do this.  I swear.  No, really.
  874. wombat:        unix_make
  875.     @echo
  876.     @echo  '    Ha ha!  Just kidding.'
  877.     @echo
  878.