# To use, do "nmake /f scripts\makefile.vcawin32"
# -------- Microsoft Visual C++ 5.0 and later, uses assembler code --------
-
-# Caution: the assembler code was introduced at libpng version 1.0.4 and has
-# not yet been thoroughly tested.
-
-# If you don't want to use assembler code, use makefile.vcwin32 instead.
-
-CFLAGS=-DPNG_USE_PNGVCRD -Ox -GA3s -nologo -W3 -I..\zlib
-
-CC=cl
-LD=link
-LDFLAGS=
+# If you don't want to use assembler (MMX) code, use makefile.vcwin32 instead.
+
+# Compiler, linker, librarian, and other tools
+CC = cl
+LD = link
+AR = lib
+CFLAGS = -DPNG_USE_PNGVCRD -nologo -MD -O2 -W3 -I..\zlib
+LDFLAGS = -nologo
+ARFLAGS = -nologo
+RM = del
+
+# 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) pngvcrd$(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)
+OBJS4 = pngvcrd$(O)
+OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4)
+# Targets
all: libpng.lib
png$(O): png.h pngconf.h
- $(CC) -c $(CFLAGS) $*.c $(ERRFILE)
+ $(CC) -c $(CFLAGS) $*.c $(ERRFILE)
pngset$(O): png.h pngconf.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
pngrutil$(O): png.h pngconf.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-pngvcrd$(O): png.h pngconf.h
- $(CC) -c $(CFLAGS) $*.c $(ERRFILE)
-
pngerror$(O): png.h pngconf.h
$(CC) -c $(CFLAGS) $*.c $(ERRFILE)
pngwutil$(O): png.h pngconf.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)
+pngvcrd$(O): png.h pngconf.h
+ $(CC) -c $(CFLAGS) $*.c $(ERRFILE)
+
+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.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) pngtest.exe
+ -$(RM) pngout.png
+
# End of makefile for libpng