1# $NetBSD: Makefile,v 1.8 2014/02/26 09:54:33 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 15UNSUPPORTED_COMPILER.clang= # defined 16CWARNFLAGS.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 22SHLIB_MAJOR= 7 23SHLIB_MINOR= 1 24 25SUBDIR= include 26 27.include "${.CURDIR}/../libsupc++/Makefile.common" 28 29SRCS= ${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 33CXXFLAGS+= -fno-implicit-templates -fdiagnostics-show-location=once 34CPPFLAGS+= -I${DIST}/libstdc++-v3/include 35CPPFLAGS+= -I${.CURDIR}/arch/${GCC_MACHINE_ARCH} 36CPPFLAGS+= -I${.CURDIR}/../libgomp/arch/${GCC_MACHINE_ARCH} 37 38CONF= ${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 43GLIBCPP_INCLUDE_DIR= ${DESTDIR}/usr/include/g++ 44 45COPTS.cp-demangle.c = -Wno-stack-protector 46COPTS.fstream-inst.cc = -Wno-stack-protector 47COPTS.locale-inst.cc = -Wno-stack-protector 48COPTS.misc-inst.cc = -Wno-stack-protector 49COPTS.ostream-inst.cc = -Wno-stack-protector 50COPTS.valarray-inst.cc = -Wno-stack-protector 51COPTS.wlocale-inst.cc = -Wno-stack-protector 52COPTS.concept-inst.cc= -D_GLIBCPP_CONCEPT_CHECKS -fimplicit-templates 53CPPFLAGS.strstream.cc= -I$(GLIBCPP_INCLUDE_DIR)/backward -Wno-deprecated 54 55# For GCC 4.5 56.if ${HAVE_GCC} >= 45 57# XXX also need this for some PCHs. 58CPPFLAGS.atomic.cc = -std=gnu++0x 59CPPFLAGS.compatibility-c++0x.cc = -std=gnu++0x 60CPPFLAGS.functexcept.cc = -std=gnu++0x 61CPPFLAGS.hash_c++0x.cc = -std=gnu++0x 62CPPFLAGS.hashtable_c++0x.cc = -std=gnu++0x 63CPPFLAGS.limits.cc = -std=gnu++0x 64CPPFLAGS.system_error.cc = -std=gnu++0x 65CPPFLAGS.fstream-inst.cc = -std=gnu++0x 66CPPFLAGS.string-inst.cc = -std=gnu++0x 67CPPFLAGS.wstring-inst.cc = -std=gnu++0x 68CPPFLAGS.mutex.cc = -std=gnu++0x 69CPPFLAGS.condition_variable.cc = -std=gnu++0x 70CPPFLAGS.chrono.cc = -std=gnu++0x 71CPPFLAGS.thread.cc = -std=gnu++0x 72CPPFLAGS.future.cc = -std=gnu++0x 73 74CPPFLAGS.cp-demangle.cc += -DIN_GLIBCPP_V3 75CPPFLAGS.concept-inst.cc += -D_GLIBCXX_CONCEPT_CHECKS 76CPPFLAGS.parallel_list.cc += -D_GLIBCXX_PARALLEL 77CPPFLAGS.parallel_settings.cc += -D_GLIBCXX_PARALLEL 78CPPFLAGS.compatibility-parallel_list.cc += -D_GLIBCXX_PARALLEL 79.endif 80 81# XXX 82MKDEPFLAGS+= -I$(GLIBCPP_INCLUDE_DIR)/backward 83 84.include <bsd.lib.mk> 85.include <bsd.subdir.mk> 86.include <bsd.info.mk> 87 88GLIBCXX_SRCDIR= ${DIST}/libstdc++-v3 89 90codecvt_members.cc: ${GLIBCXX_SRCDIR}/${G_CCODECVT_CC} 91 ${_MKTARGET_CREATE} 92 rm -f ${.TARGET} 93 ln -s ${GLIBCXX_SRCDIR}/${G_CCODECVT_CC} ${.TARGET} 94 95collate_members.cc: ${GLIBCXX_SRCDIR}/${G_CCOLLATE_CC} 96 ${_MKTARGET_CREATE} 97 rm -f ${.TARGET} 98 ln -s ${GLIBCXX_SRCDIR}/${G_CCOLLATE_CC} ${.TARGET} 99 100ctype_members.cc: ${GLIBCXX_SRCDIR}/${G_CCTYPE_CC} 101 ${_MKTARGET_CREATE} 102 rm -f ${.TARGET} 103 ln -s ${GLIBCXX_SRCDIR}/${G_CCTYPE_CC} ${.TARGET} 104 105messages_members.cc: ${GLIBCXX_SRCDIR}/${G_CMESSAGES_CC} 106 ${_MKTARGET_CREATE} 107 rm -f ${.TARGET} 108 ln -s ${GLIBCXX_SRCDIR}/${G_CMESSAGES_CC} ${.TARGET} 109 110monetary_members.cc: ${GLIBCXX_SRCDIR}/${G_CMONEY_CC} 111 ${_MKTARGET_CREATE} 112 rm -f ${.TARGET} 113 ln -s ${GLIBCXX_SRCDIR}/${G_CMONEY_CC} ${.TARGET} 114 115numeric_members.cc: ${GLIBCXX_SRCDIR}/${G_CNUMERIC_CC} 116 ${_MKTARGET_CREATE} 117 rm -f ${.TARGET} 118 ln -s ${GLIBCXX_SRCDIR}/${G_CNUMERIC_CC} ${.TARGET} 119 120time_members.cc: ${GLIBCXX_SRCDIR}/${G_CTIME_CC} 121 ${_MKTARGET_CREATE} 122 rm -f ${.TARGET} 123 ln -s ${GLIBCXX_SRCDIR}/${G_CTIME_CC} ${.TARGET} 124 125atomicity.cc: ${G_atomicity_file} 126 ${_MKTARGET_CREATE} 127 rm -f ${.TARGET} 128 ln -s ${G_atomicity_file} ${.TARGET} 129 130c++locale.cc: ${GLIBCXX_SRCDIR}/${G_CLOCALE_CC} 131 ${_MKTARGET_CREATE} 132 rm -f ${.TARGET} 133 ln -s ${GLIBCXX_SRCDIR}/${G_CLOCALE_CC} ${.TARGET} 134 135basic_file.cc: ${GLIBCXX_SRCDIR}/${G_BASIC_FILE_CC} 136 ${_MKTARGET_CREATE} 137 rm -f ${.TARGET} 138 ln -s ${GLIBCXX_SRCDIR}/${G_BASIC_FILE_CC} ${.TARGET} 139 140 141CLEANFILES+= atomicity.cc basic_file.cc c++locale.cc codecvt_members.cc 142CLEANFILES+= collate_members.cc ctype_members.cc messages_members.cc 143CLEANFILES+= monetary_members.cc numeric_members.cc time_members.cc 144 145${SRCS}: unwind.h 146unwind.h: ${G_UNWIND_H} 147 ${_MKTARGET_CREATE} 148 rm -f ${.TARGET} 149 ln -s ${G_UNWIND_H} ${.TARGET} 150CLEANFILES+= unwind.h 151 152.PATH: ${DIST}/libstdc++-v3/src \ 153 ${DIST}/libstdc++-v3/libsupc++ \ 154 ${DIST}/libiberty \ 155 ${CONF}/locale/generic \ 156 ${.CURDIR}/arch/${GCC_MACHINE_ARCH} 157 158${OBJS}: ${.CURDIR}/arch/${GCC_MACHINE_ARCH}/defs.mk 159.else 160.include <bsd.prog.mk> # do nothing 161.endif 162