diff options
author | Gabor Kertesz <gabor.kertesz@linaro.org> | 2021-10-27 18:45:08 +0200 |
---|---|---|
committer | Cosmin Truta <ctruta@gmail.com> | 2022-09-13 01:23:52 +0300 |
commit | bbab57105bc08d4dfc37d2baf6511c4d359b47d0 (patch) | |
tree | 324c0d2b3541d049a7a326e73e38457924ed0781 | |
parent | a1a81cc2acfd4f06c04197518c0195e3bdc7f5b2 (diff) | |
download | libpng-bbab57105bc08d4dfc37d2baf6511c4d359b47d0.tar.gz |
scripts: Add makefile for win-arm64
This makefile is based on makefile.vcwin32, but includes Neon
intrinsic optimization.
Co-authored-by: Gabor Kertesz <gabor.kertesz@linaro.org>
Co-authored-by: Cosmin Truta <ctruta@gmail.com>
Signed-off-by: Cosmin Truta <ctruta@gmail.com>
-rw-r--r-- | scripts/makefile.vcwin-arm64 | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/scripts/makefile.vcwin-arm64 b/scripts/makefile.vcwin-arm64 new file mode 100644 index 000000000..9795ba6b0 --- /dev/null +++ b/scripts/makefile.vcwin-arm64 @@ -0,0 +1,123 @@ +# makefile for libpng on win-arm64 +# Copyright (C) 2021 Gabor Kertesz +# Copyright (C) 1998 Tim Wegner +# Copyright (C) 2006,2009,2011,2014 Glenn Randers-Pehrson +# +# This code is released under the libpng license. +# For conditions of distribution and use, see the disclaimer +# and license in png.h +# +# Assumes that zlib.lib, zconf.h, and zlib.h have been copied to ..\zlib +# To use, do "nmake /f scripts\makefile.vcwin-arm64" + +# -------- Microsoft Visual C++ 2.0 and later -------- + +# Compiler, linker, librarian and other tools +CC = cl +LD = link +AR = lib +CPPFLAGS = -I..\zlib +CFLAGS = -nologo -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -DPNG_ARM_NEON_OPT=1 -MD -O2 -W3 +LDFLAGS = -nologo +ARFLAGS = -nologo +CP = copy +RM = del + +# Uncomment next to put error messages in a file +#ERRFILE= >> pngerrs.log + +# Pre-built configuration +# See scripts\pnglibconf.mak for more options +PNGLIBCONF_H_PREBUILT = scripts\pnglibconf.h.prebuilt + +# File extensions +O=.obj + +# File lists +OBJS1 = png$(O) pngerror$(O) pngget$(O) pngmem$(O) pngpread$(O) +OBJS2 = pngread$(O) pngrio$(O) pngrtran$(O) pngrutil$(O) pngset$(O) +OBJS3 = pngtrans$(O) pngwio$(O) pngwrite$(O) pngwtran$(O) pngwutil$(O) +OBJS4 = arm_init$(O) filter_neon_intrinsics$(O) palette_neon_intrinsics$(O) +OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) + +# Targets +all: libpng.lib + +pnglibconf.h: $(PNGLIBCONF_H_PREBUILT) + $(CP) $(PNGLIBCONF_H_PREBUILT) $@ + +png$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +pngerror$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +pngget$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +pngmem$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +pngpread$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +pngread$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +pngrio$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +pngrtran$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +pngrutil$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +pngset$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +pngtrans$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +pngwio$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +pngwrite$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +pngwtran$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +pngwutil$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +arm_init$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) arm\$*.c $(ERRFILE) + +filter_neon_intrinsics$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) arm\$*.c $(ERRFILE) + +palette_neon_intrinsics$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) arm\$*.c $(ERRFILE) + +libpng.lib: $(OBJS) + -$(RM) $@ + $(AR) $(ARFLAGS) -out:$@ $(OBJS) $(ERRFILE) + +pngtest.exe: pngtest$(O) libpng.lib + $(LD) $(LDFLAGS) -out:$@ pngtest$(O) libpng.lib ..\zlib\zlib.lib $(ERRFILE) + +pngtest$(O): png.h pngconf.h pnglibconf.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) + +test: pngtest.exe + pngtest.exe + +clean: + -$(RM) *$(O) + -$(RM) libpng.lib + -$(RM) pnglibconf.h + -$(RM) pngtest.exe + -$(RM) pngout.png + +# End of makefile for libpng |