123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- # Makefile for Zip, ZipCloak, ZipNote and ZipSplit for
- # Microsoft C 5.1 and above.
- # To use, do "make makefile.msc"
- # Add -DSMALL_MEM or -DMEDIUM_MEM to the LOC macro if you wish to reduce
- # the memory requirements.
- # Add -DNO_ASM to CFLAGS and comment out the ASMOBJS definition if
- # you do not have masm.
- #
- # If you want link Zip against zlib to replace the built-in deflate routines,
- # the following changes are required:
- # - in the definition of "LOC", add "-DUSE_ZLIB" and remove "-DNO_SECURE_TESTS"
- # - comment out the "ASMOBJS" symbol definition
- # - modify the linking command blocks for zip and zipcloak according to
- # the following scheme:
- # add a command line "echo ,,,zlib_$(ZIPMODEL); >> zip[c].rsp" just
- # before the "$(LD)..." line; and remove the semicolon character from the
- # "echo ..." line immediately preceding the just inserted command
- # Optional nonstandard preprocessor flags (as -DMEDIUM_MEM or -DNO_ASM)
- # should be added to the environment via "set LOCAL_ZIP=-DFOO" or added
- # to the declaration of LOC here:
- LOC = -DDOS -DDYN_ALLOC -DNO_SECURE_TESTS $(LOCAL_ZIP)
- # Zip requires compact or large memory model.
- # with 2.1, compact model exceeds 64k code segment; use large model
- ZIPMODEL=L # large model for Zip and ZipUtils
- # name of Flag to select memory model for assembler compiles, supported
- # values are __SMALL__ , __MEDIUM__ , __COMPACT__ , __LARGE__ :
- ASMODEL=__LARGE__ # keep in sync with ZIPMODEL definition !!
- # Type for CPU required: 0: 8086, 1: 80186, 2: 80286, 3: 80386, etc.
- CPU_TYP = 0
- # Uncomment the following macro to use the optimized assembler
- # routines in Zip:
- ASMOBJS = match.obj crc_i86.obj
- ASCPUFLAG = __$(CPU_TYP)86
- # ------------- Microsoft C 5.1, 6.0, 7.0 and VC++ Pro 1.0 -------------
- CC=cl
- MODEL=-A$(ZIPMODEL)
- FP=
- # With the feature additions of Zip 3, the default data segment gets occupied
- # with too much initialized data to fit into 64k. As a workaround, for some
- # source files with large amount of message strings, -Gt<num> is used to
- # force data items of size <num> or larger into their own data segments.
- COMMON_CFLAGS=-nologo -I. $(MODEL) $(FP) -DMSC $(LOC) -W3 -G$(CPU_TYP)
- CFLAGS=$(COMMON_CFLAGS) -Ox
- SPECFLAGS=$(COMMON_CFLAGS) -Oaict -Gs
- # For MSC/C++ 7.0 and VC++ no special flags are needed:
- # SPECFLAGS=$(CFLAGS)
- UTILFLAGS=-DUTIL $(CFLAGS) -Fo
- AS=masm
- ASFLAGS=-ml -t -D$(ASCPUFLAG) -D$(ASMODEL) $(LOC)
- # For MSC 6.0, use:
- #AS=ml
- #ASFLAGS=-c -D$(ASCPUFLAG) -D$(ASMODEL) $(LOC)
- # Supress -DDYN_ALLOC in ASFLAGS if you have suppressed it in CFLAGS
- LD=link
- LDFLAGS=/noi/farcall/packcode/e/st:0x1400/m
- # If you use an exe packer as recommended below, remove /e from LDFLAGS
- # ------------- Common declarations:
- STRIP=rem
- # If you don't have UPX, LZEXE, or PKLITE, get one of them. Then define:
- # (NOTE: upx needs a 386 or higher system to run the exe compressor)
- #STRIP=upx --8086 --best
- # or
- #STRIP=lzexe
- # or (if you've registered PKLITE)
- #STRIP=pklite
- # and remove /e from LDFLAGS.
- # This makes a big difference in .exe size (and possibly load time)
- # ------------- Used by install rule
- # set BIN to the directory you want to install the executables to
- BIN = c:\util
- # variables
- OBJZ = zip.obj crypt.obj ttyio.obj zipfile.obj zipup.obj fileio.obj util.obj \
- crc32.obj globals.obj
- OBJI = deflate.obj trees.obj $(ASMOBJS) msdos.obj
- OBJU = zipfile_.obj fileio_.obj util_.obj globals.obj msdos_.obj
- OBJN = zipnote.obj $(OBJU)
- OBJC = zipcloak.obj crc32_.obj crypt_.obj ttyio.obj $(OBJU)
- OBJS = zipsplit.obj $(OBJU)
- ZIP_H = zip.h ziperr.h tailor.h msdos/osdep.h
- ZIPS = zip.exe zipnote.exe zipsplit.exe zipcloak.exe
- zips: $(ZIPS)
- zip.obj: zip.c $(ZIP_H) revision.h crc32.h crypt.h ttyio.h
- $(CC) -c $(CFLAGS) -Gt65 $*.c
- # MSC 5.1 generates bad code on zipfile with -Ox
- zipfile.obj: zipfile.c $(ZIP_H) crc32.h
- $(CC) -c $(SPECFLAGS) $*.c
- zipup.obj: zipup.c $(ZIP_H) revision.h crc32.h crypt.h msdos/zipup.h
- $(CC) -c $(CFLAGS) $*.c
- fileio.obj: fileio.c $(ZIP_H) crc32.h
- $(CC) -c $(CFLAGS) $*.c
- util.obj: util.c $(ZIP_H)
- $(CC) -c $(CFLAGS) $*.c
- globals.obj: globals.c $(ZIP_H)
- $(CC) -c $(CFLAGS) $*.c
- deflate.obj: deflate.c $(ZIP_H)
- $(CC) -c $(CFLAGS) $*.c
- trees.obj: trees.c $(ZIP_H)
- $(CC) -c $(CFLAGS) $*.c
- crc32.obj: crc32.c $(ZIP_H) crc32.h
- $(CC) -c $(CFLAGS) $*.c
- crypt.obj: crypt.c $(ZIP_H) crypt.h crc32.h ttyio.h
- $(CC) -c $(CFLAGS) $*.c
- ttyio.obj: ttyio.c $(ZIP_H) crypt.h ttyio.h
- $(CC) -c $(CFLAGS) $*.c
- msdos.obj: msdos/msdos.c $(ZIP_H)
- $(CC) -c $(CFLAGS) msdos/$*.c
- zipcloak.obj: zipcloak.c $(ZIP_H) revision.h crc32.h crypt.h ttyio.h
- $(CC) -c $(CFLAGS) $*.c
- zipnote.obj: zipnote.c $(ZIP_H) revision.h
- $(CC) -c $(CFLAGS) $*.c
- # MSC 5.1 dies on zipsplit with -Ox
- zipsplit.obj: zipsplit.c $(ZIP_H) revision.h
- $(CC) -c $(SPECFLAGS) $*.c
- # MSC 5.1 generates bad code on zipfile with -Ox
- zipfile_.obj: zipfile.c $(ZIP_H) crc32.h
- $(CC) -c $(SPECFLAGS) -DUTIL -Fo$@ zipfile.c
- fileio_.obj: fileio.c $(ZIP_H) crc32.h
- $(CC) -c $(UTILFLAGS)$@ fileio.c
- util_.obj: util.c $(ZIP_H)
- $(CC) -c $(UTILFLAGS)$@ util.c
- crc32_.obj: crc32.c $(ZIP_H) crc32.h
- $(CC) -c $(UTILFLAGS)$@ crc32.c
- crypt_.obj: crypt.c $(ZIP_H) crypt.h crc32.h ttyio.h
- $(CC) -c $(UTILFLAGS)$@ crypt.c
- msdos_.obj: msdos/msdos.c $(ZIP_H)
- $(CC) -c $(UTILFLAGS)$@ msdos/msdos.c
- crc_i86.obj: msdos/crc_i86.asm
- $(AS) $(ASFLAGS) msdos\crc_i86.asm ;
- match.obj: msdos/match.asm
- $(AS) $(ASFLAGS) msdos\match.asm ;
- # we must cut the command line to fit in the MS/DOS 128 byte limit:
- zip.exe: $(OBJZ) $(OBJI)
- echo $(OBJZ)+ > zip.rsp
- echo $(OBJI); >> zip.rsp
- $(LD) $(LDFLAGS) @zip.rsp
- del zip.rsp
- $(STRIP) zip.exe
- zipcloak.exe: $(OBJC)
- echo $(OBJC); > zipc.rsp
- $(LD) $(LDFLAGS) @zipc.rsp
- del zipc.rsp
- $(STRIP) zipcloak.exe
- zipnote.exe: $(OBJN)
- echo $(OBJN); > zipn.rsp
- $(LD) $(LDFLAGS) @zipn.rsp
- del zipn.rsp
- $(STRIP) zipnote.exe
- zipsplit.exe: $(OBJS)
- echo $(OBJS); > zips.rsp
- $(LD) $(LDFLAGS) @zips.rsp
- del zips.rsp
- $(STRIP) zipsplit.exe
- # No `install' and `clean' target possible as long as MSC's old MAKE utility
- # is supported (MSC 5.1 Make always tries to update ALL targets. The result
- # is that install and clean are always executed, unless an error occured.)
- #install: $(ZIPS)
- # copy /b *.exe $(BIN)
- #
- #clean:
- # del *.obj
- # del *.exe
|