xref: /freebsd-12.1/lib/libc++/Makefile (revision f5e04876)
17a984708SDavid Chisnall# $FreeBSD$
27a984708SDavid Chisnall
3aa7703beSBaptiste Daroussin.include <src.opts.mk>
4aa7703beSBaptiste Daroussin
5c389411cSGlen BarberPACKAGE=	clibs
63f910b91SDimitry Andric_LIBCXXRTDIR=	${SRCTOP}/contrib/libcxxrt
73f910b91SDimitry AndricHDRDIR=		${SRCTOP}/contrib/libc++/include
83f910b91SDimitry AndricSRCDIR=		${SRCTOP}/contrib/libc++/src
97a984708SDavid ChisnallCXXINCLUDEDIR=	${INCLUDEDIR}/c++/v${SHLIB_MAJOR}
10c455b924SAndrew Turner.if ${MACHINE_CPUARCH} == "arm"
11c455b924SAndrew TurnerSTATIC_CXXFLAGS+= -mlong-calls
12c455b924SAndrew Turner.endif
137a984708SDavid Chisnall
147a984708SDavid Chisnall.PATH: ${SRCDIR}
157a984708SDavid Chisnall
167a984708SDavid ChisnallLIB=		c++
177a984708SDavid ChisnallSHLIB_MAJOR=	1
18e669ff37SDimitry AndricSHLIB_LDSCRIPT=	libc++.ldscript
197a984708SDavid Chisnall
203f910b91SDimitry AndricSRCS+=		algorithm.cpp
213f910b91SDimitry AndricSRCS+=		any.cpp
223f910b91SDimitry AndricSRCS+=		bind.cpp
234ba319b5SDimitry AndricSRCS+=		charconv.cpp
243f910b91SDimitry AndricSRCS+=		chrono.cpp
253f910b91SDimitry AndricSRCS+=		condition_variable.cpp
263f910b91SDimitry AndricSRCS+=		debug.cpp
273f910b91SDimitry AndricSRCS+=		exception.cpp
28540d2a8bSDimitry AndricSRCS+=		functional.cpp
293f910b91SDimitry AndricSRCS+=		future.cpp
303f910b91SDimitry AndricSRCS+=		hash.cpp
313f910b91SDimitry AndricSRCS+=		ios.cpp
323f910b91SDimitry AndricSRCS+=		iostream.cpp
333f910b91SDimitry AndricSRCS+=		locale.cpp
343f910b91SDimitry AndricSRCS+=		memory.cpp
353f910b91SDimitry AndricSRCS+=		mutex.cpp
363f910b91SDimitry AndricSRCS+=		new.cpp
373f910b91SDimitry AndricSRCS+=		optional.cpp
383f910b91SDimitry AndricSRCS+=		random.cpp
393f910b91SDimitry AndricSRCS+=		regex.cpp
403f910b91SDimitry AndricSRCS+=		shared_mutex.cpp
413f910b91SDimitry AndricSRCS+=		stdexcept.cpp
423f910b91SDimitry AndricSRCS+=		string.cpp
433f910b91SDimitry AndricSRCS+=		strstream.cpp
443f910b91SDimitry AndricSRCS+=		system_error.cpp
453f910b91SDimitry AndricSRCS+=		thread.cpp
463f910b91SDimitry AndricSRCS+=		typeinfo.cpp
473f910b91SDimitry AndricSRCS+=		utility.cpp
483f910b91SDimitry AndricSRCS+=		valarray.cpp
495d77776cSDimitry AndricSRCS+=		variant.cpp
5024d58133SDimitry AndricSRCS+=		vector.cpp
51b5893f02SDimitry AndricSRCS+=		filesystem/directory_iterator.cpp
52b5893f02SDimitry AndricSRCS+=		filesystem/int128_builtins.cpp
53b5893f02SDimitry AndricSRCS+=		filesystem/operations.cpp
547a984708SDavid Chisnall
553f910b91SDimitry AndricCXXRT_SRCS+=	auxhelper.cc
563f910b91SDimitry AndricCXXRT_SRCS+=	dynamic_cast.cc
573f910b91SDimitry AndricCXXRT_SRCS+=	exception.cc
583f910b91SDimitry AndricCXXRT_SRCS+=	guard.cc
593f910b91SDimitry AndricCXXRT_SRCS+=	libelftc_dem_gnu3.c
603f910b91SDimitry AndricCXXRT_SRCS+=	memory.cc
613f910b91SDimitry AndricCXXRT_SRCS+=	stdexcept.cc
623f910b91SDimitry AndricCXXRT_SRCS+=	terminate.cc
633f910b91SDimitry AndricCXXRT_SRCS+=	typeinfo.cc
6415e154dfSDimitry Andric
6515e154dfSDimitry Andric.for _S in ${CXXRT_SRCS}
667533aa15SBryan DreweryCLEANFILES+=	cxxrt_${_S}
6715e154dfSDimitry AndricSTATICOBJS+=	cxxrt_${_S:R}.o
683c89d6b0SBryan Drewerycxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA
69b791fbe6SBryan Drewery	ln -sf ${.ALLSRC} ${.TARGET}
7015e154dfSDimitry Andric.endfor
7115e154dfSDimitry Andric
727a984708SDavid ChisnallWARNS=		0
73302affcbSDimitry AndricCFLAGS+=	-isystem ${HDRDIR}
74302affcbSDimitry AndricCFLAGS+=	-isystem ${_LIBCXXRTDIR}
75302affcbSDimitry AndricCFLAGS+=	-nostdinc++
76302affcbSDimitry AndricCFLAGS+=	-nostdlib
77302affcbSDimitry AndricCFLAGS+=	-D_LIBCPP_BUILDING_LIBRARY
78302affcbSDimitry AndricCFLAGS+=	-DLIBCXXRT
79*f5e04876SEnji CooperCXXSTD?=	c++11
807a984708SDavid Chisnall
816b129086SBaptiste DaroussinLIBADD+=	cxxrt
824f7ab58eSDimitry AndricINCSGROUPS=	STD EXP EXT
837a984708SDavid Chisnall
843f910b91SDimitry AndricSTD_HEADERS+=	__bit_reference
853f910b91SDimitry AndricSTD_HEADERS+=	__bsd_locale_defaults.h
863f910b91SDimitry AndricSTD_HEADERS+=	__bsd_locale_fallbacks.h
873f910b91SDimitry AndricSTD_HEADERS+=	__config
883f910b91SDimitry AndricSTD_HEADERS+=	__debug
894ba319b5SDimitry AndricSTD_HEADERS+=	__errc
903f910b91SDimitry AndricSTD_HEADERS+=	__functional_03
913f910b91SDimitry AndricSTD_HEADERS+=	__functional_base
923f910b91SDimitry AndricSTD_HEADERS+=	__functional_base_03
933f910b91SDimitry AndricSTD_HEADERS+=	__hash_table
943f910b91SDimitry AndricSTD_HEADERS+=	__libcpp_version
953f910b91SDimitry AndricSTD_HEADERS+=	__locale
963f910b91SDimitry AndricSTD_HEADERS+=	__mutex_base
974ba319b5SDimitry AndricSTD_HEADERS+=	__node_handle
983f910b91SDimitry AndricSTD_HEADERS+=	__nullptr
993f910b91SDimitry AndricSTD_HEADERS+=	__split_buffer
1003f910b91SDimitry AndricSTD_HEADERS+=	__sso_allocator
1013f910b91SDimitry AndricSTD_HEADERS+=	__std_stream
1023f910b91SDimitry AndricSTD_HEADERS+=	__string
1033f910b91SDimitry AndricSTD_HEADERS+=	__threading_support
1043f910b91SDimitry AndricSTD_HEADERS+=	__tree
1053f910b91SDimitry AndricSTD_HEADERS+=	__tuple
106f9448bf3SDimitry AndricSTD_HEADERS+=	__undef_macros
1073f910b91SDimitry AndricSTD_HEADERS+=	algorithm
1083f910b91SDimitry AndricSTD_HEADERS+=	any
1093f910b91SDimitry AndricSTD_HEADERS+=	array
1103f910b91SDimitry AndricSTD_HEADERS+=	atomic
111b5893f02SDimitry AndricSTD_HEADERS+=	bit
1123f910b91SDimitry AndricSTD_HEADERS+=	bitset
1133f910b91SDimitry AndricSTD_HEADERS+=	cassert
1143f910b91SDimitry AndricSTD_HEADERS+=	ccomplex
1153f910b91SDimitry AndricSTD_HEADERS+=	cctype
1163f910b91SDimitry AndricSTD_HEADERS+=	cerrno
1173f910b91SDimitry AndricSTD_HEADERS+=	cfenv
1183f910b91SDimitry AndricSTD_HEADERS+=	cfloat
1194ba319b5SDimitry AndricSTD_HEADERS+=	charconv
1203f910b91SDimitry AndricSTD_HEADERS+=	chrono
1213f910b91SDimitry AndricSTD_HEADERS+=	cinttypes
1223f910b91SDimitry AndricSTD_HEADERS+=	ciso646
1233f910b91SDimitry AndricSTD_HEADERS+=	climits
1243f910b91SDimitry AndricSTD_HEADERS+=	clocale
1253f910b91SDimitry AndricSTD_HEADERS+=	cmath
1263f910b91SDimitry AndricSTD_HEADERS+=	codecvt
1274ba319b5SDimitry AndricSTD_HEADERS+=	compare
1283f910b91SDimitry AndricSTD_HEADERS+=	complex
1293f910b91SDimitry AndricSTD_HEADERS+=	complex.h
1303f910b91SDimitry AndricSTD_HEADERS+=	condition_variable
1313f910b91SDimitry AndricSTD_HEADERS+=	csetjmp
1323f910b91SDimitry AndricSTD_HEADERS+=	csignal
1333f910b91SDimitry AndricSTD_HEADERS+=	cstdarg
1343f910b91SDimitry AndricSTD_HEADERS+=	cstdbool
1353f910b91SDimitry AndricSTD_HEADERS+=	cstddef
1363f910b91SDimitry AndricSTD_HEADERS+=	cstdint
1373f910b91SDimitry AndricSTD_HEADERS+=	cstdio
1383f910b91SDimitry AndricSTD_HEADERS+=	cstdlib
1393f910b91SDimitry AndricSTD_HEADERS+=	cstring
1403f910b91SDimitry AndricSTD_HEADERS+=	ctgmath
1413f910b91SDimitry AndricSTD_HEADERS+=	ctime
1423f910b91SDimitry AndricSTD_HEADERS+=	ctype.h
1433f910b91SDimitry AndricSTD_HEADERS+=	cwchar
1443f910b91SDimitry AndricSTD_HEADERS+=	cwctype
1453f910b91SDimitry AndricSTD_HEADERS+=	deque
1463f910b91SDimitry AndricSTD_HEADERS+=	errno.h
1473f910b91SDimitry AndricSTD_HEADERS+=	exception
1484ba319b5SDimitry AndricSTD_HEADERS+=	filesystem
1493f910b91SDimitry AndricSTD_HEADERS+=	float.h
1503f910b91SDimitry AndricSTD_HEADERS+=	forward_list
1513f910b91SDimitry AndricSTD_HEADERS+=	fstream
1523f910b91SDimitry AndricSTD_HEADERS+=	functional
1533f910b91SDimitry AndricSTD_HEADERS+=	future
1543f910b91SDimitry AndricSTD_HEADERS+=	initializer_list
1553f910b91SDimitry AndricSTD_HEADERS+=	inttypes.h
1563f910b91SDimitry AndricSTD_HEADERS+=	iomanip
1573f910b91SDimitry AndricSTD_HEADERS+=	ios
1583f910b91SDimitry AndricSTD_HEADERS+=	iosfwd
1593f910b91SDimitry AndricSTD_HEADERS+=	iostream
1603f910b91SDimitry AndricSTD_HEADERS+=	istream
1613f910b91SDimitry AndricSTD_HEADERS+=	iterator
1623f910b91SDimitry AndricSTD_HEADERS+=	limits
1633f910b91SDimitry AndricSTD_HEADERS+=	limits.h
1643f910b91SDimitry AndricSTD_HEADERS+=	list
1653f910b91SDimitry AndricSTD_HEADERS+=	locale
1663f910b91SDimitry AndricSTD_HEADERS+=	locale.h
1673f910b91SDimitry AndricSTD_HEADERS+=	map
1683f910b91SDimitry AndricSTD_HEADERS+=	math.h
1693f910b91SDimitry AndricSTD_HEADERS+=	memory
1703f910b91SDimitry AndricSTD_HEADERS+=	mutex
1713f910b91SDimitry AndricSTD_HEADERS+=	new
1723f910b91SDimitry AndricSTD_HEADERS+=	numeric
1733f910b91SDimitry AndricSTD_HEADERS+=	optional
1743f910b91SDimitry AndricSTD_HEADERS+=	ostream
1753f910b91SDimitry AndricSTD_HEADERS+=	queue
1763f910b91SDimitry AndricSTD_HEADERS+=	random
1773f910b91SDimitry AndricSTD_HEADERS+=	ratio
1783f910b91SDimitry AndricSTD_HEADERS+=	regex
1793f910b91SDimitry AndricSTD_HEADERS+=	scoped_allocator
1803f910b91SDimitry AndricSTD_HEADERS+=	set
1813f910b91SDimitry AndricSTD_HEADERS+=	setjmp.h
1823f910b91SDimitry AndricSTD_HEADERS+=	shared_mutex
1834ba319b5SDimitry AndricSTD_HEADERS+=	span
1843f910b91SDimitry AndricSTD_HEADERS+=	sstream
1853f910b91SDimitry AndricSTD_HEADERS+=	stack
1863f910b91SDimitry AndricSTD_HEADERS+=	stdbool.h
1873f910b91SDimitry AndricSTD_HEADERS+=	stddef.h
1883f910b91SDimitry AndricSTD_HEADERS+=	stdexcept
1893f910b91SDimitry AndricSTD_HEADERS+=	stdint.h
1903f910b91SDimitry AndricSTD_HEADERS+=	stdio.h
1913f910b91SDimitry AndricSTD_HEADERS+=	stdlib.h
1923f910b91SDimitry AndricSTD_HEADERS+=	streambuf
1933f910b91SDimitry AndricSTD_HEADERS+=	string
1943f910b91SDimitry AndricSTD_HEADERS+=	string.h
1953f910b91SDimitry AndricSTD_HEADERS+=	string_view
1963f910b91SDimitry AndricSTD_HEADERS+=	strstream
1973f910b91SDimitry AndricSTD_HEADERS+=	system_error
1983f910b91SDimitry AndricSTD_HEADERS+=	tgmath.h
1993f910b91SDimitry AndricSTD_HEADERS+=	thread
2003f910b91SDimitry AndricSTD_HEADERS+=	tuple
2013f910b91SDimitry AndricSTD_HEADERS+=	type_traits
2023f910b91SDimitry AndricSTD_HEADERS+=	typeindex
2033f910b91SDimitry AndricSTD_HEADERS+=	typeinfo
2043f910b91SDimitry AndricSTD_HEADERS+=	unordered_map
2053f910b91SDimitry AndricSTD_HEADERS+=	unordered_set
2063f910b91SDimitry AndricSTD_HEADERS+=	utility
2073f910b91SDimitry AndricSTD_HEADERS+=	valarray
2083f910b91SDimitry AndricSTD_HEADERS+=	variant
2093f910b91SDimitry AndricSTD_HEADERS+=	vector
2104ba319b5SDimitry AndricSTD_HEADERS+=	version
2113f910b91SDimitry AndricSTD_HEADERS+=	wchar.h
2123f910b91SDimitry AndricSTD_HEADERS+=	wctype.h
2133f910b91SDimitry Andric
2143f910b91SDimitry AndricRT_HEADERS+=	cxxabi.h
2153f910b91SDimitry AndricRT_HEADERS+=	unwind-arm.h
2163f910b91SDimitry AndricRT_HEADERS+=	unwind-itanium.h
2173f910b91SDimitry AndricRT_HEADERS+=	unwind.h
2187a984708SDavid Chisnall
2197a984708SDavid Chisnall.for hdr in ${STD_HEADERS}
2207a984708SDavid ChisnallSTD+=		${HDRDIR}/${hdr}
2211766eeafSBryan DreweryINCSLINKS+=	../${hdr} ${CXXINCLUDEDIR}/tr1/${hdr}
2227a984708SDavid Chisnall.endfor
223cd38c408SDimitry Andric.for hdr in ${RT_HEADERS}
2243c89d6b0SBryan DrewerySTD+=		${_LIBCXXRTDIR}/${hdr}
225cd38c408SDimitry Andric.endfor
2267a984708SDavid ChisnallSTDDIR=		${CXXINCLUDEDIR}
2277a984708SDavid Chisnall
2283f910b91SDimitry AndricEXP_HEADERS+=	__config
2293f910b91SDimitry AndricEXP_HEADERS+=	__memory
2303f910b91SDimitry AndricEXP_HEADERS+=	algorithm
2313f910b91SDimitry AndricEXP_HEADERS+=	any
2323f910b91SDimitry AndricEXP_HEADERS+=	chrono
233302affcbSDimitry AndricEXP_HEADERS+=	coroutine
2343f910b91SDimitry AndricEXP_HEADERS+=	deque
2353f910b91SDimitry AndricEXP_HEADERS+=	filesystem
2363f910b91SDimitry AndricEXP_HEADERS+=	forward_list
2373f910b91SDimitry AndricEXP_HEADERS+=	functional
2383f910b91SDimitry AndricEXP_HEADERS+=	iterator
2393f910b91SDimitry AndricEXP_HEADERS+=	list
2403f910b91SDimitry AndricEXP_HEADERS+=	map
2413f910b91SDimitry AndricEXP_HEADERS+=	memory_resource
2423f910b91SDimitry AndricEXP_HEADERS+=	numeric
2433f910b91SDimitry AndricEXP_HEADERS+=	optional
2443f910b91SDimitry AndricEXP_HEADERS+=	propagate_const
2453f910b91SDimitry AndricEXP_HEADERS+=	ratio
2463f910b91SDimitry AndricEXP_HEADERS+=	regex
2473f910b91SDimitry AndricEXP_HEADERS+=	set
2484ba319b5SDimitry AndricEXP_HEADERS+=	simd
2493f910b91SDimitry AndricEXP_HEADERS+=	string
2503f910b91SDimitry AndricEXP_HEADERS+=	string_view
2513f910b91SDimitry AndricEXP_HEADERS+=	system_error
2523f910b91SDimitry AndricEXP_HEADERS+=	tuple
2533f910b91SDimitry AndricEXP_HEADERS+=	type_traits
2543f910b91SDimitry AndricEXP_HEADERS+=	unordered_map
2553f910b91SDimitry AndricEXP_HEADERS+=	unordered_set
2563f910b91SDimitry AndricEXP_HEADERS+=	utility
2573f910b91SDimitry AndricEXP_HEADERS+=	vector
2584f7ab58eSDimitry Andric
2594f7ab58eSDimitry Andric.for hdr in ${EXP_HEADERS}
2604f7ab58eSDimitry AndricEXP+=		${HDRDIR}/experimental/${hdr}
2614f7ab58eSDimitry Andric.endfor
2624f7ab58eSDimitry AndricEXPDIR=		${CXXINCLUDEDIR}/experimental
2634f7ab58eSDimitry Andric
2643f910b91SDimitry AndricEXT_HEADERS+=	__hash
2653f910b91SDimitry AndricEXT_HEADERS+=	hash_map
2663f910b91SDimitry AndricEXT_HEADERS+=	hash_set
2677a984708SDavid Chisnall
2687a984708SDavid Chisnall.for hdr in ${EXT_HEADERS}
2697a984708SDavid ChisnallEXT+=		${HDRDIR}/ext/${hdr}
2707a984708SDavid Chisnall.endfor
2717a984708SDavid ChisnallEXTDIR=		${CXXINCLUDEDIR}/ext
2727a984708SDavid Chisnall
2737a984708SDavid Chisnall.include <bsd.lib.mk>
274