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