package=boost $(package)_version=1_75_0 $(package)_download_path=https://dl.bintray.com/boostorg/release/1.75.0/source $(package)_file_name=$(package)_$($(package)_version).tar.bz2 $(package)_sha256_hash=953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb ifneq ($(host_os),darwin) $(package)_dependencies=libcxx endif define $(package)_set_vars $(package)_config_opts_release=variant=release $(package)_config_opts_debug=variant=debug $(package)_config_opts=--layout=system --user-config=user-config.jam $(package)_config_opts+=threading=multi link=static -sNO_BZIP2=1 -sNO_ZLIB=1 $(package)_config_opts_linux=threadapi=pthread runtime-link=shared $(package)_config_opts_freebsd=cxxflags=-fPIC $(package)_config_opts_darwin=--toolset=clang-darwin runtime-link=shared $(package)_config_opts_mingw32=binary-format=pe target-os=windows threadapi=win32 runtime-link=static $(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 $(package)_toolset_$(host_os)=clang $(package)_archiver_$(host_os)=$($(package)_ar) $(package)_toolset_darwin=clang-darwin $(package)_config_libraries=chrono,filesystem,program_options,system,thread,test $(package)_cxxflags+=-std=c++17 -fvisibility=hidden $(package)_cxxflags_linux=-fPIC $(package)_cxxflags_freebsd=-fPIC ifeq ($(host_os),freebsd) $(package)_ldflags+=-static-libstdc++ -lcxxrt else $(package)_ldflags+=-static-libstdc++ -lc++abi endif endef define $(package)_preprocess_cmds echo "using $($(package)_toolset_$(host_os)) : : $($(package)_cxx) : \"$($(package)_cxxflags) $($(package)_cppflags)\" \"$($(package)_ldflags)\" \"$($(package)_archiver_$(host_os))\" \"$(host_STRIP)\" \"$(host_RANLIB)\" \"$(host_WINDRES)\" : ;" > user-config.jam endef define $(package)_config_cmds ./bootstrap.sh --without-icu --with-libraries=$($(package)_config_libraries) --with-toolset=$($(package)_toolset_$(host_os)) endef define $(package)_build_cmds ./b2 -d2 -j2 -d1 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) stage endef define $(package)_stage_cmds ./b2 -d0 -j4 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) install endef # 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