# MSVC/NMAKE makefile for pngquant. # Greg Roelofs # Last modified: 28 December 2000 # # Invoke this makefile from a DOS prompt window via: # # %devstudio%\vc\bin\vcvars32.bat # nmake -nologo -f Makefile.w32 # # where %devstudio% is the installation directory for MSVC / DevStudio. If # you get "environment out of space" errors, create a desktop shortcut with # "c:\windows\command.com /e:4096" as the program command line and set the # working directory to this directory. Then double-click to open the new # DOS-prompt window with a bigger environment and retry the commands above. # # This makefile assumes zlib has already been built or downloaded and is in # a subdirectory at the same level as the current subdirectory (as indicated # by the ZPATH macro below). Edit as appropriate. # # Note that the names of the dynamic and static zlib libraries used below may # change in later releases of the library. This makefile builds statically # linked executables, but that can be changed by uncommenting the appropriate # ZLIB lines. !include # macros -------------------------------------------------------------------- PNGPATH = ../libpng PNGINC = -I$(PNGPATH) PNGLIB = $(PNGPATH)/libpng.lib ZPATH = ../zlib ZINC = -I$(ZPATH) #ZLIB = $(ZPATH)/zlibdll.lib ZLIB = $(ZPATH)/zlibstat.lib INCS = $(PNGINC) $(ZINC) LIBS = $(PNGLIB) $(ZLIB) CC = cl LD = link RM = del CFLAGS = -nologo -O -W3 $(INCS) -DWIN32 $(cvars) # [note that -W3 is an MSVC-specific compilation flag ("all warnings on")] # [see %devstudio%\vc\include\win32.mak for cvars macro definition] O = .obj E = .exe LDFLAGS = -nologo PROG = pngquant OBJS = $(PROG)$(O) rwpng$(O) EXES = $(PROG)$(E) # implicit make rules ------------------------------------------------------- .c$(O): $(CC) -c $(CFLAGS) $< # dependencies -------------------------------------------------------------- all: $(EXES) # setargv.obj expands wildcards and is included as part of MSVC; may be called # "wildargs.obj" (or similar) for Borland or Watcom compilers $(PROG)$(E): $(OBJS) $(LD) $(LDFLAGS) -out:$@ $(OBJS) setargv.obj $(LIBS) $(PROG)$(O): $(PROG).c # maintenance --------------------------------------------------------------- clean: # ideally we could just do this: # $(RM) $(EXES) $(ROBJS) $(ROBJS2) $(WOBJS) # ...but the Windows "DEL" command is none too bright, so: $(RM) $(PROG)$(E) $(RM) $(PROG)$(O) $(RM) rwpng$(O)