1*9573673dSchristos# Makefile for zlib 2*9573673dSchristos# Microsoft C 5.1 or later 3*9573673dSchristos# Last updated: 19-Mar-2003 4*9573673dSchristos 5*9573673dSchristos# To use, do "make makefile.msc" 6*9573673dSchristos# To compile in small model, set below: MODEL=S 7*9573673dSchristos 8*9573673dSchristos# If you wish to reduce the memory requirements (default 256K for big 9*9573673dSchristos# objects plus a few K), you can add to the LOC macro below: 10*9573673dSchristos# -DMAX_MEM_LEVEL=7 -DMAX_WBITS=14 11*9573673dSchristos# See zconf.h for details about the memory requirements. 12*9573673dSchristos 13*9573673dSchristos# ------------- Microsoft C 5.1 and later ------------- 14*9573673dSchristos 15*9573673dSchristos# Optional nonstandard preprocessor flags (e.g. -DMAX_MEM_LEVEL=7) 16*9573673dSchristos# should be added to the environment via "set LOCAL_ZLIB=-DFOO" or added 17*9573673dSchristos# to the declaration of LOC here: 18*9573673dSchristosLOC = $(LOCAL_ZLIB) 19*9573673dSchristos 20*9573673dSchristos# Type for CPU required: 0: 8086, 1: 80186, 2: 80286, 3: 80386, etc. 21*9573673dSchristosCPU_TYP = 0 22*9573673dSchristos 23*9573673dSchristos# Memory model: one of S, M, C, L (small, medium, compact, large) 24*9573673dSchristosMODEL=L 25*9573673dSchristos 26*9573673dSchristosCC=cl 27*9573673dSchristosCFLAGS=-nologo -A$(MODEL) -G$(CPU_TYP) -W3 -Oait -Gs $(LOC) 28*9573673dSchristos#-Ox generates bad code with MSC 5.1 29*9573673dSchristosLIB_CFLAGS=-Zl $(CFLAGS) 30*9573673dSchristos 31*9573673dSchristosLD=link 32*9573673dSchristosLDFLAGS=/noi/e/st:0x1500/noe/farcall/packcode 33*9573673dSchristos# "/farcall/packcode" are only useful for `large code' memory models 34*9573673dSchristos# but should be a "no-op" for small code models. 35*9573673dSchristos 36*9573673dSchristos 37*9573673dSchristos# variables 38*9573673dSchristosZLIB_LIB = zlib_$(MODEL).lib 39*9573673dSchristos 40*9573673dSchristosOBJ1 = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj 41*9573673dSchristosOBJ2 = gzwrite.obj infback.obj inffast.obj inflate.obj inftrees.obj trees.obj uncompr.obj zutil.obj 42*9573673dSchristos 43*9573673dSchristos 44*9573673dSchristos# targets 45*9573673dSchristosall: $(ZLIB_LIB) example.exe minigzip.exe 46*9573673dSchristos 47*9573673dSchristos.c.obj: 48*9573673dSchristos $(CC) -c $(LIB_CFLAGS) $*.c 49*9573673dSchristos 50*9573673dSchristosadler32.obj: adler32.c zlib.h zconf.h 51*9573673dSchristos 52*9573673dSchristoscompress.obj: compress.c zlib.h zconf.h 53*9573673dSchristos 54*9573673dSchristoscrc32.obj: crc32.c zlib.h zconf.h crc32.h 55*9573673dSchristos 56*9573673dSchristosdeflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h 57*9573673dSchristos 58*9573673dSchristosgzclose.obj: gzclose.c zlib.h zconf.h gzguts.h 59*9573673dSchristos 60*9573673dSchristosgzlib.obj: gzlib.c zlib.h zconf.h gzguts.h 61*9573673dSchristos 62*9573673dSchristosgzread.obj: gzread.c zlib.h zconf.h gzguts.h 63*9573673dSchristos 64*9573673dSchristosgzwrite.obj: gzwrite.c zlib.h zconf.h gzguts.h 65*9573673dSchristos 66*9573673dSchristosinfback.obj: infback.c zutil.h zlib.h zconf.h inftrees.h inflate.h \ 67*9573673dSchristos inffast.h inffixed.h 68*9573673dSchristos 69*9573673dSchristosinffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h inflate.h \ 70*9573673dSchristos inffast.h 71*9573673dSchristos 72*9573673dSchristosinflate.obj: inflate.c zutil.h zlib.h zconf.h inftrees.h inflate.h \ 73*9573673dSchristos inffast.h inffixed.h 74*9573673dSchristos 75*9573673dSchristosinftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h 76*9573673dSchristos 77*9573673dSchristostrees.obj: trees.c zutil.h zlib.h zconf.h deflate.h trees.h 78*9573673dSchristos 79*9573673dSchristosuncompr.obj: uncompr.c zlib.h zconf.h 80*9573673dSchristos 81*9573673dSchristoszutil.obj: zutil.c zutil.h zlib.h zconf.h 82*9573673dSchristos 83*9573673dSchristosexample.obj: test/example.c zlib.h zconf.h 84*9573673dSchristos $(CC) -c $(CFLAGS) $*.c 85*9573673dSchristos 86*9573673dSchristosminigzip.obj: test/minigzip.c zlib.h zconf.h 87*9573673dSchristos $(CC) -c $(CFLAGS) $*.c 88*9573673dSchristos 89*9573673dSchristos 90*9573673dSchristos# the command line is cut to fit in the MS-DOS 128 byte limit: 91*9573673dSchristos$(ZLIB_LIB): $(OBJ1) $(OBJ2) 92*9573673dSchristos if exist $(ZLIB_LIB) del $(ZLIB_LIB) 93*9573673dSchristos lib $(ZLIB_LIB) $(OBJ1); 94*9573673dSchristos lib $(ZLIB_LIB) $(OBJ2); 95*9573673dSchristos 96*9573673dSchristosexample.exe: example.obj $(ZLIB_LIB) 97*9573673dSchristos $(LD) $(LDFLAGS) example.obj,,,$(ZLIB_LIB); 98*9573673dSchristos 99*9573673dSchristosminigzip.exe: minigzip.obj $(ZLIB_LIB) 100*9573673dSchristos $(LD) $(LDFLAGS) minigzip.obj,,,$(ZLIB_LIB); 101*9573673dSchristos 102*9573673dSchristostest: example.exe minigzip.exe 103*9573673dSchristos example 104*9573673dSchristos echo hello world | minigzip | minigzip -d 105*9573673dSchristos 106*9573673dSchristosclean: 107*9573673dSchristos -del *.obj 108*9573673dSchristos -del *.lib 109*9573673dSchristos -del *.exe 110*9573673dSchristos -del *.map 111*9573673dSchristos -del zlib_*.bak 112*9573673dSchristos -del foo.gz 113