1# $FreeBSD$ 2 3.include <src.opts.mk> 4 5GCCVER= 4.2 6GCCDIR= ${.CURDIR}/../../../contrib/gcc 7GCCLIB= ${.CURDIR}/../../../contrib/gcclibs 8SRCDIR= ${.CURDIR}/../../../contrib/libstdc++/libsupc++ 9 10.PATH: ${SRCDIR} ${GCCLIB}/libiberty 11 12LIB= supc++ 13SHLIB_MAJOR=1 14SRCS+= del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc eh_alloc.cc eh_arm.cc \ 15 eh_aux_runtime.cc eh_call.cc eh_catch.cc eh_exception.cc eh_globals.cc \ 16 eh_personality.cc eh_term_handler.cc eh_terminate.cc eh_throw.cc \ 17 eh_type.cc eh_unex_handler.cc guard.cc new_handler.cc new_op.cc \ 18 new_opnt.cc new_opv.cc new_opvnt.cc pure.cc tinfo.cc tinfo2.cc \ 19 vec.cc vterminate.cc 20 21# from libiberty: 22SRCS+= cp-demangle.c 23 24CFLAGS+= -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H 25CFLAGS+= -I${GCCLIB}/include -I${SRCDIR} -I${GCCDIR} 26CFLAGS+= -I${.CURDIR}/../libstdc++ -I. 27CFLAGS+= -frandom-seed=RepeatabilityConsideredGood 28CXXFLAGS+= -fno-implicit-templates -ffunction-sections -fdata-sections 29PO_CXXFLAGS= ${CXXFLAGS:N-ffunction-sections} 30 31HDRS= exception new typeinfo cxxabi.h exception_defines.h 32INCS= ${HDRS:S;^;${SRCDIR}/;} 33INCSDIR=${INCLUDEDIR}/c++/${GCCVER} 34 35.if ${MACHINE_CPUARCH} == "arm" 36unwind.h: ${GCCDIR}/config/arm/unwind-arm.h 37.else 38unwind.h: ${GCCDIR}/unwind-generic.h 39.endif 40 41unwind.h: .NOMETA 42 ln -sf ${.ALLSRC} ${.TARGET} 43 44SRCS+= unwind.h 45CLEANFILES+= unwind.h 46 47# Symbol versioning 48 49VERSION_MAP= ${.CURDIR}/Version.map 50 51CXXFLAGS.clang+= -stdlib=libstdc++ 52 53.include <bsd.lib.mk> 54 55# Filter out libc++-specific flags, and -std= flags above c++98 or gnu++98. 56CXXFLAGS:= ${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]} 57