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