mirror of
https://github.com/GerbilSoft/zlib-ng.git
synced 2025-06-18 11:35:35 -04:00
Remove NMake build projects
Reduce development burden by getting rid of NMake files that are manually kept up to date. For continued NMake support please generate NMake project files using CMake.
This commit is contained in:
parent
19b3b7f6e9
commit
dee0ff75f8
75
.github/workflows/nmake.yml
vendored
75
.github/workflows/nmake.yml
vendored
@ -1,75 +0,0 @@
|
||||
name: NMake
|
||||
on: [push, pull_request]
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
jobs:
|
||||
nmake:
|
||||
name: ${{ matrix.name }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- name: Windows NMake x86
|
||||
os: windows-2022
|
||||
makefile: win32/Makefile.msc
|
||||
arch: x86
|
||||
|
||||
- name: Windows NMake x64 compat
|
||||
os: windows-2022
|
||||
makefile: win32/Makefile.msc
|
||||
arch: x86_amd64
|
||||
additional-args: ZLIB_COMPAT=yes
|
||||
|
||||
- name: Windows NMake x64 Symbol Prefix
|
||||
os: windows-2022
|
||||
makefile: win32/Makefile.msc
|
||||
arch: x86_amd64
|
||||
additional-args: SYMBOL_PREFIX=zTest_
|
||||
|
||||
- name: Windows NMake x64 Symbol Prefix Compat
|
||||
os: windows-2022
|
||||
makefile: win32/Makefile.msc
|
||||
arch: x86_amd64
|
||||
additional-args: ZLIB_COMPAT=yes SYMBOL_PREFIX=zTest_
|
||||
|
||||
- name: Windows NMake x64
|
||||
os: windows-2022
|
||||
makefile: win32/Makefile.msc
|
||||
arch: x86_amd64
|
||||
|
||||
- name: Windows NMake ARM No Test
|
||||
os: windows-2022
|
||||
makefile: win32/Makefile.arm
|
||||
arch: x86_arm
|
||||
sdk: 10.0.22621.0
|
||||
|
||||
- name: Windows NMake ARM64 No Test
|
||||
os: windows-2022
|
||||
makefile: win32/Makefile.a64
|
||||
arch: x86_arm64
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
show-progress: 'false'
|
||||
|
||||
- name: Setup development environment
|
||||
uses: ilammy/msvc-dev-cmd@v1.13.0
|
||||
with:
|
||||
arch: ${{ matrix.arch }}
|
||||
sdk: ${{ matrix.sdk }}
|
||||
|
||||
- name: Compile source code
|
||||
shell: cmd
|
||||
run: nmake -f ${{ matrix.makefile }} ${{ matrix.additional-args }}
|
||||
|
||||
- name: Run test cases
|
||||
shell: cmd
|
||||
# Don't run tests on Windows ARM
|
||||
if: contains(matrix.arch, 'arm') == false
|
||||
run: |
|
||||
nmake -f ${{ matrix.makefile }} ${{ matrix.additional-args }} test
|
||||
nmake -f ${{ matrix.makefile }} ${{ matrix.additional-args }} testdll
|
@ -1,6 +1,6 @@
|
||||
| CI | Stable | Develop |
|
||||
|:---|:-------|:--------|
|
||||
| GitHub Actions | [](https://github.com/zlib-ng/zlib-ng/actions/workflows/cmake.yml?query=branch%3Astable) <br> [](https://github.com/zlib-ng/zlib-ng/actions/workflows/configure.yml?query=branch%3Astable) <br> [](https://github.com/zlib-ng/zlib-ng/actions/workflows/nmake.yml?query=branch%3Astable) | [](https://github.com/zlib-ng/zlib-ng/actions/workflows/cmake.yml?query=branch%3Adevelop) <br> [](https://github.com/zlib-ng/zlib-ng/actions/workflows/configure.yml?query=branch%3Adevelop) <br> [](https://github.com/zlib-ng/zlib-ng/actions/workflows/nmake.yml?query=branch%3Adevelop) |
|
||||
| GitHub Actions | [](https://github.com/zlib-ng/zlib-ng/actions/workflows/cmake.yml?query=branch%3Astable) <br> [](https://github.com/zlib-ng/zlib-ng/actions/workflows/configure.yml?query=branch%3Astable) | [](https://github.com/zlib-ng/zlib-ng/actions/workflows/cmake.yml?query=branch%3Adevelop) <br> [](https://github.com/zlib-ng/zlib-ng/actions/workflows/configure.yml?query=branch%3Adevelop) |
|
||||
| CodeFactor | [](https://www.codefactor.io/repository/github/zlib-ng/zlib-ng/overview/stable) | [](https://www.codefactor.io/repository/github/zlib-ng/zlib-ng/overview/develop) |
|
||||
| OSS-Fuzz | [](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:zlib-ng) | [](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:zlib-ng) |
|
||||
| Codecov | [](https://codecov.io/github/zlib-ng/zlib-ng/tree/stable) | [](https://codecov.io/github/zlib-ng/zlib-ng/tree/develop) |
|
||||
@ -27,7 +27,7 @@ Features
|
||||
* Support for hardware-accelerated deflate using IBM Z DFLTCC
|
||||
* Safe unaligned memory read/writes and large bit buffer improvements
|
||||
* Includes improvements from Cloudflare and Intel forks
|
||||
* Configure, CMake, and NMake build system support
|
||||
* Configure and CMake build system support
|
||||
* Comprehensive set of CMake unit tests
|
||||
* Code sanitizers, fuzzing, and coverage
|
||||
* GitHub Actions continuous integration on Windows, macOS, and Linux
|
||||
|
@ -1,256 +0,0 @@
|
||||
# Makefile for zlib using Microsoft (Visual) C
|
||||
# zlib is copyright (C) 1995-2024 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_FEATURES \
|
||||
-DARM_NEON_HASLD4 \
|
||||
#
|
||||
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_c.obj \
|
||||
compare256_c.obj \
|
||||
compress.obj \
|
||||
cpu_features.obj \
|
||||
crc32.obj \
|
||||
crc32_braid_c.obj \
|
||||
crc32_braid_comb.obj \
|
||||
crc32_c.obj \
|
||||
crc32_chorba_c.obj \
|
||||
crc32_fold_c.obj \
|
||||
deflate.obj \
|
||||
deflate_fast.obj \
|
||||
deflate_huff.obj \
|
||||
deflate_medium.obj \
|
||||
deflate_quick.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_c.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_CRC32 \
|
||||
-D__ARM_NEON__=1 \
|
||||
-DARM_NEON \
|
||||
-DARM_NOCHECK_NEON \
|
||||
#
|
||||
OBJS = $(OBJS) crc32_armv8.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 $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
$(CC) -c $(WFLAGS) $(CFLAGS) -DWITH_GZFILEOP -Fogzlib2.obj gzlib.c
|
||||
|
||||
gzread2.obj: gzread.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
$(CC) -c $(WFLAGS) $(CFLAGS) -DWITH_GZFILEOP -Fogzread2.obj gzread.c
|
||||
|
||||
gzwrite2.obj: gzwrite.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
$(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
|
||||
|
||||
adler32.obj: $(TOP)/adler32.c $(TOP)/zbuild.h $(TOP)/functable.h $(TOP)/adler32_p.h
|
||||
adler32_c.obj: $(TOP)/arch/generic/adler32_c.c $(TOP)/zbuild.h $(TOP)/functable.h $(TOP)/adler32_p.h
|
||||
adler32_fold_c.obj: $(TOP)/arch/generic/adler32_fold_c.c $(TOP)/zbuild.h $(TOP)/functable.h
|
||||
chunkset_c.obj: $(TOP)/arch/generic/chunkset_c.c $(TOP)/zbuild.h $(TOP)/chunkset_tpl.h $(TOP)/inffast_tpl.h
|
||||
compare256_c.obj: $(TOP)/arch/generic/compare256_c.c $(TOP)/zbuild.h $(TOP)/zmemory.h $(TOP)/deflate.h $(TOP)/fallback_builtins.h $(TOP)/match_tpl.h
|
||||
compress.obj: $(TOP)/compress.c $(TOP)/zbuild.h $(TOP)/zutil.h
|
||||
cpu_features.obj: $(TOP)/cpu_features.c $(TOP)/cpu_features.h $(TOP)/zbuild.h
|
||||
crc32.obj: $(TOP)/crc32.c $(TOP)/zbuild.h $(TOP)/functable.h $(TOP)/crc32_braid_tbl.h
|
||||
crc32_braid_c.obj: $(TOP)/arch/generic/crc32_braid_c.c $(TOP)/zbuild.h $(TOP)/crc32_braid_p.h $(TOP)/crc32_braid_tbl.h
|
||||
crc32_braid_comb.obj: $(TOP)/crc32_braid_comb.c $(TOP)/zutil.h $(TOP)/crc32_braid_p.h $(TOP)/crc32_braid_tbl.h $(TOP)/crc32_braid_comb_p.h
|
||||
crc32_c.obj: $(TOP)/arch/generic/crc32_c.c $(TOP)/zbuild.h $(TOP)/crc32_braid_p.h
|
||||
crc32_chorba_c.obj: $(TOP)/arch/generic/crc32_chorba_c.c $(TOP)/zbuild.h $(TOP)/crc32_braid_p.h $(TOP)/crc32_braid_tbl.h
|
||||
crc32_fold_c.obj: $(TOP)/arch/generic/crc32_fold_c.c $(TOP)/zbuild.h $(TOP)/crc32.h $(TOP)/functable.h $(TOP)/zutil.h
|
||||
deflate.obj: $(TOP)/deflate.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_fast.obj: $(TOP)/deflate_fast.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_huff.obj: $(TOP)/deflate_huff.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_medium.obj: $(TOP)/deflate_medium.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_quick.obj: $(TOP)/deflate_quick.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h $(TOP)/trees_emit.h $(TOP)/zmemory.h
|
||||
deflate_rle.obj: $(TOP)/deflate_rle.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h $(TOP)/compare256_rle.h
|
||||
deflate_slow.obj: $(TOP)/deflate_slow.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_stored.obj: $(TOP)/deflate_stored.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
functable.obj: $(TOP)/functable.c $(TOP)/zbuild.h $(TOP)/functable.h $(TOP)/cpu_features.h $(TOP)/arch/arm/arm_features.h $(TOP)/arch_functions.h
|
||||
gzlib.obj: $(TOP)/gzlib.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
gzread.obj: $(TOP)/gzread.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
gzwrite.obj: $(TOP)/gzwrite.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
infback.obj: $(TOP)/infback.c $(TOP)/zbuild.h $(TOP)/zutil.h $(TOP)/inftrees.h $(TOP)/inflate.h $(TOP)/inflate_p.h $(TOP)/functable.h
|
||||
inflate.obj: $(TOP)/inflate.c $(TOP)/zbuild.h $(TOP)/zutil.h $(TOP)/inftrees.h $(TOP)/inflate.h $(TOP)/inflate_p.h $(TOP)/functable.h $(TOP)/inffixed_tbl.h
|
||||
inftrees.obj: $(TOP)/inftrees.c $(TOP)/zbuild.h $(TOP)/zutil.h $(TOP)/inftrees.h
|
||||
insert_string.obj: $(TOP)/insert_string.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/insert_string_tpl.h
|
||||
insert_string_roll.obj: $(TOP)/insert_string_roll.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/insert_string_tpl.h
|
||||
slide_hash_c.obj: $(TOP)/arch/generic/slide_hash_c.c $(TOP)/zbuild.h $(TOP)/deflate.h
|
||||
slide_hash_neon.obj: $(TOP)/arch/arm/slide_hash_neon.c $(TOP)/arch/arm/neon_intrins.h $(TOP)/zbuild.h $(TOP)/deflate.h
|
||||
trees.obj: $(TOP)/trees.c $(TOP)/trees.h $(TOP)/trees_emit.h $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/trees_tbl.h
|
||||
uncompr.obj: $(TOP)/uncompr.c $(TOP)/zbuild.h $(TOP)/zutil.h
|
||||
zutil.obj: $(TOP)/zutil.c $(TOP)/zbuild.h $(TOP)/zutil.h $(TOP)/zutil_p.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
|
||||
|
||||
example.obj: $(TOP)/test/example.c $(TOP)/zbuild.h $(TOP)/zlib$(SUFFIX).h $(TOP)/deflate.h $(TOP)/test/test_shared_ng.h
|
||||
|
||||
minigzip.obj: $(TOP)/test/minigzip.c $(TOP)/zbuild.h $(TOP)/zlib$(SUFFIX).h
|
||||
|
||||
|
||||
# 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
|
@ -1,276 +0,0 @@
|
||||
# Makefile for zlib using Microsoft (Visual) C
|
||||
# zlib is copyright (C) 1995-2024 Jean-loup Gailly and Mark Adler
|
||||
#
|
||||
# Usage:
|
||||
# nmake -f win32/Makefile.arm (standard build)
|
||||
# nmake -f win32/Makefile.arm 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_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1 \
|
||||
-D_CRT_SECURE_NO_DEPRECATE \
|
||||
-D_CRT_NONSTDC_NO_DEPRECATE \
|
||||
-DARM_FEATURES \
|
||||
-DARM_NEON_HASLD4 \
|
||||
#
|
||||
LDFLAGS = -nologo -debug -incremental:no -opt:ref -manifest
|
||||
ARFLAGS = -nologo
|
||||
RCFLAGS = /dARM /r
|
||||
DEFFILE = zlib.def
|
||||
RCFILE = zlib1.rc
|
||||
RESFILE = zlib1.res
|
||||
WITH_GZFILEOP = yes
|
||||
ZLIB_COMPAT =
|
||||
WITH_ARMV8 =
|
||||
WITH_NEON =
|
||||
WITH_ARMV6 =
|
||||
WITH_VFPV3 =
|
||||
NEON_ARCH = /arch:VFPv4
|
||||
SUFFIX =
|
||||
|
||||
OBJS = \
|
||||
adler32.obj \
|
||||
adler32_c.obj \
|
||||
adler32_fold_c.obj \
|
||||
arm_features.obj \
|
||||
chunkset_c.obj \
|
||||
compare256_c.obj \
|
||||
compress.obj \
|
||||
cpu_features.obj \
|
||||
crc32.obj \
|
||||
crc32_braid_c.obj \
|
||||
crc32_braid_comb.obj \
|
||||
crc32_c.obj \
|
||||
crc32_chorba_c.obj \
|
||||
crc32_fold_c.obj \
|
||||
deflate.obj \
|
||||
deflate_fast.obj \
|
||||
deflate_huff.obj \
|
||||
deflate_medium.obj \
|
||||
deflate_quick.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_c.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
|
||||
|
||||
!if "$(WITH_ARMV8)" != ""
|
||||
WFLAGS = $(WFLAGS) -DARM_CRC32
|
||||
OBJS = $(OBJS) crc32_armv8.obj
|
||||
!endif
|
||||
!if "$(WITH_VFPV3)" != ""
|
||||
NEON_ARCH = /arch:VFPv3
|
||||
!endif
|
||||
!if "$(WITH_NEON)" != ""
|
||||
CFLAGS = $(CFLAGS) $(NEON_ARCH)
|
||||
WFLAGS = $(WFLAGS) \
|
||||
-D__ARM_NEON__=1 \
|
||||
-DARM_NEON \
|
||||
-DARM_NOCHECK_NEON \
|
||||
#
|
||||
OBJS = $(OBJS) adler32_neon.obj chunkset_neon.obj compare256_neon.obj slide_hash_neon.obj
|
||||
!endif
|
||||
!if "$(WITH_ARMV6)" != ""
|
||||
WFLAGS = $(WFLAGS) \
|
||||
-DARM_SIMD \
|
||||
-DARM_NOCHECK_SIMD \
|
||||
#
|
||||
OBJS = $(OBJS) slide_hash_armv6.obj
|
||||
!endif
|
||||
|
||||
# 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:0x5A4C0000 $(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 $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
$(CC) -c $(WFLAGS) $(CFLAGS) -DWITH_GZFILEOP -Fogzlib2.obj gzlib.c
|
||||
|
||||
gzread2.obj: gzread.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
$(CC) -c $(WFLAGS) $(CFLAGS) -DWITH_GZFILEOP -Fogzread2.obj gzread.c
|
||||
|
||||
gzwrite2.obj: gzwrite.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
$(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
|
||||
|
||||
adler32.obj: $(TOP)/adler32.c $(TOP)/zbuild.h $(TOP)/functable.h $(TOP)/adler32_p.h
|
||||
adler32_c.obj: $(TOP)/arch/generic/adler32_c.c $(TOP)/zbuild.h $(TOP)/functable.h $(TOP)/adler32_p.h
|
||||
adler32_fold_c.obj: $(TOP)/arch/generic/adler32_fold_c.c $(TOP)/zbuild.h $(TOP)/functable.h
|
||||
chunkset_c.obj: $(TOP)/arch/generic/chunkset_c.c $(TOP)/zbuild.h $(TOP)/chunkset_tpl.h $(TOP)/inffast_tpl.h
|
||||
compare256_c.obj: $(TOP)/arch/generic/compare256_c.c $(TOP)/zbuild.h $(TOP)/zmemory.h $(TOP)/deflate.h $(TOP)/fallback_builtins.h $(TOP)/match_tpl.h
|
||||
compress.obj: $(TOP)/compress.c $(TOP)/zbuild.h $(TOP)/zutil.h
|
||||
cpu_features.obj: $(TOP)/cpu_features.c $(TOP)/cpu_features.h $(TOP)/zbuild.h
|
||||
crc32.obj: $(TOP)/crc32.c $(TOP)/zbuild.h $(TOP)/functable.h $(TOP)/crc32_braid_tbl.h
|
||||
crc32_braid_c.obj: $(TOP)/arch/generic/crc32_braid_c.c $(TOP)/zbuild.h $(TOP)/crc32_braid_p.h $(TOP)/crc32_braid_tbl.h
|
||||
crc32_braid_comb.obj: $(TOP)/crc32_braid_comb.c $(TOP)/zutil.h $(TOP)/crc32_braid_p.h $(TOP)/crc32_braid_tbl.h $(TOP)/crc32_braid_comb_p.h
|
||||
crc32_c.obj: $(TOP)/arch/generic/crc32_c.c $(TOP)/zbuild.h $(TOP)/crc32_braid_p.h
|
||||
crc32_chorba_c.obj: $(TOP)/arch/generic/crc32_chorba_c.c $(TOP)/zbuild.h $(TOP)/crc32_braid_p.h $(TOP)/crc32_braid_tbl.h
|
||||
crc32_fold_c.obj: $(TOP)/arch/generic/crc32_fold_c.c $(TOP)/zbuild.h $(TOP)/crc32.h $(TOP)/functable.h $(TOP)/zutil.h
|
||||
deflate.obj: $(TOP)/deflate.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_fast.obj: $(TOP)/deflate_fast.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_huff.obj: $(TOP)/deflate_huff.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_medium.obj: $(TOP)/deflate_medium.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_quick.obj: $(TOP)/deflate_quick.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h $(TOP)/trees_emit.h $(TOP)/zmemory.h
|
||||
deflate_rle.obj: $(TOP)/deflate_rle.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h $(TOP)/compare256_rle.h
|
||||
deflate_slow.obj: $(TOP)/deflate_slow.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_stored.obj: $(TOP)/deflate_stored.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
functable.obj: $(TOP)/functable.c $(TOP)/zbuild.h $(TOP)/functable.h $(TOP)/cpu_features.h $(TOP)/arch/arm/arm_features.h $(TOP)/arch_functions.h
|
||||
gzlib.obj: $(TOP)/gzlib.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
gzread.obj: $(TOP)/gzread.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
gzwrite.obj: $(TOP)/gzwrite.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
infback.obj: $(TOP)/infback.c $(TOP)/zbuild.h $(TOP)/zutil.h $(TOP)/inftrees.h $(TOP)/inflate.h $(TOP)/inflate_p.h $(TOP)/functable.h
|
||||
inflate.obj: $(TOP)/inflate.c $(TOP)/zbuild.h $(TOP)/zutil.h $(TOP)/inftrees.h $(TOP)/inflate.h $(TOP)/inflate_p.h $(TOP)/functable.h $(TOP)/inffixed_tbl.h
|
||||
inftrees.obj: $(TOP)/inftrees.c $(TOP)/zbuild.h $(TOP)/zutil.h $(TOP)/inftrees.h
|
||||
insert_string.obj: $(TOP)/insert_string.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/insert_string_tpl.h
|
||||
insert_string_roll.obj: $(TOP)/insert_string_roll.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/insert_string_tpl.h
|
||||
slide_hash_c.obj: $(TOP)/arch/generic/slide_hash_c.c $(TOP)/zbuild.h $(TOP)/deflate.h
|
||||
trees.obj: $(TOP)/trees.c $(TOP)/trees.h $(TOP)/trees_emit.h $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/trees_tbl.h
|
||||
uncompr.obj: $(TOP)/uncompr.c $(TOP)/zbuild.h $(TOP)/zutil.h
|
||||
zutil.obj: $(TOP)/zutil.c $(TOP)/zbuild.h $(TOP)/zutil.h $(TOP)/zutil_p.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
|
||||
|
||||
example.obj: $(TOP)/test/example.c $(TOP)/zbuild.h $(TOP)/zlib$(SUFFIX).h $(TOP)/deflate.h $(TOP)/test/test_shared_ng.h
|
||||
|
||||
minigzip.obj: $(TOP)/test/minigzip.c $(TOP)/zbuild.h $(TOP)/zlib$(SUFFIX).h
|
||||
|
||||
|
||||
# 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
|
@ -1,298 +0,0 @@
|
||||
# Makefile for zlib using Microsoft (Visual) C
|
||||
# zlib is copyright (C) 1995-2024 Jean-loup Gailly and Mark Adler
|
||||
#
|
||||
# Usage:
|
||||
# nmake -f win32/Makefile.msc (standard build)
|
||||
# nmake -f win32/Makefile.msc 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
|
||||
CXX = cl
|
||||
LD = link
|
||||
AR = lib
|
||||
RC = rc
|
||||
CP = copy /y
|
||||
INCLUDES = -I$(TOP) -I$(TOP)/arch/x86 -I$(TOP)/arch/generic
|
||||
CFLAGS = -nologo -MD -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC) $(INCLUDES)
|
||||
CXXFLAGS = -nologo -EHsc -MD -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC) $(INCLUDES)
|
||||
WFLAGS = \
|
||||
-D_CRT_SECURE_NO_DEPRECATE \
|
||||
-D_CRT_NONSTDC_NO_DEPRECATE \
|
||||
-DX86_FEATURES \
|
||||
-DX86_PCLMULQDQ_CRC \
|
||||
-DX86_SSE2 \
|
||||
-DX86_SSE42 \
|
||||
-DX86_SSSE3 \
|
||||
-DX86_AVX2
|
||||
|
||||
LDFLAGS = -nologo -debug -incremental:no -opt:ref -manifest
|
||||
ARFLAGS = -nologo
|
||||
RCFLAGS = /dWIN32 /r
|
||||
DEFFILE = zlib.def
|
||||
RCFILE = zlib1.rc
|
||||
RESFILE = zlib1.res
|
||||
WITH_GZFILEOP = yes
|
||||
ZLIB_COMPAT =
|
||||
SUFFIX =
|
||||
|
||||
OBJS = \
|
||||
adler32.obj \
|
||||
adler32_c.obj \
|
||||
adler32_avx2.obj \
|
||||
adler32_avx512.obj \
|
||||
adler32_avx512_vnni.obj \
|
||||
adler32_sse42.obj \
|
||||
adler32_ssse3.obj \
|
||||
adler32_fold_c.obj \
|
||||
chunkset_c.obj \
|
||||
chunkset_avx2.obj \
|
||||
chunkset_sse2.obj \
|
||||
chunkset_ssse3.obj \
|
||||
chorba_sse2.obj \
|
||||
compare256_c.obj \
|
||||
compare256_avx2.obj \
|
||||
compare256_sse2.obj \
|
||||
compress.obj \
|
||||
cpu_features.obj \
|
||||
crc32.obj \
|
||||
crc32_braid_c.obj \
|
||||
crc32_braid_comb.obj \
|
||||
crc32_c.obj \
|
||||
crc32_chorba_c.obj \
|
||||
crc32_fold_c.obj \
|
||||
crc32_pclmulqdq.obj \
|
||||
deflate.obj \
|
||||
deflate_fast.obj \
|
||||
deflate_huff.obj \
|
||||
deflate_medium.obj \
|
||||
deflate_quick.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_c.obj \
|
||||
slide_hash_avx2.obj \
|
||||
slide_hash_sse2.obj \
|
||||
trees.obj \
|
||||
uncompr.obj \
|
||||
zutil.obj \
|
||||
x86_features.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
|
||||
|
||||
# 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:$@ $(OBJS) $(RESFILE)
|
||||
if exist $@.manifest \
|
||||
mt -nologo -manifest $@.manifest -outputresource:$@;2
|
||||
|
||||
depcheck.exe: depcheck.obj
|
||||
$(LD) $(LDFLAGS) depcheck.obj
|
||||
if exist $@.manifest \
|
||||
mt -nologo -manifest $@.manifest -outputresource:$@;1
|
||||
|
||||
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 $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
$(CC) -c $(WFLAGS) $(CFLAGS) -DWITH_GZFILEOP -Fogzlib2.obj gzlib.c
|
||||
|
||||
gzread2.obj: gzread.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
$(CC) -c $(WFLAGS) $(CFLAGS) -DWITH_GZFILEOP -Fogzread2.obj gzread.c
|
||||
|
||||
gzwrite2.obj: gzwrite.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
$(CC) -c $(WFLAGS) $(CFLAGS) -DWITH_GZFILEOP -Fogzwrite2.obj gzwrite.c
|
||||
|
||||
{$(TOP)/arch/x86}.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
|
||||
|
||||
{$(TOP)/win32}.cpp.obj:
|
||||
$(CXX) -c -I$(TOP) $(WFLAGS) $(CXXFLAGS) $<
|
||||
|
||||
adler32.obj: $(TOP)/adler32.c $(TOP)/zbuild.h $(TOP)/functable.h $(TOP)/adler32_p.h
|
||||
adler32_c.obj: $(TOP)/arch/generic/adler32_c.c $(TOP)/zbuild.h $(TOP)/functable.h $(TOP)/adler32_p.h
|
||||
adler32_avx2.obj: $(TOP)/arch/x86/adler32_avx2.c $(TOP)/zbuild.h $(TOP)/adler32_p.h $(TOP)/arch/x86/adler32_avx2_p.h $(TOP)/arch/x86/x86_intrins.h
|
||||
adler32_avx512.obj: $(TOP)/arch/x86/adler32_avx512.c $(TOP)/zbuild.h $(TOP)/arch_functions.h $(TOP)/adler32_p.h $(TOP)/arch/x86/adler32_avx512_p.h $(TOP)/arch/x86/x86_intrins.h
|
||||
adler32_avx512_vnni.obj: $(TOP)/arch/x86/adler32_avx512_vnni.c $(TOP)/zbuild.h $(TOP)/arch_functions.h $(TOP)/adler32_p.h $(TOP)/arch/x86/adler32_avx512_p.h \
|
||||
$(TOP)/arch/x86/adler32_avx2_p.h $(TOP)/arch/x86/x86_intrins.h
|
||||
adler32_sse42.obj: $(TOP)/arch/x86/adler32_sse42.c $(TOP)/zbuild.h $(TOP)/adler32_p.h \
|
||||
$(TOP)/arch/x86/adler32_ssse3_p.h
|
||||
adler32_ssse3.obj: $(TOP)/arch/x86/adler32_ssse3.c $(TOP)/zbuild.h $(TOP)/adler32_p.h \
|
||||
$(TOP)/arch/x86/adler32_ssse3_p.h
|
||||
adler32_fold_c.obj: $(TOP)/arch/generic/adler32_fold_c.c $(TOP)/zbuild.h $(TOP)/functable.h
|
||||
chorba_sse2.obj: $(TOP)/arch/x86/chorba_sse2.c $(TOP)/zbuild.h $(TOP)/crc32_braid_tbl.h $(TOP)/crc32_braid_p.h
|
||||
chunkset_c.obj: $(TOP)/arch/generic/chunkset_c.c $(TOP)/zbuild.h $(TOP)/chunkset_tpl.h $(TOP)/inffast_tpl.h
|
||||
chunkset_avx2.obj: $(TOP)/arch/x86/chunkset_avx2.c $(TOP)/zbuild.h $(TOP)/chunkset_tpl.h $(TOP)/inffast_tpl.h $(TOP)/arch/generic/chunk_permute_table.h
|
||||
chunkset_sse2.obj: $(TOP)/arch/x86/chunkset_sse2.c $(TOP)/zbuild.h $(TOP)/chunkset_tpl.h $(TOP)/inffast_tpl.h
|
||||
chunkset_ssse3.obj: $(TOP)/arch/x86/chunkset_ssse3.c $(TOP)/zbuild.h $(TOP)/chunkset_tpl.h $(TOP)/inffast_tpl.h $(TOP)/arch/generic/chunk_permute_table.h
|
||||
compare256_c.obj: $(TOP)/arch/generic/compare256_c.c $(TOP)/zbuild.h $(TOP)/zmemory.h $(TOP)/deflate.h $(TOP)/fallback_builtins.h $(TOP)/match_tpl.h
|
||||
compare256_avx2.obj: $(TOP)/arch/x86/compare256_avx2.c $(TOP)/zbuild.h $(TOP)/zmemory.h $(TOP)/deflate.h $(TOP)/fallback_builtins.h $(TOP)/match_tpl.h
|
||||
compare256_sse2.obj: $(TOP)/arch/x86/compare256_sse2.c $(TOP)/zbuild.h $(TOP)/zmemory.h $(TOP)/deflate.h $(TOP)/fallback_builtins.h $(TOP)/match_tpl.h
|
||||
compress.obj: $(TOP)/compress.c $(TOP)/zbuild.h $(TOP)/zutil.h
|
||||
cpu_features.obj: $(TOP)/cpu_features.c $(TOP)/cpu_features.h $(TOP)/zbuild.h
|
||||
crc32.obj: $(TOP)/crc32.c $(TOP)/zbuild.h $(TOP)/functable.h $(TOP)/crc32_braid_tbl.h
|
||||
crc32_braid_c.obj: $(TOP)/arch/generic/crc32_braid_c.c $(TOP)/zbuild.h $(TOP)/crc32_braid_p.h $(TOP)/crc32_braid_tbl.h
|
||||
crc32_braid_comb.obj: $(TOP)/crc32_braid_comb.c $(TOP)/zutil.h $(TOP)/crc32_braid_p.h $(TOP)/crc32_braid_tbl.h $(TOP)/crc32_braid_comb_p.h
|
||||
crc32_c.obj: $(TOP)/arch/generic/crc32_c.c $(TOP)/zbuild.h $(TOP)/crc32_braid_p.h
|
||||
crc32_chorba_c.obj: $(TOP)/arch/generic/crc32_chorba_c.c $(TOP)/zbuild.h $(TOP)/crc32_braid_p.h $(TOP)/crc32_braid_tbl.h
|
||||
crc32_fold_c.obj: $(TOP)/arch/generic/crc32_fold_c.c $(TOP)/zbuild.h $(TOP)/crc32.h $(TOP)/functable.h $(TOP)/zutil.h
|
||||
crc32_pclmulqdq.obj: $(TOP)/arch/x86/crc32_pclmulqdq.c $(TOP)/arch/x86/crc32_pclmulqdq_tpl.h
|
||||
deflate.obj: $(TOP)/deflate.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_fast.obj: $(TOP)/deflate_fast.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_huff.obj: $(TOP)/deflate_huff.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_medium.obj: $(TOP)/deflate_medium.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_quick.obj: $(TOP)/deflate_quick.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h $(TOP)/trees_emit.h $(TOP)/zmemory.h
|
||||
deflate_rle.obj: $(TOP)/deflate_rle.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h $(TOP)/compare256_rle.h
|
||||
deflate_slow.obj: $(TOP)/deflate_slow.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
deflate_stored.obj: $(TOP)/deflate_stored.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/deflate_p.h $(TOP)/functable.h
|
||||
functable.obj: $(TOP)/functable.c $(TOP)/zbuild.h $(TOP)/functable.h $(TOP)/cpu_features.h $(TOP)/arch/x86/x86_features.h $(TOP)/arch_functions.h
|
||||
gzlib.obj: $(TOP)/gzlib.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
gzread.obj: $(TOP)/gzread.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
gzwrite.obj: $(TOP)/gzwrite.c $(TOP)/zbuild.h $(TOP)/gzguts.h $(TOP)/zutil_p.h
|
||||
infback.obj: $(TOP)/infback.c $(TOP)/zbuild.h $(TOP)/zutil.h $(TOP)/inftrees.h $(TOP)/inflate.h $(TOP)/inflate_p.h $(TOP)/functable.h
|
||||
inflate.obj: $(TOP)/inflate.c $(TOP)/zbuild.h $(TOP)/zutil.h $(TOP)/inftrees.h $(TOP)/inflate.h $(TOP)/inflate_p.h $(TOP)/functable.h $(TOP)/inffixed_tbl.h
|
||||
inftrees.obj: $(TOP)/inftrees.c $(TOP)/zbuild.h $(TOP)/zutil.h $(TOP)/inftrees.h
|
||||
insert_string.obj: $(TOP)/insert_string.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/insert_string_tpl.h
|
||||
insert_string_roll.obj: $(TOP)/insert_string_roll.c $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/insert_string_tpl.h
|
||||
slide_hash_c.obj: $(TOP)/arch/generic/slide_hash_c.c $(TOP)/zbuild.h $(TOP)/deflate.h
|
||||
slide_hash_avx2.obj: $(TOP)/arch/x86/slide_hash_avx2.c $(TOP)/zbuild.h $(TOP)/deflate.h
|
||||
slide_hash_sse2.obj: $(TOP)/arch/x86/slide_hash_sse2.c $(TOP)/zbuild.h $(TOP)/deflate.h
|
||||
trees.obj: $(TOP)/trees.c $(TOP)/trees.h $(TOP)/trees_emit.h $(TOP)/zbuild.h $(TOP)/deflate.h $(TOP)/trees_tbl.h
|
||||
uncompr.obj: $(TOP)/uncompr.c $(TOP)/zbuild.h $(TOP)/zutil.h
|
||||
zutil.obj: $(TOP)/zutil.c $(TOP)/zbuild.h $(TOP)/zutil.h $(TOP)/zutil_p.h
|
||||
|
||||
$(RESFILE): $(TOP)/win32/$(RCFILE)
|
||||
$(RC) $(RCFLAGS) /fo$@ $(TOP)/win32/$(RCFILE)
|
||||
|
||||
# testing
|
||||
depcheck: depcheck.exe
|
||||
depcheck win32\Makefile.msc .
|
||||
depcheck win32\Makefile.arm .
|
||||
depcheck win32\Makefile.a64 .
|
||||
|
||||
test: example.exe minigzip.exe depcheck
|
||||
example
|
||||
echo hello world | minigzip | minigzip -d
|
||||
|
||||
testdll: example_d.exe minigzip_d.exe
|
||||
example_d
|
||||
echo hello world | minigzip_d | minigzip_d -d
|
||||
|
||||
depcheck.obj: $(TOP)/win32/depcheck.cpp
|
||||
|
||||
example.obj: $(TOP)/test/example.c $(TOP)/zbuild.h $(TOP)/zlib$(SUFFIX).h $(TOP)/deflate.h $(TOP)/test/test_shared_ng.h
|
||||
|
||||
minigzip.obj: $(TOP)/test/minigzip.c $(TOP)/zbuild.h $(TOP)/zlib$(SUFFIX).h
|
||||
|
||||
|
||||
# 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
|
@ -1,321 +0,0 @@
|
||||
/* depcheck.cpp - Dependency checker for NMake Makefiles
|
||||
* Copyright (c) 2024 Mika T. Lindqvist
|
||||
*/
|
||||
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
if (argc != 3) {
|
||||
printf("Usage: depcheck Makefile <top_directory>\n");
|
||||
return -1;
|
||||
}
|
||||
std::filebuf fb;
|
||||
if (fb.open (argv[1],std::ios::in)) {
|
||||
std::istream is(&fb);
|
||||
std::string makefile = argv[1];
|
||||
std::string l, tmp, tmp2;
|
||||
while (is) {
|
||||
std::getline(is, l);
|
||||
while (l.back() == '\\') {
|
||||
std::getline(is, tmp);
|
||||
l.replace(l.length() - 1, 1, tmp);
|
||||
}
|
||||
size_t pos = l.find("obj:");
|
||||
if (pos != std::string::npos) {
|
||||
std::string objfile = l.substr(0, pos+3);
|
||||
printf("File: %s\n", objfile.c_str());
|
||||
std::vector<std::string> files;
|
||||
std::stringstream ss(l.substr(pos+4));
|
||||
while(getline(ss, tmp, ' ')){
|
||||
if (tmp != "" && tmp != "/") {
|
||||
files.push_back(tmp);
|
||||
}
|
||||
}
|
||||
for (auto it = files.begin(); it != files.end(); ++it) {
|
||||
printf("Dependency: %s\n", (*it).c_str());
|
||||
}
|
||||
if (!files.empty()) {
|
||||
std::filebuf fb2;
|
||||
std::string src = files[0];
|
||||
size_t pos2 = src.find("$(TOP)");
|
||||
if (pos2 != std::string::npos) {
|
||||
src.replace(pos2, 6, argv[2]);
|
||||
}
|
||||
printf("Source: %s\n", src.c_str());
|
||||
if (fb2.open(src.c_str(),std::ios::in)) {
|
||||
std::istream is2(&fb2);
|
||||
std::vector<std::string> includes;
|
||||
while (is2) {
|
||||
std::getline(is2, l);
|
||||
pos = l.find("#");
|
||||
if (pos != std::string::npos) {
|
||||
pos2 = l.find("include");
|
||||
size_t pos3 = l.find("\"");
|
||||
if (pos2 != std::string::npos && pos3 != std::string::npos && pos2 > pos && pos3 > pos2) {
|
||||
tmp = l.substr(pos3 + 1);
|
||||
pos2 = tmp.find("\"");
|
||||
if (pos2 != std::string::npos) {
|
||||
tmp = tmp.substr(0, pos2);
|
||||
}
|
||||
pos2 = tmp.find("../");
|
||||
if (pos2 != std::string::npos) {
|
||||
tmp = tmp.substr(3);
|
||||
}
|
||||
printf("Line: %s\n", tmp.c_str());
|
||||
int found = 0;
|
||||
for (size_t i = 1; i < files.size(); i++) {
|
||||
pos3 = files[i].find("$(SUFFIX)");
|
||||
if (pos3 != std::string::npos) {
|
||||
tmp2 = files[i].substr(0, pos3).append(files[i].substr(pos3 + 9));
|
||||
printf("Comparing dependency \"%s\" and \"%s\"\n", tmp2.c_str(), tmp.c_str());
|
||||
if (tmp2 == tmp) {
|
||||
printf("Dependency %s OK\n", tmp.c_str());
|
||||
found = 1;
|
||||
includes.push_back(tmp);
|
||||
break;
|
||||
}
|
||||
printf("Comparing dependency \"%s\" and \"$(TOP)/%s\"\n", tmp2.c_str(), tmp.c_str());
|
||||
if (tmp2 == std::string("$(TOP)/").append(tmp)) {
|
||||
printf("Dependency %s OK\n", tmp.c_str());
|
||||
found = 1;
|
||||
includes.push_back(tmp);
|
||||
break;
|
||||
}
|
||||
|
||||
tmp2 = files[i].substr(0, pos3).append("-ng").append(files[i].substr(pos3 + 9));
|
||||
printf("Comparing dependency \"%s\" and \"%s\"\n", tmp2.c_str(), tmp.c_str());
|
||||
if (tmp2 == tmp) {
|
||||
printf("Dependency %s OK\n", tmp.c_str());
|
||||
found = 1;
|
||||
includes.push_back(tmp);
|
||||
break;
|
||||
}
|
||||
printf("Comparing dependency \"%s\" and \"$(TOP)/%s\"\n", tmp2.c_str(), tmp.c_str());
|
||||
if (tmp2 == std::string("$(TOP)/").append(tmp)) {
|
||||
printf("Dependency %s OK\n", tmp.c_str());
|
||||
found = 1;
|
||||
includes.push_back(tmp);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
printf("Comparing dependency \"%s\" and \"%s\"\n", files[i].c_str(), tmp.c_str());
|
||||
if (files[i] == tmp) {
|
||||
printf("Dependency %s OK\n", tmp.c_str());
|
||||
found = 1;
|
||||
includes.push_back(tmp);
|
||||
break;
|
||||
}
|
||||
printf("Comparing dependency \"%s\" and \"$(TOP)/%s\"\n", files[i].c_str(), tmp.c_str());
|
||||
if (files[i] == std::string("$(TOP)/").append(tmp)) {
|
||||
printf("Dependency %s OK\n", tmp.c_str());
|
||||
found = 1;
|
||||
includes.push_back(tmp);
|
||||
break;
|
||||
}
|
||||
printf("Comparing dependency \"%s\" and \"$(TOP)/arch/%s\"\n", files[i].c_str(), tmp.c_str());
|
||||
if (files[i] == std::string("$(TOP)/arch/").append(tmp)) {
|
||||
printf("Dependency %s OK\n", tmp.c_str());
|
||||
found = 1;
|
||||
includes.push_back(tmp);
|
||||
break;
|
||||
}
|
||||
printf("Comparing dependency \"%s\" and \"$(TOP)/arch/generic/%s\"\n", files[i].c_str(), tmp.c_str());
|
||||
if (files[i] == std::string("$(TOP)/arch/generic/").append(tmp)) {
|
||||
printf("Dependency %s OK\n", tmp.c_str());
|
||||
found = 1;
|
||||
includes.push_back(tmp);
|
||||
break;
|
||||
}
|
||||
printf("Comparing dependency \"%s\" and \"$(TOP)/arch/arm/%s\"\n", files[i].c_str(), tmp.c_str());
|
||||
if (files[i] == std::string("$(TOP)/arch/arm/").append(tmp)) {
|
||||
printf("Dependency %s OK\n", tmp.c_str());
|
||||
found = 1;
|
||||
includes.push_back(tmp);
|
||||
break;
|
||||
}
|
||||
printf("Comparing dependency \"%s\" and \"$(TOP)/arch/x86/%s\"\n", files[i].c_str(), tmp.c_str());
|
||||
if (files[i] == std::string("$(TOP)/arch/x86/").append(tmp)) {
|
||||
printf("Dependency %s OK\n", tmp.c_str());
|
||||
found = 1;
|
||||
includes.push_back(tmp);
|
||||
break;
|
||||
}
|
||||
printf("Comparing dependency \"%s\" and \"$(TOP)/test/%s\"\n", files[i].c_str(), tmp.c_str());
|
||||
if (files[i] == std::string("$(TOP)/test/").append(tmp)) {
|
||||
printf("Dependency %s OK\n", tmp.c_str());
|
||||
found = 1;
|
||||
includes.push_back(tmp);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Skip irrelevant dependencies
|
||||
if (tmp.substr(0, 9) == "arch/s390") found = 1;
|
||||
if (tmp == "zlib-ng.h" && std::find(includes.begin(), includes.end(), "zlib.h") != includes.end()) found = 1;
|
||||
if (found == 0) {
|
||||
printf("%s: Dependency %s missing for %s!\n", makefile.c_str(), tmp.c_str(), objfile.c_str());
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (size_t i = 1; i < files.size(); i++) {
|
||||
int found = 0;
|
||||
tmp = files[i];
|
||||
printf("Dependency: %s\n", tmp.c_str());
|
||||
pos2 = tmp.find("$(TOP)");
|
||||
if (pos2 != std::string::npos) {
|
||||
tmp = tmp.substr(7);
|
||||
}
|
||||
for (size_t j = 0; j < includes.size(); j++) {
|
||||
pos2 = tmp.find("$(SUFFIX)");
|
||||
if (pos2 != std::string::npos) {
|
||||
std::string tmp1 = tmp.substr(0, pos2).append(tmp.substr(pos2 + 9));
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"%s\"\n", j, includes.size(), tmp1.c_str(), includes[j].c_str());
|
||||
if (tmp1 == includes[j]) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"arch/%s\"\n", j, includes.size(), tmp1.c_str(), includes[j].c_str());
|
||||
if (tmp1 == std::string("arch/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"arch/generic/%s\"\n", j, includes.size(), tmp1.c_str(), includes[j].c_str());
|
||||
if (tmp1 == std::string("arch/generic/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"arch/arm/%s\"\n", j, includes.size(), tmp1.c_str(), includes[j].c_str());
|
||||
if (tmp1 == std::string("arch/arm/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"arch/x86/%s\"\n", j, includes.size(), tmp1.c_str(), includes[j].c_str());
|
||||
if (tmp1 == std::string("arch/x86/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"test/%s\"\n", j, includes.size(), tmp1.c_str(), includes[j].c_str());
|
||||
if (tmp1 == std::string("test/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
tmp1 = tmp.substr(0, pos2).append("-ng").append(tmp.substr(pos2 + 9));
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"%s\"\n", j, includes.size(), tmp1.c_str(), includes[j].c_str());
|
||||
if (tmp1 == includes[j]) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"arch/%s\"\n", j, includes.size(), tmp1.c_str(), includes[j].c_str());
|
||||
if (tmp1 == std::string("arch/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"arch/generic/%s\"\n", j, includes.size(), tmp1.c_str(), includes[j].c_str());
|
||||
if (tmp1 == std::string("arch/generic/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"arch/arm/%s\"\n", j, includes.size(), tmp1.c_str(), includes[j].c_str());
|
||||
if (tmp1 == std::string("arch/arm/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"arch/x86/%s\"\n", j, includes.size(), tmp1.c_str(), includes[j].c_str());
|
||||
if (tmp1 == std::string("arch/x86/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"test/%s\"\n", j, includes.size(), tmp1.c_str(), includes[j].c_str());
|
||||
if (tmp1 == std::string("test/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"%s\"\n", j, includes.size(), tmp.c_str(), includes[j].c_str());
|
||||
if (tmp == includes[j]) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"arch/%s\"\n", j, includes.size(), tmp.c_str(), includes[j].c_str());
|
||||
if (tmp == std::string("arch/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"arch/generic/%s\"\n", j, includes.size(), tmp.c_str(), includes[j].c_str());
|
||||
if (tmp == std::string("arch/generic/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"arch/arm/%s\"\n", j, includes.size(), tmp.c_str(), includes[j].c_str());
|
||||
if (tmp == std::string("arch/arm/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"arch/x86/%s\"\n", j, includes.size(), tmp.c_str(), includes[j].c_str());
|
||||
if (tmp == std::string("arch/x86/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
printf("[%zd/%zd] Comparing dependency \"%s\" and \"test/%s\"\n", j, includes.size(), tmp.c_str(), includes[j].c_str());
|
||||
if (tmp == std::string("test/").append(includes[j])) {
|
||||
printf("Dependency %s OK\n", files[i].c_str());
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Skip indirect dependencies
|
||||
if (tmp.find("arm_features.h") != std::string::npos
|
||||
&& std::find(includes.begin(), includes.end(), "cpu_features.h") != includes.end()
|
||||
&& (makefile.find(".arm") != std::string::npos
|
||||
|| makefile.find(".a64") != std::string::npos)) found = 1;
|
||||
if (tmp.find("x86_features.h") != std::string::npos
|
||||
&& std::find(includes.begin(), includes.end(), "cpu_features.h") != includes.end()
|
||||
&& makefile.find(".msc") != std::string::npos) found = 1;
|
||||
//
|
||||
if (tmp.find("generic_functions.h") != std::string::npos
|
||||
&& std::find(includes.begin(), includes.end(), "arch_functions.h") != includes.end()) found = 1;
|
||||
if (tmp.find("arm_functions.h") != std::string::npos
|
||||
&& std::find(includes.begin(), includes.end(), "arch_functions.h") != includes.end()
|
||||
&& (makefile.find(".arm") != std::string::npos
|
||||
|| makefile.find(".a64") != std::string::npos)) found = 1;
|
||||
if (tmp.find("x86_functions.h") != std::string::npos
|
||||
&& std::find(includes.begin(), includes.end(), "arch_functions.h") != includes.end()
|
||||
&& makefile.find(".msc") != std::string::npos) found = 1;
|
||||
if (found == 0) {
|
||||
printf("%s: Dependency %s not needed for %s\n", makefile.c_str(), files[i].c_str(), objfile.c_str());
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
fb2.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
fb.close();
|
||||
}
|
||||
return 0;
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
strInputFileName = Wscript.Arguments(0)
|
||||
strOutputFileName = Wscript.Arguments(1)
|
||||
strOldText = Wscript.Arguments(2)
|
||||
strNewText = Wscript.Arguments(3)
|
||||
|
||||
Set objFSO = CreateObject("Scripting.FileSystemObject")
|
||||
Set objFile = objFSO.OpenTextFile(strInputFileName, 1)
|
||||
|
||||
strText = objFile.ReadAll
|
||||
objFile.Close
|
||||
strNewText = Replace(strText, strOldText, strNewText)
|
||||
|
||||
Set objFile = objFSO.OpenTextFile(strOutputFileName, 2, True)
|
||||
objFile.Write strNewText
|
||||
objFile.Close
|
Loading…
Reference in New Issue
Block a user