# # This file and its contents are supplied under the terms of the # Common Development and Distribution License ("CDDL"), version 1.0. # You may only use this file in accordance with the terms of version # 1.0 of the CDDL. # # A full copy of the text of the CDDL should have accompanied this # source. A copy of the CDDL is also available via the Internet at # http://www.illumos.org/license/CDDL. # # # Copyright 2014 Alexander Pyhalov. All rights reserved. # Copyright 2015-2017 Aurelien Larcher. All rights reserved. # Copyright 2026 Friedrich Kink. All rights reserved. # BUILD_STYLE= justmake include ../../../make-rules/shared-macros.mk COMPONENT_NAME= boost COMPONENT_VERSION= 1.92.0 COMPONENT_REVISION= 1 COMPONENT_SRC_VERSION= $(subst .,_,$(COMPONENT_VERSION)) COMPONENT_SUMMARY= boost - free peer-reviewed portable C++ source libraries COMPONENT_SRC= $(COMPONENT_NAME)_$(COMPONENT_SRC_VERSION) COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.bz2 COMPONENT_ARCHIVE_HASH= sha256:5c1d40cb8e19adbf740a4ec2da35b3e58f3f5804b1dce44deb53df72193cbc6c COMPONENT_ARCHIVE_URL= https://archives.boost.io/release/$(COMPONENT_VERSION)/source/$(COMPONENT_ARCHIVE) COMPONENT_PROJECT_URL= https://www.boost.org COMPONENT_FMRI= developer/boost COMPONENT_CLASSIFICATION= System/Libraries COMPONENT_LICENSE= Boost Software license COMPONENT_LICENSE_FILE= LICENSE_1_0.txt COMPONENT_FMRI.library = library/boost-$(subst .,,$(HUMAN_VERSION)) COMPONENT_SUMMARY.library = Runtime libraries for boost $(HUMAN_VERSION) TEST_TARGET= $(NO_TESTS) include $(WS_MAKE_RULES)/common.mk DOCDIR= $(USRSHAREDOCDIR)/$(COMPONENT_NAME)-$(COMPONENT_VERSION) # Force CPU detection to workaround failure in some virtual environments COMPONENT_BUILD_ENV += OPENBLAS_CORETYPE=Prescott BJAM= ./b2 -d+2 -q address-model=$(BITS) cflags="$(CFLAGS)" cxxflags="$(CXXFLAGS)" BJAM_BUILD_ARGS= $(filter -j%,$(COMPONENT_BUILD_ARGS)) BJAM_BUILD_ARGS += -sBUILD="release single/multi" BJAM_BUILD_ARGS += --prefix=$(PROTOUSRDIR) BJAM_BUILD_ARGS += --libdir=$(PROTOUSRLIBDIR$(BITS)) BJAM_BUILD_ARGS += -sGCC_ROOT_DIRECTORY=$(GCC_ROOT) -sGCC=gcc -sGXX=g++ BJAM_BUILD_ARGS += --user-config=./user-config.jam BJAM_BUILD_OPTIONS= --without-python BJAM_BUILD_OPTIONS += --without-mpi BJAM_BUILD_OPTIONS += --without-graph_parallel BJAM_BUILD_ARGS += $(BJAM_BUILD_OPTIONS) COMPONENT_PRE_BUILD_ACTION= cd $(@D) && $(TOUCH) user-config.jam; COMPONENT_BUILD_ACTION= cd $(@D); echo "Build $(BITS)-bit"; \ $(ENV) $(COMPONENT_BUILD_ENV) \ ./bootstrap.sh --prefix=$(USRDIR) --libdir=$(USRLIBDIR$(BITS)) \ --with-toolset=gcc --with-icu=$(USRDIR) && \ $(ENV) $(COMPONENT_BUILD_ENV) \ $(BJAM) $(BJAM_BUILD_ARGS) release stage COMPONENT_INSTALL_ACTION= cd $(@D); echo "Install $(BITS)-bit"; \ $(ENV) $(COMPONENT_INSTALL_ENV) \ $(BJAM) $(BJAM_BUILD_ARGS) install # usr/bin/elfedit -r -e 'dyn:dump' file gives the index to define which value to be changed # more info to be found i.e. here https://ptribble.blogspot.com/2017/06/tweaking-binaries-with-elfedit.html COMPONENT_POST_INSTALL_ACTION= \ $(ELFEDIT) -e 'dyn:value -s NEEDED "libboost_context.so.1.92.0"' $(PROTOUSRLIBDIR64)/libboost_coroutine.so.1.92.0; \ $(ELFEDIT) -e 'dyn:value -s NEEDED "libboost_context.so.1.92.0"' $(PROTOUSRLIBDIR64)/libboost_fiber.so.1.92.0; \ $(ELFEDIT) -e 'dyn:value -dynndx -s 3 "libboost_filesystem.so.1.92.0"' $(PROTOUSRLIBDIR64)/libboost_log.so.1.92.0; \ $(ELFEDIT) -e 'dyn:value -dynndx -s 3 "libboost_filesystem.so.1.92.0"' $(PROTOUSRLIBDIR64)/libboost_log_setup.so.1.92.0; \ $(ELFEDIT) -e 'dyn:value -dynndx -s 1 "libboost_log.so.1.92.0"' $(PROTOUSRLIBDIR64)/libboost_log_setup.so.1.92.0; \ $(ELFEDIT) -e 'dyn:value -s NEEDED "libboost_filesystem.so.1.92.0"' $(PROTOUSRLIBDIR64)/libboost_process.so.1.92.0; \ $(ELFEDIT) -e 'dyn:value -s NEEDED "libboost_serialization.so.1.92.0"' $(PROTOUSRLIBDIR64)/libboost_wserialization.so.1.92.0; \ $(ELFEDIT) -e 'dyn:value -s NEEDED "libboost_stacktrace_dump.so.1.92.0"' $(PROTOUSRLIBDIR64)/libboost_stacktrace_from_exception.so.1.92.0; \ $(ELFEDIT) -e 'dyn:value -s NEEDED "libboost_thread.so.1.92.0"' $(PROTOUSRLIBDIR64)/libboost_locale.so.1.92.0; \ $(ELFEDIT) -e 'dyn:value -dynndx -s 1 "libboost_thread.so.1.92.0"' $(PROTOUSRLIBDIR64)/libboost_log.so.1.92.0; \ $(ELFEDIT) -e 'dyn:value -dynndx -s 5 "libboost_thread.so.1.92.0"' $(PROTOUSRLIBDIR64)/libboost_log_setup.so.1.92.0; \ $(ELFEDIT) -e 'dyn:value -s NEEDED "libboost_thread.so.1.92.0"' $(PROTOUSRLIBDIR64)/libboost_type_erasure.so.1.92.0; \ $(ELFEDIT) -e 'dyn:value -s NEEDED "libboost_thread.so.1.92.0"' $(PROTOUSRLIBDIR64)/libboost_wave.so.1.92.0; \ $(MKDIR) $(PROTO_DIR)$(DOCDIR); \ cd $(SOURCE_DIR) && \ find . -type f \ \( -name \*.htm\* -o -name \*.css -o -name \*.js \ -o -name \*.gif -o -name \*.jpg -o -name \*.png -o -name \*.PNG -o -name \*.ico \ -o -name \*.qbk -o -name \*.pattern \) | \ $(GTAR) -cf - --files-from=- | $(GTAR) -C $(PROTO_DIR)$(DOCDIR) -xf - ; # Auto-generated dependencies REQUIRED_PACKAGES += $(GCC_RUNTIME_PKG) REQUIRED_PACKAGES += $(GXX_RUNTIME_PKG) REQUIRED_PACKAGES += $(ICU_LIBRARY_PKG) REQUIRED_PACKAGES += compress/bzip2 REQUIRED_PACKAGES += compress/xz REQUIRED_PACKAGES += compress/zstd REQUIRED_PACKAGES += developer/icu REQUIRED_PACKAGES += library/zlib REQUIRED_PACKAGES += system/library REQUIRED_PACKAGES += system/library/math