2014-07-22 22:31:30 -07:00
|
|
|
package=boost
|
2020-12-18 13:13:42 -08:00
|
|
|
$(package)_version=1_75_0
|
2020-08-08 13:02:00 -07:00
|
|
|
$(package)_download_path=https://dl.bintray.com/boostorg/release/$(subst _,.,$($(package)_version))/source/
|
2020-08-08 13:23:14 -07:00
|
|
|
$(package)_file_name=boost_$($(package)_version).tar.bz2
|
2020-12-18 13:13:42 -08:00
|
|
|
$(package)_sha256_hash=953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb
|
2020-08-08 13:23:14 -07:00
|
|
|
$(package)_dependencies=native_b2
|
2014-07-22 22:31:30 -07:00
|
|
|
|
2020-10-12 12:48:33 -07:00
|
|
|
ifneq ($(host_os),darwin)
|
2020-08-08 13:23:14 -07:00
|
|
|
$(package)_dependencies+=libcxx
|
2020-10-12 12:48:33 -07:00
|
|
|
endif
|
|
|
|
|
2014-07-22 22:31:30 -07:00
|
|
|
define $(package)_set_vars
|
2014-09-23 14:03:09 -07:00
|
|
|
$(package)_config_opts_release=variant=release
|
|
|
|
$(package)_config_opts_debug=variant=debug
|
2020-04-29 13:32:20 -07:00
|
|
|
$(package)_config_opts=--layout=system --user-config=user-config.jam
|
2020-08-08 14:30:59 -07:00
|
|
|
$(package)_config_opts+=threading=multi link=static -sNO_COMPRESSION=1
|
2020-05-22 14:00:53 -07:00
|
|
|
$(package)_config_opts_linux=target-os=linux threadapi=pthread runtime-link=shared
|
2020-12-30 16:50:25 -08:00
|
|
|
$(package)_config_opts_freebsd=cxxflags=-fPIC
|
2020-05-22 14:00:53 -07:00
|
|
|
$(package)_config_opts_darwin=target-os=darwin runtime-link=shared
|
|
|
|
$(package)_config_opts_mingw32=target-os=windows binary-format=pe threadapi=win32 runtime-link=static
|
2014-07-22 22:31:30 -07:00
|
|
|
$(package)_config_opts_x86_64_mingw32=address-model=64
|
|
|
|
$(package)_config_opts_i686_mingw32=address-model=32
|
|
|
|
$(package)_config_opts_i686_linux=address-model=32 architecture=x86
|
2020-07-15 23:20:51 -07:00
|
|
|
$(package)_toolset_$(host_os)=clang
|
2020-05-22 14:00:53 -07:00
|
|
|
$(package)_toolset_darwin=clang
|
2020-05-22 14:03:46 -07:00
|
|
|
ifneq (,$(findstring clang,$($(package)_cxx)))
|
|
|
|
$(package)_toolset_$(host_os)=clang
|
|
|
|
endif
|
2014-07-22 22:31:30 -07:00
|
|
|
$(package)_archiver_$(host_os)=$($(package)_ar)
|
|
|
|
$(package)_config_libraries=chrono,filesystem,program_options,system,thread,test
|
2020-07-16 05:00:27 -07:00
|
|
|
$(package)_cxxflags+=-std=c++17 -fvisibility=hidden
|
2014-11-11 15:21:23 -08:00
|
|
|
$(package)_cxxflags_linux=-fPIC
|
2019-05-22 09:56:45 -07:00
|
|
|
$(package)_cxxflags_freebsd=-fPIC
|
2020-12-30 16:50:25 -08:00
|
|
|
|
|
|
|
ifeq ($(host_os),freebsd)
|
|
|
|
$(package)_ldflags+=-static-libstdc++ -lcxxrt
|
|
|
|
else
|
|
|
|
$(package)_ldflags+=-static-libstdc++ -lc++abi
|
|
|
|
endif
|
|
|
|
|
2014-07-22 22:31:30 -07:00
|
|
|
endef
|
|
|
|
|
2020-04-29 13:32:20 -07:00
|
|
|
define $(package)_preprocess_cmds
|
|
|
|
echo "using $($(package)_toolset_$(host_os)) : : $($(package)_cxx) : <cxxflags>\"$($(package)_cxxflags) $($(package)_cppflags)\" <linkflags>\"$($(package)_ldflags)\" <archiver>\"$($(package)_archiver_$(host_os))\" <striper>\"$(host_STRIP)\" <ranlib>\"$(host_RANLIB)\" <rc>\"$(host_WINDRES)\" : ;" > user-config.jam
|
|
|
|
endef
|
|
|
|
|
2014-07-22 22:31:30 -07:00
|
|
|
define $(package)_config_cmds
|
2020-08-08 13:23:14 -07:00
|
|
|
./bootstrap.sh --without-icu --with-libraries=$($(package)_config_libraries) --with-toolset=$($(package)_toolset_$(host_os)) --with-bjam=b2
|
2014-07-22 22:31:30 -07:00
|
|
|
endef
|
|
|
|
|
|
|
|
define $(package)_build_cmds
|
2020-08-08 13:23:14 -07:00
|
|
|
b2 -d2 -j2 -d1 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) toolset=$($(package)_toolset_$(host_os)) stage
|
2014-07-22 22:31:30 -07:00
|
|
|
endef
|
|
|
|
|
|
|
|
define $(package)_stage_cmds
|
2020-08-08 13:23:14 -07:00
|
|
|
b2 -d0 -j4 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) toolset=$($(package)_toolset_$(host_os)) install
|
2014-07-22 22:31:30 -07:00
|
|
|
endef
|
2020-10-13 07:23:41 -07:00
|
|
|
|
|
|
|
# Boost uses the MSVC convention of libboost_foo.lib as the naming pattern when
|
|
|
|
# compiling for Windows, even though we use MinGW which follows the libfoo.a
|
|
|
|
# convention. This causes issues with lld, so we rename all .lib files to .a.
|
|
|
|
ifeq ($(host_os),mingw32)
|
|
|
|
define $(package)_postprocess_cmds
|
|
|
|
for f in lib/*.lib; do mv -- "$$$$f" "$$$${f%.lib}.a"; done
|
|
|
|
endef
|
|
|
|
endif
|