build-major=2 build-minor=1 # Required third party libraries ECJ_MAJOR=3 BNDLIB_BRANCH=5.3 SYSLOGGER_BRANCH=$(build-major).$(build-minor) # The following variables are found in the sdk.mk file which is generated by the configure script: # SDK_SRC_BASE the base of the source code, typically the root of the cloned git repository # SDK_BUILD_BASE the base of the output # JAVA_HOME the base of the JDK used to build A2_OUTPUT = $(SDK_BUILD_BASE)/a2 JVM ?= $(JAVA_HOME)/bin/java JAVADOC ?= $(JAVA_HOME)/bin/javadoc # GNU defaults prefix ?= /usr/local datarootdir ?= $(prefix)/share exec_prefix ?= $(prefix) libdir ?= $(exec_prefix)/lib A2_INSTALL_TARGET ?= $(DESTDIR)$(datarootdir)/a2 A2_NATIVE_INSTALL_TARGET ?= $(DESTDIR)$(libdir)/a2 # The following variables have default values which can be overriden # A2_BASE the space-separated directories where already built a2 categories can be found A2_BASE ?=$(A2_OUTPUT) $(A2_INSTALL_TARGET) $(A2_NATIVE_INSTALL_TARGET) /usr/local/share/a2 /usr/local/lib/a2 /usr/share/a2 /usr/lib/a2 # OS-speciific KNOWN_ARCHS ?= x86_64 aarch64 TARGET_OS ?= linux TARGET_ARCH ?= $(shell uname -m) TARGET_OS_CATEGORY_PREFIX=lib/$(TARGET_OS) TARGET_ARCH_CATEGORY_PREFIX=$(TARGET_OS_CATEGORY_PREFIX)/$(TARGET_ARCH) PORTABLE_CATEGORIES=$(filter-out lib/%, $(CATEGORIES)) ARCH_CATEGORIES=$(filter $(TARGET_ARCH_CATEGORY_PREFIX)/%, $(CATEGORIES)) OS_CATEGORIES=$(filter-out $(foreach arch, $(KNOWN_ARCHS), $(TARGET_OS_CATEGORY_PREFIX)/$(arch)/%), $(filter $(TARGET_OS_CATEGORY_PREFIX)/%, $(CATEGORIES))) ## Utilities # Install to a target directory without executable bit INSTALL=install -m644 -D --target-directory # Always try copy-on-write COPY=--reflink=auto # Recursively delete directories RMDIR=$(RM) -r # Make variables used to replace spaces by a separator, typically in order to generate classpaths # for example: CLASSPATH = $(subst $(space),$(pathsep),$(strip $(JARS))) null := space := $(null) # pathsep := : define LF $(null) endef