xref: /freebsd-12.1/gnu/lib/libsupc++/Makefile (revision 1d8776b2)
1bc2fcd34Scvs2svn# $FreeBSD$
268866c8cSDavid E. O'Brien
3c6063d0dSWarner Losh.include <src.opts.mk>
4621cd629SOlivier Houchard
5680e78b3SDavid E. O'BrienGCCVER=	4.2
6b5ad6294SPeter WemmGCCDIR=	${.CURDIR}/../../../contrib/gcc
7afb57df6SAlexander KabaevGCCLIB=	${.CURDIR}/../../../contrib/gcclibs
8b5ad6294SPeter WemmSRCDIR=	${.CURDIR}/../../../contrib/libstdc++/libsupc++
968866c8cSDavid E. O'Brien
10afb57df6SAlexander Kabaev.PATH: ${SRCDIR} ${GCCLIB}/libiberty
11b5ad6294SPeter Wemm
12b5ad6294SPeter WemmLIB=	supc++
13cf56074eSDavid ChisnallSHLIB_MAJOR=1
14afb57df6SAlexander KabaevSRCS+=	del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc eh_alloc.cc eh_arm.cc \
15afb57df6SAlexander Kabaev	eh_aux_runtime.cc eh_call.cc eh_catch.cc eh_exception.cc eh_globals.cc \
16ae8cd67dSAlexander Kabaev	eh_personality.cc eh_term_handler.cc eh_terminate.cc eh_throw.cc \
17ae8cd67dSAlexander Kabaev	eh_type.cc eh_unex_handler.cc guard.cc new_handler.cc new_op.cc \
18ae8cd67dSAlexander Kabaev	new_opnt.cc new_opv.cc new_opvnt.cc pure.cc tinfo.cc tinfo2.cc \
19ae8cd67dSAlexander Kabaev	vec.cc vterminate.cc
2068866c8cSDavid E. O'Brien
2168866c8cSDavid E. O'Brien# from libiberty:
2281efba8cSAlexander KabaevSRCS+=	cp-demangle.c
2368866c8cSDavid E. O'Brien
2468866c8cSDavid E. O'BrienCFLAGS+=	-DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
25afb57df6SAlexander KabaevCFLAGS+=	-I${GCCLIB}/include -I${SRCDIR} -I${GCCDIR}
26afb57df6SAlexander KabaevCFLAGS+=	-I${.CURDIR}/../libstdc++ -I.
275c2f3990SColin PercivalCFLAGS+=	-frandom-seed=RepeatabilityConsideredGood
28b5ad6294SPeter WemmCXXFLAGS+=	-fno-implicit-templates -ffunction-sections -fdata-sections
29a070c499SStephane E. PotvinPO_CXXFLAGS=    ${CXXFLAGS:N-ffunction-sections}
3068866c8cSDavid E. O'Brien
3168866c8cSDavid E. O'BrienHDRS=	exception new typeinfo cxxabi.h exception_defines.h
32c7b111cbSRuslan ErmilovINCS=	${HDRS:S;^;${SRCDIR}/;}
33680e78b3SDavid E. O'BrienINCSDIR=${INCLUDEDIR}/c++/${GCCVER}
34afb57df6SAlexander Kabaev
356d4766c1SAndrew Turner.if ${MACHINE_CPUARCH} == "arm"
36621cd629SOlivier Houchardunwind.h: ${GCCDIR}/config/arm/unwind-arm.h
37621cd629SOlivier Houchard.else
38afb57df6SAlexander Kabaevunwind.h: ${GCCDIR}/unwind-generic.h
39621cd629SOlivier Houchard.endif
40621cd629SOlivier Houchard
41*b791fbe6SBryan Dreweryunwind.h: .NOMETA
42afb57df6SAlexander Kabaev	ln -sf ${.ALLSRC} ${.TARGET}
43afb57df6SAlexander Kabaev
44afb57df6SAlexander KabaevSRCS+=		unwind.h
45afb57df6SAlexander KabaevCLEANFILES+=	unwind.h
4668866c8cSDavid E. O'Brien
47cf56074eSDavid Chisnall# Symbol versioning
48cf56074eSDavid Chisnall
49cf56074eSDavid ChisnallVERSION_MAP=	${.CURDIR}/Version.map
50cf56074eSDavid Chisnall
51eb941910SDimitry AndricCXXFLAGS.clang+= -stdlib=libstdc++
52cf56074eSDavid Chisnall
5368866c8cSDavid E. O'Brien.include <bsd.lib.mk>
54f289fa66SDimitry Andric
55f289fa66SDimitry Andric# Filter out libc++-specific flags, and -std= flags above c++98 or gnu++98.
56f289fa66SDimitry AndricCXXFLAGS:=	${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}
57