Makefile revision 33799
1#
2# $Id: Makefile,v 1.7 1997/05/23 08:33:59 asami Exp $
3#
4
5GPPDIR=	${.CURDIR}/../../../contrib/libg++
6
7.PATH:	${GPPDIR}/libstdc++ ${GPPDIR}/libstdc++/stl ${GPPDIR}/libio \
8	${GPPDIR}/libiberty
9
10LIB=		stdc++
11SHLIB_MAJOR=	2
12SHLIB_MINOR=	0
13
14CFLAGS+=	-I${GPPDIR}/include -I${DESTDIR}/usr/include/g++ -I.
15CXXFLAGS+=	-I${GPPDIR}/include -I${GPPDIR}/libio -I${GPPDIR}/libstdc++
16CXXFLAGS+=	-fno-implicit-templates
17
18DIR=		${GPPDIR}/libstdc++
19
20HDRS=	cassert cctype cerrno cfloat ciso646 climits clocale cmath complex \
21	csetjmp csignal cstdarg cstddef cstdio cstdlib cstring ctime \
22	cwchar cwctype new stddef string exception stdexcept typeinfo \
23	algorithm deque list map queue set stack vector utility functional \
24	iterator memory numeric \
25	complex.h new.h stl.h
26
27SHDRS=	bastring.cc bastring.h cassert.h cctype.h cerrno.h cfloat.h cinst.h \
28	ciso646.h climits.h clocale.h cmath.h complex.h complext.cc \
29	complext.h csetjmp.h csignal.h cstdarg.h cstddef.h cstdio.h \
30	cstdlib.h cstring.h ctime.h cwchar.h cwctype.h dcomplex.h exception.h \
31	fcomplex.h ldcomplex.h new.h sinst.h stddef.h stdexcept.h straits.h \
32	string.h typeinfo.h
33
34STLHDRS=algo.h algobase.h bool.h bvector.h defalloc.h deque.h faralloc.h \
35	fdeque.h flist.h fmap.h fmultmap.h fmultset.h fset.h function.h \
36	hdeque.h heap.h hlist.h hmap.h hmultmap.h hmultset.h hset.h \
37	hugalloc.h hvector.h iterator.h lbvector.h ldeque.h list.h llist.h \
38	lmap.h lmultmap.h lmultset.h lngalloc.h lset.h map.h multimap.h \
39	multiset.h neralloc.h nmap.h nmultmap.h nmultset.h nset.h pair.h \
40	projectn.h set.h stack.h tempbuf.h tree.h vector.h
41
42SRCS+=	newi.cc cstringi.cc stddefi.cc typeinfoi.cc exceptioni.cc \
43	stdexcepti.cc cstdlibi.cc cmathi.cc
44
45# stl sources.
46SRCS+=	tempbuf.cc tree.cc random.cc
47
48# "standard" C parts of libiberty (strerror is a superset of the libc version)
49SRCS+=	insque.c strerror.c
50
51# Headers for iostream
52IHDRS=	PlotFile.h SFile.h builtinbuf.h editbuf.h floatio.h fstream.h \
53	indstream.h iolibio.h iomanip.h iostdio.h iostream.h iostreamP.h \
54	istream.h libio.h libioP.h ostream.h parsestream.h pfstream.h \
55	procbuf.h stdiostream.h stream.h streambuf.h strfile.h strstream.h
56
57# C++ parts of iostream
58SRCS+=	PlotFile.cc SFile.cc builtinbuf.cc editbuf.cc filebuf.cc fstream.cc \
59	indstream.cc ioassign.cc ioextend.cc iomanip.cc iostream.cc \
60	isgetline.cc isgetsb.cc isscan.cc osform.cc parsestream.cc \
61	pfstream.cc procbuf.cc sbform.cc sbgetline.cc sbscan.cc \
62	stdiostream.cc stdstrbufs.cc stdstreams.cc stream.cc streambuf.cc \
63	strstream.cc
64
65# C parts of iostream
66SRCS+=	cleanup.c filedoalloc.c fileops.c floatconv.c genops.c iofclose.c \
67	iofgetpos.c iofread.c iofscanf.c iofsetpos.c iogetdelim.c iogetline.c \
68	ioignore.c iopadn.c iopopen.c ioprims.c ioprintf.c ioseekoff.c \
69	ioseekpos.c iostrerror.c ioungetc.c iovfprintf.c iovfscanf.c \
70	outfloat.c strops.c
71
72
73
74beforedepend:	config.h
75strerror.o:	config.h
76CLEANFILES+=	config.h
77
78config.h:
79	touch config.h
80
81beforeinstall:
82	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
83		${.CURDIR}/_G_config.h \
84		${HDRS:S;^;${GPPDIR}/libstdc++/;} \
85		${IHDRS:S;^;${GPPDIR}/libio/;} \
86		${STLHDRS:S;^;${GPPDIR}/libstdc++/stl/;} \
87		${DESTDIR}/usr/include/g++
88	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
89		${SHDRS:S;^;${GPPDIR}/libstdc++/std/;} \
90		${DESTDIR}/usr/include/g++/std
91
92# Lots of special cases
93
94# ======== typeinfoi.o, stdexcepti.o ========
95.for file in typeinfoi stdexcepti
96${file}.o: ${file}.cc
97	${CXX} ${CXXFLAGS} -frtti -c ${DIR}/${file}.cc -o ${.TARGET}
98	@${LD} -O ${.TARGET} -x -r ${.TARGET}
99
100${file}.so: ${file}.cc
101	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -frtti -c ${DIR}/${file}.cc -o ${.TARGET}
102	@${LD} -O ${.TARGET} -x -r ${.TARGET}
103
104${file}.po: ${file}.cc
105	${CXX} -p ${CXXFLAGS} -frtti -c ${DIR}/${file}.cc -o ${.TARGET}
106	@${LD} -O ${.TARGET} -X -r ${.TARGET}
107.endfor
108
109# ======== exceptioni.o ========
110.for file in exceptioni
111${file}.o: ${file}.cc
112	${CXX} ${CXXFLAGS} -O0 -frtti -fhandle-exceptions -c ${DIR}/${file}.cc -o ${.TARGET}
113	@${LD} -O ${.TARGET} -x -r ${.TARGET}
114
115${file}.so: ${file}.cc
116	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -O0 -frtti -fhandle-exceptions -c ${DIR}/${file}.cc -o ${.TARGET}
117	@${LD} -O ${.TARGET} -x -r ${.TARGET}
118
119${file}.po: ${file}.cc
120	${CXX} -p ${CXXFLAGS} -O0 -frtti -fhandle-exceptions -c ${DIR}/${file}.cc -o ${.TARGET}
121	@${LD} -O ${.TARGET} -X -r ${.TARGET}
122.endfor
123
124# ======== cstrmain.o ========
125CSTRMAIN=	-DC
126.for i in REP MAIN TRAITS ADDSS ADDPS ADDCS ADDSP ADDSC  EQSS EQPS EQSP NESS \
127	NEPS NESP LTSS LTPS LTSP GTSS GTPS GTSP  LESS LEPS LESP GESS GEPS GESP
128CSTRMAIN+=	-D${i}
129.endfor
130
131OBJS+=	cstrmain.o
132
133cstrmain.o:	sinst.cc
134	${CXX} ${CXXFLAGS} ${CSTRMAIN} -c ${.ALLSRC} -o ${.TARGET}
135	@${LD} -O ${.TARGET} -x -r ${.TARGET}
136
137cstrmain.so:	sinst.cc
138	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${CSTRMAIN} -c ${.ALLSRC} -o ${.TARGET}
139	@${LD} -O ${.TARGET} -x -r ${.TARGET}
140
141cstrmain.po:	sinst.cc
142	${CXX} -p ${CXXFLAGS} ${CSTRMAIN} -c ${.ALLSRC} -o ${.TARGET}
143	@${LD} -O ${.TARGET} -X -r ${.TARGET}
144
145# ======== cstrio.o ========
146CSTRIO=	-DC
147.for i in EXTRACT INSERT GETLINE
148CSTRIO+=	-D${i}
149.endfor
150
151OBJS+=	cstrio.o
152
153cstrio.o:	sinst.cc
154	${CXX} ${CXXFLAGS} ${CSTRIO} -c ${.ALLSRC} -o ${.TARGET}
155	@${LD} -O ${.TARGET} -x -r ${.TARGET}
156
157cstrio.so:	sinst.cc
158	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${CSTRIO} -c ${.ALLSRC} -o ${.TARGET}
159	@${LD} -O ${.TARGET} -x -r ${.TARGET}
160
161cstrio.po:	sinst.cc
162	${CXX} -p ${CXXFLAGS} ${CSTRIO} -c ${.ALLSRC} -o ${.TARGET}
163	@${LD} -O ${.TARGET} -X -r ${.TARGET}
164
165# ======== fcomplex.o =======
166FCOMPLEX=	-DF
167.for i in MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
168	DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR \
169	CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
170FCOMPLEX+=	-D${i}
171.endfor
172
173OBJS+=	fcomplex.o
174
175fcomplex.o:	cinst.cc
176	${CXX} ${CXXFLAGS} ${FCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
177	@${LD} -O ${.TARGET} -x -r ${.TARGET}
178
179fcomplex.so:	cinst.cc
180	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${FCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
181	@${LD} -O ${.TARGET} -x -r ${.TARGET}
182
183fcomplex.po:	cinst.cc
184	${CXX} -p ${CXXFLAGS} ${FCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
185	@${LD} -O ${.TARGET} -X -r ${.TARGET}
186
187# ======== fcomio.o =======
188FCOMIO=	-DF
189.for i in EXTRACT INSERT
190FCOMIO+=-D${i}
191.endfor
192
193OBJS+=	fcomio.o
194
195fcomio.o:	cinst.cc
196	${CXX} ${CXXFLAGS} ${FCOMIO} -c ${.ALLSRC} -o ${.TARGET}
197	@${LD} -O ${.TARGET} -x -r ${.TARGET}
198
199fcomio.so:	cinst.cc
200	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${FCOMIO} -c ${.ALLSRC} -o ${.TARGET}
201	@${LD} -O ${.TARGET} -x -r ${.TARGET}
202
203fcomio.po:	cinst.cc
204	${CXX} -p ${CXXFLAGS} ${FCOMIO} -c ${.ALLSRC} -o ${.TARGET}
205	@${LD} -O ${.TARGET} -X -r ${.TARGET}
206
207# ======== dcomplex.o =======
208DCOMPLEX=	-DD
209.for i in MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
210	DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR \
211	CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
212DCOMPLEX+=	-D${i}
213.endfor
214
215OBJS+=	dcomplex.o
216
217dcomplex.o:	cinst.cc
218	${CXX} ${CXXFLAGS} ${DCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
219	@${LD} -O ${.TARGET} -x -r ${.TARGET}
220
221dcomplex.so:	cinst.cc
222	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${DCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
223	@${LD} -O ${.TARGET} -x -r ${.TARGET}
224
225dcomplex.po:	cinst.cc
226	${CXX} -p ${CXXFLAGS} ${DCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
227	@${LD} -O ${.TARGET} -X -r ${.TARGET}
228
229# ======== dcomio.o =======
230DCOMIO=	-DD
231.for i in EXTRACT INSERT
232DCOMIO+=-D${i}
233.endfor
234
235OBJS+=	dcomio.o
236
237dcomio.o:	cinst.cc
238	${CXX} ${CXXFLAGS} ${DCOMIO} -c ${.ALLSRC} -o ${.TARGET}
239	@${LD} -O ${.TARGET} -x -r ${.TARGET}
240
241dcomio.so:	cinst.cc
242	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${DCOMIO} -c ${.ALLSRC} -o ${.TARGET}
243	@${LD} -O ${.TARGET} -x -r ${.TARGET}
244
245dcomio.po:	cinst.cc
246	${CXX} -p ${CXXFLAGS} ${DCOMIO} -c ${.ALLSRC} -o ${.TARGET}
247	@${LD} -O ${.TARGET} -X -r ${.TARGET}
248
249# ======== ldcomplex.o =======
250LDCOMPLEX=	-DLD
251.for i in MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
252	DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR \
253	CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
254LDCOMPLEX+=	-D${i}
255.endfor
256
257OBJS+=	ldcomplex.o
258
259ldcomplex.o:	cinst.cc
260	${CXX} ${CXXFLAGS} ${LDCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
261	@${LD} -O ${.TARGET} -x -r ${.TARGET}
262
263ldcomplex.so:	cinst.cc
264	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${LDCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
265	@${LD} -O ${.TARGET} -x -r ${.TARGET}
266
267ldcomplex.po:	cinst.cc
268	${CXX} -p ${CXXFLAGS} ${LDCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
269	@${LD} -O ${.TARGET} -X -r ${.TARGET}
270
271# ======== ldcomio.o =======
272LDCOMIO=	-DLD
273.for i in EXTRACT INSERT
274LDCOMIO+=-D${i}
275.endfor
276
277OBJS+=	ldcomio.o
278
279ldcomio.o:	cinst.cc
280	${CXX} ${CXXFLAGS} ${LDCOMIO} -c ${.ALLSRC} -o ${.TARGET}
281	@${LD} -O ${.TARGET} -x -r ${.TARGET}
282
283ldcomio.so:	cinst.cc
284	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${LDCOMIO} -c ${.ALLSRC} -o ${.TARGET}
285	@${LD} -O ${.TARGET} -x -r ${.TARGET}
286
287ldcomio.po:	cinst.cc
288	${CXX} -p ${CXXFLAGS} ${LDCOMIO} -c ${.ALLSRC} -o ${.TARGET}
289	@${LD} -O ${.TARGET} -X -r ${.TARGET}
290
291.include <bsd.lib.mk>
292