Home | History | Annotate | Line # | Download | only in win32
Makefile.msc revision 1.1.1.3
      1  1.1.1.2  christos # Makefile for zlib using Microsoft (Visual) C
      2  1.1.1.3  christos # zlib is copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
      3      1.1  christos #
      4      1.1  christos # Usage:
      5  1.1.1.2  christos #   nmake -f win32/Makefile.msc                          (standard build)
      6  1.1.1.2  christos #   nmake -f win32/Makefile.msc LOC=-DFOO                (nonstandard build)
      7      1.1  christos 
      8  1.1.1.2  christos # The toplevel directory of the source tree.
      9  1.1.1.2  christos #
     10  1.1.1.2  christos TOP = .
     11      1.1  christos 
     12      1.1  christos # optional build flags
     13      1.1  christos LOC =
     14      1.1  christos 
     15      1.1  christos # variables
     16      1.1  christos STATICLIB = zlib.lib
     17      1.1  christos SHAREDLIB = zlib1.dll
     18      1.1  christos IMPLIB    = zdll.lib
     19      1.1  christos 
     20      1.1  christos CC = cl
     21      1.1  christos AS = ml
     22      1.1  christos LD = link
     23      1.1  christos AR = lib
     24      1.1  christos RC = rc
     25  1.1.1.2  christos CFLAGS  = -nologo -MD -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC)
     26  1.1.1.2  christos WFLAGS  = -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
     27  1.1.1.2  christos ASFLAGS = -coff -Zi $(LOC)
     28  1.1.1.2  christos LDFLAGS = -nologo -debug -incremental:no -opt:ref
     29      1.1  christos ARFLAGS = -nologo
     30      1.1  christos RCFLAGS = /dWIN32 /r
     31      1.1  christos 
     32  1.1.1.2  christos OBJS = adler32.obj compress.obj crc32.obj deflate.obj gzclose.obj gzlib.obj gzread.obj \
     33  1.1.1.2  christos        gzwrite.obj infback.obj inflate.obj inftrees.obj inffast.obj trees.obj uncompr.obj zutil.obj
     34      1.1  christos OBJA =
     35      1.1  christos 
     36      1.1  christos 
     37      1.1  christos # targets
     38      1.1  christos all: $(STATICLIB) $(SHAREDLIB) $(IMPLIB) \
     39      1.1  christos      example.exe minigzip.exe example_d.exe minigzip_d.exe
     40      1.1  christos 
     41      1.1  christos $(STATICLIB): $(OBJS) $(OBJA)
     42      1.1  christos 	$(AR) $(ARFLAGS) -out:$@ $(OBJS) $(OBJA)
     43      1.1  christos 
     44      1.1  christos $(IMPLIB): $(SHAREDLIB)
     45      1.1  christos 
     46  1.1.1.2  christos $(SHAREDLIB): $(TOP)/win32/zlib.def $(OBJS) $(OBJA) zlib1.res
     47  1.1.1.2  christos 	$(LD) $(LDFLAGS) -def:$(TOP)/win32/zlib.def -dll -implib:$(IMPLIB) \
     48  1.1.1.2  christos 	  -out:$@ -base:0x5A4C0000 $(OBJS) $(OBJA) zlib1.res
     49  1.1.1.2  christos 	if exist $@.manifest \
     50  1.1.1.2  christos 	  mt -nologo -manifest $@.manifest -outputresource:$@;2
     51      1.1  christos 
     52      1.1  christos example.exe: example.obj $(STATICLIB)
     53      1.1  christos 	$(LD) $(LDFLAGS) example.obj $(STATICLIB)
     54  1.1.1.2  christos 	if exist $@.manifest \
     55  1.1.1.2  christos 	  mt -nologo -manifest $@.manifest -outputresource:$@;1
     56      1.1  christos 
     57      1.1  christos minigzip.exe: minigzip.obj $(STATICLIB)
     58      1.1  christos 	$(LD) $(LDFLAGS) minigzip.obj $(STATICLIB)
     59  1.1.1.2  christos 	if exist $@.manifest \
     60  1.1.1.2  christos 	  mt -nologo -manifest $@.manifest -outputresource:$@;1
     61      1.1  christos 
     62      1.1  christos example_d.exe: example.obj $(IMPLIB)
     63      1.1  christos 	$(LD) $(LDFLAGS) -out:$@ example.obj $(IMPLIB)
     64  1.1.1.2  christos 	if exist $@.manifest \
     65  1.1.1.2  christos 	  mt -nologo -manifest $@.manifest -outputresource:$@;1
     66      1.1  christos 
     67      1.1  christos minigzip_d.exe: minigzip.obj $(IMPLIB)
     68      1.1  christos 	$(LD) $(LDFLAGS) -out:$@ minigzip.obj $(IMPLIB)
     69  1.1.1.2  christos 	if exist $@.manifest \
     70  1.1.1.2  christos 	  mt -nologo -manifest $@.manifest -outputresource:$@;1
     71      1.1  christos 
     72  1.1.1.2  christos {$(TOP)}.c.obj:
     73  1.1.1.2  christos 	$(CC) -c $(WFLAGS) $(CFLAGS) $<
     74  1.1.1.2  christos 
     75  1.1.1.2  christos {$(TOP)/test}.c.obj:
     76  1.1.1.2  christos 	$(CC) -c -I$(TOP) $(WFLAGS) $(CFLAGS) $<
     77  1.1.1.2  christos 
     78  1.1.1.2  christos {$(TOP)/contrib/masmx64}.c.obj:
     79  1.1.1.2  christos 	$(CC) -c $(WFLAGS) $(CFLAGS) $<
     80  1.1.1.2  christos 
     81  1.1.1.2  christos {$(TOP)/contrib/masmx64}.asm.obj:
     82  1.1.1.2  christos 	$(AS) -c $(ASFLAGS) $<
     83      1.1  christos 
     84  1.1.1.2  christos {$(TOP)/contrib/masmx86}.asm.obj:
     85      1.1  christos 	$(AS) -c $(ASFLAGS) $<
     86      1.1  christos 
     87  1.1.1.2  christos adler32.obj: $(TOP)/adler32.c $(TOP)/zlib.h $(TOP)/zconf.h
     88  1.1.1.2  christos 
     89  1.1.1.2  christos compress.obj: $(TOP)/compress.c $(TOP)/zlib.h $(TOP)/zconf.h
     90  1.1.1.2  christos 
     91  1.1.1.2  christos crc32.obj: $(TOP)/crc32.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/crc32.h
     92  1.1.1.2  christos 
     93  1.1.1.2  christos deflate.obj: $(TOP)/deflate.c $(TOP)/deflate.h $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h
     94  1.1.1.2  christos 
     95  1.1.1.2  christos gzclose.obj: $(TOP)/gzclose.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/gzguts.h
     96  1.1.1.2  christos 
     97  1.1.1.2  christos gzlib.obj: $(TOP)/gzlib.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/gzguts.h
     98  1.1.1.2  christos 
     99  1.1.1.2  christos gzread.obj: $(TOP)/gzread.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/gzguts.h
    100  1.1.1.2  christos 
    101  1.1.1.2  christos gzwrite.obj: $(TOP)/gzwrite.c $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/gzguts.h
    102      1.1  christos 
    103  1.1.1.2  christos infback.obj: $(TOP)/infback.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/inftrees.h $(TOP)/inflate.h \
    104  1.1.1.2  christos              $(TOP)/inffast.h $(TOP)/inffixed.h
    105      1.1  christos 
    106  1.1.1.2  christos inffast.obj: $(TOP)/inffast.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/inftrees.h $(TOP)/inflate.h \
    107  1.1.1.2  christos              $(TOP)/inffast.h
    108      1.1  christos 
    109  1.1.1.2  christos inflate.obj: $(TOP)/inflate.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/inftrees.h $(TOP)/inflate.h \
    110  1.1.1.2  christos              $(TOP)/inffast.h $(TOP)/inffixed.h
    111      1.1  christos 
    112  1.1.1.2  christos inftrees.obj: $(TOP)/inftrees.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/inftrees.h
    113      1.1  christos 
    114  1.1.1.2  christos trees.obj: $(TOP)/trees.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h $(TOP)/deflate.h $(TOP)/trees.h
    115      1.1  christos 
    116  1.1.1.2  christos uncompr.obj: $(TOP)/uncompr.c $(TOP)/zlib.h $(TOP)/zconf.h
    117      1.1  christos 
    118  1.1.1.2  christos zutil.obj: $(TOP)/zutil.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h
    119      1.1  christos 
    120  1.1.1.2  christos gvmat64.obj: $(TOP)/contrib\masmx64\gvmat64.asm
    121      1.1  christos 
    122  1.1.1.2  christos inffasx64.obj: $(TOP)/contrib\masmx64\inffasx64.asm
    123      1.1  christos 
    124  1.1.1.2  christos inffas8664.obj: $(TOP)/contrib\masmx64\inffas8664.c $(TOP)/zutil.h $(TOP)/zlib.h $(TOP)/zconf.h \
    125  1.1.1.2  christos 		$(TOP)/inftrees.h $(TOP)/inflate.h $(TOP)/inffast.h
    126      1.1  christos 
    127  1.1.1.2  christos inffas32.obj: $(TOP)/contrib\masmx86\inffas32.asm
    128      1.1  christos 
    129  1.1.1.2  christos match686.obj: $(TOP)/contrib\masmx86\match686.asm
    130      1.1  christos 
    131  1.1.1.2  christos example.obj: $(TOP)/test/example.c $(TOP)/zlib.h $(TOP)/zconf.h
    132      1.1  christos 
    133  1.1.1.2  christos minigzip.obj: $(TOP)/test/minigzip.c $(TOP)/zlib.h $(TOP)/zconf.h
    134      1.1  christos 
    135  1.1.1.2  christos zlib1.res: $(TOP)/win32/zlib1.rc
    136  1.1.1.2  christos 	$(RC) $(RCFLAGS) /fo$@ $(TOP)/win32/zlib1.rc
    137      1.1  christos 
    138      1.1  christos # testing
    139      1.1  christos test: example.exe minigzip.exe
    140      1.1  christos 	example
    141      1.1  christos 	echo hello world | minigzip | minigzip -d
    142      1.1  christos 
    143      1.1  christos testdll: example_d.exe minigzip_d.exe
    144      1.1  christos 	example_d
    145      1.1  christos 	echo hello world | minigzip_d | minigzip_d -d
    146      1.1  christos 
    147      1.1  christos 
    148      1.1  christos # cleanup
    149      1.1  christos clean:
    150      1.1  christos 	-del $(STATICLIB)
    151      1.1  christos 	-del $(SHAREDLIB)
    152      1.1  christos 	-del $(IMPLIB)
    153      1.1  christos 	-del *.obj
    154      1.1  christos 	-del *.res
    155      1.1  christos 	-del *.exp
    156      1.1  christos 	-del *.exe
    157  1.1.1.2  christos 	-del *.pdb
    158  1.1.1.2  christos 	-del *.manifest
    159      1.1  christos 	-del foo.gz
    160