diff --git a/dev-libs/boost/boost170-1.70.0.recipe b/dev-libs/boost/boost170-1.70.0.recipe new file mode 100644 index 000000000..4e23a7847 --- /dev/null +++ b/dev-libs/boost/boost170-1.70.0.recipe @@ -0,0 +1,208 @@ +SUMMARY="A set of libraries for the C++ programming language" +DESCRIPTION="Boost is a set of libraries for the C++ programming language \ +that provide support for tasks and structures such as linear algebra, \ +pseudorandom number generation, multithreading, image processing, regular \ +expressions, and unit testing. It contains over eighty individual libraries." +HOMEPAGE="https://www.boost.org/" +SOURCE_URI="https://dl.bintray.com/boostorg/release/$portVersion/source/boost_${portVersion//./_}.tar.bz2" +CHECKSUM_SHA256="430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778" +REVISION="1" +LICENSE="Boost v1.0" +COPYRIGHT="1998-2018 Beman Dawes, David Abrahams, Rene Rivera, et al." +SOURCE_DIR="boost_${portVersion//./_}" +PATCHES="boost-$portVersion.patchset" + +ARCHITECTURES="!x86_gcc2 ?x86 x86_64" +SECONDARY_ARCHITECTURES="x86" + +libVersion="$portVersion compat >= 1.70.0" + +PROVIDES=" + boost170$secondaryArchSuffix = $portVersion + lib:libboost_atomic$secondaryArchSuffix = $libVersion + lib:libboost_chrono$secondaryArchSuffix = $libVersion + lib:libboost_container$secondaryArchSuffix = $libVersion + lib:libboost_context$secondaryArchSuffix = $libVersion + lib:libboost_contract$secondaryArchSuffix = $libVersion + lib:libboost_coroutine$secondaryArchSuffix = $libVersion + lib:libboost_date_time$secondaryArchSuffix = $libVersion + lib:libboost_filesystem$secondaryArchSuffix = $libVersion + lib:libboost_graph$secondaryArchSuffix = $libVersion + lib:libboost_iostreams$secondaryArchSuffix = $libVersion + lib:libboost_locale$secondaryArchSuffix = $libVersion + lib:libboost_log_setup$secondaryArchSuffix = $libVersion + lib:libboost_log$secondaryArchSuffix = $libVersion + lib:libboost_math_c99$secondaryArchSuffix = $libVersion + lib:libboost_math_c99f$secondaryArchSuffix = $libVersion + lib:libboost_math_tr1$secondaryArchSuffix = $libVersion + lib:libboost_math_tr1f$secondaryArchSuffix = $libVersion + lib:libboost_prg_exec_monitor$secondaryArchSuffix = $libVersion + lib:libboost_program_options$secondaryArchSuffix = $libVersion + lib:libboost_random$secondaryArchSuffix = $libVersion + lib:libboost_regex$secondaryArchSuffix = $libVersion + lib:libboost_serialization$secondaryArchSuffix = $libVersion + lib:libboost_stacktrace_basic$secondaryArchSuffix = $libVersion + lib:libboost_stacktrace_noop$secondaryArchSuffix = $libVersion + lib:libboost_system$secondaryArchSuffix = $libVersion + lib:libboost_thread$secondaryArchSuffix = $libVersion + lib:libboost_timer$secondaryArchSuffix = $libVersion + lib:libboost_type_erasure$secondaryArchSuffix = $libVersion + lib:libboost_unit_test_framework$secondaryArchSuffix = $libVersion + lib:libboost_wave$secondaryArchSuffix = $libVersion + lib:libboost_wserialization$secondaryArchSuffix = $libVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libbz2$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libicudata$secondaryArchSuffix >= 66 + lib:libicui18n$secondaryArchSuffix >= 66 + lib:libicuuc$secondaryArchSuffix >= 66 + lib:libz$secondaryArchSuffix + " + +# List of devel entries matching an actual library (for use in prepareInstalledDevelLibs) +# Boost also provides header-only libraries (because templates) +devel_libs=" + devel:libboost_atomic$secondaryArchSuffix = $portVersion + devel:libboost_chrono$secondaryArchSuffix = $portVersion + devel:libboost_container$secondaryArchSuffix = $portVersion + devel:libboost_context$secondaryArchSuffix = $portVersion + devel:libboost_contract$secondaryArchSuffix = $portVersion + devel:libboost_coroutine$secondaryArchSuffix = $portVersion + devel:libboost_date_time$secondaryArchSuffix = $portVersion + devel:libboost_exception$secondaryArchSuffix = $portVersion + devel:libboost_filesystem$secondaryArchSuffix = $portVersion + devel:libboost_graph$secondaryArchSuffix = $portVersion + devel:libboost_iostreams$secondaryArchSuffix = $portVersion + devel:libboost_locale$secondaryArchSuffix = $portVersion + devel:libboost_log_setup$secondaryArchSuffix = $portVersion + devel:libboost_log$secondaryArchSuffix = $portVersion + devel:libboost_math_c99$secondaryArchSuffix = $portVersion + devel:libboost_math_c99f$secondaryArchSuffix = $portVersion + devel:libboost_math_tr1$secondaryArchSuffix = $portVersion + devel:libboost_math_tr1f$secondaryArchSuffix = $portVersion + devel:libboost_prg_exec_monitor$secondaryArchSuffix = $portVersion + devel:libboost_program_options$secondaryArchSuffix = $portVersion + devel:libboost_random$secondaryArchSuffix = $portVersion + devel:libboost_regex$secondaryArchSuffix = $portVersion + devel:libboost_serialization$secondaryArchSuffix = $portVersion + devel:libboost_stacktrace_basic$secondaryArchSuffix = $portVersion + devel:libboost_stacktrace_noop$secondaryArchSuffix = $portVersion + devel:libboost_system$secondaryArchSuffix = $portVersion + devel:libboost_test_exec_monitor$secondaryArchSuffix = $portVersion + devel:libboost_thread$secondaryArchSuffix = $portVersion + devel:libboost_timer$secondaryArchSuffix = $portVersion + devel:libboost_type_erasure$secondaryArchSuffix = $portVersion + devel:libboost_unit_test_framework$secondaryArchSuffix = $portVersion + devel:libboost_wave$secondaryArchSuffix = $portVersion + devel:libboost_wserialization$secondaryArchSuffix = $portVersion + " + +PROVIDES_devel=" + boost170${secondaryArchSuffix}_devel = $portVersion + $devel_libs + devel:libboost_config$secondaryArchSuffix = $portVersion + " + +REQUIRES_devel=" + boost170$secondaryArchSuffix == $portVersion base + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= r1~alpha4_pm_hrev51470 + devel:libbz2$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libicudata$secondaryArchSuffix >= 66 + devel:libicui18n$secondaryArchSuffix >= 66 + devel:libicuuc$secondaryArchSuffix >= 66 + devel:libz$secondaryArchSuffix + " + +BUILD_PREREQUIRES=" + cmd:gcc$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:sed + cmd:which + " + +defineDebugInfoPackage boost170$secondaryArchSuffix \ + "$libDir"/libboost_atomic.so.$portVersion \ + "$libDir"/libboost_chrono.so.$portVersion \ + "$libDir"/libboost_container.so.$portVersion \ + "$libDir"/libboost_context.so.$portVersion \ + "$libDir"/libboost_contract.so.$portVersion \ + "$libDir"/libboost_coroutine.so.$portVersion \ + "$libDir"/libboost_date_time.so.$portVersion \ + "$libDir"/libboost_filesystem.so.$portVersion \ + "$libDir"/libboost_graph.so.$portVersion \ + "$libDir"/libboost_iostreams.so.$portVersion \ + "$libDir"/libboost_locale.so.$portVersion \ + "$libDir"/libboost_log_setup.so.$portVersion \ + "$libDir"/libboost_log.so.$portVersion \ + "$libDir"/libboost_math_c99.so.$portVersion \ + "$libDir"/libboost_math_c99f.so.$portVersion \ + "$libDir"/libboost_math_tr1.so.$portVersion \ + "$libDir"/libboost_math_tr1f.so.$portVersion \ + "$libDir"/libboost_prg_exec_monitor.so.$portVersion \ + "$libDir"/libboost_program_options.so.$portVersion \ + "$libDir"/libboost_random.so.$portVersion \ + "$libDir"/libboost_regex.so.$portVersion \ + "$libDir"/libboost_serialization.so.$portVersion \ + "$libDir"/libboost_stacktrace_basic.so.$portVersion \ + "$libDir"/libboost_stacktrace_noop.so.$portVersion \ + "$libDir"/libboost_system.so.$portVersion \ + "$libDir"/libboost_thread.so.$portVersion \ + "$libDir"/libboost_timer.so.$portVersion \ + "$libDir"/libboost_type_erasure.so.$portVersion \ + "$libDir"/libboost_unit_test_framework.so.$portVersion \ + "$libDir"/libboost_wave.so.$portVersion \ + "$libDir"/libboost_wserialization.so.$portVersion + +BUILD() +{ + ./bootstrap.sh \ + --prefix=$prefix \ + --exec-prefix=$binDir \ + --libdir=$libDir \ + --includedir=$includeDir + + ./b2 -q $jobArgs \ + --without-mpi \ + --enable-threads=posix \ + --enable-thread-local-alloc \ + --enable-parallel-mark \ + inlining=on \ + threading=multi \ + variant=release \ + link=static,shared \ + runtime-link=shared \ + --without-python +} + +INSTALL() +{ + ./b2 -q $jobArgs \ + --without-mpi \ + --enable-threads=posix \ + --enable-thread-local-alloc \ + --enable-parallel-mark \ + inlining=on \ + threading=multi \ + variant=release \ + link=static,shared \ + runtime-link=shared \ + --without-python \ + install + + prepareInstalledDevelLibs `echo "$devel_libs" | sed -n \ + -e "s/devel:\(.*\)$secondaryArchSuffix =.*/\1/p"` + + packageEntries devel $developDir +} + +TEST() +{ + cd status + ../bjam $jobArgs +} diff --git a/dev-libs/boost/patches/boost-1.70.0.patchset b/dev-libs/boost/patches/boost-1.70.0.patchset new file mode 100644 index 000000000..f59f8c783 --- /dev/null +++ b/dev-libs/boost/patches/boost-1.70.0.patchset @@ -0,0 +1,178 @@ +From 6a182df59f170bec3ef36241d2fa0f6ee2f184dd Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sat, 6 Aug 2016 22:27:19 +0200 +Subject: Import changes from 1.55.0: buildtools + + +diff --git a/tools/build/src/engine/boehm_gc/include/gc_config_macros.h b/tools/build/src/engine/boehm_gc/include/gc_config_macros.h +index 762162a..723b4c3 100644 +--- a/tools/build/src/engine/boehm_gc/include/gc_config_macros.h ++++ b/tools/build/src/engine/boehm_gc/include/gc_config_macros.h +@@ -62,7 +62,7 @@ + + # if defined(GC_SOLARIS_THREADS) || defined(GC_FREEBSD_THREADS) || \ + defined(GC_IRIX_THREADS) || defined(GC_LINUX_THREADS) || \ +- defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || \ ++ defined(GC_HPUX_THREADS) || defined(GC_OSF1_THREADS) || defined(GC_HAIKU_THREADS) || \ + defined(GC_DGUX386_THREADS) || defined(GC_DARWIN_THREADS) || \ + defined(GC_AIX_THREADS) || defined(GC_NETBSD_THREADS) || \ + (defined(GC_WIN32_THREADS) && defined(__CYGWIN32__)) || \ +diff --git a/tools/build/src/engine/boehm_gc/include/private/gcconfig.h b/tools/build/src/engine/boehm_gc/include/private/gcconfig.h +index 61cf9eac..427a9be 100644 +--- a/tools/build/src/engine/boehm_gc/include/private/gcconfig.h ++++ b/tools/build/src/engine/boehm_gc/include/private/gcconfig.h +@@ -219,6 +219,12 @@ + # define I386 + # define HAIKU + # define mach_type_known ++# endif ++# if defined(__HAIKU__) && defined(__x86_64__) ++# define X86_64 ++# define HAIKU ++# define mach_type_known ++# endif + # if defined(LINUX) && (defined(i386) || defined(__i386__)) + # define I386 + # define mach_type_known +@@ -1025,6 +1031,13 @@ + # extern int etext[]; + # define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) + # endif ++# ifdef HAIKU ++# define OS_TYPE "HAIKU" ++# include ++# define GETPAGESIZE() B_PAGE_SIZE ++ extern int etext[]; ++# define DATASTART ((ptr_t)((((word) (etext)) + 0xfff) & ~0xfff)) ++# endif + # ifdef SOLARIS + # define OS_TYPE "SOLARIS" + extern int _etext[], _end[]; +diff --git a/tools/build/src/engine/boehm_gc/os_dep.c b/tools/build/src/engine/boehm_gc/os_dep.c +index 2dd087f..8be17f8 100644 +--- a/tools/build/src/engine/boehm_gc/os_dep.c ++++ b/tools/build/src/engine/boehm_gc/os_dep.c +@@ -776,6 +776,15 @@ ptr_t GC_get_main_stack_base(void){ + } + # endif /* BEOS */ + ++# ifdef HAIKU ++# include ++ptr_t GC_get_main_stack_base(void){ ++ thread_info th; ++ get_thread_info(find_thread(NULL),&th); ++ return th.stack_end; ++} ++# endif /* HAIKU */ ++ + + # ifdef HAIKU + # include +@@ -1106,7 +1115,7 @@ ptr_t GC_get_main_stack_base(void) + + #endif /* FREEBSD_STACKBOTTOM */ + +-#if !defined(BEOS) && !defined(AMIGA) && !defined(MSWIN32) \ ++#if !defined(BEOS) && !defined(__HAIKU__) && !defined(AMIGA) && !defined(MSWIN32) \ + && !defined(MSWINCE) && !defined(OS2) && !defined(NOSYS) && !defined(ECOS) \ + && !defined(CYGWIN32) && !defined(HAIKU) + +diff --git a/tools/build/src/engine/jam.h b/tools/build/src/engine/jam.h +index a6abf41..b774a59 100644 +--- a/tools/build/src/engine/jam.h ++++ b/tools/build/src/engine/jam.h +@@ -162,6 +162,11 @@ + #define OS_BEOS + #define NO_VFORK + #endif ++#ifdef __HAIKU__ ++ #define unix ++ #define OSMINOR "OS=HAIKU" ++ #define OS_HAIKU ++#endif + #ifdef __bsdi__ + #define OSMINOR "OS=BSDI" + #define OS_BSDI +diff --git a/tools/build/src/tools/builtin.py b/tools/build/src/tools/builtin.py +index 1a80c3f..031c014 100644 +--- a/tools/build/src/tools/builtin.py ++++ b/tools/build/src/tools/builtin.py +@@ -82,7 +82,7 @@ def variant (name, parents_or_properties, explicit_properties = []): + feature.compose ("" + name, explicit_properties.all()) + + __os_names = """ +- amiga aix appletv bsd cygwin darwin dos emx freebsd hpux iphone linux netbsd ++ amiga aix appletv bsd cygwin darwin dos emx freebsd haiku hpux iphone linux netbsd + openbsd osf qnx qnxnto sgi solaris sun sunos svr4 sysv ultrix unix unixware + vms windows + """.split() +-- +2.19.1 + + +From ae4d6bcda7b7fdeab901a082d05831743ebb24f6 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sat, 6 Aug 2016 22:27:41 +0200 +Subject: Import changes from 1.55.0: sourcecode + + +diff --git a/boost/thread/detail/platform.hpp b/boost/thread/detail/platform.hpp +index 172a601..c706e40 100644 +--- a/boost/thread/detail/platform.hpp ++++ b/boost/thread/detail/platform.hpp +@@ -34,7 +34,7 @@ + #if ! defined BOOST_THREAD_WIN32 + # define BOOST_THREAD_WIN32 + #endif +-#elif defined(__BEOS__) ++#elif defined(__BEOS__) || defined(__HAIKU__) + # define BOOST_THREAD_BEOS + #elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) + # define BOOST_THREAD_MACOS +-- +2.19.1 + + +From 189b02716bd3de46d1bcb0150ada02ebb65b3038 Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sat, 14 Oct 2017 11:47:09 +0200 +Subject: Haiku needs bsd and _BSD_SOURCE. + + +diff --git a/tools/build/src/engine/build.jam b/tools/build/src/engine/build.jam +index a92b70f..e1655dd 100644 +--- a/tools/build/src/engine/build.jam ++++ b/tools/build/src/engine/build.jam +@@ -583,6 +583,11 @@ if $(OS) = VMS + { + --defs += VMS ; + } ++if $(OS) = HAIKU ++{ ++ --defs += _BSD_SOURCE ; ++ --libs += -lbsd ; ++} + --defs += YYSTACKSIZE=5000 ; + + if $(with-python) +diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh +index 7e46e38..67293a0 100755 +--- a/tools/build/src/engine/build.sh ++++ b/tools/build/src/engine/build.sh +@@ -150,6 +150,13 @@ case $BOOST_JAM_TOOLSET in + BOOST_JAM_OS="NT" + ;; + ++ *haiku*) ++ BOOST_JAM_CC=cc ++ BOOST_JAM_OPT_JAM="$BOOST_JAM_OPT_JAM -D_BSD_SOURCE -lbsd" ++ BOOST_JAM_OPT_MKJAMBASE="$BOOST_JAM_OPT_MKJAMBASE -D_BSD_SOURCE -lbsd" ++ BOOST_JAM_OPT_YYACC="$BOOST_JAM_OPT_YYACC -D_BSD_SOURCE -lbsd" ++ ;; ++ + *) + BOOST_JAM_CC=gcc + esac +-- +2.19.1 +