# 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"
+# 16-bit Borland C++ (Note: All modules are compiled in C mode)
+# To build the library, do:
+# "make -fmakefile.bor -DMODEL=c"
# or: "make -fmakefile.bor -DMODEL=l"
#
-# ------------- Borland C++ 4.5 -------------
+# ------------ Borland C++ ------------
### Absolutely necessary for this makefile to work
.AUTODEPEND
-## Useful user options
+## Where zlib.h, zconf.h and zlib_MODEL.lib are
+ZLIB_DIR=..\zlib
-# 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
+## Compiler, linker and lib stuff
+CC=bcc
+LD=bcc
+LIB=tlib
!ifndef MODEL
MODEL=l
!endif
+MODEL_ARG=-m$(MODEL)
+
#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
+# Use this if you don't want Borland's fancy exception handling
+# (for Borland C++ 4.0 or later)
+#NOEHLIB=noeh$(MODEL).lib
!ifdef DEBUG
CDEBUG=-v
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
+# -X- turn on dependency generation in the object file
+# -w set all warnings on
# -O2 optimize for speed
# -Z global optimization
-CFLAGS=-O2 -Z -X- -w -I$(ZLIB_PATH) -$(TARGET_CPU) $(MODELARG) $(CDEBUG)
+CFLAGS=-O2 -Z -X- -w -I$(ZLIB_DIR) -$(TARGET_CPU) $(MODEL_ARG) $(CDEBUG)
# -M generate map file
-LDFLAGS=-M $(LDEBUG)
+LDFLAGS=-M -L$(ZLIB_DIR) $(MODEL_ARG) $(LDEBUG)
-O=obj
+## Variables
-## 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)
+ 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.$(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)
+ +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$(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
-
+ $(CC) $(CFLAGS) $(LDFLAGS) $*.c $(LIBNAME) zlib_$(MODEL).lib $(NOEHLIB)
## Major targets
+
+all: libpng pngtest
+
libpng: $(LIBNAME)
pngtest: pngtest$(MODEL).exe
-test:
+test: pngtest$(MODEL).exe
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
-
+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
$(LIBNAME): $(OBJS)
-del $(LIBNAME)
- $(LIB) $(LIBNAME) @&&|
+ $(LIB) $(LIBNAME) @&&|
$(LIBOBJS), libpng$(MODEL)
|
-
-pngtest$(MODEL).obj: pngtest.c
+pngtest$(MODEL).obj: pngtest.c png.h pngconf.h
$(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)
-
+ $(LD) $(LDFLAGS) pngtest$(MODEL).obj $(LIBNAME) zlib_$(MODEL).lib $(NOEHLIB)
# Clean up anything else you want
clean:
-del *.obj
+ -del *.exe
-del *.lib
-del *.lst
-
+ -del *.map
# End of makefile for libpng