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