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