Improve documentation and repackage
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 16 Mar 2023 08:10:30 +0000 (09:10 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 16 Mar 2023 08:10:30 +0000 (09:10 +0100)
osgi.mk
repackage.mk

diff --git a/osgi.mk b/osgi.mk
index 1513d46761b942de09b1d35de577028886ffb45c..4ac180da9c2b341b91d21b4f2ca9b5bc8471a9d8 100644 (file)
--- a/osgi.mk
+++ b/osgi.mk
@@ -11,41 +11,36 @@ A2_OUTPUT = $(SDK_BUILD_BASE)/a2
 JVM ?= $(JAVA_HOME)/bin/java
 JAVADOC ?= $(JAVA_HOME)/bin/javadoc
 
-# The following variables should be declared in the Makefile:
-# BUNDLES                      the space-separated list of bundles to be built
+# The following variables should be declared in the including Makefile:
+# BUNDLES                      the space-separated list of bundles to build
 # A2_CATEGORY          the (single) a2 category the bundles will belong to
-#
-# The following variables have default values which can be overriden in the Makefile
+
+# The following variables have default values which can be overriden
 # DEP_CATEGORIES       the a2 categories the compilation depends on
 # JAVADOC_PACKAGES     the space-separated list of packages for which javadoc will be generated
 # A2_BASE                      the space-separated directories where already built a2 categories can be found
 DEP_CATEGORIES ?=
 JAVADOC_PACKAGES ?=
-A2_BASE ?= $(A2_OUTPUT)
+A2_BASE ?=/usr/share/a2 /usr/local/share/a2 $(A2_OUTPUT)
 
+# Third-party libraries
 LOGGER_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.argeo.tp/org.argeo.tp.syslogger.$(SYSLOGGER_BRANCH).jar)))
 ECJ_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.argeo.tp.sdk/org.eclipse.jdt.core.compiler.batch.$(ECJ_BRANCH).jar)))
-#ECJ_JAR ?= $(A2_BASE)/org.argeo.tp.sdk/org.eclipse.jdt.core.compiler.batch.3.32.jar
 BNDLIB_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.argeo.tp.sdk/biz.aQute.bndlib.$(BNDLIB_BRANCH).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
 
+# Internal variables
+ARGEO_MAKE = $(JVM) -cp $(LOGGER_JAR):$(ECJ_JAR):$(BNDLIB_JAR) $(SDK_SRC_BASE)/sdk/argeo-build/src/org/argeo/build/Make.java
 JAVADOC_SRCS = $(foreach bundle, $(BUNDLES), $(bundle)/src)
-
 BUILD_BASE = $(SDK_BUILD_BASE)/$(shell basename $(SDK_SRC_BASE))
-
 TARGET_BUNDLES =  $(abspath $(foreach bundle, $(BUNDLES),$(A2_OUTPUT)/$(shell dirname $(bundle))/$(A2_CATEGORY)/$(shell basename $(bundle)).$(major).$(minor).jar))
 TODOS = $(foreach bundle, $(BUNDLES),$(BUILD_BASE)/$(bundle)/to-build) 
 
-## Needed in order to be able to expand $$ variables
+# Needed in order to be able to expand $$ variables
 .SECONDEXPANSION:
 .PHONY: osgi manifests javadoc
 
 osgi: $(BUILD_BASE)/built
 
-javadoc: $(BUILD_BASE)/built
-       $(JAVADOC) -quiet -Xmaxwarns 1 -d $(BUILD_BASE)/api --source-path $(subst $(space),$(pathsep),$(strip $(JAVADOC_SRCS))) -subpackages $(JAVADOC_PACKAGES)
-
 # Actual build (compilation + bundle packaging)
 $(BUILD_BASE)/built : BUNDLES_TO_BUILD = $(subst $(abspath $(BUILD_BASE))/,, $(subst to-build,, $?))
 $(BUILD_BASE)/built : $(TODOS)
@@ -53,9 +48,6 @@ $(BUILD_BASE)/built : $(TODOS)
         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)/,,$*)
-
 $(BUILD_BASE)/%/to-build : $$(shell find % -type f -not -path 'bin/*' -not -path '*/MANIFEST.MF' | sed 's/ /\\ /g')
        @rm -rf $(dir $@)
        @mkdir -p $(dir $@) 
@@ -66,6 +58,10 @@ manifests : osgi
        @mkdir -p $(foreach bundle, $(BUNDLES), $(bundle)/META-INF/);
        @$(foreach bundle, $(BUNDLES), cp -v $(BUILD_BASE)/$(bundle)/META-INF/MANIFEST.MF  $(bundle)/META-INF/MANIFEST.MF;)
 
+# Javadoc generation
+javadoc: $(BUILD_BASE)/built
+       $(JAVADOC) -quiet -Xmaxwarns 1 -d $(BUILD_BASE)/api --source-path $(subst $(space),$(pathsep),$(strip $(JAVADOC_SRCS))) -subpackages $(JAVADOC_PACKAGES)
+
 # Make variables used to replace spaces by a separator, typically in order to generate classpaths
 # for example: CLASSPATH = $(subst $(space),$(pathsep),$(strip $(JARS)))
 null  :=
index b7d54da091585196d7c37a0a24b1e1f5b0c58061..ccb89ed689c83530560fe929afdecf6bfb2e3e5d 100644 (file)
@@ -1,9 +1,28 @@
+SELF_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
+include $(SELF_DIR)common.mk
+#
+# Common repackage routines to be included in Makefiles
+#
+# 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
-A2_BASE ?= $(A2_OUTPUT)
 JVM ?= $(JAVA_HOME)/bin/java
 
-TODOS_REPACKAGE = $(foreach category, $(CATEGORIES),$(BUILD_BASE)/$(category)/to-repackage) 
+# The following variables should be declared in the including Makefile:
+# CATEGORIES           the space-separated list of categories to repackage
+
+# 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 ?=/usr/share/a2 /usr/local/share/a2 $(A2_OUTPUT)
 
+# Third-party libraries
+LOGGER_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.argeo.tp/org.argeo.tp.syslogger.$(SYSLOGGER_BRANCH).jar)))
+BNDLIB_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.argeo.tp.sdk/biz.aQute.bndlib.$(BNDLIB_BRANCH).jar)))
+
+# Internal variables
+TODOS_REPACKAGE = $(foreach category, $(CATEGORIES),$(BUILD_BASE)/$(category)/to-repackage) 
 BUILD_BASE = $(SDK_BUILD_BASE)/$(shell basename $(SDK_SRC_BASE))
 
 all: $(BUILD_BASE)/repackaged 
@@ -15,7 +34,7 @@ all: $(BUILD_BASE)/repackaged
 $(BUILD_BASE)/repackaged : CATEGORIES_TO_REPACKAGE = $(subst $(abspath $(BUILD_BASE))/,, $(subst to-repackage,, $?))
 $(BUILD_BASE)/repackaged : $(TODOS_REPACKAGE)
        $(JVM) \
-        -cp $(A2_BASE)/org.argeo.tp/org.argeo.tp.syslogger.2.3.jar:$(A2_BASE)/org.argeo.tp.sdk/biz.aQute.bndlib.5.3.jar \
+        -cp $(LOGGER_JAR):$(BNDLIB_JAR) \
         $(SDK_SRC_BASE)/sdk/argeo-build/src/org/argeo/build/Repackage.java \
         $(A2_OUTPUT) $(CATEGORIES_TO_REPACKAGE)
        touch $(BUILD_BASE)/repackaged