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