196126Sobrien# $FreeBSD: releng/10.3/gnu/lib/libsupc++/Makefile 260096 2013-12-30 20:15:46Z dim $
296340Sobrien
3248624Scognet.include <bsd.own.mk>
4248624Scognet
5207995SobrienGCCVER=	4.2
697433SpeterGCCDIR=	${.CURDIR}/../../../contrib/gcc
7169718SkanGCCLIB=	${.CURDIR}/../../../contrib/gcclibs
897433SpeterSRCDIR=	${.CURDIR}/../../../contrib/libstdc++/libsupc++
996340Sobrien
10207995Sobrien.PATH: ${SRCDIR} ${GCCLIB}/libiberty
1197433Speter
1297433SpeterLIB=	supc++
13233749StheravenSHLIB_MAJOR=1
14169718SkanSRCS+=	del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc eh_alloc.cc eh_arm.cc \
15169718Skan	eh_aux_runtime.cc eh_call.cc eh_catch.cc eh_exception.cc eh_globals.cc \
16161457Skan	eh_personality.cc eh_term_handler.cc eh_terminate.cc eh_throw.cc \
17161457Skan	eh_type.cc eh_unex_handler.cc guard.cc new_handler.cc new_op.cc \
18161457Skan	new_opnt.cc new_opv.cc new_opvnt.cc pure.cc tinfo.cc tinfo2.cc \
19161457Skan	vec.cc vterminate.cc
2096340Sobrien
2196340Sobrien# from libiberty:
22132751SkanSRCS+=	cp-demangle.c
2396340Sobrien
2496340SobrienCFLAGS+=	-DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
25248624Scognet.if ${MACHINE_CPUARCH} == "arm" && ${MK_ARM_EABI} == "no"
26248624ScognetCFLAGS+=	-D_GLIBCXX_SJLJ_EXCEPTIONS=1
27248624Scognet.endif
28169718SkanCFLAGS+=	-I${GCCLIB}/include -I${SRCDIR} -I${GCCDIR}
29169718SkanCFLAGS+=	-I${.CURDIR}/../libstdc++ -I.
30149195ScpercivaCFLAGS+=	-frandom-seed=RepeatabilityConsideredGood
3197433SpeterCXXFLAGS+=	-fno-implicit-templates -ffunction-sections -fdata-sections
32202808SsepotvinPO_CXXFLAGS=    ${CXXFLAGS:N-ffunction-sections}
3396340Sobrien
3496340SobrienHDRS=	exception new typeinfo cxxabi.h exception_defines.h
3596462SruINCS=	${HDRS:S;^;${SRCDIR}/;}
36207995SobrienINCSDIR=${INCLUDEDIR}/c++/${GCCVER}
3796340Sobrien
38248624Scognet.if ${MACHINE_CPUARCH} == "arm" && ${MK_ARM_EABI} != "no"
39248624Scognetunwind.h: ${GCCDIR}/config/arm/unwind-arm.h
40248624Scognet.else
41169718Skanunwind.h: ${GCCDIR}/unwind-generic.h
42248624Scognet.endif
43248624Scognet
44248624Scognetunwind.h:
45169718Skan	ln -sf ${.ALLSRC} ${.TARGET}
46169718Skan
47169718SkanSRCS+=		unwind.h
48169718SkanCLEANFILES+=	unwind.h
49169718Skan
50233749Stheraven# Symbol versioning
51233749Stheraven
52233749StheravenVERSION_MAP=	${.CURDIR}/Version.map
53233749Stheraven
54233749Stheraven
5596340Sobrien.include <bsd.lib.mk>
56241960Sdim
57241960Sdim# Filter out libc++-specific flags, and -std= flags above c++98 or gnu++98.
58241960SdimCXXFLAGS:=	${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}
59255500Sdim
60260096SdimCXXFLAGS.clang+= -stdlib=libstdc++
61