makefile.bc32 revision 893912bfc2683463dc3e2c445336752d012563d3
1# Makefile for libpng
2# 32-bit Borland C++ (Note: All modules are compiled in C mode)
3# To build the library, do:
4#       "make -fmakefile.bc32"
5#
6# -------------------- 32-bit Borland C++ --------------------
7
8### Absolutely necessary for this makefile to work
9.AUTODEPEND
10
11## Where zlib.h, zconf.h and zlib.lib are
12ZLIB_DIR=..\zlib
13
14
15## Compiler, linker and lib stuff
16CC=bcc32
17LD=bcc32
18LIB=tlib
19
20# -3 = 386, -4 = 486, -5 = Pentium etc.
21!ifndef TARGET_CPU
22#TARGET_CPU=-6
23!endif
24
25# Use this if you don't want Borland's fancy exception handling
26# (Caution: doesn't work with CBuilderX)
27#NOEHLIB=noeh32.lib
28
29!ifdef DEBUG
30CDEBUG=-v
31LDEBUG=-v
32!else
33CDEBUG=
34LDEBUG=
35!endif
36
37# STACKOFLOW=1
38!ifdef STACKOFLOW
39CDEBUG=$(CDEBUG) -N
40LDEBUG=$(LDEBUG) -N
41!endif
42
43# -O2 optimize for speed
44# -d  merge duplicate strings
45# -k- turn off standard stack frame
46# -w  display all warnings
47CFLAGS=-I$(ZLIB_DIR) -O2 -d -k- -w $(TARGET_CPU) $(CDEBUG)
48
49# -M  generate map file
50LDFLAGS=-L$(ZLIB_DIR) -M $(LDEBUG)
51
52
53## Variables
54OBJS = \
55	png.obj \
56	pngerror.obj \
57	pngget.obj \
58	pngmem.obj \
59	pngpread.obj \
60	pngread.obj \
61	pngrio.obj \
62	pngrtran.obj \
63	pngrutil.obj \
64	pngset.obj \
65	pngtrans.obj \
66	pngwio.obj \
67	pngwrite.obj \
68	pngwtran.obj \
69	pngwutil.obj
70
71LIBOBJS = \
72	+png.obj \
73	+pngerror.obj \
74	+pngget.obj \
75	+pngmem.obj \
76	+pngpread.obj \
77	+pngread.obj \
78	+pngrio.obj \
79	+pngrtran.obj \
80	+pngrutil.obj \
81	+pngset.obj \
82	+pngtrans.obj \
83	+pngwio.obj \
84	+pngwrite.obj \
85	+pngwtran.obj \
86	+pngwutil.obj
87
88LIBNAME=libpng.lib
89
90
91## Implicit rules
92# Braces let make "batch" calls to the compiler,
93# 2 calls instead of 12; space is important.
94.c.obj:
95	$(CC) $(CFLAGS) -c {$*.c }
96
97.c.exe:
98	$(CC) $(CFLAGS) $(LDFLAGS) $*.c $(LIBNAME) zlib.lib $(NOEHLIB)
99
100.obj.exe:
101	$(LD) $(LDFLAGS) $*.obj $(LIBNAME) zlib.lib $(NOEHLIB)
102
103
104## Major targets
105all: libpng pngtest
106
107libpng: $(LIBNAME)
108
109pngtest: pngtest.exe
110
111test: pngtest.exe
112	pngtest
113
114
115## Minor Targets
116
117png.obj: png.c
118pngerror.obj: pngerror.c
119pngget.obj: pngget.c
120pngmem.obj: pngmem.c
121pngpread.obj: pngpread.c
122pngread.obj: pngread.c
123pngrio.obj: pngrio.c
124pngrtran.obj: pngrtran.c
125pngrutil.obj: pngrutil.c
126pngset.obj: pngset.c
127pngtrans.obj: pngtrans.c
128pngwio.obj: pngwio.c
129pngwrite.obj: pngwrite.c
130pngwtran.obj: pngwtran.c
131pngwutil.obj: pngwutil.c
132
133
134$(LIBNAME): $(OBJS)
135	-del $(LIBNAME)
136	$(LIB) $(LIBNAME) @&&|
137$(LIBOBJS), libpng
138|
139
140
141# Cleanup
142clean:
143	-del *.obj
144	-del $(LIBNAME)
145	-del pngtest.exe
146	-del *.lst
147	-del *.map
148	-del *.tds
149	-del pngout.png
150
151
152# End of makefile for libpng
153