b8eb945946
similarly-named macros were already defined in makefiles. This behavior is different from POSIX make and other make programs. Surround the macro definitions with ifndef guards (Cosmin).
159 lines
3.8 KiB
Plaintext
159 lines
3.8 KiB
Plaintext
# 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, librarian and other tools
|
|
CC=bcc32
|
|
LD=bcc32
|
|
LIB=tlib
|
|
CP=copy
|
|
|
|
# -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
|
|
CPPFLAGS=-I$(ZLIB_DIR)
|
|
CFLAGS=-O2 -d -k- -w $(TARGET_CPU) $(CDEBUG)
|
|
|
|
# -M generate map file
|
|
LDFLAGS=-L$(ZLIB_DIR) -M $(LDEBUG)
|
|
|
|
# Pre-built configuration
|
|
# See scripts\pnglibconf.mak for more options
|
|
!ifndef PNGLIBCONF_H_PREBUILT
|
|
PNGLIBCONF_H_PREBUILT = scripts\pnglibconf.h.prebuilt
|
|
!endif
|
|
|
|
## 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) $(CPPFLAGS) $(CFLAGS) -c {$*.c }
|
|
|
|
.c.exe:
|
|
$(CC) $(CPPFLAGS) $(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
|
|
|
|
pnglibconf.h: $(PNGLIBCONF_H_PREBUILT)
|
|
$(CP) $(PNGLIBCONF_H_PREBUILT) $@
|
|
|
|
png.obj: png.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngerror.obj: pngerror.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngget.obj: pngget.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngmem.obj: pngmem.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngpread.obj: pngpread.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngread.obj: pngread.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngrio.obj: pngrio.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngrtran.obj: pngrtran.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngrutil.obj: pngrutil.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngset.obj: pngset.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngtrans.obj: pngtrans.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngwio.obj: pngwio.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngwrite.obj: pngwrite.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngwtran.obj: pngwtran.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngwutil.obj: pngwutil.c png.h pngconf.h pnglibconf.h pngpriv.h pngstruct.h pnginfo.h pngdebug.h
|
|
pngtest.obj: pngtest.c png.h pngconf.h pnglibconf.h
|
|
|
|
$(LIBNAME): $(OBJS)
|
|
-del $(LIBNAME)
|
|
$(LIB) $(LIBNAME) @&&|
|
|
$(LIBOBJS), libpng
|
|
|
|
|
|
|
# Cleanup
|
|
clean:
|
|
-del pnglibconf.h
|
|
-del *.obj
|
|
-del $(LIBNAME)
|
|
-del pngtest.exe
|
|
-del *.lst
|
|
-del *.map
|
|
-del *.tds
|
|
-del pngout.png
|
|
|
|
# End of makefile for libpng
|