diff options
Diffstat (limited to 'msdos/makefile.msc')
-rw-r--r-- | msdos/makefile.msc | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/msdos/makefile.msc b/msdos/makefile.msc new file mode 100644 index 0000000..a7ec9c9 --- /dev/null +++ b/msdos/makefile.msc @@ -0,0 +1,209 @@ +# 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 |