1# makefile for libpng on win-arm64 2# Copyright (C) 2021 Gabor Kertesz 3# Copyright (C) 1998 Tim Wegner 4# Copyright (C) 2006,2009,2011,2014 Glenn Randers-Pehrson 5# 6# This code is released under the libpng license. 7# For conditions of distribution and use, see the disclaimer 8# and license in png.h 9# 10# Assumes that zlib.lib, zconf.h, and zlib.h have been copied to ..\zlib 11# To use, do "nmake /f scripts\makefile.vcwin-arm64" 12 13# -------- Microsoft Visual C++ 2.0 and later -------- 14 15# Compiler, linker, librarian and other tools 16CC = cl 17LD = link 18AR = lib 19CPPFLAGS = -I..\zlib 20CFLAGS = -nologo -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -DPNG_ARM_NEON_OPT=1 -MD -O2 -W3 21LDFLAGS = -nologo 22ARFLAGS = -nologo 23CP = copy 24RM = del 25 26# Uncomment next to put error messages in a file 27#ERRFILE= >> pngerrs.log 28 29# Pre-built configuration 30# See scripts\pnglibconf.mak for more options 31PNGLIBCONF_H_PREBUILT = scripts\pnglibconf.h.prebuilt 32 33# File extensions 34O = .obj 35 36# File lists 37OBJS1 = png$(O) pngerror$(O) pngget$(O) pngmem$(O) pngpread$(O) 38OBJS2 = pngread$(O) pngrio$(O) pngrtran$(O) pngrutil$(O) pngset$(O) 39OBJS3 = pngtrans$(O) pngwio$(O) pngwrite$(O) pngwtran$(O) pngwutil$(O) 40OBJS4 = arm_init$(O) filter_neon_intrinsics$(O) palette_neon_intrinsics$(O) 41OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) 42 43# Targets 44all: libpng.lib 45 46pnglibconf.h: $(PNGLIBCONF_H_PREBUILT) 47 $(CP) $(PNGLIBCONF_H_PREBUILT) $@ 48 49png$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 50 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 51 52pngerror$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 53 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 54 55pngget$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 56 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 57 58pngmem$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 59 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 60 61pngpread$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 62 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 63 64pngread$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 65 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 66 67pngrio$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 68 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 69 70pngrtran$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 71 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 72 73pngrutil$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 74 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 75 76pngset$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 77 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 78 79pngtrans$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 80 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 81 82pngwio$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 83 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 84 85pngwrite$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 86 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 87 88pngwtran$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 89 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 90 91pngwutil$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 92 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 93 94arm_init$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 95 $(CC) -c $(CPPFLAGS) $(CFLAGS) arm\$*.c $(ERRFILE) 96 97filter_neon_intrinsics$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 98 $(CC) -c $(CPPFLAGS) $(CFLAGS) arm\$*.c $(ERRFILE) 99 100palette_neon_intrinsics$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h 101 $(CC) -c $(CPPFLAGS) $(CFLAGS) arm\$*.c $(ERRFILE) 102 103libpng.lib: $(OBJS) 104 -$(RM) $@ 105 $(AR) $(ARFLAGS) -out:$@ $(OBJS) $(ERRFILE) 106 107pngtest.exe: pngtest$(O) libpng.lib 108 $(LD) $(LDFLAGS) -out:$@ pngtest$(O) libpng.lib ..\zlib\zlib.lib $(ERRFILE) 109 110pngtest$(O): png.h pngconf.h pnglibconf.h 111 $(CC) -c $(CPPFLAGS) $(CFLAGS) $*.c $(ERRFILE) 112 113test: pngtest.exe 114 pngtest.exe 115 116clean: 117 -$(RM) *$(O) 118 -$(RM) libpng.lib 119 -$(RM) pnglibconf.h 120 -$(RM) pngtest.exe 121 -$(RM) pngout.png 122 123# End of makefile for libpng 124