1.include "../Makefile.inc" 2.include "../libsupc++/Makefile.src" 3.include "Makefile.headers" 4SRCDIR= ${GCCDIR}/libstdc++-v3 5.PATH: ${SRCDIR} 6.PATH: ${SRCDIR}/libsupc++ 7.PATH: ${SRCDIR}/src 8.PATH: ${SRCDIR}/src/c++11 9.PATH: ${SRCDIR}/src/c++98 10.PATH: ${SRCDIR}/libmath 11.PATH: ${SRCDIR}/config/io 12.PATH: ${SRCDIR}/config/locale/dragonfly 13.PATH: ${SRCDIR}/config/locale/generic 14.PATH: ${GCCDIR}/gcc 15.PATH: ${GCCDIR}/libgcc 16 17# Vendor lists shared lib version as 6, not 9. 18LIB= stdc++ 19SHLIB_MAJOR= 9 20 21CFLAGS+= -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H 22CFLAGS+= -I${.CURDIR} 23CFLAGS+= -I${.OBJDIR} 24CFLAGS+= -I${GCCDIR}/gcc 25CFLAGS+= -I${GCCDIR}/libgcc 26CFLAGS+= -I${GCCDIR}/libiberty 27CFLAGS+= -I${GCCDIR}/include 28CFLAGS+= -I${GCCDIR}/libcpp/include 29CFLAGS+= -I${SRCDIR}/include 30CFLAGS+= -I${SRCDIR}/include/std 31CFLAGS+= -I${SRCDIR}/include/c_std 32CFLAGS+= -I${SRCDIR}/include/c_global 33CFLAGS+= -I${SRCDIR}/include/backward 34CFLAGS+= -I${SRCDIR}/libsupc++ 35CXXFLAGS+= -fno-implicit-templates 36CXXFLAGS+= -fdiagnostics-show-location=once 37CXXFLAGS+= -ffunction-sections -fdata-sections 38CXXFLAGS+= -Wno-deprecated 39LDFLAGS+= -Wl,--version-script=${.CURDIR}/libstdc++-symbols.ver 40 41THRLIB= ${.OBJDIR}/../../../../lib/libpthread/libpthread.so 42LDADD+= ${THRLIB} -lm 43DPADD+= ${THRLIB} ${LIBM} 44 45# Slightly modified from libstdc++/src/c++98/Makefile.in 46# sources_1998 is the equivalent of libc_98convenience.a 47# sources_2011 is the equivalent of libc_11convenience.a 48host_sources_1998 = \ 49 atomicity.cc \ 50 codecvt_members.cc \ 51 collate_members.cc \ 52 ctype_configure_char.cc \ 53 ctype_members.cc \ 54 messages_members.cc \ 55 monetary_members.cc \ 56 numeric_members.cc \ 57 time_members.cc 58 59parallel_sources_1998 = 60 61inst_sources_1998 = \ 62 allocator-inst.cc \ 63 concept-inst.cc \ 64 ext-inst.cc \ 65 ios-inst.cc \ 66 iostream-inst.cc \ 67 istream-inst.cc \ 68 locale-inst.cc \ 69 misc-inst.cc \ 70 ostream-inst.cc \ 71 sstream-inst.cc \ 72 streambuf-inst.cc \ 73 wlocale-inst.cc 74 75host_sources_extra_1998 = \ 76 basic_file.cc \ 77 c++locale.cc \ 78 ${inst_sources_1998} \ 79 ${parallel_sources_1998} 80 81sources_1998 = \ 82 bitmap_allocator.cc \ 83 pool_allocator.cc \ 84 mt_allocator.cc \ 85 codecvt.cc \ 86 complex_io.cc \ 87 ctype.cc \ 88 globals_io.cc \ 89 hash_tr1.cc \ 90 hashtable_tr1.cc \ 91 ios.cc \ 92 ios_failure.cc \ 93 ios_init.cc \ 94 ios_locale.cc \ 95 list.cc \ 96 locale.cc \ 97 locale_init.cc \ 98 locale_facets.cc \ 99 localename.cc \ 100 math_stubs_float.cc \ 101 math_stubs_long_double.cc \ 102 stdexcept.cc \ 103 strstream.cc \ 104 tree-cxx.cc \ 105 istream.cc \ 106 streambuf.cc \ 107 valarray.cc \ 108 ${host_sources_1998} \ 109 ${host_sources_extra_1998} 110 111inst_sources_2011 = \ 112 fstream-inst.cc \ 113 string-inst.cc \ 114 wstring-inst.cc 115 116sources_2011 = \ 117 chrono.cc \ 118 condition_variable.cc \ 119 debug-cxx.cc \ 120 functexcept.cc \ 121 functional.cc \ 122 future.cc \ 123 hash_c++0x.cc \ 124 hashtable_c++0x.cc \ 125 limits.cc \ 126 mutex.cc \ 127 placeholders.cc \ 128 regex.cc \ 129 shared_ptr.cc \ 130 system_error.cc \ 131 thread.cc \ 132 ${inst_sources_2011} 133 134ldbl_compat_sources = 135parallel_compat_sources = 136 137cxx98_sources = \ 138 compatibility.cc \ 139 compatibility-debug_list.cc \ 140 compatibility-debug_list-2.cc \ 141 compatibility-list.cc \ 142 compatibility-list-2.cc \ 143 ${ldbl_compat_sources} \ 144 ${parallel_compat_sources} 145 146cxx11_sources = \ 147 compatibility-c++0x.cc \ 148 compatibility-atomic-c++0x.cc \ 149 compatibility-thread-c++0x.cc 150 151SRCS+= ${SUPCXX} \ 152 cp-demangle.c \ 153 ${sources_1998} \ 154 ${sources_2011} \ 155 ${cxx98_sources} \ 156 ${cxx11_sources} 157 158FLAGS_GROUPS= gnu0x gnu11 159gnu0x_FLAGS= -std=gnu++0x 160gnu11_FLAGS= -std=gnu++11 161gnu0x_FLAGS_FILES= eh_ptr.cc \ 162 eh_throw.cc \ 163 guard.cc \ 164 nested_exception.cc 165gnu11_FLAGS_FILES= chrono.cc \ 166 condition_variable.cc \ 167 debug-cxx.cc \ 168 functexcept.cc \ 169 functional.cc \ 170 future.cc \ 171 hash_c++0x.cc \ 172 hashtable_c++0x.cc \ 173 limits.cc \ 174 mutex.cc \ 175 placeholders.cc \ 176 regex.cc \ 177 shared_ptr.cc \ 178 system_error.cc \ 179 thread.cc \ 180 fstream-inst.cc \ 181 string-inst.cc \ 182 wstring-inst.cc \ 183 compatibility-c++0x.cc \ 184 compatibility-atomic-c++0x.cc \ 185 compatibility-thread-c++0x.cc 186 187#generated sources 188SRCS+= unwind.h \ 189 ${CONF_HEADERS:T} 190 191HD= ${INCLUDEDIR}/c++/${GCCPOINTVER} 192 193# These sections are detailed in Makefile.headers 194# parallel section is empty, skip it 195# make buildincludes, make installincludes before make depend 196glibcxx_srcdir= ${SRCDIR} 197HSECT= std bits bits_sup backward ext ext_compat tr1 tr2 decimal \ 198 c_base c_compatibility debug profile profile_impl host supc 199PBSECT= 1 2 3 4 5 6 7 200 201.for i in ${HSECT} 202INCSGROUPS+= ${i}_headers 203${i}_headersDIR= ${HD}/${${i}_builddir} 204.endfor 205 206PATHGROUP= 207.for i in ${PBSECT} 208. for k in ${pb_headers${i}} 209. if ${PATHGROUP:M${k:H:T}} == "" 210PATHGROUP+=${k:H:T} 211PATH_${k:H:T}=${k:H:T} 212. endif 213PBG_${k:H:T}+=${k} 214. endfor 215.endfor 216 217INCSGROUPS+= PBG_pb_ds 218PBG_pb_dsDIR= ${HD}/${pb_builddir} 219 220INCSGROUPS+= PBG_detail 221PBG_detailDIR= ${HD}/${pb_builddir}/detail 222 223.for k in ${PATHGROUP:Npb_ds:Ndetail} 224INCSGROUPS+= PBG_${k} 225PBG_${k}DIR= ${HD}/${pb_builddir}/detail/${PATH_${k}} 226.endfor 227 228INCSGROUPS+= host_headers_extra 229host_headers_extraDIR= ${HD}/bits 230host_headers_extraNAME_basic_file_stdio.h= basic_file.h 231host_headers_extraNAME_c_locale.h= c++locale.h 232host_headers_extraNAME_c_io_stdio.h+= c++io.h 233host_headers_extraNAME_new_allocator_base.h= c++allocator.h 234 235CONF_HEADERS= locale/generic/c++locale_internal.h \ 236 abi/compatibility.h 237 238atomicity.cc: ${SRCDIR}/config/cpu/generic/atomicity_builtins/atomicity.h 239 cp ${.ALLSRC} ${.TARGET} 240 241ctype_configure_char.cc: ${SRCDIR}/config/os/bsd/dragonfly/${.TARGET} 242 cp ${.ALLSRC} ${.TARGET} 243 244basic_file.cc: ${SRCDIR}/config/io/basic_file_stdio.cc 245 cp ${.ALLSRC} ${.TARGET} 246 247c++locale.cc: ${SRCDIR}/config/locale/dragonfly/c_locale.cc 248 cp ${.ALLSRC} ${.TARGET} 249 250unwind.h: unwind-generic.h 251 cp ${.ALLSRC} ${.TARGET} 252 253copybits: 254 mkdir -p bits 255 256.for F in ${CONF_HEADERS} 257${F:T}: copybits 258 cp ${SRCDIR}/config/${F} bits/ 259.endfor 260 261# We can't add libiberty to the PATH because it will take the regex.o there 262# before compiling regex.cc into an object file. Just recompile 263 264cp-demangle.c: ${GCCDIR}/libiberty/${.TARGET} 265 cp ${.ALLSRC} ${.TARGET} 266 267# debug.cc, tree.cc and vec.cc are also getting pre-empted by gcc/ versions 268debug-cxx.cc: ${SRCDIR}/src/c++11/debug.cc 269 cp ${.ALLSRC} ${.TARGET} 270 271tree-cxx.cc: ${SRCDIR}/src/c++98/tree.cc 272 cp ${.ALLSRC} ${.TARGET} 273 274vec-cxx.cc: ${SRCDIR}/libsupc++/vec.cc 275 cp ${.ALLSRC} ${.TARGET} 276 277CLEANDIRS+= bits 278CLEANFILES+= atomicity.cc basic_file.cc c++locale.cc \ 279 ctype_configure_char.cc unwind.h \ 280 cp-demangle.c debug-cxx.cc tree-cxx.cc vec-cxx.cc \ 281 c++config.h gthr.h gthr-default.h 282 283.include <bsd.lib.mk> 284