which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@5403 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			900 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			Makefile
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			900 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			Makefile
		
	
	
		
			Executable File
		
	
	
	
	
| #==============================================================================
 | |
| # Makefile for UnZip, UnZipSFX and fUnZip:  Unix and MS-DOS ("real" makes only)
 | |
| # Version:  5.20                                               11 February 1996
 | |
| #==============================================================================
 | |
| 
 | |
| 
 | |
| # INSTRUCTIONS (such as they are):
 | |
| #
 | |
| # "make vax"	-- makes UnZip on a generic Unix VAX in the current directory
 | |
| # "make list"	-- lists all supported systems (targets)
 | |
| # "make help"	-- provides pointers on what targets to try if problems occur
 | |
| # "make wombat" -- chokes and dies if you haven't added the specifics for your
 | |
| #		    Wombat 68000 (or whatever) to the systems list
 | |
| #
 | |
| # CF are flags for the C compiler.  LF are flags for the loader.  LF2 are more
 | |
| # flags for the loader, if they need to be at the end of the line instead of at
 | |
| # the beginning (for example, some libraries).  FL and FL2 are the corre-
 | |
| # sponding flags for fUnZip.  LOCAL_UNZIP is an environment variable that can
 | |
| # be used to add default C flags to your compile without editing the Makefile
 | |
| # (e.g., -DDEBUG_STRUC, or -FPi87 on PCs using Microsoft C).
 | |
| #
 | |
| # Some versions of make do not define the macro "$(MAKE)"; this is rare, but
 | |
| # if things don't work, try using "make" instead of "$(MAKE)" in your system's
 | |
| # makerule.  Or try adding the following line to your .login file:
 | |
| #	setenv MAKE "make"
 | |
| # (That never works--makes which are too stupid to define MAKE are also too
 | |
| # stupid to look in the environment--but try it anyway for kicks. :-) )
 | |
| #
 | |
| # Memcpy and memset are provided for those systems that don't have them; they
 | |
| # are in fileio.c and will be used if -DZMEM is included in CF.  These days
 | |
| # almost all systems have them.
 | |
| #
 | |
| # Be sure to test your new UnZip (and UnZipSFX and fUnZip); successful compila-
 | |
| # tion does not always imply a working program.
 | |
| 
 | |
| 
 | |
| #####################
 | |
| # MACRO DEFINITIONS #
 | |
| #####################
 | |
| 
 | |
| # Defaults most systems use (use LOCAL_UNZIP in environment to add flags,
 | |
| # such as -DDOSWILD).
 | |
| 
 | |
| # UnZip flags
 | |
| CC = gcc#	try using "gcc" target rather than changing this (if you do,
 | |
| LD = $(CC)#	you MUST change LD, too--else "unresolved symbol:  ___main")
 | |
| LOC = $(LOCAL_UNZIP)
 | |
| CF = $(CFLAGS) $(LOC)
 | |
| LF = -o unzip$E
 | |
| LF2 = -s
 | |
| 
 | |
| # UnZipSFX flags
 | |
| SL = -o unzipsfx$E
 | |
| SL2 = $(LF2)
 | |
| 
 | |
| # fUnZip flags
 | |
| FL = -o funzip$E
 | |
| FL2 = $(LF2)
 | |
| 
 | |
| # general-purpose stuff
 | |
| CP = ln -s
 | |
| LN = ln
 | |
| RM = rm -f
 | |
| CHMOD = chmod
 | |
| STRIP = strip
 | |
| E = .ttp
 | |
| O = .o
 | |
| M = atari
 | |
| SHELL = /bin/sh
 | |
| 
 | |
| # object files
 | |
| OBJS1 = unzip$O crc32$O crctab$O crypt$O envargs$O explode$O
 | |
| OBJS2 = extract$O fileio$O globals$O inflate$O list$O match$O
 | |
| OBJS3 = process$O ttyio$O unreduce$O unshrink$O zipinfo$O
 | |
| OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $M$O
 | |
| LOBJS = $(OBJS)
 | |
| OBJSDLL = $(OBJS) api$O
 | |
| OBJX = unzipsfx$O crc32$O crctab$O crypt$O extract_$O fileio$O globals$O \
 | |
| 	inflate$O match$O process_$O ttyio$O $M_$O
 | |
| LOBJX = $(OBJX)
 | |
| OBJF = funzip$O crc32$O crypt_$O globals_$O inflate_$O ttyio_$O
 | |
| #OBJS_OS2 = $(OBJS1:.o=.obj) $(OBJS2:.o=.obj) os2.obj
 | |
| #OBJF_OS2 = $(OBJF:.o=.obj)
 | |
| 
 | |
| UNZIP_H = unzip.h unzpriv.h globals.h
 | |
| 
 | |
| # installation
 | |
| INSTALL = cp#	probably can change this to 'install' if you have it
 | |
| # on some systems, manext=l and MANDIR=/usr/man/man$(manext) may be appropriate
 | |
| manext = 1
 | |
| prefix = /usr/local
 | |
| BINDIR = $(prefix)/bin#			where to install executables
 | |
| MANDIR = $(prefix)/man/man$(manext)#	where to install man pages
 | |
| INSTALLEDBIN = $(BINDIR)/funzip$E $(BINDIR)/zipinfo$E $(BINDIR)/unzipsfx$E \
 | |
| 	$(BINDIR)/unzip$E
 | |
| INSTALLEDMAN = $(MANDIR)/unzip.$(manext) $(MANDIR)/funzip.$(manext) \
 | |
| 	$(MANDIR)/unzipsfx.$(manext) $(MANDIR)/zipinfo.$(manext)
 | |
| #
 | |
| UNZIPS = unzip$E funzip$E unzipsfx$E
 | |
| # this is a little ugly...well, no, it's a lot ugly:
 | |
| MANS = unix/unzip.1 unix/unzipsfx.1 unix/zipinfo.1 unix/funzip.1
 | |
| DOCS = unzip.doc unzipsfx.doc zipinfo.doc funzip.doc
 | |
| 
 | |
| # list of supported systems/targets in this version
 | |
| SYSTEMS1 = 386i 3Bx 7300 7300_gcc aix aix_rt amdahl amdahl_eft apollo
 | |
| SYSTEMS2 = aviion bcc_dos bsd bsd386 bull coherent convex cray cray_opt
 | |
| SYSTEMS3 = cyber_sgi dec djgpp djgpp1 dnix encore eta gcc gcc_dos generic
 | |
| SYSTEMS4 = generic2 generic3 gould hk68 hp hpux linux linux_dos linux_lib
 | |
| SYSTEMS5 = linux_zlib minix mips msc_dos next next10 next2x next3x nextfat
 | |
| SYSTEMS6 = osf1 pixel ptx pyramid realix regulus rs6000 sco sco_dos sco_sl
 | |
| SYSTEMS7 = sco_x286 sequent sgi solaris stardent stellar sun sysv sysv_gcc
 | |
| SYSTEMS8 = sysv6300 tahoe ti_sysv ultrix vax v7 wombat xenix xos
 | |
| 
 | |
| 
 | |
| ####################
 | |
| # DEFAULT HANDLING #
 | |
| ####################
 | |
| 
 | |
| # By default, print help on which makefile targets to try.  (The SYSTEM
 | |
| # variable is no longer supported; use "make <target>" instead.)
 | |
| 
 | |
| help:
 | |
| 	@echo ""
 | |
| 	@echo\
 | |
|  "  If you're not sure about the characteristics of your system, try typing"
 | |
| 	@echo\
 | |
|  '  "make generic".  If the compiler barfs and says something unpleasant about'
 | |
| 	@echo\
 | |
|  '  "timezone redefined," try typing "make clean" followed by "make generic2".'
 | |
| 	@echo\
 | |
|  '  If, on the other hand, it complains about an undefined symbol _ftime, try'
 | |
| 	@echo\
 | |
|  '  typing "make clean" followed by "make generic3".  One of these actions'
 | |
| 	@echo\
 | |
|  '  should produce a working copy of unzip on most Unix systems.  If you know'
 | |
| 	@echo\
 | |
|  '  a bit more about the machine on which you work, you might try "make list"'
 | |
| 	@echo\
 | |
|  '  for a list of the specific systems supported herein.  (Many of them do'
 | |
| 	@echo\
 | |
|  "  exactly the same thing, so don't agonize too much over which to pick if"
 | |
| 	@echo\
 | |
|  '  two or more sound equally likely.)  Also check out the INSTALL file for'
 | |
| 	@echo\
 | |
|  '  notes on compiling various targets.  As a last resort, feel free to read'
 | |
| 	@echo\
 | |
|  '  the numerous comments within the Makefile itself.  Note that to compile'
 | |
| 	@echo\
 | |
|  '  the decryption version of UnZip, you must obtain the full versions of'
 | |
| 	@echo\
 | |
|  '  crypt.c and crypt.h (see the "Where" file for ftp and mail-server sites).'
 | |
| 	@echo\
 | |
|  '  Have a mostly pretty good day.'
 | |
| 	@echo ""
 | |
| 
 | |
| list:
 | |
| 	@echo ""
 | |
| 	@echo\
 | |
|  'Type "make <system>", where <system> is one of the following:'
 | |
| 	@echo ""
 | |
| 	@echo  "	$(SYSTEMS1)"
 | |
| 	@echo ""
 | |
| 	@echo  "	$(SYSTEMS2)"
 | |
| 	@echo  "	$(SYSTEMS3)"
 | |
| 	@echo  "	$(SYSTEMS4)"
 | |
| 	@echo  "	$(SYSTEMS5)"
 | |
| 	@echo  "	$(SYSTEMS6)"
 | |
| 	@echo  "	$(SYSTEMS7)"
 | |
| 	@echo  "	$(SYSTEMS8)"
 | |
| #	@echo ""
 | |
| #	@echo\
 | |
| # 'Targets for related utilities (ZipInfo and fUnZip) include:'
 | |
| #	@echo ""
 | |
| #	@echo  "	$(SYS_UTIL1)"
 | |
| #	@echo  "	$(SYS_UTIL2)"
 | |
| 	@echo ""
 | |
| 	@echo\
 | |
|  'For further (very useful) information, please read the comments in Makefile.'
 | |
| 	@echo ""
 | |
| 
 | |
| generic_msg:
 | |
| 	@echo ""
 | |
| 	@echo\
 | |
|  '  Attempting "make generic" now.  If this fails for some reason, type'
 | |
| 	@echo\
 | |
|  '  "make help" and/or "make list" for suggestions.'
 | |
| 	@echo ""
 | |
| 
 | |
| 
 | |
| ###############################################
 | |
| # BASIC COMPILE INSTRUCTIONS AND DEPENDENCIES #
 | |
| ###############################################
 | |
| 
 | |
| # this is for GNU make; comment out and notify zip-bugs if it causes errors
 | |
| .SUFFIXES:	.c .o .obj
 | |
| 
 | |
| # yes, we should be able to use the $O macro to combine these two, but it
 | |
| # fails on some brain-damaged makes (e.g., AIX's)...no big deal
 | |
| .c.o:
 | |
| 	$(CC) -c $(CF) $*.c
 | |
| 
 | |
| .c.obj:
 | |
| 	$(CC) -c $(CF) $*.c
 | |
| 
 | |
| # this doesn't work...directories are always a pain with implicit rules
 | |
| #.1.doc:		unix/$<
 | |
| #	nroff -Tman -man $< | col -b | uniq | \
 | |
| #	 sed 's/Sun Release ..../Info-ZIP        /' > $@
 | |
| 
 | |
| 
 | |
| # these rules are specific to Suns and are really intended only for the
 | |
| # authors' use in creating non-Unix documentation files (which are pro-
 | |
| # vided with both source and binary distributions).  We should probably
 | |
| # add a ".1.man" rule for more generic systems...
 | |
| 
 | |
| unzip.doc:	unix/unzip.1
 | |
| 	nroff -Tman -man unix/unzip.1 | col -b | uniq | \
 | |
| 	 sed 's/Sun Release ..../Info-ZIP        /' > $@
 | |
| 
 | |
| unzipsfx.doc:	unix/unzipsfx.1
 | |
| 	nroff -Tman -man unix/unzipsfx.1 | col -b | uniq | \
 | |
| 	 sed 's/Sun Release ..../Info-ZIP        /' > $@
 | |
| 
 | |
| zipinfo.doc:	unix/zipinfo.1
 | |
| 	nroff -Tman -man unix/zipinfo.1 | col -b | uniq | \
 | |
| 	 sed 's/Sun Release ..../Info-ZIP        /' > $@
 | |
| 
 | |
| funzip.doc:	unix/funzip.1
 | |
| 	nroff -Tman -man unix/funzip.1 | col -b | uniq | \
 | |
| 	 sed 's/Sun Release ..../Info-ZIP        /' > $@
 | |
| 
 | |
| 
 | |
| all:		generic_msg generic
 | |
| unzips:		$(UNZIPS)
 | |
| objs:		$(OBJS)
 | |
| objsdll:	$(OBJSDLL)
 | |
| docs:		$(DOCS)
 | |
| unzipsman:	unzips docs
 | |
| unzipsdocs:	unzips docs
 | |
| 
 | |
| 
 | |
| # EDIT HERE FOR PARALLEL MAKES on Sequent (and others?)--screws up MS-DOS
 | |
| # make utilities if default:  change "unzip$E:" to "unzip$E:&"
 | |
| 
 | |
| unzip$E:	$(OBJS)			# add `&' for parallel makes
 | |
| 	$(LD) $(LF) $(LOBJS) $(LF2)
 | |
| 
 | |
| unzipsfx$E:	$(OBJX)			# add `&' for parallel makes
 | |
| 	$(LD) $(SL) $(LOBJX) $(SL2)
 | |
| 
 | |
| funzip$E:	$(OBJF)			# add `&' for parallel makes
 | |
| 	$(LD) $(FL) $(OBJF) $(FL2)
 | |
| 
 | |
| zipinfo$E:	unzip$E			# `&' is pointless here...
 | |
| 	@echo\
 | |
|  '  This is a Unix-specific target.  ZipInfo is not enabled in some MS-DOS'
 | |
| 	@echo\
 | |
|  '  versions of UnZip; if it is in yours, copy unzip.exe to zipinfo.exe'
 | |
| 	@echo\
 | |
|  '  or else invoke as "unzip -Z" (in a batch file, for example).'
 | |
| 	$(LN) unzip$E zipinfo$E
 | |
| 
 | |
| 
 | |
| crc32$O:	crc32.c $(UNZIP_H) zip.h
 | |
| crctab$O:	crctab.c $(UNZIP_H) zip.h
 | |
| crypt$O:	crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
 | |
| envargs$O:	envargs.c $(UNZIP_H)
 | |
| explode$O:	explode.c $(UNZIP_H)
 | |
| extract$O:	extract.c $(UNZIP_H) crypt.h
 | |
| fileio$O:	fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
 | |
| funzip$O:	funzip.c $(UNZIP_H) crypt.h ttyio.h tables.h
 | |
| globals$O:	globals.c $(UNZIP_H)
 | |
| inflate$O:	inflate.c inflate.h $(UNZIP_H)
 | |
| list$O:		list.c $(UNZIP_H)
 | |
| match$O:	match.c $(UNZIP_H)
 | |
| process$O:	process.c $(UNZIP_H)
 | |
| ttyio$O:	ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
 | |
| unreduce$O:	unreduce.c $(UNZIP_H)
 | |
| unshrink$O:	unshrink.c $(UNZIP_H)
 | |
| unzip$O:	unzip.c $(UNZIP_H) crypt.h version.h consts.h
 | |
| zipinfo$O:	zipinfo.c $(UNZIP_H)
 | |
| 
 | |
| crypt_$O:	crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h	# funzip only
 | |
| 	$(CP) crypt.c crypt_.c
 | |
| 	$(CC) -c $(CF) -DFUNZIP crypt_.c
 | |
| 	$(RM) crypt_.c
 | |
| 
 | |
| extract_$O:	extract.c $(UNZIP_H) crypt.h			# unzipsfx only
 | |
| 	$(CP) extract.c extract_.c
 | |
| 	$(CC) -c $(CF) -DSFX extract_.c
 | |
| 	$(RM) extract_.c
 | |
| 
 | |
| globals_$O:	globals.c $(UNZIP_H)				# funzip only
 | |
| 	$(CP) globals.c globals_.c
 | |
| 	$(CC) -c $(CF) -DFUNZIP globals_.c
 | |
| 	$(RM) globals_.c
 | |
| 
 | |
| inflate_$O:	inflate.c inflate.h $(UNZIP_H) crypt.h		# funzip only
 | |
| 	$(CP) inflate.c inflate_.c
 | |
| 	$(CC) -c $(CF) -DFUNZIP inflate_.c
 | |
| 	$(RM) inflate_.c
 | |
| 
 | |
| ttyio_$O:	ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h	# funzip only
 | |
| 	$(CP) ttyio.c ttyio_.c
 | |
| 	$(CC) -c $(CF) -DFUNZIP ttyio_.c
 | |
| 	$(RM) ttyio_.c
 | |
| 
 | |
| msdos$O:	msdos/msdos.c $(UNZIP_H) version.h		# DOS only
 | |
| 	$(CC) -c $(CF) msdos/msdos.c
 | |
| 
 | |
| # version() not used by unzipsfx, so no version.h dependency
 | |
| msdos_$O:	msdos/msdos.c $(UNZIP_H)			# DOS unzipsfx
 | |
| 	$(CP) msdos\msdos.c msdos_.c > nul
 | |
| 	$(CC) -c $(CF) -DSFX msdos_.c
 | |
| 	$(RM) msdos_.c
 | |
| 
 | |
| #os2$O:		os2/os2.c $(UNZIP_H)				# OS/2 only
 | |
| #	$(CC) -c $(CF) os2/os2.c
 | |
| 
 | |
| 
 | |
| process_$O:	process.c $(UNZIP_H)				# unzipsfx only
 | |
| 	$(CP) process.c process_.c
 | |
| 	$(CC) -c $(CF) -DSFX process_.c
 | |
| 	$(RM) process_.c
 | |
| 
 | |
| unix$O:		unix/unix.c $(UNZIP_H) version.h		# Unix only
 | |
| 	$(CC) -c $(CF) unix/unix.c
 | |
| 
 | |
| # version() not used by unzipsfx, so no version.h dependency
 | |
| unix_$O:	unix/unix.c $(UNZIP_H)				# Unix unzipsfx
 | |
| 	$(CP) unix/unix.c unix_.c
 | |
| 	$(CC) -c $(CF) -DSFX unix_.c
 | |
| 	$(RM) unix_.c
 | |
| 
 | |
| atari_$O:	atari.c $(UNZIP_H)
 | |
| 	$(CP) atari.c atari_.c
 | |
| 	$(CC) -c $(CF) -DSFX atari_.c
 | |
| 	$(RM) atari_.c
 | |
| 
 | |
| unzipsfx$O:	unzip.c $(UNZIP_H) crypt.h version.h consts.h	# unzipsfx only
 | |
| 	$(CP) unzip.c unzipsfx.c
 | |
| 	$(CC) -c $(CF) -DSFX unzipsfx.c
 | |
| 	$(RM) unzipsfx.c
 | |
| 
 | |
| 
 | |
| unix_make:
 | |
| #	@echo\
 | |
| # '(Ignore any errors from `make'"' due to the following command; it's harmless.)"
 | |
| 	-@2>&1 $(LN) unix/Makefile . > /dev/null || echo > /dev/null
 | |
| 
 | |
| # this really only works for Unix targets, unless specify E and O on cmd line
 | |
| clean:
 | |
| 	@echo ""
 | |
| 	@echo '         This is a Unix-specific target.  (Just so you know.)'
 | |
| 	@echo ""
 | |
| 	rm -f $(OBJS) api$O apihelp$O unzipstb$O $(OBJF) $(OBJX) $(UNZIPS)
 | |
| 
 | |
| install:	$(UNZIPS) $(MANS)
 | |
| 	$(INSTALL) $(UNZIPS) $(BINDIR)
 | |
| 	$(RM) $(BINDIR)/zipinfo$E
 | |
| 	$(LN) $(BINDIR)/unzip$E $(BINDIR)/zipinfo$E
 | |
| 	$(INSTALL) unix/unzip.1 $(MANDIR)/unzip.$(manext)
 | |
| 	$(INSTALL) unix/unzipsfx.1 $(MANDIR)/unzipsfx.$(manext)
 | |
| 	$(INSTALL) unix/zipinfo.1 $(MANDIR)/zipinfo.$(manext)
 | |
| 	$(INSTALL) unix/funzip.1 $(MANDIR)/funzip.$(manext)
 | |
| 	$(CHMOD) 755  $(INSTALLEDBIN)
 | |
| 	$(CHMOD) 644  $(INSTALLEDMAN)
 | |
| 
 | |
| # alternatively, could use zip method:  -cd $(BINDIR); rm -f $(UNZIPS)  [etc.]
 | |
| uninstall:
 | |
| 	rm -f $(INSTALLEDBIN) $(INSTALLEDMAN)
 | |
| 
 | |
| 
 | |
| TESTZIP = testmake.zip	# the test zipfile
 | |
| 
 | |
| # test some basic features of the build
 | |
| test:		check
 | |
| 
 | |
| check:	unzips
 | |
| 	@echo '  This is a Unix-specific target.  (Just so you know.)'
 | |
| 	if test ! -f $(TESTZIP); then \
 | |
| 		echo "  error:  can't find test file $(TESTZIP)"; exit 1; fi
 | |
| #
 | |
| 	echo "  testing extraction"
 | |
| 	./unzip -b $(TESTZIP) testmake.zipinfo
 | |
| 	if test $? ; then \
 | |
| 	    echo "  error:  file extraction from $(TESTZIP) failed"; exit 1; fi
 | |
| #
 | |
| 	echo '  testing zipinfo (unzip -Z)'
 | |
| 	./unzip -Z $(TESTZIP) > testmake.unzip-Z
 | |
| 	if diff testmake.unzip-Z testmake.zipinfo; then ;; else \
 | |
| 	    echo '  error:  zipinfo output doesn't match stored version'; fi
 | |
| 	$(RM) testmake.unzip-Z testmake.zipinfo
 | |
| #
 | |
| 	echo '  testing unzip -d exdir option'
 | |
| 	./unzip -b $(TESTZIP) -d testun
 | |
| 	cat testun/notes
 | |
| #
 | |
| 	echo '  testing unzip -o and funzip (ignore funzip warning)'
 | |
| 	./unzip -boq $(TESTZIP) notes -d testun
 | |
| 	./funzip < $(TESTZIP) > testun/notes2
 | |
| 	if diff testun/notes testun/notes2; then ;; else \
 | |
| 	    echo 'error:  funzip output disagrees with unzip'; fi
 | |
| #
 | |
| 	echo '  testing unzipsfx (self-extractor)'
 | |
| 	cat unzipsfx $(TESTZIP) > testsfx
 | |
| 	$(CHMOD) 0700 testsfx
 | |
| 	./testsfx -b notes
 | |
| 	if diff notes testun/notes; then ;; else \
 | |
| 	    echo '  error:  unzipsfx file disagrees with unzip'; fi
 | |
| 	$(RM) testsfx notes testun/notes testun/notes2
 | |
| 	rmdir testun
 | |
| #
 | |
| 	echo '  testing complete.'
 | |
| 
 | |
| 
 | |
| ################################
 | |
| # INDIVIDUAL MACHINE MAKERULES #
 | |
| ################################
 | |
| 
 | |
| #----------------------------------------------------------------------------
 | |
| #  Generic targets (can't assume make utility groks "$(MAKE)")
 | |
| #----------------------------------------------------------------------------
 | |
| 
 | |
| generic:	unzips	   # first try if unknown
 | |
| 
 | |
| generic2:	unix_make  # second try if unknown:  hope make is called "make"
 | |
| 	make -f unix/Makefile unzips CF="$(CF) -DBSD"
 | |
| 
 | |
| generic3:	unix_make  # third try if unknown:  hope make is called "make"
 | |
| 	make -f unix/Makefile unzips CF="$(CF) -DSYSV"
 | |
| 
 | |
| #----------------------------------------------------------------------------
 | |
| #  "Normal" group (BSD vs. SysV may be set in unzip.h via predefined macros):
 | |
| #----------------------------------------------------------------------------
 | |
| 
 | |
| 386i:		unzips	# sun386i, SunOS 4.0.2
 | |
| 3Bx:		unzips	# AT&T 3B2/1000-80; should work on any WE32XXX machine
 | |
| #aix_rt:		unzips	# IBM RT 6150 under AIX 2.2.1
 | |
| apollo:		unzips	# Apollo Domain/OS machines
 | |
| bull:		unzips	# Bull DPX/2, BOS 2.00.45 (doesn't require -Xk switch)
 | |
| convex:		unzips	# Convex C-120 and C-210 (-O is enough; -ext is default)
 | |
| cray:		unzips	# Cray-2 and Y-MP, using default (possibly old) compiler
 | |
| dec:		unzips	# DEC 5820 (MIPS RISC), test version of Ultrix v4.0
 | |
| encore:		unzips	# Multimax
 | |
| eta:		unzips	# ETA-10P*, hybrid SysV with BSD 4.3 enhancements
 | |
| gould:		unzips	# Gould PN9000 running UTX/32 2.1Bu01
 | |
| hp:		unzips	# HP 9000 series (68020), 4.3BSD or HP-UX A.B3.10 Ver D
 | |
| hpux:		unzips	# (to match zip's makefile entry)
 | |
| mips:		unzips	# MIPS M120-5(?), SysV.3 [error in sys/param.h file?]
 | |
| next10:		unzips	# NeXT (generic; use next2x or next3x for better opt.)
 | |
| osf1:		unzips	# DECstation, including Alpha-based; DEC OSF/1 v1.x
 | |
| pyr_:		unzips	# [failsafe target for pyramid target below]
 | |
| pyr_ucb:	unzips	# Pyramids running BSD universe by default (see below)
 | |
| realix:		unzips	# Modcomp Real/IX (SysV.3); note "gcc" = GLS C, not GNU
 | |
| sco:		unzips	# Xenix/386 (tested on 2.3.1); SCO Unix 3.2.0.
 | |
| sgi:		unzips	# Silicon Graphics; Irix 3.3.2, 4.0.x, 5.2, etc.
 | |
| stellar:	unzips	# gs-2000
 | |
| sun:		unzips	# old target; no good with solaris...use "sunos" now
 | |
| sunos:		unzips	# Sun 3, 4; SunOS 4.x (SOME SYSTEMS ARE SYSTEM V!)
 | |
| tahoe:		unzips	# tahoe (CCI Power6/32), 4.3BSD
 | |
| ultrix:		unzips	# VAXen, DEC 58x0 (MIPS guts), DECstation 2100; v4.x
 | |
| vax:		unzips	# general-purpose VAX target (not counting VMS)
 | |
| 
 | |
| #----------------------------------------------------------------------------
 | |
| #  BSD group (for timezone structs [struct timeb]):
 | |
| #----------------------------------------------------------------------------
 | |
| 
 | |
| bsd:		_bsd	# generic BSD (BSD 4.2 & Ultrix handled in unzip.h)
 | |
| bsd386:		_bsd	# BSDI BSD/386 version 1.0
 | |
| 
 | |
| _bsd:		unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -DBSD"
 | |
| 
 | |
| #----------------------------------------------------------------------------
 | |
| #  SysV group (for extern long timezone and ioctl.h instead of sgtty.h):
 | |
| #----------------------------------------------------------------------------
 | |
| 
 | |
| aix_rt:		_sysv	# IBM RT 6150 under AIX 2.2.1
 | |
| amdahl:		_sysv	# Amdahl (IBM) mainframe, UTS (SysV) 1.2.4 and 2.0.1
 | |
| aviion:		_sysv	# Data General AViiONs, DG/UX 4.3x
 | |
| pyr_att:	_sysv	# Pyramids running AT&T (SysV) universe by default
 | |
| solaris:	_sysv	# Sun SPARC & x86, Solaris 2.x
 | |
| stardent:	_sysv	# Stardent ...
 | |
| sysv:		_sysv	# generic System V Unix (Xenix handled in unzip.h)
 | |
| xos:		_sysv	# Olivetti LSX-3005..3045, X/OS 2.3 and 2.4
 | |
| 
 | |
| _sysv:		unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -DSYSV"
 | |
| 
 | |
| #----------------------------------------------------------------------------
 | |
| #  Version 7 group (old/obsolescent):
 | |
| #----------------------------------------------------------------------------
 | |
| 
 | |
| pixel:		_v7	# Pixel 80, 100 (68000-based, V7/mostly BSD4.1 compat.)
 | |
| v7:		_v7	# generic Unix Version 7 box (prob. only Pixel...)
 | |
| 
 | |
| _v7:
 | |
| 	make -f unix/Makefile unzips \
 | |
| 	 CF="$(CF) -DV7 -DNO_PARAM_H -DSHORT_NAMES -DBSD -DZMEM"
 | |
| 
 | |
| #----------------------------------------------------------------------------
 | |
| #  "Unique" group (require non-standard options):
 | |
| #----------------------------------------------------------------------------
 | |
| 
 | |
| # AT&T 7300 (M68000/SysV.3) (add -DSYSV? -DNO_LIMITS?)
 | |
| 7300:		unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -DNO_DIR -DNO_MKDIR -DNO_STRNICMP"
 | |
| 
 | |
| 7300_gcc:	unix_make
 | |
| 	$(MAKE) unzips CC=gcc LD=gcc LF2="" \
 | |
| 	 CF="-O2 -I. -DNO_DIR -DNO_MKDIR -DNO_STDLIB_H -DNO_STRNICMP $(LOC)"
 | |
| 	$(STRIP) $(UNZIPS)
 | |
| 
 | |
| # IBM AIX 3.x on an RS/6000:  see rs6000 target below
 | |
| aix:		rs6000
 | |
| 
 | |
| # Amdahl UTS 2.1.4 with "extended file types" filesystem (aarrrggghhhh...)
 | |
| amdahl_eft:	unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -eft -DSYSV"
 | |
| 
 | |
| # MS-DOS:  Borland C++ 3.0 (can change UnZip memory model to small for more
 | |
| # speed but no ZipInfo support [-ml -> -ms in _bcc_dos], but may run out of
 | |
| # memory when inflating--should not be true anymore in 5.11)
 | |
| bcc_dos:	_bcc_dos fu_bcc sfx_bcc
 | |
| 
 | |
| _bcc_dos:	bcc_rsp		#  v-- change to -ml for large model
 | |
| 	$(MAKE) unzip.exe CF="-w -ms -O2 -I. $(LOC)" CC=bcc LD=bcc E=.exe\
 | |
| 	 O=.obj M=msdos LOBJS="" LF="@bcc_rsp" LF2=""
 | |
| 	del bcc_rsp
 | |
| 
 | |
| bcc_rsp:
 | |
| 	echo $(OBJS1:.o=.obj) > bcc_rsp
 | |
| 	echo msdos.obj $(OBJS2:.o=.obj) >> bcc_rsp
 | |
| 
 | |
| fu_bcc:
 | |
| 	$(MAKE) funzip.exe CF="-w -ms -O2 -I. $(LOC)" CC=bcc LD=bcc E=.exe\
 | |
| 	 O=.obj FL="" FL2="" CP=copy RM=del
 | |
| 
 | |
| sfx_bcc:
 | |
| 	$(MAKE) unzipsfx.exe CF="-w -ms -O2 -I. $(LOC)" CC=bcc LD=bcc E=.exe\
 | |
| 	 O=.obj SL="" SL2="" CP=copy RM=del
 | |
| 
 | |
| # Coherent 3.x/4.x, Mark Williams C.  ``For Coherent's CC, it needs either
 | |
| # -T0 or -T150000 (or bigger) added to the CFLAGS, otherwise the compiler
 | |
| # runs out of memory and dies in zipinfo.c.'' [Fred "Fredex" Smith, 940719]
 | |
| coherent:	unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -T0"
 | |
| 
 | |
| # Cray-2, Y-MP or C90, running Unicos 5.x to 8.x (SysV + BSD enhancements)
 | |
| # and Standard (ANSI) C compiler 3.0 or later.
 | |
| cray_opt:	unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -h scalar3 -h vector3"
 | |
| 
 | |
| # The unzip41 build on a Cyber 910/SGI running Irix v3.3.3 was successful
 | |
| # with the following change to Makefile:
 | |
| cyber_sgi:	unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -I/usr/include/bsd"\
 | |
| 	 LF="-lbsd $(LF)" SL="-lbsd $(SL)"
 | |
| 
 | |
| # 680x0, DIAB dnix 5.2/5.3 (a Swedish System V clone)
 | |
| #
 | |
| # Options for the dnix cc:
 | |
| #  -X7 = cc is strict ANSI C
 | |
| #  -X9 = warnings if a function is used without a declaration
 | |
| #
 | |
| dnix:		unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -X7 -X9 -DDNIX"
 | |
| 
 | |
| # Generic BSDish Unix gcc.  ``The -O2 only works with the latest version of
 | |
| # gcc; you may have to use -O only for earlier versions.  I have no idea why
 | |
| # -s causes this bug in gcc.''  [Bug:  "nm: unzip: no name list", "collect:
 | |
| # /usr/bin/nm returned 1 exit status".]  If you don't have strip, don't
 | |
| # worry about it (it just makes the executable smaller and can be replaced
 | |
| # with "echo" instead).
 | |
| #
 | |
| gcc:		unix_make
 | |
| 	$(MAKE) unzips CC=gcc LD=gcc CF="-O2 -I. $(LOC)" LF2=""
 | |
| 	$(STRIP) $(UNZIPS)
 | |
| 
 | |
| # MS-DOS with D.J. Delorie's djgpp 1.12.  Note that earlier versions of go32
 | |
| # (< 1.11) don't support DOS function 0x38 (necessary for "unzip -v foobar").
 | |
| # Note also that this set of targets has work-arounds for three bugs in the
 | |
| # older version (3.69) of GNU make formerly distributed with djgpp:  (1) it
 | |
| # sets the MAKE variable incorrectly for spawning with COMMAND.COM (forward
 | |
| # slashes instead of backslashes--fixed in 3.71 by not spawning COMMAND.COM),
 | |
| # so the usual $(MAKE) has been replaced by "make"; (2) it doesn't handle
 | |
| # makefile continuation lines correctly, most likely because of the MS-DOS
 | |
| # CR-LF line-endings (seems to be fixed in 3.71?), so long lines are used;
 | |
| # and (3) it doesn't handle quotes as in CF="-O2 -Wall etc." correctly, so
 | |
| # these macros have been changed to "CF=-O2 -Wall etc." where necessary.
 | |
| # The newer GNU make (version 3.71) does not handle quotes correctly, but
 | |
| # prepending "command /c" to each make line is reported by E-Yen Tan
 | |
| # <e-yen.tan@brasenose.oxford.ac.uk> to be a successful work-around.  The
 | |
| # emx version of GNU make 3.71 which is maintained by Kai Uwe Rommel has
 | |
| # other fatal bugs involving the shell (necessary for recursive targets
 | |
| # like this one).  GRR 940430, 940723, 940814, 951230
 | |
| #
 | |
| djgpp1:		_gcc_dos1 fu_gcc1 sfx_gcc1	# djgpp v1.x with GO32 extender
 | |
| gcc_dos1:	_gcc_dos1 fu_gcc1 sfx_gcc1	# djgpp v1.x with GO32 extender
 | |
| 
 | |
| _gcc_dos1: gcc_rsp
 | |
| # this line works with GNU make 3.69:
 | |
| #	make unzip CC=gcc LD=gcc M=msdos "CF=-O2 -Wall -I. $(LOC)" LOBJS="" "LF=-o unzip @gcc_rsp" LF2=""
 | |
| #
 | |
| # this line should work with GNU make 3.71:
 | |
| 	command /c make unzip CC=gcc LD=gcc M=msdos "CF=-O2 -Wall -I. $(LOC)" LOBJS="" "LF=-o unzip @gcc_rsp" LF2=""
 | |
| #
 | |
| # these lines don't work at all, to our knowledge:
 | |
| #	$(MAKE) unzip CC=gcc LD=gcc M=msdos "CF=-O2 -Wall -I. $(LOC)"\
 | |
| #	 LOBJS="" LF="-o unzip @gcc_rsp" LF2=""
 | |
| #
 | |
| 	$(STRIP) unzip
 | |
| 	coff2exe unzip
 | |
| #	use this instead if you want to create a stand-alone executable (bigger;
 | |
| #	may require full path to go32.exe):
 | |
| #	coff2exe -s go32.exe unzip
 | |
| 	stubedit unzip.exe globbing=no
 | |
| 	del gcc_rsp
 | |
| 	del unzip
 | |
| #
 | |
| 	coff2exe -g zipinfo
 | |
| 	stubedit zipinfo.exe runfile=unzip.exe globbing=no
 | |
| 	del zipinfo
 | |
| 
 | |
| fu_gcc1:
 | |
| # this line works with GNU make 3.69:
 | |
| #	make funzip CC=gcc LD=gcc "CF=-Wall -O2 -I. $(LOC)" FL2="" CP=copy RM=del
 | |
| #
 | |
| # this line should work with GNU make 3.71:
 | |
| 	command /c make funzip CC=gcc LD=gcc "CF=-Wall -O2 -I. $(LOC)" FL2="" CP=copy RM=del
 | |
| #
 | |
| # these lines don't work at all, to our knowledge:
 | |
| #	$(MAKE) funzip CC=gcc LD=gcc "CF=-Wall -O2 -I. $(LOC)" FL2=""\
 | |
| #	 CP=copy RM=del
 | |
| #
 | |
| 	$(STRIP) funzip
 | |
| 	coff2exe funzip
 | |
| #	use this instead if you want to create a stand-alone executable (bigger;
 | |
| #	may require full path to go32.exe):
 | |
| #	coff2exe -s go32.exe funzip
 | |
| 	del funzip
 | |
| 
 | |
| sfx_gcc1:
 | |
| # this line works with GNU make 3.69:
 | |
| #	make unzipsfx CC=gcc LD=gcc M=msdos "CF=-Wall -O2 -I. $(LOC)" SL2="" CP=copy RM=del
 | |
| #
 | |
| # this line should work with GNU make 3.71:
 | |
| 	command /c make unzipsfx CC=gcc LD=gcc M=msdos "CF=-Wall -O2 -I. $(LOC)" SL2="" CP=copy RM=del
 | |
| #
 | |
| # these lines don't work at all, to our knowledge:
 | |
| #	$(MAKE) unzipsfx CC=gcc LD=gcc M=msdos "CF=-Wall -O2 -I. $(LOC)"\
 | |
| #	 SL2="" CP=copy RM=del
 | |
| #
 | |
| 	$(STRIP) unzipsfx
 | |
| 	coff2exe unzipsfx
 | |
| #	use this instead if you want to create a stand-alone executable (bigger;
 | |
| #	may require full path to go32.exe):
 | |
| #	coff2exe -s go32.exe unzipsfx
 | |
| 	stubedit unzipsfx.exe globbing=no
 | |
| 	del unzipsfx
 | |
| 
 | |
| gcc_rsp:
 | |
| 	echo $(OBJS1) > gcc_rsp
 | |
| 	echo $(OBJS2) msdos.o >> gcc_rsp
 | |
| 
 | |
| # MS-DOS with D.J. Delorie's djgpp 2.0.  See above for comments about make
 | |
| # utilities (may or may not still be relevant).  All executables are now
 | |
| # stand-alone, but can provide Charles W. Sandmann's (alternate?) DPMI server
 | |
| # if needed via "stubedit unzip.exe dpmi=cwsdpmi.exe" (for example).  950816
 | |
| 
 | |
| djgpp:		_gcc_dos fu_gcc sfx_gcc		# djgpp v2.x
 | |
| djgpp2:		_gcc_dos fu_gcc sfx_gcc		# djgpp v2.x
 | |
| gcc_dos:	_gcc_dos fu_gcc sfx_gcc		# djgpp v2.x
 | |
| 
 | |
| _gcc_dos: gcc_rsp
 | |
| 	make unzip CC=gcc LD=gcc M=msdos "CF=-O2 -Wall -I. $(LOC)" LOBJS="" "LF=-o unzip @gcc_rsp" LF2=""
 | |
| #	$(MAKE) unzip CC=gcc LD=gcc M=msdos "CF=-O2 -Wall -I. $(LOC)"\
 | |
| #	 LOBJS="" LF="-o unzip @gcc_rsp" LF2=""
 | |
| 	$(STRIP) unzip
 | |
| 	stubify unzip
 | |
| 	del gcc_rsp
 | |
| 	del unzip
 | |
| 	stubify -g zipinfo.exe
 | |
| 	stubedit zipinfo.exe runfile=unzip argv0=zipinfo
 | |
| 
 | |
| fu_gcc:
 | |
| 	make funzip CC=gcc LD=gcc "CF=-Wall -O2 -I. $(LOC)" FL2="" CP=copy RM=del
 | |
| #	$(MAKE) funzip CC=gcc LD=gcc "CF=-Wall -O2 -I. $(LOC)" FL2=""\
 | |
| #	 CP=copy RM=del
 | |
| 	$(STRIP) funzip
 | |
| 	stubify funzip
 | |
| 	del funzip
 | |
| 
 | |
| sfx_gcc:
 | |
| 	make unzipsfx CC=gcc LD=gcc M=msdos "CF=-Wall -O2 -I. $(LOC)" SL2="" CP=copy RM=del
 | |
| #	$(MAKE) unzipsfx CC=gcc LD=gcc M=msdos "CF=-Wall -O2 -I. $(LOC)"\
 | |
| #	 SL2="" CP=copy RM=del
 | |
| 	$(STRIP) unzipsfx
 | |
| 	stubify unzipsfx
 | |
| 	del unzipsfx
 | |
| 
 | |
| # Heurikon HK68 (68010), UniPlus+ System V 5.0, Green Hills C-68000
 | |
| hk68:		unix_make
 | |
| 	$(MAKE) unzips CC="gcc" LD="gcc"\
 | |
| 	 LF="-n $(LF)" SL="-n $(SL)" FL="-n $(FL)"\
 | |
| 	 CF="-ga -X138 -I. $(LOC) -Dlocaltime=localti -Dtimezone=timezon"
 | |
| 
 | |
| # Linux (Posix, approximately SysV):  virtually any version since before 0.96.
 | |
| linux:		unix_make
 | |
| 	$(MAKE) unzips CC=gcc LD=gcc
 | |
| 
 | |
| # Linux host with go32 (djgpp) cross-compiler (go32crs.tgz) for 32-bit DOS.
 | |
| # Change msdos_$O target (near line 303 above) from msdos\msdos to msdos/msdos.
 | |
| linux_dos:	unix_make
 | |
| 	$(MAKE) unzips CC=go32gcc LD=go32gcc M=msdos CF="-Wall -O2 -I. $(LOC)"
 | |
| #	go32-strip unzip
 | |
| #	Due to limitations of the cross-compiling package, this has to be
 | |
| #	done manually:
 | |
| 	@echo Copy $(UNZIPS) to your DOS partition and use coff2exe.
 | |
| 
 | |
| # Linux ELF shared library (ooo, it's so easy).  This is a test target for
 | |
| # now, and it only makes the UnZip/ZipInfo stuff (not fUnZip or UnZipSFX).
 | |
| # Do "make clean" before using this target the first time, eh?  The version
 | |
| # number may change to match the UnZip version.  Or not.  Whatever.  Also
 | |
| # do "setenv LD_LIBRARY_PATH `pwd`" or similar to test the DLL in place
 | |
| # (with unzip, which is now the version linked with the shared library).
 | |
| #
 | |
| linux_shlib:	unix_make
 | |
| 	$(MAKE) objsdll CC=gcc CF="$(CF) -DDLL -fPIC"
 | |
| 	gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.2 $(OBJSDLL)
 | |
| 	ln -sf libunzip.so.0.2 libunzip.so.0
 | |
| 	gcc -c -O unzipstb.c
 | |
| 	gcc -o unzip unzipstb.o -L. -lunzip
 | |
| 
 | |
| # Linux ELF shared library, as above, but using inflate() from zlib (libz.so)
 | |
| # instead of the original UnZip version.  (libz was libgz prior to 0.94)
 | |
| linux_shlibz:	unix_make
 | |
| 	$(MAKE) objsdll CC=gcc CF="$(CF) -DDLL -DUSE_ZLIB -fPIC"
 | |
| 	gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.2 $(OBJSDLL)
 | |
| 	ln -sf libunzip.so.0.2 libunzip.so.0
 | |
| 	gcc -c -O unzipstb.c
 | |
| 	gcc -o unzip unzipstb.o -L. -lunzip -lz
 | |
| 
 | |
| # Minix 1.5 PC for the 386.  Invoke as is to use default cc, or as "make
 | |
| # minix CC=gcc" to use gcc.  Try "make linux" if you have a working termios.h.
 | |
| minix:		unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -DMINIX -DSHORT_NAMES" CC=$(CC) LD=$(CC)
 | |
| 
 | |
| # MS-DOS:  Microsoft C 6.0 and NMAKE.  "nmake msc_dos" works fine, aside
 | |
| # from an irrelevant message (possibly) about the creation of a temporary
 | |
| # file.  Environment variable LOCAL_UNZIP (or CL) should be set via "SET
 | |
| # LOCAL_UNZIP=-FPi87" if you use the 80x87 library; also add -G2 or -G3 if
 | |
| # using a 286/386/486.  Note that setting too many things via LOCAL_UNZIP
 | |
| # may make the command line too long for the default COMMAND.COM shell, so
 | |
| # use CL instead in that case.  With VC++ Pro, -O2 instead of -Oait seems to
 | |
| # work OK and makes the executables slightly faster.  Use at your own risk.
 | |
| #
 | |
| msc_dos:	_msc_dos fu_msc sfx_msc
 | |
| 
 | |
| # can change UnZip memory model (-AS) to large (-AL) if necessary, but should
 | |
| # no longer be necessary in UnZip 5.11 and later
 | |
| _msc_dos:	msc_rsp
 | |
| 	$(MAKE) unzip.exe CF="-AS -W3 -Oait -Gs -nologo -I. $(LOC)" CC=cl\
 | |
| 	 LD=link E=.exe O=.obj M=msdos LOBJS="" LF="@msc_rsp" LF2=""
 | |
| 	del msc_rsp
 | |
| 
 | |
| msc_rsp:
 | |
| 	echo $(OBJS1:.o=.obj) + > msc_rsp
 | |
| 	echo msdos.obj $(OBJS2:.o=.obj)/noi/e/st:0x0c00; >> msc_rsp
 | |
| 
 | |
| fu_msc:
 | |
| 	set CL=-AS -Oait -Gs -nologo -I.
 | |
| 	$(MAKE) funzip.exe CF="$(LOC)" CC=cl LD=link E=.exe O=.obj\
 | |
| 	 FL="/noi/nol/e" FL2=",funzip;" RM=del CP=copy
 | |
| 
 | |
| sfx_msc:
 | |
| 	set CL=-AS -Oait -Gs -nologo -I.
 | |
| 	$(MAKE) unzipsfx.exe CF="$(LOC)" CC=cl LD=link E=.exe O=.obj M=msdos\
 | |
| 	 SL="/noi/nol/e" SL2=",unzipsfx;" RM=del CP=copy
 | |
| 
 | |
| # $(NOD):  intended to be used as   SET NOD=-link /nod:slibcep   to allow the
 | |
| #          use of default library names (slibce.lib) instead of protected-mode
 | |
| #          names (slibcep.lib), but it fails:  MSC adds its own /nod qualifier,
 | |
| #          and there seems to be no way to override this.  Typical...
 | |
| #
 | |
| #    THIS TARGET RETAINED AS AN EXAMPLE ONLY.  USE MAKEFILE.OS2.
 | |
| #
 | |
| #msc_os2:		# 16-bit OS/2 (1.x) with MSC 6.00 (use makefile.os2)
 | |
| #	$(MAKE) -nologo unzips CC=cl LD=cl E=.exe O=.obj\
 | |
| #	 OBJS="$(OBJS_OS2)" OBJZ="$(OBJZ_OS2)"\
 | |
| #	 CF="-nologo -AC -Ocegit -G2s -DOS2 -DMSC $(LOC)"\
 | |
| #	 LF="-nologo -AC $(LOC) -Lp -F 2000"\
 | |
| #	 LF2="unzip.def -o unzip.exe $(NOD)" CP=copy RM=del\
 | |
| #	 ZL="-nologo -AC $(LOC) -Lp -Fb" ZL2="zipinfo.def -o zipinfo.exe"
 | |
| 
 | |
| # NeXT info.
 | |
| next:
 | |
| 	@echo
 | |
| 	@echo\
 | |
|  '  Please pick a specific NeXT target:  "make next10" will create a generic'
 | |
| 	@echo\
 | |
|  '  NeXT executable; "make next2x" will create a smaller executable (for'
 | |
| 	@echo\
 | |
|  '  NeXTstep 2.0 and higher); "make next3x" will create a small executable'
 | |
| 	@echo\
 | |
|  '  with significantly better optimization (NeXTstep 3.0 and higher only);'
 | |
| 	@echo\
 | |
|  '  "make nextfat" will create a fat, multi-architecture (NeXT plus Intel)'
 | |
| 	@echo\
 | |
|  '  executable (NeXTstep 3.1 and higher only).'
 | |
| 	@echo
 | |
| 
 | |
| # 68030 BSD 4.3+Mach.  NeXT 2.x: make the executable smaller.
 | |
| next2x:		unix_make
 | |
| 	$(MAKE) unzips LF2="-object -s"
 | |
| 
 | |
| # NeXT 3.x: as above, plus better optimization.
 | |
| next3x:		unix_make
 | |
| 	$(MAKE) unzips CF="-O2 -I. $(LOC)" LF2="-object -s"
 | |
| 
 | |
| # NeXT 3.1+: make the executable fat (multi-architecture binary [MAB],
 | |
| # for "black" [NeXT] and "white" [x86] hardware, so far).
 | |
| nextfat:	unix_make
 | |
| 	$(MAKE) unzips CF="-O2 -I. $(LOC) -arch i386 -arch m68k" \
 | |
| 	 LF2="-arch i386 -arch m68k -object -s"
 | |
| 
 | |
| # Sequent Symmetry running Dynix/ptx (sort of SysV.3):  needs to link
 | |
| # with libseq to get symlink().
 | |
| ptx:		unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -DSYSV -DTERMIO -DPTX" LF2="$(LF2) -lseq"
 | |
| 
 | |
| # Pyramid 90X (probably all) under >= OSx4.1, either universe.  (This is an
 | |
| # experimental target!  If it fails, use either pyr_ucb or pyr_att instead.)
 | |
| # The make in the BSD half is too stupid to understand $(MAKE), sigh...
 | |
| pyramid:	unix_make
 | |
| 	-make -f unix/Makefile pyr_`universe`
 | |
| 
 | |
| # REGULUS:  68040-based, "real-time" SysV.3 mutant; uses gcc, with "REGULUS"
 | |
| # predefined.
 | |
| regulus:	unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -traditional -DSYSV -DNO_MKDIR"
 | |
| 
 | |
| # IBM RS/6000 under AIX 3.2
 | |
| rs6000:		unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -DBSD -D_BSD -DUNIX" LF2="-lbsd"
 | |
| 
 | |
| # SCO cross compile from Unix to DOS. Tested with Xenix/386 and OpenDeskTop.
 | |
| # Should work with Xenix/286 as well. (davidsen)  Note that you *must* remove
 | |
| # the Unix objects and executable before doing this!  (Piet Plomp:  gcc won't
 | |
| # recognize the -M0 flag which forces 8086 code.)  (GRR:  may need to reduce
 | |
| # stack to 0c00h if using 286/small-model code...?)
 | |
| sco_dos:	unix_make
 | |
| 	$(MAKE) unzips CF="-O -I. $(LOC) -dos -M0" M=msdos\
 | |
| 	 LF="-dos -F 2000" LF2="-o unzip.exe"\
 | |
| 	 FL="-dos" FL2="-o funzip.exe" SL="-dos" SL2="-o unzipsfx.exe"
 | |
| 
 | |
| # SCO UNIX with shared libraries and no international support.  If you are
 | |
| # not using a USA-style keyboard and display, you may want to remove -nointl
 | |
| # to get support.  It adds quite a bit to the size of the executable.
 | |
| sco_sl:		unix_make
 | |
| 	$(MAKE) unzips LF="$(LF) -nointl" LF2="$(LF2) -lc_s"\
 | |
| 	 SL="$(SL) -nointl" FL="$(FL) -nointl"
 | |
| 
 | |
| # SCO Xenix/286 2.3.3 with 2.2.1 development system
 | |
| sco_x286:	unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -Mel2 -LARGE -DTERMIO" LF="$(LF) -Mel2 -LARGE"
 | |
| 
 | |
| # Sequent Symmetry with Dynix.  (386, but needs -DZMEM)
 | |
| # This should also work on Balance but I can't test it just yet.
 | |
| sequent:	unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -DBSD -DZMEM"
 | |
| 
 | |
| # Generic System V + GNU C
 | |
| sysv_gcc:	unix_make
 | |
| 	$(MAKE) unzips CC=gcc LD=gcc CF="-O2 -I. -DSYSV $(LOC)" LF2=""
 | |
| 	$(STRIP) $(UNZIPS)
 | |
| 
 | |
| # AT&T 6300+, System V.2 Unix:  run-time out-of-memory error if don't use -Ml;
 | |
| # also compile-time error if work arrays dimensioned at HSIZE+2 (>32K)
 | |
| sysv6300:	unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -Ml -DSYSV" LF="$(LF) -Ml"\
 | |
| 	 SL="$(SL) -Ml" FL="$(FL) -Ml"
 | |
| 
 | |
| # Texas Instruments System V.3 (running on HP 9000-1500)
 | |
| ti_sysv:	unix_make
 | |
| 	$(MAKE) unzips CF="$(CF) -DSYSV -DNO_UID_GID -DUID_USHORT"
 | |
| 
 | |
| # SCO Xenix (Joe Foster 950508:  "unzip needs to be linked with -lx [for the
 | |
| # opendir(), readdir(), telldir(), rewinddir(), and closedir() calls]")
 | |
| xenix:		 unix_make
 | |
| 	$(MAKE) unzips LF2="$(LF2) -lx"
 | |
| 
 | |
| # Wombat 68000 (or whatever).
 | |
| # I didn't do this.  I swear.  No, really.
 | |
| wombat:		unix_make
 | |
| 	@echo
 | |
| 	@echo  '	Ha ha!  Just kidding.'
 | |
| 	@echo
 |