# Makefile for Zip, ZipNote, ZipCloak and ZipSplit # what you can make ... all: zip #MAKE = make -f unix/Makefile SHELL = /bin/sh # (to use the Gnu compiler, change cc to gcc in CC and BIND) CC = cc BIND = $(CC) AS = $(CC) -c E = CPP = /lib/cpp # probably can change this to 'install' if you have it INSTALL = cp # target directories - where to install executables and man pages to prefix = /usr/local BINDIR = $(prefix)/bin manext=1 MANDIR = $(prefix)/man/man$(manext) ZIPMANUAL = MANUAL # flags # CFLAGS flags for C compile # LFLAGS1 flags after output file spec, before obj file list # LFLAGS2 flags after obj file list (libraries, etc) CFLAGS = -O2 -fno-strength-reduce -I. -DUNIX -DQLZIP -DASM_CRC LFLAGS1 = LFLAGS2 = -s # object file lists OBJZ = zip.o zipfile.o zipup.o fileio.o util.o globals.o crypt.o ttyio.o \ unix.o crc_gcc.o crctab.o qdos.o OBJI = deflate.o trees.o OBJA = OBJU = zipfile_.o fileio_.o util_.o globals.o unix_.o OBJN = zipnote.o $(OBJU) OBJC = zipcloak.o $(OBJU) crctab.o crypt_.o ttyio.o OBJS = zipsplit.o $(OBJU) ZIP_H = zip.h ziperr.h tailor.h unix/osdep.h # suffix rules .SUFFIXES: .SUFFIXES: _.o .o .c .doc .1 .c_.o: rm -f $*_.c; ln $< $*_.c $(CC) -c $(CFLAGS) -DUTIL $*_.c rm -f $*_.c .c.o: $(CC) -c $(CFLAGS) $< .1.doc: nroff -man $< | col -b | uniq > $@ # rules for zip, zipnote, zipcloak, zipsplit, and the Zip MANUAL. $(OBJZ): $(ZIP_H) $(OBJI): $(ZIP_H) $(OBJN): $(ZIP_H) $(OBJS): $(ZIP_H) $(OBJC): $(ZIP_H) zip.o zipup.o crypt.o ttyio.o zipcloak.o crypt_.o: crypt.h zip.o zipup.o zipnote.o zipcloak.o zipsplit.o: revision.h zip.o crypt.o ttyio.o zipcloak.o crypt_.o: ttyio.h zipup.o: unix/zipup.h match.o: match.S $(CPP) match.S > _match.s $(AS) _match.s mv _match.o match.o rm -f _match.s unix.o: unix/unix.c $(CC) -c $(CFLAGS) unix/unix.c unix_.o: unix/unix.c rm -f $*_.c; ln unix/unix.c $*_.c $(CC) -c $(CFLAGS) -DUTIL $*_.c rm -f $*_.c qdos.o: qdos/qdos.c $(CC) -c $(CFLAGS) qdos/qdos.c crc_gcc.o: crc_i386.S # 32bit, GNU AS gcc -O3 -I. -DASM_CRC -Di386 -x assembler-with-cpp -c -o $@ crc_i386.S ZIPS = zip$E zipnote$E zipsplit$E zipcloak$E zips: $(ZIPS) zipsman: $(ZIPS) $(ZIPMANUAL) zip$E: $(OBJZ) $(OBJI) $(OBJA) $(BIND) -o qlzip$E $(LFLAGS1) $(OBJZ) $(OBJI) $(OBJA) $(LFLAGS2) zipnote$E: $(OBJN) $(BIND) -o zipnote$E $(LFLAGS1) $(OBJN) $(LFLAGS2) zipcloak$E: $(OBJC) $(BIND) -o zipcloak$E $(LFLAGS1) $(OBJC) $(LFLAGS2) zipsplit$E: $(OBJS) $(BIND) -o zipsplit$E $(LFLAGS1) $(OBJS) $(LFLAGS2) $(ZIPMANUAL): man/zip.1 nroff -man man/zip.1 | col -b | uniq > $(ZIPMANUAL) # install install: $(ZIPS) $(INSTALL) $(ZIPS) $(BINDIR) $(INSTALL) man/zip.1 $(MANDIR)/zip.$(manext) uninstall: -cd $(BINDIR); rm -f $(ZIPS) -cd $(MANDIR); rm -f zip.$(manext) dist: zip -u9T zip`sed -e '/VERSION/!d' -e 's/.*"\(.*\)".*/\1/' \ -e s/[.]//g -e q revision.h` \ `awk '/^Makefile/,/vms_zip.rnh/ {print $$1}' < contents` flags: unix/configure sh unix/configure "${CC}" "${CFLAGS}" # These symbols, when #defined using -D have these effects on compilation: # ZMEM - includes C language versions of memset(), memcpy(), # and memcmp() (util.c). # HAVE_DIRENT_H - use instead of # NODIR - for 3B1, which has neither getdents() nor opendir(). # HAVE_NDIR_H - use (unix/unix.c). # HAVE_SYS_DIR_H - use # HAVE_SYS_NDIR_H - use # UTIL - select routines for utilities (note, cloak, split) # NO_RMDIR - remove directories using a system("rmdir ...") call. # NO_PROTO - cannot handle ANSI prototypes # NO_CONST - cannot handle ANSI const # Generic targets: # end of Makefile