symbian-qemu-0.9.1-12/libpng-1.2.32/contrib/gregbook/Makefile.w32
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 # Sample makefile for rpng-win / rpng2-win / wpng using MSVC and NMAKE.
       
     2 # Greg Roelofs
       
     3 # Last modified:  2 June 2007
       
     4 #
       
     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?  Well, OK, it's not
       
     8 #	generally for sale anymore, but it's the thought that counts,
       
     9 #	right?  (Hint:  http://www.libpng.org/pub/png/book/ )
       
    10 #
       
    11 # Invoke this makefile from a DOS prompt window via:
       
    12 #
       
    13 #	%devstudio%\vc\bin\vcvars32.bat
       
    14 #	nmake -nologo -f Makefile.w32
       
    15 #
       
    16 # where %devstudio% is the installation directory for MSVC / DevStudio.  If
       
    17 # you get "environment out of space" errors, create a desktop shortcut with
       
    18 # "c:\windows\command.com /e:4096" as the program command line and set the
       
    19 # working directory to this directory.  Then double-click to open the new
       
    20 # DOS-prompt window with a bigger environment and retry the commands above.
       
    21 # 
       
    22 # This makefile assumes libpng and zlib have already been built or downloaded
       
    23 # and are in subdirectories at the same level as the current subdirectory
       
    24 # (as indicated by the PNGPATH and ZPATH macros below).  Edit as appropriate.
       
    25 #
       
    26 # Note that the names of the dynamic and static libpng and zlib libraries
       
    27 # used below may change in later releases of the libraries.  This makefile
       
    28 # builds statically linked executables, but that can be changed by uncom-
       
    29 # menting the appropriate PNGLIB and ZLIB lines.
       
    30 
       
    31 !include <ntwin32.mak>
       
    32 
       
    33 
       
    34 # macros --------------------------------------------------------------------
       
    35 
       
    36 PNGPATH = ../libpng
       
    37 PNGINC = -I$(PNGPATH)
       
    38 #PNGLIB = $(PNGPATH)/pngdll.lib
       
    39 PNGLIB = $(PNGPATH)/libpng.lib
       
    40 
       
    41 ZPATH = ../zlib
       
    42 ZINC = -I$(ZPATH)
       
    43 #ZLIB = $(ZPATH)/zlibdll.lib
       
    44 ZLIB = $(ZPATH)/zlibstat.lib
       
    45 
       
    46 WINLIBS = -defaultlib:user32.lib gdi32.lib
       
    47 # ["real" apps may also need comctl32.lib, comdlg32.lib, winmm.lib, etc.]
       
    48 
       
    49 INCS = $(PNGINC) $(ZINC)
       
    50 RLIBS = $(PNGLIB) $(ZLIB) $(WINLIBS)
       
    51 WLIBS = $(PNGLIB) $(ZLIB)
       
    52 
       
    53 CC = cl
       
    54 LD = link
       
    55 RM = del
       
    56 CFLAGS = -nologo -O -W3 $(INCS) $(cvars)
       
    57 # [note that -W3 is an MSVC-specific compilation flag ("all warnings on")]
       
    58 # [see %devstudio%\vc\include\win32.mak for cvars macro definition]
       
    59 O = .obj
       
    60 E = .exe
       
    61 
       
    62 RLDFLAGS = -nologo -subsystem:windows
       
    63 WLDFLAGS = -nologo
       
    64 
       
    65 RPNG  = rpng-win
       
    66 RPNG2 = rpng2-win
       
    67 WPNG  = wpng
       
    68 
       
    69 ROBJS  = $(RPNG)$(O) readpng$(O)
       
    70 ROBJS2 = $(RPNG2)$(O) readpng2$(O)
       
    71 WOBJS  = $(WPNG)$(O) writepng$(O)
       
    72 
       
    73 EXES = $(RPNG)$(E) $(RPNG2)$(E) $(WPNG)$(E)
       
    74 
       
    75 
       
    76 # implicit make rules -------------------------------------------------------
       
    77 
       
    78 .c$(O):
       
    79 	$(CC) -c $(CFLAGS) $<
       
    80 
       
    81 
       
    82 # dependencies --------------------------------------------------------------
       
    83 
       
    84 all:  $(EXES)
       
    85 
       
    86 $(RPNG)$(E): $(ROBJS)
       
    87 	$(LD) $(RLDFLAGS) -out:$@ $(ROBJS) $(RLIBS)
       
    88 
       
    89 $(RPNG2)$(E): $(ROBJS2)
       
    90 	$(LD) $(RLDFLAGS) -out:$@ $(ROBJS2) $(RLIBS)
       
    91 
       
    92 $(WPNG)$(E): $(WOBJS)
       
    93 	$(LD) $(WLDFLAGS) -out:$@ $(WOBJS) $(WLIBS)
       
    94 
       
    95 $(RPNG)$(O):	$(RPNG).c readpng.h
       
    96 $(RPNG2)$(O):	$(RPNG2).c readpng2.h
       
    97 $(WPNG)$(O):	$(WPNG).c writepng.h
       
    98 
       
    99 readpng$(O):	readpng.c readpng.h
       
   100 readpng2$(O):	readpng2.c readpng2.h
       
   101 writepng$(O):	writepng.c writepng.h
       
   102 
       
   103 
       
   104 # maintenance ---------------------------------------------------------------
       
   105 
       
   106 clean:
       
   107 #	ideally we could just do this:
       
   108 #	$(RM) $(EXES) $(ROBJS) $(ROBJS2) $(WOBJS)
       
   109 #	...but the Windows "DEL" command is none too bright, so:
       
   110 	$(RM) r*$(E)
       
   111 	$(RM) w*$(E)
       
   112 	$(RM) r*$(O)
       
   113 	$(RM) w*$(O)