summaryrefslogtreecommitdiffstats
path: root/lib/libc++
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc++')
-rw-r--r--lib/libc++/Makefile215
-rw-r--r--lib/libc++/Makefile.depend38
-rw-r--r--lib/libc++/libc++.ldscript2
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 )
OpenPOWER on IntegriCloud