Experiment with multiple A2 bases
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 16 Mar 2023 07:25:49 +0000 (08:25 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 16 Mar 2023 07:25:49 +0000 (08:25 +0100)
common.mk [new file with mode: 0644]
osgi.mk

diff --git a/common.mk b/common.mk
new file mode 100644 (file)
index 0000000..05d882f
--- /dev/null
+++ b/common.mk
@@ -0,0 +1,13 @@
+build-major=2
+build-minor=3
+
+# Required third party libraries
+ECJ_BRANCH=4.26
+BND_BRANCH=5.3
+SYSLOGGER_BRANCH=$(build-major).$(build-minor)
+
+find-build-tp:
+       $(foreach base, $(A2_BASE), \
+       $(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)) \
+       )
+       echo $(LOGGER_JAR)
\ No newline at end of file
diff --git a/osgi.mk b/osgi.mk
index 6426155e1f7822eaae17c5e553dae6eb27f14163..227ec17133b0ca24abc1d63b7c9c8179e6154aad 100644 (file)
--- a/osgi.mk
+++ b/osgi.mk
@@ -1,3 +1,4 @@
+include common.mk
 #
 # Common build routines to be included in Makefiles
 #
@@ -21,7 +22,7 @@ DEP_CATEGORIES ?=
 JAVADOC_PACKAGES ?=
 A2_BASE ?= $(A2_OUTPUT)
 
-LOGGER_JAR ?= $(A2_BASE)/org.argeo.tp/org.argeo.tp.syslogger.2.3.jar
+#LOGGER_JAR ?= $(A2_BASE)/org.argeo.tp/org.argeo.tp.syslogger.2.3.jar
 ECJ_JAR ?= $(A2_BASE)/org.argeo.tp.sdk/org.eclipse.jdt.core.compiler.batch.3.32.jar
 BNDLIB_JAR ?= $(A2_BASE)/org.argeo.tp.sdk/biz.aQute.bndlib.5.3.jar
 ARGEO_MAKE = $(JVM) -cp $(LOGGER_JAR):$(ECJ_JAR):$(BNDLIB_JAR) $(SDK_SRC_BASE)/sdk/argeo-build/src/org/argeo/build/Make.java
@@ -44,12 +45,13 @@ javadoc: $(BUILD_BASE)/built
 
 # Actual build (compilation + bundle packaging)
 $(BUILD_BASE)/built : BUNDLES_TO_BUILD = $(subst $(abspath $(BUILD_BASE))/,, $(subst to-build,, $?))
-$(BUILD_BASE)/built : $(TODOS)
-       $(ARGEO_MAKE) all --a2-bases $(A2_BASE) --dep-categories $(DEP_CATEGORIES) --category $(A2_CATEGORY) --bundles $(BUNDLES_TO_BUILD)
+$(BUILD_BASE)/built : find-build-tp $(TODOS)
+       $(JVM) -cp $(LOGGER_JAR):$(ECJ_JAR):$(BNDLIB_JAR) $(SDK_SRC_BASE)/sdk/argeo-build/src/org/argeo/build/Make.java \
+        all --a2-bases $(A2_BASE) --dep-categories $(DEP_CATEGORIES) --category $(A2_CATEGORY) --bundles $(BUNDLES_TO_BUILD)
        touch $(BUILD_BASE)/built 
 
-$(A2_OUTPUT)/%.$(major).$(minor).jar : $(BUILD_BASE)/$$(subst $(A2_CATEGORY)/,,$$*)/to-build
-       $(ARGEO_MAKE) all --a2-bases $(A2_BASE) --dep-categories $(DEP_CATEGORIES) --category $(A2_CATEGORY) --bundles $(subst $(A2_CATEGORY)/,,$*)
+#$(A2_OUTPUT)/%.$(major).$(minor).jar : $(BUILD_BASE)/$$(subst $(A2_CATEGORY)/,,$$*)/to-build
+#      $(ARGEO_MAKE) all --a2-bases $(A2_BASE) --dep-categories $(DEP_CATEGORIES) --category $(A2_CATEGORY) --bundles $(subst $(A2_CATEGORY)/,,$*)
 
 $(BUILD_BASE)/%/to-build : $$(shell find % -type f -not -path 'bin/*' -not -path '*/MANIFEST.MF' | sed 's/ /\\ /g')
        @rm -rf $(dir $@)