| | |
| | | # 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.%) |
| | |
| | | PYTHON_VERSION = 3.9 |
| | | PYTHON_VERSIONS = 3.9 |
| | | |
| | | # These variables are for backward compatibility only. Components should stop |
| | | # to use them. Once they do so these vars should be removed. |
| | | PYTHON3_VERSION = $(PYTHON_VERSION) |
| | | PYTHON3_VERSIONS = $(PYTHON_VERSIONS) |
| | | PYTHON3_RUNTIME_PKG = runtime/python-$(subst .,,$(PYTHON3_VERSION)) |
| | | PYTHON_ALL_VERSIONS = $(PYTHON_VERSIONS) |
| | | PYTHON_VERSIONS_ALL= $(PYTHON_VERSIONS) |
| | | |
| | | # Python up to 2.7 was built both 32-bit and 64-bit. Starting with Python 3.x |
| | | # the python package is built 64-bit only. So now all PYTHON_VERSIONS are |
| | | # 64-bit only. |
| | |
| | | # |
| | | # This list should be usually empty. Intersection of |
| | | # PYTHON_VERSIONS_OBSOLETING and PYTHON_VERSIONS lists MUST be always empty. |
| | | PYTHON_VERSIONS_OBSOLETING = 2.7 3.5 3.7 |
| | | PYTHON_VERSIONS_OBSOLETING = 2.7 3.7 |
| | | |
| | | # PYTHON3_SOABI variable defines the naming scheme |
| | | # of python3 extension libraries: cpython or abi3. |
| | |
| | | |
| | | PKG_REPO = file:$(WS_REPO) |
| | | |
| | | COMPONENT = $(COMPONENT_DIR:$(WS_TOP)/components/%=%) |
| | | HUMAN_VERSION ?= $(COMPONENT_VERSION) |
| | | COMPONENT_SRC_NAME = $(COMPONENT_NAME) |
| | | |
| | |
| | | ARCHLIBSUBDIR64 = $(MACH64) |
| | | ARCHLIBSUBDIR = $(ARCHLIBSUBDIR$(BITS)) |
| | | |
| | | ETCDIR = /etc |
| | | USRDIR = /usr |
| | | BINDIR = /bin |
| | | SBINDIR = /sbin |
| | | LIBDIR = /lib |
| | | VARDIR = /var |
| | | KERNELDRVDIR = /kernel/drv |
| | | KERNELDRVDIR32 =/kernel/drv |
| | | KERNELDRVDIR64 =/kernel/drv/$(MACH64) |
| | | USRBINDIR = $(USRDIR)/bin |
| | | USRBINDIR32 = $(USRDIR)/bin/$(MACH32) |
| | | USRBINDIR64 = $(USRDIR)/bin/$(MACH64) |
| | | USRSBINDIR = $(USRDIR)/sbin |
| | | USRSBINDIR32 = $(USRDIR)/sbin/$(MACH32) |
| | | USRSBINDIR64 = $(USRDIR)/sbin/$(MACH64) |
| | | USRLIBDIR = $(USRDIR)/lib |
| | | USRLIBDIR32 = $(USRDIR)/lib |
| | | USRLIBDIR64 = $(USRDIR)/lib/$(MACH64) |
| | | USRSHAREDIR = $(USRDIR)/share |
| | | USRINCDIR = $(USRDIR)/include |
| | | ETCDIR = /etc |
| | | USRDIR = /usr |
| | | BINDIR = /bin |
| | | SBINDIR = /sbin |
| | | LIBDIR = /lib |
| | | LIBEXECDIR = /libexec |
| | | VARDIR = /var |
| | | KERNELDRVDIR = /kernel/drv |
| | | KERNELDRVDIR32 = /kernel/drv |
| | | KERNELDRVDIR64 = /kernel/drv/$(MACH64) |
| | | USRBINDIR = $(USRDIR)/bin |
| | | USRBINDIR32 = $(USRDIR)/bin/$(MACH32) |
| | | USRBINDIR64 = $(USRDIR)/bin/$(MACH64) |
| | | USRSBINDIR = $(USRDIR)/sbin |
| | | USRSBINDIR32 = $(USRDIR)/sbin/$(MACH32) |
| | | USRSBINDIR64 = $(USRDIR)/sbin/$(MACH64) |
| | | USRLIBDIR = $(USRDIR)/lib |
| | | USRLIBDIR32 = $(USRDIR)/lib |
| | | USRLIBDIR64 = $(USRDIR)/lib/$(MACH64) |
| | | USRLIBEXECDIR = $(USRDIR)/libexec |
| | | USRLIBEXECDIR32 = $(USRDIR)/libexec |
| | | USRLIBEXECDIR64 = $(USRDIR)/libexec/$(MACH64) |
| | | USRSHAREDIR = $(USRDIR)/share |
| | | USRINCDIR = $(USRDIR)/include |
| | | USRSHARELOCALEDIR = $(USRSHAREDIR)/locale |
| | | USRSHAREMANDIR = $(USRSHAREDIR)/man |
| | | USRSHAREDOCDIR = $(USRSHAREDIR)/doc |
| | |
| | | |
| | | # The *.$(BITS) variables are different from those above (better suited for |
| | | # isaexec wrapper), and allow for default 32-bit vs. nondefault 64-bit setups |
| | | USRBINDIR.32 = $(USRBINDIR) |
| | | USRBINDIR.64 = $(USRBINDIR64) |
| | | USRSBINDIR.32 = $(USRSBINDIR) |
| | | USRSBINDIR.64 = $(USRSBINDIR64) |
| | | USRLIBDIR.32 = $(USRLIBDIR) |
| | | USRLIBDIR.64 = $(USRLIBDIR64) |
| | | |
| | | PROTOETCDIR = $(PROTO_DIR)/$(ETCDIR) |
| | | PROTOETCSECDIR = $(PROTO_DIR)/$(ETCDIR)/security |
| | | PROTOUSRDIR = $(PROTO_DIR)/$(USRDIR) |
| | | PROTOBINDIR = $(PROTO_DIR)/$(BINDIR) |
| | | PROTOSBINDIR = $(PROTO_DIR)/$(SBINDIR) |
| | | PROTOLIBDIR = $(PROTO_DIR)/$(LIBDIR) |
| | | PROTOVARDIR = $(PROTO_DIR)/$(VARDIR) |
| | | USRBINDIR.32 = $(USRBINDIR) |
| | | USRBINDIR.64 = $(USRBINDIR64) |
| | | USRSBINDIR.32 = $(USRSBINDIR) |
| | | USRSBINDIR.64 = $(USRSBINDIR64) |
| | | USRLIBDIR.32 = $(USRLIBDIR) |
| | | USRLIBDIR.64 = $(USRLIBDIR64) |
| | | USRLIBEXECDIR.32 = $(USRLIBEXECDIR) |
| | | USRLIBEXECDIR.64 = $(USRLIBEXECDIR64) |
| | | PROTOETCDIR = $(PROTO_DIR)/$(ETCDIR) |
| | | PROTOETCSECDIR = $(PROTO_DIR)/$(ETCDIR)/security |
| | | PROTOUSRDIR = $(PROTO_DIR)/$(USRDIR) |
| | | PROTOBINDIR = $(PROTO_DIR)/$(BINDIR) |
| | | PROTOSBINDIR = $(PROTO_DIR)/$(SBINDIR) |
| | | PROTOLIBDIR = $(PROTO_DIR)/$(LIBDIR) |
| | | PROTOLIBEXECDIR = $(PROTO_DIR)/$(LIBEXECDIR) |
| | | PROTOVARDIR = $(PROTO_DIR)/$(VARDIR) |
| | | PROTOKERNELDRVDIR = $(PROTO_DIR)/$(KERNELDRVDIR) |
| | | PROTOKERNELDRVDIR32 = $(PROTO_DIR)/$(KERNELDRVDIR32) |
| | | PROTOKERNELDRVDIR64 = $(PROTO_DIR)/$(KERNELDRVDIR64) |
| | |
| | | PROTOUSRLIBDIR = $(PROTO_DIR)/$(USRLIBDIR) |
| | | PROTOUSRLIBDIR32 = $(PROTO_DIR)/$(USRLIBDIR32) |
| | | PROTOUSRLIBDIR64 = $(PROTO_DIR)/$(USRLIBDIR64) |
| | | PROTOUSRLIBEXECDIR = $(PROTO_DIR)/$(USRLIBEXECDIR) |
| | | PROTOUSRLIBEXECDIR32 = $(PROTO_DIR)/$(USRLIBEXECDIR32) |
| | | PROTOUSRLIBEXECDIR64 = $(PROTO_DIR)/$(USRLIBEXECDIR64) |
| | | PROTOUSRINCDIR = $(PROTO_DIR)/$(USRINCDIR) |
| | | PROTOUSRSHAREDIR = $(PROTO_DIR)/$(USRSHAREDIR) |
| | | PROTOUSRSHARELIBDIR = $(PROTO_DIR)/$(USRSHARELIBDIR) |
| | |
| | | PROTOUSRSBINDIR.64 = $(PROTOUSRSBINDIR64) |
| | | PROTOUSRLIBDIR.32 = $(PROTOUSRLIBDIR) |
| | | PROTOUSRLIBDIR.64 = $(PROTOUSRLIBDIR64) |
| | | PROTOUSRLIBEXECDIR.32 = $(PROTOUSRLIBEXECDIR) |
| | | PROTOUSRLIBEXECDIR.64 = $(PROTOUSRLIBEXECDIR64) |
| | | |
| | | # NOTE: We do not build SFW contents |
| | | # /usr/sfw/bin is just a historic artefact, containing symlinks |
| | |
| | | # set the default directory for test of the component |
| | | COMPONENT_TEST_DIR = $(@D) |
| | | |
| | | # prepare the testing environment before we run tests |
| | | COMPONENT_TEST_DEP += component-test-environment-prep |
| | | # we test built components |
| | | COMPONENT_TEST_DEP += $(BUILD_DIR)/%/.built |
| | | |
| | | # determine the type of tests we want to run. |
| | | ifeq ($(strip $(wildcard $(COMPONENT_TEST_RESULTS_DIR)/results-*.master)),) |
| | | TEST_NO_ARCH = $(BUILD_DIR_NO_ARCH)/.tested |
| | |
| | | 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 = 18 |
| | | CLANG_VERSION = $(CLANG_DEFAULT) |
| | | CLANG_FULL_VERSION = $(CLANG_VERSION).1 |
| | | 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.9.VENDOR_PACKAGES.64 = /usr/lib/python3.9/vendor-packages |
| | | PYTHON.3.9.VENDOR_PACKAGES.32 = /usr/lib/python3.9/vendor-packages |
| | | PYTHON.3.9.VENDOR_PACKAGES = $(PYTHON.3.9.VENDOR_PACKAGES.$(BITS)) |
| | |
| | | F77 = $(F77.$(COMPILER).$(BITS)) |
| | | FC = $(FC.$(COMPILER).$(BITS)) |
| | | |
| | | RUBY_VERSION = 2.3 |
| | | # |
| | | # We will start to obsolete major Ruby versions according the following table: |
| | | # |
| | | # +--------------+----------------+ |
| | | # | Ruby version | Obsolete after | |
| | | # +--------------+----------------+ |
| | | # | 2.3 | 2019-03-31 | |
| | | # | 3.2 | 2026-03-31 | |
| | | # +--------------+----------------+ |
| | | # |
| | | # See https://www.ruby-lang.org/en/downloads/branches/ |
| | | # |
| | | |
| | | RUBY_VERSION = 3.2 |
| | | |
| | | 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)) |
| | | |
| | |
| | | # python2 was built for both 32- and 64-bits. |
| | | # python3 is built for 64-bits only. |
| | | |
| | | PYTHON.2.7 = /usr/bin/python2.7 |
| | | PYTHON.2.7.64 = /usr/bin/$(MACH64)/python2.7 |
| | | |
| | | PYTHON.3.9 = /usr/bin/python3.9 |
| | | PYTHON.3.9.64 = $(PYTHON.3.9) |
| | | |
| | | PYTHON.64 = $(PYTHON.$(PYTHON_VERSION).64) |
| | | PYTHON.32 = $(PYTHON.$(PYTHON_VERSION)) |
| | | PYTHON = $(PYTHON.$(PYTHON_VERSION)) |
| | | |
| | | TOX.3.9 = /usr/bin/tox-3.9 |
| | |
| | | # and re-add $(PYTHON_SCRIPTS_PROCESS) |
| | | 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) |
| | | JAVA8_HOME = /usr/jdk/openjdk1.8.0 |
| | | JAVA11_HOME = /usr/jdk/openjdk11 |
| | | JAVA17_HOME = /usr/jdk/openjdk17 |
| | | JAVA21_HOME = /usr/jdk/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) |
| | |
| | | # |
| | | |
| | | # 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) |
| | |
| | | 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 | |
| | | # | 16 | 2028-11-09 | |
| | | # +--------------------+----------------+ |
| | | # |
| | | # 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 ?= 16 |
| | | 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.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.64 = /usr/bin/sparcv9/tclsh8.6 |
| | | TCLSH = $(TCLSH.$(TCL_VERSION).$(MACH).$(BITS)) |
| | | |
| | | # ICU library |
| | | ICU_VERSION = 74 |
| | | ICU_LIBRARY_PKG = library/icu-$(ICU_VERSION) |
| | | REQUIRED_PACKAGES_SUBST += ICU_LIBRARY_PKG |
| | | |
| | | |
| | | CCSMAKE = /usr/ccs/bin/make |
| | | GMAKE = /usr/gnu/bin/make |
| | | GPATCH = /usr/gnu/bin/patch |
| | |
| | | PKGLINT = ${WS_TOOLS}/pkglint |
| | | endif |
| | | |
| | | ACLOCAL = /usr/bin/aclocal-1.10 |
| | | AUTOMAKE = /usr/bin/automake-1.10 |
| | | ACLOCAL = /usr/bin/aclocal-1.16 |
| | | AUTOMAKE = /usr/bin/automake-1.16 |
| | | AUTORECONF = /usr/bin/autoreconf |
| | | |
| | | KSH93 = /usr/bin/ksh93 |
| | |
| | | LN = /bin/ln |
| | | CAT = /bin/cat |
| | | SYMLINK = /bin/ln -s |
| | | ENV = /usr/bin/env |
| | | ENV = /usr/bin/env -i |
| | | FIND = /usr/bin/find |
| | | INSTALL = /usr/bin/ginstall |
| | | GNU_GREP = /usr/gnu/bin/grep |
| | |
| | | STRIP = /usr/bin/strip |
| | | IPS2TGZ = $(WS_TOOLS)/ips2tgz |
| | | JQ = /usr/bin/jq |
| | | DOS2UNIX = /usr/bin/dos2unix |
| | | TAC = /usr/bin/tac |
| | | QUILT = /usr/bin/quilt |
| | | CTFCONVERT = /opt/onbld/bin/$(MACH)/ctfconvert |
| | | |
| | | 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 |
| | |
| | | |
| | | # Add compiler specific 'default' features |
| | | CFLAGS += $(CFLAGS.$(COMPILER)) |
| | | |
| | | # Per-compiler CFLAGS to use when building for CTF. Currently only defined |
| | | # for gcc; could be made to work with other compilers. |
| | | |
| | | # -gdwarf-4 is the newest DWARF revision understood by illumos libctf |
| | | # |
| | | # -gstrict-dwarf prevents the compiler from including newer DWARF features |
| | | CTF_CFLAGS.gcc = -g -gdwarf-4 -gstrict-dwarf |
| | | # -msave-args makes it possible for debugging tools (specifically pstack and |
| | | # mdb) to retrieve function arguments, and is required for the python pstack |
| | | # hooks. |
| | | CTF_CFLAGS.gcc += -msave-args |
| | | # By default, GCC may put parts of functions in different named sub-sections |
| | | # of .text based on their presumed or measured calling frequency. This is not |
| | | # currently handled by libctf and other illumos tools which assume that a |
| | | # function's text lies in a single contiguous range of virtual addresses. |
| | | # Disable this optimization if building with CTF. |
| | | CTF_CFLAGS.gcc += -fno-reorder-functions -fno-reorder-blocks-and-partition |
| | | |
| | | # Enable CTF if desired |
| | | ifeq ($(strip $(USE_CTF)),yes) |
| | | CFLAGS += $(if $(CTF_CFLAGS.$(COMPILER)), \ |
| | | $(CTF_CFLAGS.$(COMPILER)), \ |
| | | $(error Error: CTF_CFLAGS.$(COMPILER) must be defined to use CTF with $(COMPILER))) |
| | | endif |
| | | |
| | | # Build 32 or 64 bit objects in C++ as well. |
| | | CXXFLAGS += $(CC_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),$(USERLAND_REQUIRED_PACKAGES.python:%=%-$(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 |
| | | USERLAND_REQUIRED_PACKAGES += $(foreach ver,$(PERL_VERSIONS),$(USERLAND_REQUIRED_PACKAGES.perl:%=%-$(shell echo $(ver) | tr -d .))) |
| | | 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 |