diff options
Diffstat (limited to 'lib/libc++')
-rw-r--r-- | lib/libc++/Makefile | 215 | ||||
-rw-r--r-- | lib/libc++/Makefile.depend | 38 | ||||
-rw-r--r-- | lib/libc++/libc++.ldscript | 2 |
3 files changed, 255 insertions, 0 deletions
diff --git a/lib/libc++/Makefile b/lib/libc++/Makefile new file mode 100644 index 0000000..d81710e --- /dev/null +++ b/lib/libc++/Makefile @@ -0,0 +1,215 @@ +# $FreeBSD$ + +.include <src.opts.mk> + +_LIBCXXRTDIR= ${.CURDIR}/../../contrib/libcxxrt +HDRDIR= ${.CURDIR}/../../contrib/libc++/include +SRCDIR= ${.CURDIR}/../../contrib/libc++/src +CXXINCLUDEDIR= ${INCLUDEDIR}/c++/v${SHLIB_MAJOR} + +.PATH: ${SRCDIR} + +LIB= c++ +SHLIB_MAJOR= 1 +SHLIB_LDSCRIPT= libc++.ldscript + +SRCS+= algorithm.cpp\ + bind.cpp\ + chrono.cpp\ + condition_variable.cpp\ + debug.cpp\ + exception.cpp\ + future.cpp\ + hash.cpp\ + ios.cpp\ + iostream.cpp\ + locale.cpp\ + memory.cpp\ + mutex.cpp\ + new.cpp\ + optional.cpp\ + random.cpp\ + regex.cpp\ + shared_mutex.cpp\ + stdexcept.cpp\ + string.cpp\ + strstream.cpp\ + system_error.cpp\ + thread.cpp\ + typeinfo.cpp\ + utility.cpp\ + valarray.cpp + +CXXRT_SRCS+= libelftc_dem_gnu3.c\ + terminate.cc\ + dynamic_cast.cc\ + memory.cc\ + auxhelper.cc\ + exception.cc\ + stdexcept.cc\ + typeinfo.cc\ + guard.cc + +.for _S in ${CXXRT_SRCS} +STATICOBJS+= cxxrt_${_S:R}.o +cxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA + ln -sf ${.ALLSRC} ${.TARGET} +.endfor + +WARNS= 0 +CFLAGS+= -I${HDRDIR} -I${_LIBCXXRTDIR} -nostdlib -DLIBCXXRT +.if empty(CXXFLAGS:M-std=*) +CXXFLAGS+= -std=c++11 +.endif + +LIBADD+= cxxrt +INCSGROUPS= STD EXP EXT + +STD_HEADERS= __bit_reference\ + __config\ + __debug\ + __functional_03\ + __functional_base\ + __functional_base_03\ + __hash_table\ + __locale\ + __mutex_base\ + __refstring\ + __split_buffer\ + __sso_allocator\ + __std_stream\ + __tree\ + __tuple\ + __undef___deallocate\ + __undef_min_max\ + algorithm\ + array\ + atomic\ + bitset\ + cassert\ + ccomplex\ + cctype\ + cerrno\ + cfenv\ + cfloat\ + chrono\ + cinttypes\ + ciso646\ + climits\ + clocale\ + cmath\ + codecvt\ + complex\ + complex.h\ + condition_variable\ + csetjmp\ + csignal\ + cstdarg\ + cstdbool\ + cstddef\ + cstdint\ + cstdio\ + cstdlib\ + cstring\ + ctgmath\ + ctime\ + cwchar\ + cwctype\ + deque\ + exception\ + forward_list\ + fstream\ + functional\ + future\ + initializer_list\ + iomanip\ + ios\ + iosfwd\ + iostream\ + istream\ + iterator\ + limits\ + list\ + locale\ + map\ + memory\ + mutex\ + new\ + numeric\ + ostream\ + queue\ + random\ + ratio\ + regex\ + scoped_allocator\ + set\ + shared_mutex\ + sstream\ + stack\ + stdexcept\ + streambuf\ + string\ + strstream\ + system_error\ + tgmath.h\ + thread\ + tuple\ + type_traits\ + typeindex\ + typeinfo\ + unordered_map\ + unordered_set\ + utility\ + valarray\ + vector +RT_HEADERS= cxxabi.h\ + unwind.h\ + unwind-arm.h\ + unwind-itanium.h + +.for hdr in ${STD_HEADERS} +STD+= ${HDRDIR}/${hdr} +INCSLINKS+= ${CXXINCLUDEDIR}/${hdr} ${CXXINCLUDEDIR}/tr1/${hdr} +.endfor +.for hdr in ${RT_HEADERS} +STD+= ${_LIBCXXRTDIR}/${hdr} +.endfor +STDDIR= ${CXXINCLUDEDIR} + +EXP_HEADERS= __config\ + algorithm\ + chrono\ + dynarray\ + optional\ + ratio\ + string_view\ + system_error\ + tuple\ + type_traits\ + utility + +.for hdr in ${EXP_HEADERS} +EXP+= ${HDRDIR}/experimental/${hdr} +.endfor +EXPDIR= ${CXXINCLUDEDIR}/experimental + +EXT_HEADERS= __hash\ + hash_map\ + hash_set + +.for hdr in ${EXT_HEADERS} +EXT+= ${HDRDIR}/ext/${hdr} +.endfor +EXTDIR= ${CXXINCLUDEDIR}/ext + +.if ${MK_GNUCXX} == "no" && ${COMPILER_TYPE} == "gcc" +CLEANFILES+= libstdc++.so libstdc++.a + +afterinstall: + ${INSTALL_SYMLINK} ${DESTDIR}${LIBDIR}/lib${LIB}.so \ + ${.OBJDIR}/libstdc++.so + ${INSTALL_SYMLINK} ${DESTDIR}${LIBDIR}/lib${LIB}.a \ + ${.OBJDIR}/libstdc++.a +.endif + +.include <bsd.lib.mk> diff --git a/lib/libc++/Makefile.depend b/lib/libc++/Makefile.depend new file mode 100644 index 0000000..39735a8 --- /dev/null +++ b/lib/libc++/Makefile.depend @@ -0,0 +1,38 @@ +# $FreeBSD$ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + gnu/lib/csu \ + gnu/lib/libgcc \ + include \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libc \ + lib/libcompiler_rt \ + lib/libcxxrt \ + lib/msun \ + + +.include <dirdeps.mk> + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +cxxrt_auxhelper.o: cxxrt_auxhelper.cc +cxxrt_auxhelper.po: cxxrt_auxhelper.cc +cxxrt_dynamic_cast.o: cxxrt_dynamic_cast.cc +cxxrt_dynamic_cast.po: cxxrt_dynamic_cast.cc +cxxrt_exception.o: cxxrt_exception.cc +cxxrt_exception.po: cxxrt_exception.cc +cxxrt_guard.o: cxxrt_guard.cc +cxxrt_guard.po: cxxrt_guard.cc +cxxrt_libelftc_dem_gnu3.o: cxxrt_libelftc_dem_gnu3.c +cxxrt_libelftc_dem_gnu3.po: cxxrt_libelftc_dem_gnu3.c +cxxrt_memory.o: cxxrt_memory.cc +cxxrt_memory.po: cxxrt_memory.cc +cxxrt_stdexcept.o: cxxrt_stdexcept.cc +cxxrt_stdexcept.po: cxxrt_stdexcept.cc +cxxrt_terminate.o: cxxrt_terminate.cc +cxxrt_terminate.po: cxxrt_terminate.cc +cxxrt_typeinfo.o: cxxrt_typeinfo.cc +cxxrt_typeinfo.po: cxxrt_typeinfo.cc +.endif diff --git a/lib/libc++/libc++.ldscript b/lib/libc++/libc++.ldscript new file mode 100644 index 0000000..bec57f1 --- /dev/null +++ b/lib/libc++/libc++.ldscript @@ -0,0 +1,2 @@ +/* $FreeBSD$ */ +GROUP ( @@SHLIB@@ @@LIBDIR@@/libcxxrt.so ) |