1*53d1339bSjoerg# $NetBSD: Makefile,v 1.14 2021/05/30 01:57:00 joerg Exp $ 2ecb06a3bSjoerg 3ecb06a3bSjoergLIB= c++ 4ecb06a3bSjoergWARNS= 4 5ecb06a3bSjoergNOLINT= # defined 6ecb06a3bSjoerg 7ecb06a3bSjoerg.include <bsd.init.mk> 8ecb06a3bSjoerg 9ecb06a3bSjoerg.PATH: ${LIBCXX_SRCDIR}/src 10ecb06a3bSjoerg 11*53d1339bSjoergSRCS= algorithm.cpp bind.cpp charconv.cpp chrono.cpp condition_variable.cpp \ 12*53d1339bSjoerg condition_variable_destructor.cpp debug.cpp exception.cpp format.cpp \ 13*53d1339bSjoerg functional.cpp future.cpp hash.cpp ios.cpp ios.instantiations.cpp \ 14*53d1339bSjoerg iostream.cpp locale.cpp memory.cpp mutex.cpp mutex_destructor.cpp \ 15*53d1339bSjoerg new.cpp optional.cpp random.cpp random_shuffle.cpp regex.cpp \ 16*53d1339bSjoerg shared_mutex.cpp stdexcept.cpp string.cpp strstream.cpp \ 17*53d1339bSjoerg system_error.cpp thread.cpp utility.cpp valarray.cpp variant.cpp \ 18*53d1339bSjoerg vector.cpp 19*53d1339bSjoerg 20*53d1339bSjoerg.PATH: ${LIBCXX_SRCDIR}/src/filesystem 21*53d1339bSjoergSRCS+= directory_iterator.cpp operations.cpp 22*53d1339bSjoerg 23a14e051bSjoerg# typeinfo.cc: prefer libcxxrt's version 24ecb06a3bSjoerg 25ecb06a3bSjoergLIBCXXRT_SRCS+= \ 26a14e051bSjoerg auxhelper.cc dynamic_cast.cc exception.cc guard.cc \ 27a14e051bSjoerg stdexcept.cc terminate.cc typeinfo.cc libelftc_dem_gnu3.c 28a14e051bSjoerg# cxa_atexit.c: Solaris-only 29a14e051bSjoerg# memory.cc: already provided by libc++'s new.cpp 30ecb06a3bSjoerg 31ecb06a3bSjoerg.for src in ${LIBCXXRT_SRCS} 32ecb06a3bSjoergrt_${src}: ${LIBCXXRT_SRCDIR}/src/${src} 33ecb06a3bSjoerg cp ${LIBCXXRT_SRCDIR}/src/${src} rt_${src} 34ecb06a3bSjoerg 35ecb06a3bSjoergSRCS+= rt_${src} 36ecb06a3bSjoergDPSRCS+= rt_${src} 37ecb06a3bSjoergCLEANFILES+= rt_${src} 38ecb06a3bSjoerg.endfor 39ecb06a3bSjoerg 40ecb06a3bSjoerg.include <bsd.own.mk> 41ecb06a3bSjoerg 42*53d1339bSjoergCPPFLAGS+= -nostdinc++ -cxx-isystem ${LIBCXX_SRCDIR}/include 43*53d1339bSjoergCPPFLAGS+= -cxx-isystem ${.CURDIR}/../include -I${LIBCXXRT_SRCDIR}/src 44*53d1339bSjoergCPPFLAGS+= -DLIBCXXRT -D_LIBCPP_BUILDING_LIBRARY 45*53d1339bSjoergCXXFLAGS+= -std=gnu++17 46ecb06a3bSjoerg 47ecb06a3bSjoergCWARNFLAGS.gcc+= -Wno-error 48ecb06a3bSjoerg 49ecb06a3bSjoergCWARNFLAGS.clang+= -Wno-error=unused-variable -Wno-error=missing-noreturn 50ecb06a3bSjoergCWARNFLAGS.clang+= -Wno-error=missing-prototypes -Wno-error=sometimes-uninitialized 51ecb06a3bSjoergCWARNFLAGS.clang+= -Wno-error=missing-field-initializers -Wno-error=switch 52*53d1339bSjoergCWARNFLAGS.clang+= -Wno-error=implicit-exception-spec-mismatch -Wno-error=format-nonliteral -Wno-error=format-security 53c1f68528Schristos 543aa96d18Skamil.if ${MKSANITIZER} != "yes" 558ec658f5SchristosLDFLAGS+= -Wl,-z,defs 563aa96d18Skamil.endif 57ecb06a3bSjoerg 5890dc754aSjoerg.if !empty(MACHINE_ARCH:Marm*) || !empty(MACHINE_ARCH:Mearm*) 5990dc754aSjoergCWARNFLAGS+= -Wno-atomic-alignment 6090dc754aSjoerg.endif 6190dc754aSjoerg 62ecb06a3bSjoerg.include <bsd.lib.mk> 63