X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=common.mk;h=891f8f8d99347247cd9242a00138f1c060142298;hb=HEAD;hp=9f0cf2e3af1f368a76810cb5624d097338776d86;hpb=bfe072b7357dfa0559013fe00602e5295b07e498;p=cc0%2Fargeo-build.git diff --git a/common.mk b/common.mk index 9f0cf2e..891f8f8 100644 --- a/common.mk +++ b/common.mk @@ -1,16 +1,57 @@ build-major=2 -build-minor=3 +build-minor=1 # Required third party libraries -ECJ_BRANCH=4.26 +ECJ_MAJOR=3 BNDLIB_BRANCH=5.3 SYSLOGGER_BRANCH=$(build-major).$(build-minor) -#A2_BASE=/home/mbaudier/dev/git/unstable/output/a2 /home/mbaudier/dev/git/unstable/argeo-qa/build/argeo/output/a2 test +# 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 -find-build-tp: - $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.argeo.tp/org.argeo.tp.syslogger.$(SYSLOGGER_BRANCH).jar))) - ##$(eval LOGGER_JAR = $(shell if [ -f $(base)/org.argeo.tp/org.argeo.tp.syslogger.$(SYSLOGGER_BRANCH).jar ]; then echo $(base)/org.argeo.tp/org.argeo.tp.syslogger.$(SYSLOGGER_BRANCH).jar; fi)) \ - #) -# $(if $(wildcard $(candidate)), $(eval LOGGER_JAR = $(candidate))) \ - echo $(LOGGER_JAR) \ No newline at end of file +# 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