# # $Id: Makefile,v 1.14 1999/04/05 08:07:40 obrien Exp $ # EGCSDIR= ${.CURDIR}/../../../contrib/egcs .PATH: ${EGCSDIR}/libstdc++ ${EGCSDIR}/libstdc++/stl ${EGCSDIR}/libio SUBDIR= doc LIB= stdc++ SHLIB_MAJOR= 3 SHLIB_MINOR= 0 CFLAGS+= -I${EGCSDIR}/include -I${EGCSDIR}/libio -I. CXXFLAGS+= -I${EGCSDIR}/libstdc++/stl -I${EGCSDIR}/libstdc++ \ -I${EGCSDIR}/gcc/cp/inc -I. CXXFLAGS+= -nostdinc++ -fno-implicit-templates LDADD+= -lm DPADD+= ${LIBM} DIR= ${EGCSDIR}/libstdc++ HDRS= cassert cctype cerrno cfloat ciso646 climits clocale cmath complex \ csetjmp csignal cstdarg cstddef cstdio cstdlib cstring ctime \ cwchar cwctype fstream iomanip iosfwd iostream stdexcept string \ strstream complex.h stl.h SHDRS= bastring.cc bastring.h complext.cc complext.h dcomplex.h fcomplex.h \ ldcomplex.h straits.h STLHDRS=algo.h algobase.h algorithm alloc.h bvector.h defalloc.h deque deque.h \ function.h functional hash_map hash_map.h hash_set hash_set.h \ hashtable.h heap.h iterator iterator.h list list.h map map.h memory \ multimap.h multiset.h numeric pair.h pthread_alloc pthread_alloc.h \ queue rope rope.h ropeimpl.h set set.h slist slist.h stack stack.h \ stl_algo.h stl_algobase.h stl_alloc.h stl_bvector.h stl_config.h \ stl_construct.h stl_deque.h stl_function.h stl_hash_fun.h \ stl_hash_map.h stl_hash_set.h stl_hashtable.h stl_heap.h \ stl_iterator.h stl_list.h stl_map.h stl_multimap.h stl_multiset.h \ stl_numeric.h stl_pair.h stl_queue.h stl_raw_storage_iter.h \ stl_relops.h stl_rope.h stl_set.h stl_slist.h stl_stack.h \ stl_tempbuf.h stl_tree.h stl_uninitialized.h stl_vector.h \ tempbuf.h tree.h type_traits.h utility vector vector.h # libstdc++ sources SRCS+= cmathi.cc cstdlibi.cc cstringi.cc stdexcepti.cc stlinst.cc # Headers for iostream / libio IHDRS= PlotFile.h SFile.h builtinbuf.h editbuf.h floatio.h fstream.h \ indstream.h iolibio.h iomanip.h iostdio.h iostream.h iostreamP.h \ istream.h libio.h libioP.h ostream.h parsestream.h pfstream.h \ procbuf.h stdiostream.h stream.h streambuf.h strfile.h strstream.h # C++ parts of iostream / libio SRCS+= PlotFile.cc SFile.cc builtinbuf.cc editbuf.cc filebuf.cc fstream.cc \ indstream.cc ioassign.cc ioextend.cc iomanip.cc iostream.cc \ isgetline.cc isgetsb.cc isscan.cc osform.cc parsestream.cc \ pfstream.cc procbuf.cc sbform.cc sbgetline.cc sbscan.cc \ stdiostream.cc stdstrbufs.cc stdstreams.cc stream.cc streambuf.cc \ strstream.cc # C parts of iostream / libio SRCS+= cleanup.c filedoalloc.c fileops.c floatconv.c genops.c iofclose.c \ iofdopen.c iofeof.c ioferror.c iofflush.c iofflush_u.c iofgetpos.c \ iofgets.c iofopen.c iofprintf.c iofputs.c iofread.c iofscanf.c \ iofsetpos.c ioftell.c iofwrite.c iogetc.c iogetdelim.c iogetline.c \ iogets.c ioignore.c iopadn.c ioperror.c iopopen.c ioprims.c ioprintf.c \ ioputc.c ioputs.c ioscanf.c ioseekoff.c ioseekpos.c iosetbuffer.c \ iosetvbuf.c iosprintf.c iosscanf.c iostrerror.c ioungetc.c \ iovfprintf.c iovfscanf.c iovsprintf.c iovsscanf.c outfloat.c \ peekc.c strops.c beforeinstall: _G_config.h ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ _G_config.h \ ${DESTDIR}/usr/include/g++ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ ${HDRS:S;^;${EGCSDIR}/libstdc++/;} \ ${IHDRS:S;^;${EGCSDIR}/libio/;} \ ${STLHDRS:S;^;${EGCSDIR}/libstdc++/stl/;} \ ${DESTDIR}/usr/include/g++ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ ${SHDRS:S;^;${EGCSDIR}/libstdc++/std/;} \ ${DESTDIR}/usr/include/g++/std SRCS+= _G_config.h CLEANFILES+= _G_config.h dummy.h dummy.c dummy.C _G_config.h: Makefile ${EGCSDIR}/libio/gen-params CC="${CC}" CXX="${CXX}" CONFIG_NM="nm" \ CPP="${CC} -E -nostdinc -idirafter ${DESTDIR}/usr/include" \ sh ${EGCSDIR}/libio/gen-params \ LIB_VERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}.0 >${.TARGET} # Lots of special cases # ======== typeinfoi.o, stdexcepti.o ======== .for file in typeinfoi stdexcepti CLEANFILES+= ${file}.o.tmp ${file}.po.tmp ${file}.so.tmp ${file}.o: ${file}.cc ${CXX} -nostdinc++ ${CXXFLAGS} -frtti -c ${DIR}/${file}.cc -o ${.TARGET} @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} ${file}.so: ${file}.cc ${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -frtti -c ${DIR}/${file}.cc -o ${.TARGET} @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} ${file}.po: ${file}.cc ${CXX} -p ${CXXFLAGS} -frtti -c ${DIR}/${file}.cc -o ${.TARGET} @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} .endfor # ======== exceptioni.o ======== .for file in exceptioni CLEANFILES+= ${file}.o.tmp ${file}.po.tmp ${file}.so.tmp ${file}.o: ${file}.cc ${CXX} ${CXXFLAGS} -O0 -c ${DIR}/${file}.cc -o ${.TARGET} @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} ${file}.so: ${file}.cc ${CXX} ${PICFLAG} -DPIC ${CXXFLAGS} -O0 -c ${DIR}/${file}.cc -o ${.TARGET} @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} ${file}.po: ${file}.cc ${CXX} -p ${CXXFLAGS} -O0 -c ${DIR}/${file}.cc -o ${.TARGET} @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} @mv ${.TARGET}.tmp ${.TARGET} .endfor # ======== cstrmain.o ======== SRCS+= cstrmain.cc CLEANFILES+= cstrmain.cc cstrmain.cc: sinst.cc echo "#define C 1" > ${.TARGET} .for i in REP MAIN TRAITS ADDSS ADDPS ADDCS ADDSP ADDSC EQSS EQPS EQSP NESS \ NEPS NESP LTSS LTPS LTSP GTSS GTPS GTSP LESS LEPS LESP GESS GEPS GESP echo "#define $i 1" >> ${.TARGET} .endfor cat ${.ALLSRC} >> ${.TARGET} # ======== cstrio.o ======== SRCS+= cstrio.cc CLEANFILES+= cstrio.cc cstrio.cc: sinst.cc echo "#define C 1" > ${.TARGET} .for i in EXTRACT INSERT GETLINE echo "#define $i 1" >> ${.TARGET} .endfor cat ${.ALLSRC} >> ${.TARGET} # ======== fcomplex.o ======= SRCS+= fcomplex.cc CLEANFILES+= fcomplex.cc fcomplex.cc: cinst.cc echo "#define F 1" > ${.TARGET} .for i in MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \ DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR CONJ \ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT echo "#define $i 1" >> ${.TARGET} .endfor cat ${.ALLSRC} >> ${.TARGET} # ======== fcomio.o ======= SRCS+= fcomio.cc CLEANFILES+= fcomio.cc fcomio.cc: cinst.cc echo "#define F 1" > ${.TARGET} .for i in EXTRACT INSERT echo "#define $i 1" >> ${.TARGET} .endfor cat ${.ALLSRC} >> ${.TARGET} # ======== dcomplex.o ======= SRCS+= dcomplex.cc CLEANFILES+= dcomplex.cc dcomplex.cc: cinst.cc echo "#define D 1" > ${.TARGET} .for i in MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \ DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR CONJ \ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT echo "#define $i 1" >> ${.TARGET} .endfor cat ${.ALLSRC} >> ${.TARGET} # ======== dcomio.o ======= SRCS+= dcomio.cc CLEANFILES+= dcomio.cc dcomio.cc: cinst.cc echo "#define D 1" > ${.TARGET} .for i in EXTRACT INSERT echo "#define $i 1" >> ${.TARGET} .endfor cat ${.ALLSRC} >> ${.TARGET} # ======== ldcomplex.o ======= SRCS+= ldcomplex.cc CLEANFILES+= ldcomplex.cc ldcomplex.cc: cinst.cc echo "#define LD 1" > ${.TARGET} .for i in MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC \ DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR CONJ \ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT echo "#define $i 1" >> ${.TARGET} .endfor cat ${.ALLSRC} >> ${.TARGET} # ======== ldcomio.o ======= SRCS+= ldcomio.cc CLEANFILES+= ldcomio.cc ldcomio.cc: cinst.cc echo "#define LD 1" > ${.TARGET} .for i in EXTRACT INSERT echo "#define $i 1" >> ${.TARGET} .endfor cat ${.ALLSRC} >> ${.TARGET} .include