|  | # Makefile for libpng | 
|  | # 32-bit Borland C++ (Note: All modules are compiled in C mode) | 
|  | # To build the library, do: | 
|  | #       "make -fmakefile.bc32" | 
|  | # | 
|  | # -------------------- 32-bit Borland C++ -------------------- | 
|  |  | 
|  | ### Absolutely necessary for this makefile to work | 
|  | .AUTODEPEND | 
|  |  | 
|  | ## Where zlib.h, zconf.h and zlib.lib are | 
|  | ZLIB_DIR=..\zlib | 
|  |  | 
|  | ## Compiler, linker and lib stuff | 
|  | CC=bcc32 | 
|  | LD=bcc32 | 
|  | LIB=tlib | 
|  |  | 
|  | # -3 = 386, -4 = 486, -5 = Pentium etc. | 
|  | !ifndef TARGET_CPU | 
|  | #TARGET_CPU=-6 | 
|  | !endif | 
|  |  | 
|  | # Use this if you don't want Borland's fancy exception handling | 
|  | # (Caution: doesn't work with CBuilderX) | 
|  | #NOEHLIB=noeh32.lib | 
|  |  | 
|  | !ifdef DEBUG | 
|  | CDEBUG=-v | 
|  | LDEBUG=-v | 
|  | !else | 
|  | CDEBUG= | 
|  | LDEBUG= | 
|  | !endif | 
|  |  | 
|  | # STACKOFLOW=1 | 
|  | !ifdef STACKOFLOW | 
|  | CDEBUG=$(CDEBUG) -N | 
|  | LDEBUG=$(LDEBUG) -N | 
|  | !endif | 
|  |  | 
|  | # -O2 optimize for speed | 
|  | # -d  merge duplicate strings | 
|  | # -k- turn off standard stack frame | 
|  | # -w  display all warnings | 
|  | CFLAGS=-I$(ZLIB_DIR) -O2 -d -k- -w $(TARGET_CPU) $(CDEBUG) | 
|  |  | 
|  | # -M  generate map file | 
|  | LDFLAGS=-L$(ZLIB_DIR) -M $(LDEBUG) | 
|  |  | 
|  | ## Variables | 
|  | OBJS = \ | 
|  | png.obj \ | 
|  | pngerror.obj \ | 
|  | pngget.obj \ | 
|  | pngmem.obj \ | 
|  | pngpread.obj \ | 
|  | pngread.obj \ | 
|  | pngrio.obj \ | 
|  | pngrtran.obj \ | 
|  | pngrutil.obj \ | 
|  | pngset.obj \ | 
|  | pngtrans.obj \ | 
|  | pngwio.obj \ | 
|  | pngwrite.obj \ | 
|  | pngwtran.obj \ | 
|  | pngwutil.obj | 
|  |  | 
|  | LIBOBJS = \ | 
|  | +png.obj \ | 
|  | +pngerror.obj \ | 
|  | +pngget.obj \ | 
|  | +pngmem.obj \ | 
|  | +pngpread.obj \ | 
|  | +pngread.obj \ | 
|  | +pngrio.obj \ | 
|  | +pngrtran.obj \ | 
|  | +pngrutil.obj \ | 
|  | +pngset.obj \ | 
|  | +pngtrans.obj \ | 
|  | +pngwio.obj \ | 
|  | +pngwrite.obj \ | 
|  | +pngwtran.obj \ | 
|  | +pngwutil.obj | 
|  |  | 
|  | LIBNAME=libpng.lib | 
|  |  | 
|  | ## Implicit rules | 
|  | # Braces let make "batch" calls to the compiler, | 
|  | # 2 calls instead of 12; space is important. | 
|  | .c.obj: | 
|  | $(CC) $(CFLAGS) -c {$*.c } | 
|  |  | 
|  | .c.exe: | 
|  | $(CC) $(CFLAGS) $(LDFLAGS) $*.c $(LIBNAME) zlib.lib $(NOEHLIB) | 
|  |  | 
|  | .obj.exe: | 
|  | $(LD) $(LDFLAGS) $*.obj $(LIBNAME) zlib.lib $(NOEHLIB) | 
|  |  | 
|  | ## Major targets | 
|  | all: libpng pngtest | 
|  |  | 
|  | libpng: $(LIBNAME) | 
|  |  | 
|  | pngtest: pngtest.exe | 
|  |  | 
|  | test: pngtest.exe | 
|  | pngtest | 
|  |  | 
|  | ## Minor Targets | 
|  |  | 
|  | png.obj: png.c png.h pngconf.h pngpriv.h | 
|  | pngerror.obj: pngerror.c png.h pngconf.h pngpriv.h | 
|  | pngget.obj: pngget.c png.h pngconf.h pngpriv.h | 
|  | pngmem.obj: pngmem.c png.h pngconf.h pngpriv.h | 
|  | pngpread.obj: pngpread.c png.h pngconf.h pngpriv.h | 
|  | pngread.obj: pngread.c png.h pngconf.h pngpriv.h | 
|  | pngrio.obj: pngrio.c png.h pngconf.h pngpriv.h | 
|  | pngrtran.obj: pngrtran.c png.h pngconf.h pngpriv.h | 
|  | pngrutil.obj: pngrutil.c png.h pngconf.h pngpriv.h | 
|  | pngset.obj: pngset.c png.h pngconf.h pngpriv.h | 
|  | pngtrans.obj: pngtrans.c png.h pngconf.h pngpriv.h | 
|  | pngwio.obj: pngwio.c png.h pngconf.h pngpriv.h | 
|  | pngwrite.obj: pngwrite.c png.h pngconf.h pngpriv.h | 
|  | pngwtran.obj: pngwtran.c png.h pngconf.h pngpriv.h | 
|  | pngwutil.obj: pngwutil.c png.h pngconf.h pngpriv.h | 
|  | pngtest.obj: pngtest.c png.h pngconf.h pngpriv.h | 
|  |  | 
|  | $(LIBNAME): $(OBJS) | 
|  | -del $(LIBNAME) | 
|  | $(LIB) $(LIBNAME) @&&| | 
|  | $(LIBOBJS), libpng | 
|  | | | 
|  |  | 
|  | # Cleanup | 
|  | clean: | 
|  | -del *.obj | 
|  | -del $(LIBNAME) | 
|  | -del pngtest.exe | 
|  | -del *.lst | 
|  | -del *.map | 
|  | -del *.tds | 
|  | -del pngout.png | 
|  |  | 
|  | # End of makefile for libpng |