1# $NetBSD: Makefile,v 1.16 2014/06/14 20:49:36 mrg Exp $ 2 3REQUIRETOOLS= yes 4NOLINT= # defined 5 6.include <bsd.init.mk> 7 8.include "Makefile.inc" 9 10LIB= stdc++ 11LDADD= -lgcc_s 12 13LIBDPLIBS+= m ${.CURDIR}/../../../../../lib/libm 14 15#COPTS+= -pthread 16#LDFLAGS+= -pthread 17 18UNSUPPORTED_COMPILER.clang= # defined 19CWARNFLAGS.clang+= -Wno-logical-op-parentheses \ 20 -Wno-deprecated-writable-strings -Wno-parentheses 21 22.include "${.CURDIR}/../libsupc++/Makefile.common" 23 24.if exists(${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}/defs.mk) && ${MKGCC} != "no" 25.include "${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}/defs.mk" 26 27SHLIB_MAJOR= 7 28SHLIB_MINOR= 2 29 30SUBDIR= include 31 32SRCS= ${LIBSUPCXXSRCS} ${LIBSTDCXXSRCS} 33# affects profiling; can't switch it off just for profiling easily. 34#CXXFLAGS+= ${G_SECTION_FLAGS} 35#CXXFLAGS+= -ffunction-sections -fdata-sections 36CXXFLAGS+= -fno-implicit-templates -fdiagnostics-show-location=once 37CPPFLAGS+= -I${DIST}/libstdc++-v3/include 38CPPFLAGS+= -I${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH} 39# include backwards compatible code 40CPPFLAGS+= -D_GLIBCXX_SHARED -DGTHREAD_USE_WEAK -DSUPPORTS_WEAK 41 42CONF= ${DIST}/libstdc++-v3/config 43 44GLIBCPP_INCLUDE_DIR= ${DESTDIR}/usr/include/g++ 45 46# Template instantiation bug workaround for -O<2/s 47COPTS.cp-demangle.c = -Wno-stack-protector 48COPTS.cp-demangle.c = -Wno-stack-protector 49COPTS.fstream-inst.cc = -Wno-stack-protector 50COPTS.locale-inst.cc = -Wno-stack-protector 51COPTS.misc-inst.cc = -Wno-stack-protector 52COPTS.ostream-inst.cc = -Wno-stack-protector 53COPTS.valarray-inst.cc = -Wno-stack-protector 54COPTS.wlocale-inst.cc = -Wno-stack-protector 55COPTS.concept-inst.cc= -fimplicit-templates 56COPTS.hashtable_c++0x.cc= -fimplicit-templates 57COPTS.bitmap_allocator.cc = -fimplicit-templates 58CPPFLAGS.strstream.cc= -I$(GLIBCPP_INCLUDE_DIR)/backward -Wno-deprecated 59 60# XXX also need this for some PCHs. 61CPPFLAGS.atomic.cc = -std=gnu++0x 62CPPFLAGS.compatibility-c++0x.cc = -std=gnu++0x 63CPPFLAGS.functexcept.cc = -std=gnu++0x 64CPPFLAGS.hash_c++0x.cc = -std=gnu++0x 65CPPFLAGS.hashtable_c++0x.cc = -std=gnu++0x 66CPPFLAGS.limits.cc = -std=gnu++0x 67CPPFLAGS.system_error.cc = -std=gnu++0x 68CPPFLAGS.fstream-inst.cc = -std=gnu++0x 69CPPFLAGS.string-inst.cc = -std=gnu++0x 70CPPFLAGS.wstring-inst.cc = -std=gnu++0x 71CPPFLAGS.mutex.cc = -std=gnu++0x 72CPPFLAGS.condition_variable.cc = -std=gnu++0x 73CPPFLAGS.chrono.cc = -std=gnu++0x 74CPPFLAGS.thread.cc = -std=gnu++0x 75CPPFLAGS.future.cc = -std=gnu++0x 76 77CPPFLAGS.cp-demangle.cc += -DIN_GLIBCPP_V3 78CPPFLAGS.concept-inst.cc += -D_GLIBCXX_CONCEPT_CHECKS 79CPPFLAGS.parallel_list.cc += -D_GLIBCXX_PARALLEL 80CPPFLAGS.parallel_settings.cc += -D_GLIBCXX_PARALLEL 81CPPFLAGS.compatibility-parallel_list.cc += -D_GLIBCXX_PARALLEL 82 83cp-demangle.d cp-demangle.o: cp-demangle.h 84 85# XXX 86MKDEPFLAGS+= -I$(GLIBCPP_INCLUDE_DIR)/backward 87 88GLIBCXX_SRCDIR= ${DIST}/libstdc++-v3 89 90BUILDSYMLINKS+= \ 91 ${GLIBCXX_SRCDIR}/${G_CCODECVT_CC} codecvt_members.cc \ 92 ${GLIBCXX_SRCDIR}/${G_CCOLLATE_CC} collate_members.cc \ 93 ${GLIBCXX_SRCDIR}/${G_CCTYPE_CC} ctype_members.cc \ 94 ${GLIBCXX_SRCDIR}/${G_CMESSAGES_CC} messages_members.cc \ 95 ${GLIBCXX_SRCDIR}/${G_CMONEY_CC} monetary_members.cc \ 96 ${GLIBCXX_SRCDIR}/${G_CNUMERIC_CC} numeric_members.cc \ 97 ${GLIBCXX_SRCDIR}/${G_CTIME_CC} time_members.cc \ 98 ${GLIBCXX_SRCDIR}/${G_ATOMICITY_SRCDIR}/atomicity.h atomicity.cc \ 99 ${GLIBCXX_SRCDIR}/${G_CLOCALE_CC} c++locale.cc \ 100 ${GLIBCXX_SRCDIR}/${G_BASIC_FILE_CC} basic_file.cc \ 101 ${DIST}/libiberty/cp-demangle.c cp-demangle.c \ 102 ${DIST}/libiberty/cp-demangle.h cp-demangle.h 103 104.if ${HAVE_LIBGCC_EH} == "no" 105G_CONFIGLINKS:= ${G_CONFIGLINKS:S,libgcc/config/arm/unwind-arm.h,libgcc/unwind-generic.h,} 106.endif 107 108.if ${MKGCC} != "no" 109.if defined(G_CONFIGLINKS) && !empty(G_CONFIGLINKS) 110BUILDSYMLINKS+= ${G_CONFIGLINKS} 111.for _src _dst in ${G_CONFIGLINKS} 112DPSRCS+= ${_dst} 113.endfor 114.endif 115.endif 116 117.for f in compatibility-c++0x compatibility-atomic-c++0x \ 118 compatibility-thread-c++0x compatibility-chrono chrono \ 119 condition_variable debug functexcept functional future \ 120 hash_c++0x hashtable_c++0x limits mutex placeholders \ 121 random regex shared_ptr system_error thread 122COPTS.${f}.cc+= -std=gnu++11 123.endfor 124 125.include <bsd.lib.mk> 126.include <bsd.subdir.mk> 127.include <bsd.info.mk> 128 129.PATH: ${DIST}/libstdc++-v3/src \ 130 ${DIST}/libstdc++-v3/src/c++98 \ 131 ${DIST}/libstdc++-v3/src/c++11 \ 132 ${DIST}/libstdc++-v3/libsupc++ \ 133 ${DIST}/libstdc++-v3/config/os/bsd/netbsd \ 134 ${CONF}/locale/generic \ 135 ${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH} 136 137${OBJS}: ${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}/defs.mk 138.else 139.include <bsd.prog.mk> # do nothing 140.endif 141