# Makefile for libpng # Borland C++ 4.5 (Note: All modules are compiled in C mode) # Will work with C++ 4.02 also # To build the library, do: # "make -fmakefile.bor -DMODEL=m" # or: "make -fmakefile.bor -DMODEL=l" # # ------------- Borland C++ 4.5 ------------- ### Absolutely necessary for this makefile to work .AUTODEPEND ## Useful user options # Usually defined in builtins.mak or the environment # Currently unused. !ifndef BCROOT BCROOT=N:\BC45 !endif # Where zlib.h and zconf.h and zlib.lib are ZLIB_PATH=..\zlib !ifndef MODEL MODEL=l !endif #TARGET_CPU=3 # 2 = 286, 3 = 386, etc. !ifndef TARGET_CPU TARGET_CPU=2 !endif # Use this if you don't want Borland's fancy exception handling. NOEHLIB=noeh$(MODEL).lib !ifdef DEBUG CDEBUG=-v LDEBUG=-v !else CDEBUG= LDEBUG= !endif # STACKOFLOW=1 !ifdef STACKOFLOW CDEBUG=$(CDEBUG) -N LDEBUG=$(LDEBUG) -N !endif ## Compiler, linker, and lib stuff CC=bcc LD=bcc LIB=tlib MODELARG=-m$(MODEL) # -X- turns on dependency generation in the object file # -w sets all warnings on # -O2 optimize for speed # -Z global optimization CFLAGS=-O2 -Z -X- -w -I$(ZLIB_PATH) -$(TARGET_CPU) $(MODELARG) $(CDEBUG) # -M generate map file LDFLAGS=-M $(LDEBUG) O=obj ## variables OBJS = \ png.$(O) \ pngerror.$(O) \ pngmem.$(O) \ pngpread.$(O) \ pngset.$(O) \ pngget.$(O) \ pngread.$(O) \ pngrio.$(O) \ pngrtran.$(O) \ pngrutil.$(O) \ pngtrans.$(O) \ pngwrite.$(O) \ pngwtran.$(O) \ pngwio.$(O) \ pngwutil.$(O) LIBOBJS = \ +png.$(O) \ +pngerror.$(O) \ +pngmem.$(O) \ +pngpread.$(O) \ +pngread.$(O) \ +pngset.$(O) \ +pngget.$(O) \ +pngrio.$(O) \ +pngrtran.$(O) \ +pngrutil.$(O) \ +pngtrans.$(O) \ +pngwrite.$(O) \ +pngwtran.$(O) \ +pngwio.$(O) +pngwutil.$(O) LIBNAME=libpng$(MODEL).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 ## Major targets libpng: $(LIBNAME) pngtest: pngtest$(MODEL).exe test: pngtest$(MODEL) ## Minor Targets png.obj: png.c pngset.obj: pngset.c pngget.obj: pngget.c pngread.obj: pngread.c pngpread.obj: pngpread.c pngrtran.obj: pngrtran.c pngrutil.obj: pngrutil.c pngerror.obj: pngerror.c pngmem.obj: pngmem.c pngrio.obj: pngrio.c pngwio.obj: pngwio.c pngtrans.obj: pngtrans.c pngwrite.obj: pngwrite.c pngwtran.obj: pngwtran.c pngwutil.obj: pngwutil.c $(LIBNAME): $(OBJS) -del $(LIBNAME) $(LIB) $(LIBNAME) @&&| $(LIBOBJS), libpng$(MODEL) | pngtest$(MODEL).obj: pngtest.c $(CC) $(CFLAGS) -opngtest$(MODEL) -c pngtest.c pngtest$(MODEL).exe: pngtest$(MODEL).obj $(CC) $(MODELARG) $(LDFLAGS) -L$(ZLIB_PATH) pngtest$(MODEL).obj $(LIBNAME) zlib$(MODEL).lib $(NOEHLIB) # Clean up anything else you want clean: -del *.obj -del *.lib -del *.lst # End of makefile for libpng