mirror of
https://github.com/GerbilSoft/zlib-ng.git
synced 2025-06-18 11:35:35 -04:00
252 lines
9.2 KiB
Makefile
252 lines
9.2 KiB
Makefile
# Makefile for zlib using Microsoft (Visual) C
|
|
# zlib is copyright (C) 1995-2006 Jean-loup Gailly and Mark Adler
|
|
#
|
|
# Usage:
|
|
# nmake -f win32/Makefile.a64 (standard build)
|
|
# nmake -f win32/Makefile.a64 LOC=-DFOO (nonstandard build)
|
|
|
|
# The toplevel directory of the source tree.
|
|
#
|
|
TOP = .
|
|
|
|
# optional build flags
|
|
LOC =
|
|
|
|
# variables
|
|
STATICLIB = zlib.lib
|
|
SHAREDLIB = zlib1.dll
|
|
IMPLIB = zdll.lib
|
|
SYMBOL_PREFIX =
|
|
|
|
CC = cl
|
|
LD = link
|
|
AR = lib
|
|
RC = rc
|
|
CP = copy /y
|
|
INCLUDES = -I$(TOP) -I$(TOP)/arch/arm -I$(TOP)/arch/generic
|
|
CFLAGS = -nologo -MD -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC) $(INCLUDES)
|
|
WFLAGS = \
|
|
-D_ARM64_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1 \
|
|
-D_CRT_SECURE_NO_DEPRECATE \
|
|
-D_CRT_NONSTDC_NO_DEPRECATE \
|
|
-DARM_NEON_HASLD4 \
|
|
-DARM_FEATURES \
|
|
#
|
|
LDFLAGS = -nologo -debug -incremental:no -opt:ref -manifest
|
|
ARFLAGS = -nologo
|
|
RCFLAGS = /dARM64 /r
|
|
DEFFILE = zlib.def
|
|
RCFILE = zlib1.rc
|
|
RESFILE = zlib1.res
|
|
WITH_GZFILEOP = yes
|
|
ZLIB_COMPAT =
|
|
SUFFIX =
|
|
|
|
OBJS = \
|
|
adler32.obj \
|
|
adler32_c.obj \
|
|
adler32_fold_c.obj \
|
|
arm_features.obj \
|
|
chunkset.obj \
|
|
compare256.obj \
|
|
compress.obj \
|
|
cpu_features.obj \
|
|
crc32_braid.obj \
|
|
crc32_braid_c.obj \
|
|
crc32_braid_comb.obj \
|
|
crc32_fold_c.obj \
|
|
deflate.obj \
|
|
deflate_fast.obj \
|
|
deflate_huff.obj \
|
|
deflate_quick.obj \
|
|
deflate_medium.obj \
|
|
deflate_rle.obj \
|
|
deflate_slow.obj \
|
|
deflate_stored.obj \
|
|
functable.obj \
|
|
infback.obj \
|
|
inflate.obj \
|
|
inftrees.obj \
|
|
insert_string.obj \
|
|
insert_string_roll.obj \
|
|
slide_hash.obj \
|
|
trees.obj \
|
|
uncompr.obj \
|
|
zutil.obj \
|
|
#
|
|
!if "$(ZLIB_COMPAT)" != ""
|
|
WITH_GZFILEOP = yes
|
|
WFLAGS = $(WFLAGS) -DZLIB_COMPAT
|
|
DEFFILE = zlibcompat.def
|
|
!else
|
|
STATICLIB = zlib-ng.lib
|
|
SHAREDLIB = zlib-ng1.dll
|
|
IMPLIB = zngdll.lib
|
|
DEFFILE = zlib-ng.def
|
|
RCFILE = zlib-ng1.rc
|
|
RESFILE = zlib-ng1.res
|
|
SUFFIX = -ng
|
|
!endif
|
|
|
|
!if "$(WITH_GZFILEOP)" != ""
|
|
WFLAGS = $(WFLAGS) -DWITH_GZFILEOP
|
|
OBJS = $(OBJS) gzlib.obj gzread.obj gzwrite.obj
|
|
!endif
|
|
|
|
WFLAGS = $(WFLAGS) \
|
|
-DARM_ACLE \
|
|
-D__ARM_NEON__=1 \
|
|
-DARM_NEON \
|
|
-DARM_NOCHECK_NEON \
|
|
#
|
|
OBJS = $(OBJS) crc32_acle.obj insert_string_acle.obj adler32_neon.obj chunkset_neon.obj compare256_neon.obj slide_hash_neon.obj
|
|
|
|
# targets
|
|
all: $(STATICLIB) $(SHAREDLIB) $(IMPLIB) \
|
|
example.exe minigzip.exe example_d.exe minigzip_d.exe
|
|
|
|
!if "$(SYMBOL_PREFIX)" != ""
|
|
zlib_name_mangling$(SUFFIX).h: zlib_name_mangling$(SUFFIX).h.in
|
|
cscript $(TOP)\win32\replace.vbs $(TOP)\zlib_name_mangling$(SUFFIX).h.in zlib_name_mangling$(SUFFIX).h "@ZLIB_SYMBOL_PREFIX@" "$(SYMBOL_PREFIX)"
|
|
!else
|
|
zlib_name_mangling$(SUFFIX).h: zlib_name_mangling.h.empty
|
|
$(CP) $(TOP)\zlib_name_mangling.h.empty zlib_name_mangling$(SUFFIX).h
|
|
!endif
|
|
|
|
zlib$(SUFFIX).h: zlib$(SUFFIX).h.in
|
|
cscript $(TOP)\win32\replace.vbs $(TOP)\zlib$(SUFFIX).h.in zlib$(SUFFIX).h "@ZLIB_SYMBOL_PREFIX@" "$(SYMBOL_PREFIX)"
|
|
|
|
gzread.c: gzread.c.in
|
|
cscript $(TOP)\win32\replace.vbs $(TOP)\gzread.c.in gzread.c "@ZLIB_SYMBOL_PREFIX@" "$(SYMBOL_PREFIX)"
|
|
|
|
zconf: $(TOP)/zconf$(SUFFIX).h.in $(TOP)/zlib$(SUFFIX).h $(TOP)/zlib_name_mangling$(SUFFIX).h
|
|
$(CP) $(TOP)\zconf$(SUFFIX).h.in $(TOP)\zconf$(SUFFIX).h
|
|
|
|
$(TOP)/win32/$(DEFFILE): $(TOP)/win32/$(DEFFILE).in
|
|
cscript $(TOP)\win32\replace.vbs $(TOP)/win32/$(DEFFILE).in $(TOP)/win32/$(DEFFILE) "@ZLIB_SYMBOL_PREFIX@" "$(SYMBOL_PREFIX)"
|
|
|
|
$(STATICLIB): zconf $(OBJS)
|
|
$(AR) $(ARFLAGS) -out:$@ $(OBJS)
|
|
|
|
$(IMPLIB): $(SHAREDLIB)
|
|
|
|
$(SHAREDLIB): zconf $(TOP)/win32/$(DEFFILE) $(OBJS) $(RESFILE)
|
|
$(LD) $(LDFLAGS) -def:$(TOP)/win32/$(DEFFILE) -dll -implib:$(IMPLIB) \
|
|
-out:$@ -base:0x55A4C0000 $(OBJS) $(RESFILE)
|
|
if exist $@.manifest \
|
|
mt -nologo -manifest $@.manifest -outputresource:$@;2
|
|
|
|
example.exe: example.obj gzlib2.obj gzread2.obj gzwrite2.obj $(STATICLIB)
|
|
$(LD) $(LDFLAGS) example.obj gzlib2.obj gzread2.obj gzwrite2.obj $(STATICLIB)
|
|
if exist $@.manifest \
|
|
mt -nologo -manifest $@.manifest -outputresource:$@;1
|
|
|
|
minigzip.exe: minigzip.obj gzlib2.obj gzread2.obj gzwrite2.obj $(STATICLIB)
|
|
$(LD) $(LDFLAGS) minigzip.obj gzlib2.obj gzread2.obj gzwrite2.obj $(STATICLIB)
|
|
if exist $@.manifest \
|
|
mt -nologo -manifest $@.manifest -outputresource:$@;1
|
|
|
|
example_d.exe: example.obj gzlib2.obj gzread2.obj gzwrite2.obj $(IMPLIB)
|
|
$(LD) $(LDFLAGS) -out:$@ example.obj gzlib2.obj gzread2.obj gzwrite2.obj $(IMPLIB)
|
|
if exist $@.manifest \
|
|
mt -nologo -manifest $@.manifest -outputresource:$@;1
|
|
|
|
minigzip_d.exe: minigzip.obj gzlib2.obj gzread2.obj gzwrite2.obj $(IMPLIB)
|
|
$(LD) $(LDFLAGS) -out:$@ minigzip.obj gzlib2.obj gzread2.obj gzwrite2.obj $(IMPLIB)
|
|
if exist $@.manifest \
|
|
mt -nologo -manifest $@.manifest -outputresource:$@;1
|
|
|
|
{$(TOP)}.c.obj:
|
|
$(CC) -c $(WFLAGS) $(CFLAGS) $<
|
|
|
|
gzlib2.obj: gzlib.c
|
|
$(CC) -c $(WFLAGS) $(CFLAGS) -DWITH_GZFILEOP -Fogzlib2.obj gzlib.c
|
|
|
|
gzread2.obj: gzread.c
|
|
$(CC) -c $(WFLAGS) $(CFLAGS) -DWITH_GZFILEOP -Fogzread2.obj gzread.c
|
|
|
|
gzwrite2.obj: gzwrite.c
|
|
$(CC) -c $(WFLAGS) $(CFLAGS) -DWITH_GZFILEOP -Fogzwrite2.obj gzwrite.c
|
|
|
|
{$(TOP)/arch/arm}.c.obj:
|
|
$(CC) -c -I$(TOP) $(WFLAGS) $(CFLAGS) $<
|
|
|
|
{$(TOP)/arch/generic}.c.obj:
|
|
$(CC) -c -I$(TOP) $(WFLAGS) $(CFLAGS) $<
|
|
|
|
{$(TOP)/test}.c.obj:
|
|
$(CC) -c -I$(TOP) $(WFLAGS) $(CFLAGS) -DWITH_GZFILEOP $<
|
|
|
|
$(TOP)/zconf$(SUFFIX).h: zconf
|
|
|
|
SRCDIR = $(TOP)
|
|
# Keep the dependences in sync with top-level Makefile.in
|
|
adler32.obj: $(SRCDIR)/adler32.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/adler32_p.h
|
|
adler32_c.obj: $(SRCDIR)/arch/generic/adler32_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/adler32_p.h
|
|
adler32_fold_c.obj: $(SRCDIR)/arch/generic/adler32_fold_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/arch/generic/adler32_fold_c.h
|
|
chunkset.obj: $(SRCDIR)/zbuild.h $(SRCDIR)/zutil.h
|
|
functable.obj: $(SRCDIR)/functable.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/zendian.h $(SRCDIR)/arch/x86/x86_features.h
|
|
gzlib.obj: $(SRCDIR)/gzlib.c $(SRCDIR)/zbuild.h $(SRCDIR)/gzguts.h $(SRCDIR)/zutil_p.h
|
|
gzread.obj: $(SRCDIR)/gzread.c $(SRCDIR)/zbuild.h $(SRCDIR)/gzguts.h $(SRCDIR)/zutil_p.h
|
|
gzwrite.obj: $(SRCDIR)/gzwrite.c $(SRCDIR)/zbuild.h $(SRCDIR)/gzguts.h $(SRCDIR)/zutil_p.h
|
|
compress.obj: $(SRCDIR)/compress.c $(SRCDIR)/zbuild.h $(SRCDIR)/zlib$(SUFFIX).h
|
|
uncompr.obj: $(SRCDIR)/uncompr.c $(SRCDIR)/zbuild.h $(SRCDIR)/zlib$(SUFFIX).h
|
|
cpu_features.obj: $(SRCDIR)/cpu_features.c $(SRCDIR)/zbuild.h $(SRCDIR)/zutil.h
|
|
crc32_braid.obj: $(SRCDIR)/crc32_braid.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/crc32_braid_tbl.h
|
|
crc32_braid_c.obj: $(SRCDIR)/arch/generic/crc32_braid_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/crc32_braid_p.h $(SRCDIR)/crc32_braid_tbl.h
|
|
crc32_braid_comb.obj: $(SRCDIR)/crc32_braid_comb.c $(SRCDIR)/zutil.h $(SRCDIR)/crc32_braid_p.h $(SRCDIR)/crc32_braid_tbl.h $(SRCDIR)/crc32_braid_comb_p.h
|
|
crc32_fold_c.obj: $(SRCDIR)/arch/generic/crc32_fold_c.c $(SRCDIR)/zbuild.h $(SRCDIR)/functable.h $(SRCDIR)/arch/generic/crc32_fold_c.h
|
|
deflate.obj: $(SRCDIR)/deflate.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
|
|
deflate_fast.obj: $(SRCDIR)/deflate_fast.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
|
|
deflate_huff.obj: $(SRCDIR)/deflate_huff.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
|
|
deflate_quick.obj: $(SRCDIR)/deflate_quick.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h $(SRCDIR)/trees_emit.h
|
|
deflate_medium.obj: $(SRCDIR)/deflate_medium.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
|
|
deflate_rle.obj: $(SRCDIR)/deflate_rle.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
|
|
deflate_slow.obj: $(SRCDIR)/deflate_slow.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
|
|
deflate_stored.obj: $(SRCDIR)/deflate_stored.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/deflate_p.h $(SRCDIR)/functable.h
|
|
infback.obj: $(SRCDIR)/infback.c $(SRCDIR)/zbuild.h $(SRCDIR)/zutil.h $(SRCDIR)/inftrees.h $(SRCDIR)/inflate.h $(SRCDIR)/inflate_p.h $(SRCDIR)/functable.h
|
|
inflate.obj: $(SRCDIR)/inflate.c $(SRCDIR)/zbuild.h $(SRCDIR)/zutil.h $(SRCDIR)/inftrees.h $(SRCDIR)/inflate.h $(SRCDIR)/inflate_p.h $(SRCDIR)/functable.h $(SRCDIR)/functable.h
|
|
inftrees.obj: $(SRCDIR)/inftrees.c $(SRCDIR)/zbuild.h $(SRCDIR)/zutil.h $(SRCDIR)/inftrees.h
|
|
slide_hash.obj: $(SRCDIR)/slide_hash.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h
|
|
slide_hash_neon.obj: $(SRCDIR)/arch/arm/slide_hash_neon.c $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h
|
|
trees.obj: $(SRCDIR)/zbuild.h $(SRCDIR)/deflate.h $(SRCDIR)/trees_tbl.h
|
|
zutil.obj: $(SRCDIR)/zbuild.h $(SRCDIR)/zutil.h $(SRCDIR)/zutil_p.h
|
|
|
|
example.obj: $(TOP)/test/example.c $(TOP)/zbuild.h $(TOP)/zlib$(SUFFIX).h
|
|
|
|
minigzip.obj: $(TOP)/test/minigzip.c $(TOP)/zbuild.h $(TOP)/zlib$(SUFFIX).h
|
|
|
|
$(RESFILE): $(TOP)/win32/$(RCFILE)
|
|
$(RC) $(RCFLAGS) /fo$@ $(TOP)/win32/$(RCFILE)
|
|
|
|
# testing
|
|
test: example.exe minigzip.exe
|
|
example
|
|
echo hello world | minigzip | minigzip -d
|
|
|
|
testdll: example_d.exe minigzip_d.exe
|
|
example_d
|
|
echo hello world | minigzip_d | minigzip_d -d
|
|
|
|
|
|
# cleanup
|
|
clean:
|
|
-del $(STATICLIB)
|
|
-del $(SHAREDLIB)
|
|
-del $(IMPLIB)
|
|
-del *.obj
|
|
-del *.res
|
|
-del *.exp
|
|
-del *.exe
|
|
-del *.pdb
|
|
-del *.manifest
|
|
|
|
distclean: clean
|
|
-del zconf$(SUFFIX).h
|
|
-del zlib$(SUFFIX).h
|
|
-del zlib_name_mangling$(SUFFIX).h
|
|
-del $(TOP)\win32\zlib.def
|
|
-del $(TOP)\win32\zlibcompat.def
|
|
-del $(TOP)\win32\zlib-ng.def
|
|
-del gzread.c
|