xref: /netbsd-src/external/bsd/libc++/lib/Makefile (revision b7b7574d3bf8eeb51a1fa3977b59142ec6434a55)
1#	$NetBSD: Makefile,v 1.5 2014/01/15 21:14:55 joerg Exp $
2
3LIB=		c++
4WARNS=		4
5NOLINT=		# defined
6
7.include <bsd.init.mk>
8
9.PATH: ${LIBCXX_SRCDIR}/src
10
11SRCS=	algorithm.cpp bind.cpp chrono.cpp condition_variable.cpp debug.cpp \
12	exception.cpp future.cpp hash.cpp ios.cpp iostream.cpp locale.cpp \
13	memory.cpp mutex.cpp new.cpp optional.cpp random.cpp regex.cpp \
14	shared_mutex.cpp stdexcept.cpp \
15	string.cpp strstream.cpp system_error.cpp thread.cpp \
16	utility.cpp valarray.cpp
17# typeinfo.cc: prefer libcxxrt's version
18
19LIBCXXRT_SRCS+= \
20	auxhelper.cc dynamic_cast.cc exception.cc guard.cc \
21	stdexcept.cc terminate.cc typeinfo.cc libelftc_dem_gnu3.c
22# cxa_atexit.c: Solaris-only
23# memory.cc: already provided by libc++'s new.cpp
24
25.for src in ${LIBCXXRT_SRCS}
26rt_${src}: ${LIBCXXRT_SRCDIR}/src/${src}
27	cp ${LIBCXXRT_SRCDIR}/src/${src} rt_${src}
28
29SRCS+=		rt_${src}
30DPSRCS+=	rt_${src}
31CLEANFILES+=	rt_${src}
32.endfor
33
34.include <bsd.own.mk>
35
36CPPFLAGS+=	-nostdinc++ -cxx-isystem ${LIBCXX_SRCDIR}/include -I${LIBCXXRT_SRCDIR}/src
37CPPFLAGS+=	-DLIBCXXRT
38CXXFLAGS+=	${${ACTIVE_CC} == "clang":? -std=c++11 : -std=c++0x}
39
40CWARNFLAGS.gcc+=	-Wno-error
41
42CWARNFLAGS.clang+=	-Wno-error=unused-variable -Wno-error=missing-noreturn
43CWARNFLAGS.clang+=	-Wno-error=missing-prototypes -Wno-error=sometimes-uninitialized
44CWARNFLAGS.clang+=	-Wno-error=missing-field-initializers -Wno-error=switch
45CWARNFLAGS.clang+=	-Wno-error=implicit-exception-spec-mismatch
46
47LDADD+=	-Wl,-z,defs
48
49.if !empty(MACHINE_ARCH:M*arm*)
50# Missing __sync_fetch_and_add_4
51# Missing __sync_lock_test_and_set_4
52# Missing __sync_val_compare_and_swap_4
53# Missing __atomic_fetch_add_4
54COPTS.ios.cpp+= -march=armv6
55COPTS.locale.cpp+= -march=armv6
56COPTS.memory.cpp+= -march=armv6
57COPTS.new.cpp+= -march=armv6
58COPTS.rt_exception.cc+= -march=armv6
59COPTS.rt_guard.cc+= -march=armv6
60COPTS.stdexcept.cpp+= -march=armv6
61.endif
62
63.include <bsd.lib.mk>
64