summaryrefslogtreecommitdiffstats
path: root/gnu/lib/libsupc++/Makefile
blob: acf1b58ed3c1d64a1581c45dca8c5585e578dcb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# $FreeBSD$

.include <bsd.own.mk>

GCCVER=	4.2
GCCDIR=	${.CURDIR}/../../../contrib/gcc
GCCLIB=	${.CURDIR}/../../../contrib/gcclibs
SRCDIR=	${.CURDIR}/../../../contrib/libstdc++/libsupc++

.PATH: ${SRCDIR} ${GCCLIB}/libiberty

LIB=	supc++
SHLIB_MAJOR=1
SRCS+=	del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc eh_alloc.cc eh_arm.cc \
	eh_aux_runtime.cc eh_call.cc eh_catch.cc eh_exception.cc eh_globals.cc \
	eh_personality.cc eh_term_handler.cc eh_terminate.cc eh_throw.cc \
	eh_type.cc eh_unex_handler.cc guard.cc new_handler.cc new_op.cc \
	new_opnt.cc new_opv.cc new_opvnt.cc pure.cc tinfo.cc tinfo2.cc \
	vec.cc vterminate.cc

# from libiberty:
SRCS+=	cp-demangle.c

CFLAGS+=	-DIN_GLIBCPP_V3 -DHAVE_CONFIG_H
.if ${MACHINE_CPUARCH} == "arm" && ${MK_ARM_EABI} == "no"
CFLAGS+=	-D_GLIBCXX_SJLJ_EXCEPTIONS=1
.endif
CFLAGS+=	-I${GCCLIB}/include -I${SRCDIR} -I${GCCDIR}
CFLAGS+=	-I${.CURDIR}/../libstdc++ -I.
CFLAGS+=	-frandom-seed=RepeatabilityConsideredGood
CXXFLAGS+=	-fno-implicit-templates -ffunction-sections -fdata-sections
PO_CXXFLAGS=    ${CXXFLAGS:N-ffunction-sections}

HDRS=	exception new typeinfo cxxabi.h exception_defines.h
INCS=	${HDRS:S;^;${SRCDIR}/;}
INCSDIR=${INCLUDEDIR}/c++/${GCCVER}

.if ${MACHINE_CPUARCH} == "arm" && ${MK_ARM_EABI} != "no"
unwind.h: ${GCCDIR}/config/arm/unwind-arm.h
.else
unwind.h: ${GCCDIR}/unwind-generic.h
.endif

unwind.h:
	ln -sf ${.ALLSRC} ${.TARGET}

SRCS+=		unwind.h
CLEANFILES+=	unwind.h

# Symbol versioning

VERSION_MAP=	${.CURDIR}/Version.map


.include <bsd.lib.mk>

# Filter out libc++-specific flags, and -std= flags above c++98 or gnu++98.
CXXFLAGS:=	${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}

CXXFLAGS.clang+= -stdlib=libstdc++
OpenPOWER on IntegriCloud