Makefile revision 21673
1169718Skan#
2169718Skan# $FreeBSD: head/gnu/lib/libstdc++/Makefile 21673 1997-01-14 07:20:47Z jkh $
3169718Skan#
4169718Skan
5169718SkanGPPDIR=	${.CURDIR}/../../../contrib/libg++
6169718Skan
7169718Skan.PATH:	${GPPDIR}/libstdc++ ${GPPDIR}/libstdc++/stl ${GPPDIR}/libio \
8169718Skan	${GPPDIR}/libiberty
9169718Skan
10169718SkanLIB=		stdc++
11169718SkanSHLIB_MAJOR=	2
12169718SkanSHLIB_MINOR=	0
13169718SkanCPLUSPLUSLIB=	1	# include c++rt0.o for static constructors
14169718Skan
15169718SkanCFLAGS+=	-I${GPPDIR}/include -I/usr/include/g++ -I.
16169718SkanCXXFLAGS+=	-I${GPPDIR}/include -I${GPPDIR}/libio -I${GPPDIR}/libstdc++
17169718SkanCXXFLAGS+=	-fno-implicit-templates
18169718Skan
19169718SkanDIR=		${GPPDIR}/libstdc++
20169718Skan
21169718SkanHDRS=	cassert cctype cerrno cfloat ciso646 climits clocale cmath complex \
22169718Skan	csetjmp csignal cstdarg cstddef cstdio cstdlib cstring ctime \
23169718Skan	cwchar cwctype new stddef string exception stdexcept typeinfo \
24169718Skan	algorithm deque list map queue set stack vector utility functional \
25169718Skan	iterator memory numeric \
26169718Skan	complex.h new.h stl.h
27169718Skan
28169718SkanSHDRS=	bastring.cc bastring.h cassert.h cctype.h cerrno.h cfloat.h cinst.h \
29169718Skan	ciso646.h climits.h clocale.h cmath.h complex.h complext.cc \
30169718Skan	complext.h csetjmp.h csignal.h cstdarg.h cstddef.h cstdio.h \
31169718Skan	cstdlib.h cstring.h ctime.h cwchar.h cwctype.h dcomplex.h exception.h \
32169718Skan	fcomplex.h ldcomplex.h new.h sinst.h stddef.h stdexcept.h straits.h \
33169718Skan	string.h typeinfo.h
34169718Skan
35169718SkanSTLHDRS=algo.h algobase.h bool.h bvector.h defalloc.h deque.h faralloc.h \
36169718Skan	fdeque.h flist.h fmap.h fmultmap.h fmultset.h fset.h function.h \
37169718Skan	hdeque.h heap.h hlist.h hmap.h hmultmap.h hmultset.h hset.h \
38169718Skan	hugalloc.h hvector.h iterator.h lbvector.h ldeque.h list.h llist.h \
39169718Skan	lmap.h lmultmap.h lmultset.h lngalloc.h lset.h map.h multimap.h \
40169718Skan	multiset.h neralloc.h nmap.h nmultmap.h nmultset.h nset.h pair.h \
41169718Skan	projectn.h set.h stack.h tempbuf.h tree.h vector.h
42169718Skan
43169718SkanSRCS+=	newi.cc cstringi.cc stddefi.cc typeinfoi.cc exceptioni.cc \
44169718Skan	stdexcepti.cc cstdlibi.cc cmathi.cc
45169718Skan
46169718Skan# stl sources.
47169718SkanSRCS+=	tempbuf.cc tree.cc random.cc
48169718Skan
49169718Skan# "standard" C parts of libiberty (strerror is a superset of the libc version)
50169718SkanSRCS+=	insque.c strerror.c
51169718Skan
52169718Skan# Headers for iostream
53169718SkanIHDRS=	PlotFile.h SFile.h builtinbuf.h editbuf.h floatio.h fstream.h \
54169718Skan	indstream.h iolibio.h iomanip.h iostdio.h iostream.h iostreamP.h \
55169718Skan	istream.h libio.h libioP.h ostream.h parsestream.h pfstream.h \
56169718Skan	procbuf.h stdiostream.h stream.h streambuf.h strfile.h strstream.h
57169718Skan
58169718Skan# C++ parts of iostream
59169718SkanSRCS+=	PlotFile.cc SFile.cc builtinbuf.cc editbuf.cc filebuf.cc fstream.cc \
60169718Skan	indstream.cc ioassign.cc ioextend.cc iomanip.cc iostream.cc \
61169718Skan	isgetline.cc isgetsb.cc isscan.cc osform.cc parsestream.cc \
62169718Skan	pfstream.cc procbuf.cc sbform.cc sbgetline.cc sbscan.cc \
63169718Skan	stdiostream.cc stdstrbufs.cc stdstreams.cc stream.cc streambuf.cc \
64169718Skan	streambuf.cc strstream.cc
65169718Skan
66169718Skan# C parts of iostream
67169718SkanSRCS+=	cleanup.c filedoalloc.c fileops.c floatconv.c genops.c iofclose.c \
68169718Skan	iofgetpos.c iofread.c iofscanf.c iofsetpos.c iogetdelim.c iogetline.c \
69169718Skan	ioignore.c iopadn.c iopopen.c ioprims.c ioprintf.c ioseekoff.c \
70169718Skan	ioseekpos.c iostrerror.c ioungetc.c iovfprintf.c iovfscanf.c \
71169718Skan	outfloat.c strops.c
72169718Skan
73169718Skan
74169718Skan
75169718Skanbeforedepend:	config.h
76169718Skanstrerror.o:	config.h
77169718SkanCLEANFILES+=	config.h
78169718Skan
79169718Skanconfig.h:
80169718Skan	touch config.h
81
82beforeinstall:
83	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
84		${.CURDIR}/_G_config.h \
85		${HDRS:S;^;${GPPDIR}/libstdc++/;} \
86		${IHDRS:S;^;${GPPDIR}/libio/;} \
87		${STLHDRS:S;^;${GPPDIR}/libstdc++/stl/;} \
88		${DESTDIR}/usr/include/g++
89	${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
90		${SHDRS:S;^;${GPPDIR}/libstdc++/std/;} \
91		${DESTDIR}/usr/include/g++/std
92
93# Lots of special cases
94
95# ======== typeinfoi.o, stdexcepti.o ========
96.for file in typeinfoi stdexcepti
97${file}.o: ${file}.cc
98	${CXX} ${CXXFLAGS} -frtti -c ${DIR}/${file}.cc -o ${.TARGET}
99	@${LD} -O ${.TARGET} -x -r ${.TARGET}
100
101${file}.so: ${file}.cc
102	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -frtti -c ${DIR}/${file}.cc -o ${.TARGET}
103	@${LD} -O ${.TARGET} -x -r ${.TARGET}
104
105${file}.po: ${file}.cc
106	${CXX} -p ${CXXFLAGS} -frtti -c ${DIR}/${file}.cc -o ${.TARGET}
107	@${LD} -O ${.TARGET} -X -r ${.TARGET}
108.endfor
109
110# ======== exceptioni.o ========
111.for file in exceptioni
112${file}.o: ${file}.cc
113	${CXX} ${CXXFLAGS} -O0 -frtti -fhandle-exceptions -c ${DIR}/${file}.cc -o ${.TARGET}
114	@${LD} -O ${.TARGET} -x -r ${.TARGET}
115
116${file}.so: ${file}.cc
117	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -O0 -frtti -fhandle-exceptions -c ${DIR}/${file}.cc -o ${.TARGET}
118	@${LD} -O ${.TARGET} -x -r ${.TARGET}
119
120${file}.po: ${file}.cc
121	${CXX} -p ${CXXFLAGS} -O0 -frtti -fhandle-exceptions -c ${DIR}/${file}.cc -o ${.TARGET}
122	@${LD} -O ${.TARGET} -X -r ${.TARGET}
123.endfor
124
125# ======== cstrmain.o ========
126CSTRMAIN=	-DC
127.for i in REP MAIN TRAITS ADDSS ADDPS ADDCS ADDSP ADDSC  EQSS EQPS EQSP NESS \
128	NEPS NESP LTSS LTPS LTSP GTSS GTPS GTSP  LESS LEPS LESP GESS GEPS GESP
129CSTRMAIN+=	-D${i}
130.endfor
131
132OBJS+=	cstrmain.o
133
134cstrmain.o:	sinst.cc
135	${CXX} ${CXXFLAGS} ${CSTRMAIN} -c ${.ALLSRC} -o ${.TARGET}
136	@${LD} -O ${.TARGET} -x -r ${.TARGET}
137
138cstrmain.so:	sinst.cc
139	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${CSTRMAIN} -c ${.ALLSRC} -o ${.TARGET}
140	@${LD} -O ${.TARGET} -x -r ${.TARGET}
141
142cstrmain.po:	sinst.cc
143	${CXX} -p ${CXXFLAGS} ${CSTRMAIN} -c ${.ALLSRC} -o ${.TARGET}
144	@${LD} -O ${.TARGET} -X -r ${.TARGET}
145
146# ======== cstrio.o ========
147CSTRIO=	-DC
148.for i in EXTRACT INSERT GETLINE
149CSTRIO+=	-D${i}
150.endfor
151
152OBJS+=	cstrio.o
153
154cstrio.o:	sinst.cc
155	${CXX} ${CXXFLAGS} ${CSTRIO} -c ${.ALLSRC} -o ${.TARGET}
156	@${LD} -O ${.TARGET} -x -r ${.TARGET}
157
158cstrio.so:	sinst.cc
159	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${CSTRIO} -c ${.ALLSRC} -o ${.TARGET}
160	@${LD} -O ${.TARGET} -x -r ${.TARGET}
161
162cstrio.po:	sinst.cc
163	${CXX} -p ${CXXFLAGS} ${CSTRIO} -c ${.ALLSRC} -o ${.TARGET}
164	@${LD} -O ${.TARGET} -X -r ${.TARGET}
165
166# ======== fcomplex.o =======
167FCOMPLEX=	-DF
168.for i in MAIN ADD CC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
169	DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR \
170	CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
171FCOMPLEX+=	-D${i}
172.endfor
173
174OBJS+=	fcomplex.o
175
176fcomplex.o:	cinst.cc
177	${CXX} ${CXXFLAGS} ${FCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
178	@${LD} -O ${.TARGET} -x -r ${.TARGET}
179
180fcomplex.so:	cinst.cc
181	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${FCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
182	@${LD} -O ${.TARGET} -x -r ${.TARGET}
183
184fcomplex.po:	cinst.cc
185	${CXX} -p ${CXXFLAGS} ${FCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
186	@${LD} -O ${.TARGET} -X -r ${.TARGET}
187
188# ======== fcomio.o =======
189FCOMIO=	-DF
190.for i in EXTRACT INSERT
191FCOMIO+=-D${i}
192.endfor
193
194OBJS+=	fcomio.o
195
196fcomio.o:	cinst.cc
197	${CXX} ${CXXFLAGS} ${FCOMIO} -c ${.ALLSRC} -o ${.TARGET}
198	@${LD} -O ${.TARGET} -x -r ${.TARGET}
199
200fcomio.so:	cinst.cc
201	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${FCOMIO} -c ${.ALLSRC} -o ${.TARGET}
202	@${LD} -O ${.TARGET} -x -r ${.TARGET}
203
204fcomio.po:	cinst.cc
205	${CXX} -p ${CXXFLAGS} ${FCOMIO} -c ${.ALLSRC} -o ${.TARGET}
206	@${LD} -O ${.TARGET} -X -r ${.TARGET}
207
208# ======== dcomplex.o =======
209DCOMPLEX=	-DD
210.for i in MAIN ADD CC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
211	DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR \
212	CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
213DCOMPLEX+=	-D${i}
214.endfor
215
216OBJS+=	dcomplex.o
217
218dcomplex.o:	cinst.cc
219	${CXX} ${CXXFLAGS} ${DCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
220	@${LD} -O ${.TARGET} -x -r ${.TARGET}
221
222dcomplex.so:	cinst.cc
223	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${DCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
224	@${LD} -O ${.TARGET} -x -r ${.TARGET}
225
226dcomplex.po:	cinst.cc
227	${CXX} -p ${CXXFLAGS} ${DCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
228	@${LD} -O ${.TARGET} -X -r ${.TARGET}
229
230# ======== dcomio.o =======
231DCOMIO=	-DD
232.for i in EXTRACT INSERT
233DCOMIO+=-D${i}
234.endfor
235
236OBJS+=	dcomio.o
237
238dcomio.o:	cinst.cc
239	${CXX} ${CXXFLAGS} ${DCOMIO} -c ${.ALLSRC} -o ${.TARGET}
240	@${LD} -O ${.TARGET} -x -r ${.TARGET}
241
242dcomio.so:	cinst.cc
243	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${DCOMIO} -c ${.ALLSRC} -o ${.TARGET}
244	@${LD} -O ${.TARGET} -x -r ${.TARGET}
245
246dcomio.po:	cinst.cc
247	${CXX} -p ${CXXFLAGS} ${DCOMIO} -c ${.ALLSRC} -o ${.TARGET}
248	@${LD} -O ${.TARGET} -X -r ${.TARGET}
249
250# ======== ldcomplex.o =======
251LDCOMPLEX=	-DLD
252.for i in MAIN ADD CC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \
253	DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR \
254	CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT
255LDCOMPLEX+=	-D${i}
256.endfor
257
258OBJS+=	ldcomplex.o
259
260ldcomplex.o:	cinst.cc
261	${CXX} ${CXXFLAGS} ${LDCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
262	@${LD} -O ${.TARGET} -x -r ${.TARGET}
263
264ldcomplex.so:	cinst.cc
265	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${LDCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
266	@${LD} -O ${.TARGET} -x -r ${.TARGET}
267
268ldcomplex.po:	cinst.cc
269	${CXX} -p ${CXXFLAGS} ${LDCOMPLEX} -c ${.ALLSRC} -o ${.TARGET}
270	@${LD} -O ${.TARGET} -X -r ${.TARGET}
271
272# ======== ldcomio.o =======
273LDCOMIO=	-DLD
274.for i in EXTRACT INSERT
275LDCOMIO+=-D${i}
276.endfor
277
278OBJS+=	ldcomio.o
279
280ldcomio.o:	cinst.cc
281	${CXX} ${CXXFLAGS} ${LDCOMIO} -c ${.ALLSRC} -o ${.TARGET}
282	@${LD} -O ${.TARGET} -x -r ${.TARGET}
283
284ldcomio.so:	cinst.cc
285	${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} ${LDCOMIO} -c ${.ALLSRC} -o ${.TARGET}
286	@${LD} -O ${.TARGET} -x -r ${.TARGET}
287
288ldcomio.po:	cinst.cc
289	${CXX} -p ${CXXFLAGS} ${LDCOMIO} -c ${.ALLSRC} -o ${.TARGET}
290	@${LD} -O ${.TARGET} -X -r ${.TARGET}
291
292.include <bsd.lib.mk>
293