1 # Sample makefile for rpng-win / rpng2-win / wpng using MSVC and NMAKE.
3 # Last modified: 16 February 1999
5 # The programs built by this makefile are described in the book,
6 # "PNG: The Definitive Guide," by Greg Roelofs (O'Reilly and
7 # Associates, 1999). Go buy a copy, eh? Buy some for friends
8 # and family, too. (Not that this is a blatant plug or anything.)
10 # Invoke this makefile from a DOS prompt window via:
12 # %devstudio%\vc\bin\vcvars32.bat
13 # nmake -nologo -f Makefile.w32
15 # where %devstudio% is the installation directory for MSVC / DevStudio. If
16 # you get "environment out of space" errors, create a desktop shortcut with
17 # "c:\windows\command.com /e:4096" as the program command line and set the
18 # working directory to this directory. Then double-click to open the new
19 # DOS-prompt window with a bigger environment and retry the commands above.
21 # This makefile assumes libpng and zlib have already been built or downloaded
22 # and are in subdirectories at the same level as the current subdirectory
23 # (as indicated by the PNGPATH and ZPATH macros below). Edit as appropriate.
25 # Note that the names of the dynamic and static libpng and zlib libraries
26 # used below may change in later releases of the libraries. This makefile
27 # builds statically linked executables, but that can be changed by uncom-
28 # menting the appropriate PNGLIB and ZLIB lines.
30 !include <ntwin32.mak>
33 # macros --------------------------------------------------------------------
37 #PNGLIB = $(PNGPATH)/pngdll.lib
38 PNGLIB = $(PNGPATH)/libpng.lib
42 #ZLIB = $(ZPATH)/zlibdll.lib
43 ZLIB = $(ZPATH)/zlibstat.lib
45 WINLIBS = -defaultlib:user32.lib gdi32.lib
46 # ["real" apps may also need comctl32.lib, comdlg32.lib, winmm.lib, etc.]
48 INCS = $(PNGINC) $(ZINC)
49 RLIBS = $(PNGLIB) $(ZLIB) $(WINLIBS)
50 WLIBS = $(PNGLIB) $(ZLIB)
55 CFLAGS = -nologo -O -W3 $(INCS) $(cvars)
56 # [note that -Wall is an MSVC-specific compilation flag ("all warnings on")]
57 # [see %devstudio%\vc\include\win32.mak for cvars macro definition]
61 RLDFLAGS = -nologo -subsystem:windows
68 ROBJS = $(RPNG)$(O) readpng$(O)
69 ROBJS2 = $(RPNG2)$(O) readpng2$(O)
70 WOBJS = $(WPNG)$(O) writepng$(O)
72 EXES = $(RPNG)$(E) $(RPNG2)$(E) $(WPNG)$(E)
75 # implicit make rules -------------------------------------------------------
81 # dependencies --------------------------------------------------------------
86 $(LD) $(RLDFLAGS) -out:$@ $(ROBJS) $(RLIBS)
88 $(RPNG2)$(E): $(ROBJS2)
89 $(LD) $(RLDFLAGS) -out:$@ $(ROBJS2) $(RLIBS)
92 $(LD) $(WLDFLAGS) -out:$@ $(WOBJS) $(WLIBS)
94 $(RPNG)$(O): $(RPNG).c readpng.h
95 $(RPNG2)$(O): $(RPNG2).c readpng2.h
96 $(WPNG)$(O): $(WPNG).c writepng.h
98 readpng$(O): readpng.c readpng.h
99 readpng2$(O): readpng2.c readpng2.h
100 writepng$(O): writepng.c writepng.h
103 # maintenance ---------------------------------------------------------------
106 # ideally we could just do this:
107 # $(RM) $(EXES) $(ROBJS) $(ROBJS2) $(WOBJS)
108 # ...but the Windows "DEL" command is none too bright, so: