| | |
| | | # whenever PATH is to be defined there: |
| | | # PATH = $(PATH.illumos) |
| | | # PATH = $(PATH.gnu) |
| | | PATH.illumos=$(PATH.prepend):$(USRBINDIR$(BITS)):$(USRBINDIR):$(GNUBIN):$(USRSBINDIR$(BITS)):$(USRSBINDIR):$(PERL5BINDIR) |
| | | PATH.gnu=$(PATH.prepend):$(GNUBIN):$(USRBINDIR$(BITS)):$(USRBINDIR):$(USRSBINDIR$(BITS)):$(USRSBINDIR):$(PERL5BINDIR) |
| | | PATH.illumos = $(subst $(space),:,$(strip $(PATH.prepend))):$(USRBINDIR$(BITS)):$(USRBINDIR):$(GNUBIN):$(USRSBINDIR$(BITS)):$(USRSBINDIR) |
| | | PATH.gnu = $(subst $(space),:,$(strip $(PATH.prepend))):$(GNUBIN):$(USRBINDIR$(BITS)):$(USRBINDIR):$(USRSBINDIR$(BITS)):$(USRSBINDIR) |
| | | |
| | | # Default PATH |
| | | PATH = $(PATH.illumos) |
| | |
| | | #EXTERNAL_ARCHIVE_MIRROR = \ |
| | | # http://static.opensolaris.org/action/browse/userland/tarball/userland |
| | | |
| | | DLC_ARCHIVE_MIRROR = http://dlc.openindiana.org/oi-userland/source-archives |
| | | DLC_ARCHIVE_MIRROR = https://dlc.openindiana.org/oi-userland/source-archives |
| | | |
| | | # Default to looking for source archives on the internal mirror and the external |
| | | # mirror before we hammer on the community source archive repositories. |
| | |
| | | # The workspace starts at the mercurial root |
| | | ifeq ($(origin WS_TOP), undefined) |
| | | export WS_TOP := \ |
| | | $(shell hg root 2>/dev/null || git rev-parse --show-toplevel) |
| | | $(shell git rev-parse --show-toplevel || hg root 2>/dev/null) |
| | | endif |
| | | |
| | | USERLAND_ARCHIVES ?= $(WS_TOP)/archives/ |
| | |
| | | # to determine the distribution version |
| | | # (it should look like OpenIndiana Hipster YYYY.MM). |
| | | DISTRIBUTION_NAME = OpenIndiana Hipster |
| | | DISTRIBUTION_VERSION = 2023.05 |
| | | DISTRIBUTION_VERSION = 2023.10 |
| | | # Native OS version |
| | | OS_VERSION := $(shell uname -r) |
| | | SOLARIS_VERSION = $(OS_VERSION:5.%=2.%) |
| | |
| | | |
| | | PKG_REPO = file:$(WS_REPO) |
| | | |
| | | COMPONENT = $(COMPONENT_DIR:$(WS_TOP)/components/%=%) |
| | | HUMAN_VERSION ?= $(COMPONENT_VERSION) |
| | | COMPONENT_SRC_NAME = $(COMPONENT_NAME) |
| | | |
| | |
| | | fi; \ |
| | | fi) |
| | | |
| | | GCC_VERSION = 10 |
| | | GCC_DEFAULT = 13 |
| | | GCC_VERSION = $(GCC_DEFAULT) |
| | | GCC_ROOT = /usr/gcc/$(GCC_VERSION) |
| | | |
| | | GCC_LIBDIR.32 = $(GCC_ROOT)/lib |
| | | GCC_LIBDIR.64 = $(GCC_ROOT)/lib/$(MACH64) |
| | | GCC_LIBDIR = $(GCC_LIBDIR.$(BITS)) |
| | | |
| | | # Define runtime package names to be used in dependencies |
| | | GCC_VERSION_MAJOR = $(shell echo $(GCC_VERSION) | $(GSED) -e 's/\([0-9]\+\)\.[0-9]\+.*/\1/') |
| | |
| | | GCC_INCDIR = $(GCC_ROOT)/include |
| | | GCC_LIBGCCDIR = $(GCC_ROOT)/lib/gcc |
| | | GCC_INCGXXDIR = $(GCC_ROOT)/include/c++/$(GCC_FULL_VERSION) |
| | | PATH.prepend += $(GCC_BINDIR) |
| | | |
| | | ifneq ($(strip $(CCACHE)),) |
| | | |
| | |
| | | LD = /usr/bin/ld |
| | | |
| | | # Clang definitions (we only have 64 bit clang) |
| | | CLANG_VERSION ?= 15 |
| | | CLANG_FULL_VERSION ?= $(CLANG_VERSION).0 |
| | | CLANG_DEFAULT = 17 |
| | | CLANG_VERSION = $(CLANG_DEFAULT) |
| | | CLANG_FULL_VERSION = $(CLANG_VERSION).0 |
| | | CLANG_PREFIX = /usr/clang/$(CLANG_FULL_VERSION) |
| | | CLANG_BINDIR = $(CLANG_PREFIX)/bin |
| | | CLANG_LIBDIR = $(CLANG_PREFIX)/lib |
| | | CLANG_DEVELOPER_PKG = developer/clang-$(CLANG_VERSION) |
| | | CLANG_RUNTIME_PKG = runtime/clang-$(CLANG_VERSION) |
| | | REQUIRED_PACKAGES_SUBST += CLANG_DEVELOPER_PKG |
| | | REQUIRED_PACKAGES_SUBST += CLANG_RUNTIME_PKG |
| | | PATH.prepend += $(CLANG_BINDIR) |
| | | |
| | | # Python definitions |
| | | PYTHON.2.7.VENDOR_PACKAGES.64 = /usr/lib/python2.7/vendor-packages/64 |
| | | PYTHON.2.7.VENDOR_PACKAGES.32 = /usr/lib/python2.7/vendor-packages |
| | | PYTHON.2.7.VENDOR_PACKAGES = $(PYTHON.2.7.VENDOR_PACKAGES.$(BITS)) |
| | | |
| | | PYTHON.3.7.VENDOR_PACKAGES.64 = /usr/lib/python3.7/vendor-packages |
| | | PYTHON.3.7.VENDOR_PACKAGES.32 = /usr/lib/python3.7/vendor-packages |
| | | PYTHON.3.7.VENDOR_PACKAGES = $(PYTHON.3.7.VENDOR_PACKAGES.$(BITS)) |
| | | |
| | | PYTHON.3.9.VENDOR_PACKAGES.64 = /usr/lib/python3.9/vendor-packages |
| | | PYTHON.3.9.VENDOR_PACKAGES.32 = /usr/lib/python3.9/vendor-packages |
| | |
| | | FC = $(FC.$(COMPILER).$(BITS)) |
| | | |
| | | RUBY_VERSION = 2.3 |
| | | |
| | | RUBY_LIB_VERSION.2.3 = 2.3.0 |
| | | RUBY_LIB_VERSION.2.6 = 2.6.0 |
| | | RUBY_LIB_VERSION.3.2 = 3.2.0 |
| | | |
| | | RUBY.2.3 = /usr/ruby/2.3/bin/ruby |
| | | RUBY.2.6 = /usr/ruby/2.6/bin/ruby |
| | | RUBY.3.2 = /usr/ruby/3.2/bin/ruby |
| | | |
| | | RUBY = $(RUBY.$(RUBY_VERSION)) |
| | | RUBY_LIB_VERSION = $(RUBY_LIB_VERSION.$(RUBY_VERSION)) |
| | | |
| | |
| | | PYTHON.2.7 = /usr/bin/python2.7 |
| | | PYTHON.2.7.64 = /usr/bin/$(MACH64)/python2.7 |
| | | |
| | | PYTHON.3.7 = /usr/bin/python3.7 |
| | | PYTHON.3.7.64 = $(PYTHON.3.7) |
| | | |
| | | PYTHON.3.9 = /usr/bin/python3.9 |
| | | PYTHON.3.9.64 = $(PYTHON.3.9) |
| | | |
| | |
| | | PYTHON.32 = $(PYTHON.$(PYTHON_VERSION)) |
| | | PYTHON = $(PYTHON.$(PYTHON_VERSION)) |
| | | |
| | | TOX.3.7 = /usr/bin/tox-3.7 |
| | | TOX.3.9 = /usr/bin/tox-3.9 |
| | | TOX = $(TOX.$(PYTHON_VERSION)) |
| | | |
| | |
| | | COMPONENT_POST_INSTALL_ACTION += $(PYTHON_SCRIPTS_PROCESS) |
| | | |
| | | JAVA8_HOME = /usr/jdk/instances/openjdk1.8.0 |
| | | JAVA11_HOME = /usr/jdk/instances/openjdk11.0.10 |
| | | JAVA17_HOME = /usr/jdk/instances/openjdk17 |
| | | JAVA18_HOME = /usr/jdk/instances/openjdk18 |
| | | JAVA19_HOME = /usr/jdk/instances/openjdk19 |
| | | JAVA_HOME = $(JAVA8_HOME) |
| | | JAVA17_HOME = /usr/jdk/instances/openjdk17.0.8 |
| | | JAVA21_HOME = /usr/jdk/instances/openjdk21 |
| | | JAVA_HOME = $(JAVA17_HOME) |
| | | |
| | | # QT macros |
| | | # We deliver version 5 in 32- and 64-bit variants. |
| | |
| | | QT5_PKG_CONFIG_PATH = $(QT5_LIBDIR)/pkgconfig |
| | | |
| | | # We deliver version 6 only in a 64-bit variant. |
| | | QT6_VERSION = 6.2 |
| | | QT6_VERSION = 6.6 |
| | | QT6_BASEDIR = $(USRLIBDIR)/qt/$(QT6_VERSION) |
| | | QT6_BINDIR = $(QT6_BASEDIR)/bin/$(MACH64) |
| | | QT6_LIBDIR = $(QT6_BASEDIR)/lib/$(MACH64) |
| | | QT6_PKG_CONFIG_PATH = $(QT6_LIBDIR)/pkgconfig |
| | | |
| | | # |
| | | # Upstream officially supports two recent major Perl versions. They also aim |
| | | # to provide critical security fixes for major Perl versions whose 5.x.0 |
| | | # release was within the past three years. |
| | | # |
| | | # We support union of both sets. IOW, we will start to obsolete a major Perl |
| | | # version if its 5.x.0 was released longer than three years ago AND there are |
| | | # already released two newer major Perl versions. |
| | | # |
| | | # See https://perldoc.perl.org/perlpolicy |
| | | # |
| | | # |
| | | # We will start to obsolete major Perl versions according the following table: |
| | | # |
| | | # +--------------+----------------+ |
| | | # | Perl version | Obsolete after | |
| | | # +--------------+----------------+ |
| | | # | 5.34 | 2024-05-20 | |
| | | # | 5.36 | 2025-05-28 | |
| | | # | 5.38 | 2026-07-02 | |
| | | # +--------------+----------------+ |
| | | # |
| | | # See https://www.cpan.org/src/README.html |
| | | # |
| | | |
| | | # This is the default version of Perl |
| | | PERL_VERSION = 5.36 |
| | | PERL_VERSION = 5.38 |
| | | |
| | | # The PERL_VERSIONS list should always be in ascending order (newest version |
| | | # last) |
| | | PERL_VERSIONS = 5.34 5.36 |
| | | PERL_VERSIONS = 5.34 5.36 5.38 |
| | | # Perl up to 5.22 was built 32-bit only. Starting with 5.24 the perl package |
| | | # is built 64-bit only. So now all PERL_VERSIONS are 64-bit only. |
| | | PERL_64_ONLY_VERSIONS = $(PERL_VERSIONS) |
| | |
| | | PKG_MACROS += PERL_ARCH=$(PERL_ARCH) |
| | | PKG_MACROS += PERL_VERSION=$(PERL_VERSION) |
| | | |
| | | # |
| | | # Upstream supports major PostgreSQL versions for 5 years after its initial |
| | | # release. After that one last minor version is released and then the major |
| | | # version is considered EOL. |
| | | # |
| | | # We will start to obsolete PostgreSQL versions according the following table: |
| | | # |
| | | # +--------------------+----------------+ |
| | | # | PostgreSQL version | Obsolete after | |
| | | # +--------------------+----------------+ |
| | | # | 12 | 2024-11-14 | |
| | | # | 14 | 2026-11-12 | |
| | | # | 15 | 2027-11-11 | |
| | | # +--------------------+----------------+ |
| | | # |
| | | # See https://www.postgresql.org/support/versioning/ |
| | | # |
| | | |
| | | # Config magic for Postgres/EnterpriseDB/... |
| | | # Default DB version should be the newest one we do have so we detect any |
| | | # incompatibilities as soon as possible. Components could override this when |
| | | # they are not ready yet to compile with so new version. |
| | | PG_VERSION ?= 14 |
| | | PG_VERSION ?= 15 |
| | | PG_IMPLEM ?= postgres |
| | | PG_VERNUM = $(subst .,,$(PG_VERSION)) |
| | | # For dependencies, including REQUIRED_PACKAGES if needed |
| | |
| | | PG_CONFIG.32 = $(PG_BINDIR.32)/pg_config |
| | | PG_CONFIG.64 = $(PG_BINDIR.64)/pg_config |
| | | PG_CONFIG = $(PG_CONFIG.$(BITS)) |
| | | PATH.prepend += $(PG_BINDIR) |
| | | |
| | | PKG_MACROS += PG_VERSION=$(PG_VERSION) |
| | | PKG_MACROS += PG_VERNUM=$(PG_VERNUM) |
| | | PKG_MACROS += PG_BASEPKG=$(PG_BASEPKG) |
| | | |
| | | # |
| | | # Upstream maintains long-term MariaDB releases for at least 5 years and |
| | | # short-term MariaDB releases for at least one year. |
| | | # |
| | | # We will start to obsolete MariaDB versions according the following table: |
| | | # |
| | | # +-----------------+----------------+ |
| | | # | MariaDB version | Obsolete after | |
| | | # +-----------------+----------------+ |
| | | # | 10.6 | 2026-07 | |
| | | # +-----------------+----------------+ |
| | | # |
| | | # See https://mariadb.org/about/#maintenance-policy |
| | | # |
| | | |
| | | # Config magic for MySQL/MariaDB/Percona/... |
| | | # Default DB version should be the newest one we do have so we detect any |
| | |
| | | MYSQL_CONFIG.32 = $(MYSQL_BINDIR.32)/mysql_config |
| | | MYSQL_CONFIG.64 = $(MYSQL_BINDIR.64)/mysql_config |
| | | MYSQL_CONFIG = $(MYSQL_CONFIG.$(BITS)) |
| | | MYSQL_PKG_CONFIG_PATH = $(MYSQL_LIBDIR)/pkgconfig |
| | | PATH.prepend += $(MYSQL_BINDIR) |
| | | |
| | | PKG_MACROS += MYSQL_VERSION=$(MYSQL_VERSION) |
| | | PKG_MACROS += MYSQL_VERNUM=$(MYSQL_VERNUM) |
| | |
| | | TCLSH.8.6.sparc.32 = /usr/bin/sparcv7/tclsh8.6 |
| | | TCLSH.8.6.sparc.64 = /usr/bin/sparcv9/tclsh8.6 |
| | | TCLSH = $(TCLSH.$(TCL_VERSION).$(MACH).$(BITS)) |
| | | |
| | | # ICU library |
| | | ICU_LIBRARY_PKG = library/icu |
| | | REQUIRED_PACKAGES_SUBST += ICU_LIBRARY_PKG |
| | | |
| | | |
| | | CCSMAKE = /usr/ccs/bin/make |
| | | GMAKE = /usr/gnu/bin/make |
| | |
| | | GTAR = /usr/gnu/bin/tar |
| | | STRIP = /usr/bin/strip |
| | | IPS2TGZ = $(WS_TOOLS)/ips2tgz |
| | | JQ = /usr/bin/jq |
| | | DOS2UNIX = /usr/bin/dos2unix |
| | | TAC = /usr/bin/tac |
| | | QUILT = /usr/bin/quilt |
| | | |
| | | INS.dir= $(INSTALL) -d $@ |
| | | INS.file= $(INSTALL) -m 444 $< $(@D) |
| | | |
| | | # OpenSSL macros |
| | | OPENSSL_DEFAULT = 1.1 |
| | | OPENSSL_DEFAULT = 3.1 |
| | | ifeq ($(strip $(USE_OPENSSL11)),yes) |
| | | OPENSSL_VERSION = 1.1 |
| | | else |
| | |
| | | PKG_CONFIG_PATH.32 = /usr/lib/pkgconfig |
| | | PKG_CONFIG_PATH.64 = /usr/lib/$(MACH64)/pkgconfig |
| | | PKG_CONFIG_PATH = \ |
| | | $(OPENSSL_PKG_CONFIG_PATH):$(PKG_CONFIG_PATH.$(BITS)):$(PKG_CONFIG_PATH.32) |
| | | $(OPENSSL_PKG_CONFIG_PATH):$(MYSQL_PKG_CONFIG_PATH):$(PKG_CONFIG_PATH.$(BITS)):$(PKG_CONFIG_PATH.32) |
| | | |
| | | # Set default path for environment modules |
| | | MODULE_VERSION = 3.2.10 |
| | |
| | | # |
| | | |
| | | # Control the GCC optimization level. |
| | | gcc_OPT.sparc.32 = -O3 -mcpu=ultrasparc -mvis |
| | | gcc_OPT.sparc.64 = -O3 -mcpu=ultrasparc -mvis |
| | | gcc_OPT.sparc.32 = -O3 -mcpu=ultrasparc -mvis -mfsmuld |
| | | gcc_OPT.sparc.64 = -O3 -mcpu=ultrasparc -mvis -mfsmuld |
| | | gcc_OPT.i386.32 = -O3 |
| | | gcc_OPT.i386.64 = -O3 |
| | | gcc_OPT = $(gcc_OPT.$(MACH).$(BITS)) |
| | |
| | | REQUIRED_PACKAGES_SUBST+= GOBJC_RUNTIME_PKG |
| | | |
| | | # Generate requirements on all built python version variants for given packages |
| | | USERLAND_REQUIRED_PACKAGES += $(foreach ver,$(PYTHON_VERSIONS),$(PYTHON_USERLAND_REQUIRED_PACKAGES:%=%-$(shell echo $(ver) | tr -d .))) |
| | | REQUIRED_PACKAGES += $(foreach ver,$(PYTHON_VERSIONS),$(PYTHON_REQUIRED_PACKAGES:%=%-$(shell echo $(ver) | tr -d .))) |
| | | TEST_REQUIRED_PACKAGES += $(foreach ver,$(PYTHON_VERSIONS),$(TEST_REQUIRED_PACKAGES.python:%=%-$(shell echo $(ver) | tr -d .))) |
| | | USERLAND_REQUIRED_PACKAGES += $(foreach ver,$(PYTHON_VERSIONS),$(USERLAND_REQUIRED_PACKAGES.python:%=%-$(subst .,,$(ver)))) |
| | | REQUIRED_PACKAGES += $(foreach ver,$(PYTHON_VERSIONS),$(PYTHON_REQUIRED_PACKAGES:%=%-$(subst .,,$(ver)))) |
| | | TEST_REQUIRED_PACKAGES += $(foreach ver,$(PYTHON_VERSIONS),$(TEST_REQUIRED_PACKAGES.python:%=%-$(subst .,,$(ver)))) |
| | | |
| | | # Generate requirements on all built perl version variants for given packages |
| | | REQUIRED_PACKAGES += $(foreach ver,$(PERL_VERSIONS),$(PERL_REQUIRED_PACKAGES:%=%-$(shell echo $(ver) | tr -d .))) |
| | | TEST_REQUIRED_PACKAGES += $(foreach ver,$(PERL_VERSIONS),$(TEST_REQUIRED_PACKAGES.perl:%=%-$(shell echo $(ver) | tr -d .))) |
| | | USERLAND_REQUIRED_PACKAGES += $(foreach ver,$(PERL_VERSIONS),$(USERLAND_REQUIRED_PACKAGES.perl:%=%-$(subst .,,$(ver)))) |
| | | REQUIRED_PACKAGES += $(foreach ver,$(PERL_VERSIONS),$(PERL_REQUIRED_PACKAGES:%=%-$(subst .,,$(ver)))) |
| | | TEST_REQUIRED_PACKAGES += $(foreach ver,$(PERL_VERSIONS),$(TEST_REQUIRED_PACKAGES.perl:%=%-$(subst .,,$(ver)))) |
| | | |
| | | # Generate conflicting packages for all built python version variants for given package |
| | | TEST_CONFLICTING_PACKAGES += $(foreach ver,$(PYTHON_VERSIONS),$(TEST_CONFLICTING_PACKAGES.python:%=%-$(shell echo $(ver) | tr -d .))) |
| | | TEST_CONFLICTING_PACKAGES += $(foreach ver,$(PYTHON_VERSIONS),$(TEST_CONFLICTING_PACKAGES.python:%=%-$(subst .,,$(ver)))) |
| | | |
| | | # Targets for some tools rarely used by the build framework. We do not add |
| | | # these tools to USERLAND_REQUIRED_PACKAGES to do not pollute it. |
| | | $(QUILT): |
| | | @echo |
| | | @echo "$(QUILT) is missing" |
| | | @echo "Please install developer/quilt package" |
| | | @echo |
| | | @exit 1 |
| | | |
| | | include $(WS_MAKE_RULES)/environment.mk |
| | | include $(WS_MAKE_RULES)/depend.mk |