JVM ?= $(JAVA_HOME)/bin/java
JAVADOC ?= $(JAVA_HOME)/bin/javadoc
-# 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) /usr/local/share/a2 /usr/share/a2
-
# GNU defaults
prefix ?= /usr/local
datarootdir ?= $(prefix)/share
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
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
+## 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)))