# 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
+A2_OUTPUT = $(SDK_BUILD_BASE)/a2
JVM ?= $(JAVA_HOME)/bin/java
JAVADOC ?= $(JAVA_HOME)/bin/javadoc
JAVADOC_PACKAGES ?=
A2_BASE ?=/usr/share/a2 /usr/local/share/a2 $(A2_OUTPUT)
+# We always use the latest version of the ECJ compiler
+ECJ_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(sort $(wildcard $(base)/org.argeo.tp.build/org.eclipse.jdt.core.compiler.batch.$(ECJ_MAJOR).*.jar))))
# Third-party libraries
LOGGER_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/log/syslogger/org.argeo.tp/org.argeo.tp.syslogger.$(SYSLOGGER_BRANCH).jar)))
-ECJ_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.argeo.tp.build/org.eclipse.jdt.core.compiler.batch.$(ECJ_BRANCH).jar)))
BNDLIB_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.argeo.tp.build/biz.aQute.bndlib.$(BNDLIB_BRANCH).jar)))
# Internal variables
# Actual build (compilation + bundle packaging)
$(BUILD_BASE)/built : BUNDLES_TO_BUILD = $(subst $(abspath $(BUILD_BASE))/,, $(subst to-build,, $?))
$(BUILD_BASE)/built : $(TODOS)
- $(ARGEO_MAKE) \
+ @echo | Compiler : $(ECJ_JAR)
+ @echo | A2 category : $(A2_CATEGORY)
+ @echo | Bundles : $(BUNDLES_TO_BUILD)
+ @echo | Dependencies : $(DEP_CATEGORIES)
+ @echo | A2 bases : $(A2_BASE)
+ @$(ARGEO_MAKE) \
all --a2-bases $(A2_BASE) --dep-categories $(DEP_CATEGORIES) \
--category $(A2_CATEGORY) --bundles $(BUNDLES_TO_BUILD)
@touch $(BUILD_BASE)/built
clean-manifests :
@rm -rf $(foreach bundle, $(BUNDLES), $(bundle)/META-INF/MANIFEST.MF);
+osgi-install:
+ $(ARGEO_MAKE) \
+ install --category $(A2_CATEGORY) --bundles $(BUNDLES) \
+ --target $(A2_INSTALL_TARGET)
+
+osgi-uninstall:
+ $(ARGEO_MAKE) \
+ uninstall --category $(A2_CATEGORY) --bundles $(BUNDLES) \
+ --target $(A2_INSTALL_TARGET)
+
# Javadoc generation
javadoc: $(BUILD_BASE)/built
$(JAVADOC) -noindex -quiet -Xmaxwarns 1 -d $(BUILD_BASE)/api --source-path $(subst $(space),$(pathsep),$(strip $(JAVADOC_SRCS))) -subpackages $(JAVADOC_PACKAGES)