# makefile for libpng
# Copyright (C) 1998 Tim Wegner
-# For conditions of distribution and use, see copyright notice in png.h
+# Copyright (C) 2006,2009,2011 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.vcwin32"
-# -------- Microsoft Visual C++ 4.0 and later, no assembler code --------
-# If you want to use assembler code, use makefile.vcawin32 instead.
+# -------- Microsoft Visual C++ 2.0 and later, no assembler code --------
-CFLAGS= -Ox -GA3s -nologo -W3 -I..\zlib
+# Compiler, linker, librarian, and other tools
+CC = cl
+LD = link
+AR = lib
+CFLAGS = -nologo -D_CRT_SECURE_NO_DEPRECATE -MD -O2 -W3 -I..\zlib
+LDFLAGS = -nologo
+ARFLAGS = -nologo
+RM = del
-CC=cl
-LD=link
-LDFLAGS=
+# File extensions
O=.obj
#uncomment next to put error messages in a file
-#ERRFILE= >> pngerrs
+#ERRFILE= >> pngerrs.log
-# variables
-OBJS1 = png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O) pngwutil$(O)
-OBJS2 = pngmem$(O) pngpread$(O) pngread$(O) pngerror$(O) pngwrite$(O)
-OBJS3 = pngrtran$(O) pngwtran$(O) pngrio$(O) pngwio$(O)
+# Variables
+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)
+OBJS = $(OBJS1) $(OBJS2) $(OBJS3)
+# Targets
all: libpng.lib
-png$(O): png.h pngconf.h
- $(CC) -c $(CFLAGS) $*.c $(ERRFILE)
+# see scripts/pnglibconf.mak for more options
+pnglibconf.h: scripts\pnglibconf.h.prebuilt
+ copy scripts\pnglibconf.h.prebuilt $@
-pngset$(O): png.h pngconf.h
+png$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngget$(O): png.h pngconf.h
+pngset$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngread$(O): png.h pngconf.h
+pngget$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngpread$(O): png.h pngconf.h
+pngread$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngrtran$(O): png.h pngconf.h
+pngpread$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngrutil$(O): png.h pngconf.h
+pngrtran$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngerror$(O): png.h pngconf.h
+pngrutil$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngmem$(O): png.h pngconf.h
+pngerror$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngrio$(O): png.h pngconf.h
+pngmem$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngwio$(O): png.h pngconf.h
+pngrio$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngtest$(O): png.h pngconf.h
+pngwio$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngtrans$(O): png.h pngconf.h
+pngtrans$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngwrite$(O): png.h pngconf.h
+pngwrite$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngwtran$(O): png.h pngconf.h
+pngwtran$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngwutil$(O): png.h pngconf.h
+pngwutil$(O): png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-libpng.lib: $(OBJS1) $(OBJS2) $(OBJS3)
- echo something to del > libpng.lib
- del libpng.lib
- lib /OUT:libpng.lib $(OBJS1) $(OBJS2) $(OBJS3)
+libpng.lib: $(OBJS)
+ -$(RM) $@
+ $(AR) $(ARFLAGS) -out:$@ $(OBJS) $(ERRFILE)
-pngtest.exe: pngtest.obj libpng.lib
- $(LD) $(LDFLAGS) pngtest.obj libpng.lib ..\zlib\zlib.lib /OUT:pngtest.exe /SUBSYSTEM:CONSOLE
+pngtest$(O): png.h pngconf.h pnglibconf.h
+ $(CC) -c $(CFLAGS) $*.c $(ERRFILE)
+
+pngtest.exe: pngtest$(O) libpng.lib
+ $(LD) $(LDFLAGS) -out:$@ pngtest$(O) libpng.lib ..\zlib\zlib.lib $(ERRFILE)
test: pngtest.exe
pngtest
+clean:
+ -$(RM) *$(O)
+ -$(RM) libpng.lib
+ -$(RM) pnglibconf.h
+ -$(RM) pngtest.exe
+ -$(RM) pngout.png
+
# End of makefile for libpng