1RELUP=	/../..
2.include "../../../Makefile.inc"
3SRCDIR=	${GCCDIR}/libstdc++-v3
4.include "Makefile.src"
5
6LIB=			cxx11convenience
7INTERNALLIB=		yes
8INTERNALLIBPROF=	yes
9INSTALL_PIC_ARCHIVE=	yes
10
11.PATH:	${SRCDIR}
12.PATH:	${SRCDIR}/src
13.PATH:	${SRCDIR}/src/c++11
14.PATH:  ${SRCDIR}/config/os/bsd/dragonfly
15.PATH:	${SRCDIR}/config/locale/dragonfly
16.PATH:	${SRCDIR}/config/locale/generic
17
18# for now do not let the use of -flto (-Wodr...)
19.if ${CFLAGS:M-flto}
20CFLAGS+=	-fno-lto
21LDFLAGS+=	-flto
22.endif
23
24CFLAGS+=	-I${.OBJDIR}
25CXXFLAGS+=	-std=gnu++11 -fdiagnostics-show-location=once
26CXXFLAGS+=	-ffunction-sections -fdata-sections
27SHARED_CXXFLAGS=	-D_GLIBCXX_SHARED
28
29SRCS=	${libc__11convenience_la_SOURCES}
30INTHD=	${SRCDIR}/config/locale/generic/c++locale_internal.h
31GENHD=	cxxabi_forced.h ${INTHD:T}
32
33FLAG_GROUPS=		implicit explicit
34implicit_FLAGS=		-fimplicit-templates
35implicit_FLAGS_FILES=	hashtable_c++0x.cc
36explicit_FLAGS=		-fno-implicit-templates
37explicit_FLAGS_FILES=	${SRCS:Nhashtable_c++0x.cc}
38
39# PR libstdc++/85222 needs intermediate manipulation
40OBJS+=	cxx11-ios_failure_sed.o
41S1DUAL=	'/^_*_ZTISt13__ios_failure:/,/_ZTVN10__cxxabiv120__si_class_type_infoE/s/_ZTVN10__cxxabiv120__si_class_type_infoE/_ZTVSt19__iosfail_type_info/'
42IOSTMP=	ios_static.s ios_static.tmp ios_po.s ios_po.tmp ios_sh.s ios_sh.tmp
43
44cxx11-ios_failure_sed.o: cxx11-ios_failure.cc
45	${CXX} ${explicit_FLAGS} ${STATIC_CXXFLAGS} ${CXXFLAGS} -S -o ios_static.tmp ${.ALLSRC}
46	sed -e ${S1DUAL} < ios_static.tmp > ios_static.s
47	${CXX} ${explicit_FLAGS} ${STATIC_CXXFLAGS} ${CXXFLAGS} -g0 -c ios_static.s -o ${.TARGET}
48
49cxx11-ios_failure_sed.po: cxx11-ios_failure.cc
50	${CXX} ${explicit_FLAGS} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -S -o ios_po.tmp ${.ALLSRC}
51	sed -e ${S1DUAL} < ios_po.tmp > ios_po.s
52	${CXX} ${explicit_FLAGS} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -g0 -c ios_po.s -o ${.TARGET}
53
54cxx11-ios_failure_sed.So: cxx11-ios_failure.cc
55	${CXX} ${explicit_FLAGS} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS} -S -o ios_sh.tmp ${.ALLSRC}
56	sed -e ${S1DUAL} < ios_sh.tmp > ios_sh.s
57	${CXX} ${explicit_FLAGS} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS} -g0 -c ios_sh.s -o ${.TARGET}
58
59cxxabi_forced.h: ${SRCDIR}/libsupc++/cxxabi_forced.h
60	cp ${.ALLSRC} ${.TARGET}
61
62${INTHD:T}: copybits ${INTHD}
63	cp ${INTHD} bits/${.TARGET}
64
65copybits:
66	mkdir -p bits
67
68CLEANDIRS=	bits
69CLEANFILES=	${GENHD} ${IOSTMP}
70
71beforedepend:	${GENHD}
72
73.include <bsd.lib.mk>
74