xref: /aosp_15_r20/external/libpng/scripts/makefile.vcwin-arm64 (revision a67afe4df73cf47866eedc69947994b8ff839aba)
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