Location-independent makefiles
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 16 Mar 2023 08:21:23 +0000 (09:21 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 16 Mar 2023 08:21:23 +0000 (09:21 +0100)
osgi.mk
repackage.mk

diff --git a/osgi.mk b/osgi.mk
index 4ac180da9c2b341b91d21b4f2ca9b5bc8471a9d8..6f9214409bfaa0933123f7b4744773415eadf432 100644 (file)
--- a/osgi.mk
+++ b/osgi.mk
@@ -1,5 +1,5 @@
-SELF_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
-include $(SELF_DIR)common.mk
+ARGEO_BUILD_BASE := $(dir $(lastword $(MAKEFILE_LIST)))
+include $(ARGEO_BUILD_BASE)common.mk
 #
 # Common build routines to be included in Makefiles
 #
@@ -29,7 +29,7 @@ ECJ_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.argeo.t
 BNDLIB_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.argeo.tp.sdk/biz.aQute.bndlib.$(BNDLIB_BRANCH).jar)))
 
 # Internal variables
-ARGEO_MAKE = $(JVM) -cp $(LOGGER_JAR):$(ECJ_JAR):$(BNDLIB_JAR) $(SDK_SRC_BASE)/sdk/argeo-build/src/org/argeo/build/Make.java
+ARGEO_MAKE = $(JVM) -cp $(LOGGER_JAR):$(ECJ_JAR):$(BNDLIB_JAR) $(ARGEO_BUILD_BASE)/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))
@@ -44,8 +44,8 @@ osgi: $(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)
-       $(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)
+       $(ARGEO_MAKE) all --a2-bases $(A2_BASE) --dep-categories $(DEP_CATEGORIES) \
+        --category $(A2_CATEGORY) --bundles $(BUNDLES_TO_BUILD)
        touch $(BUILD_BASE)/built 
 
 $(BUILD_BASE)/%/to-build : $$(shell find % -type f -not -path 'bin/*' -not -path '*/MANIFEST.MF' | sed 's/ /\\ /g')
index ccb89ed689c83530560fe929afdecf6bfb2e3e5d..a4c591c45ba4110cfbd21abfed872ad9969a53b6 100644 (file)
@@ -1,5 +1,5 @@
-SELF_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
-include $(SELF_DIR)common.mk
+ARGEO_BUILD_BASE := $(dir $(lastword $(MAKEFILE_LIST)))
+include $(ARGEO_BUILD_BASE)common.mk
 #
 # Common repackage routines to be included in Makefiles
 #
@@ -22,21 +22,18 @@ LOGGER_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.arge
 BNDLIB_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.argeo.tp.sdk/biz.aQute.bndlib.$(BNDLIB_BRANCH).jar)))
 
 # Internal variables
+ARGEO_REPACKAGE = $(JVM) -cp $(LOGGER_JAR):$(BNDLIB_JAR) $(ARGEO_BUILD_BASE)/src/org/argeo/build/Repackage.java
 TODOS_REPACKAGE = $(foreach category, $(CATEGORIES),$(BUILD_BASE)/$(category)/to-repackage) 
 BUILD_BASE = $(SDK_BUILD_BASE)/$(shell basename $(SDK_SRC_BASE))
 
 all: $(BUILD_BASE)/repackaged 
 
 .SECONDEXPANSION:
-
 # We use .SECONDEXPANSION and CATEGORIES_TO_REPACKAGE instead of directly CATEGORIES
 # so that we don't repackage a category if it hasn't changed
 $(BUILD_BASE)/repackaged : CATEGORIES_TO_REPACKAGE = $(subst $(abspath $(BUILD_BASE))/,, $(subst to-repackage,, $?))
 $(BUILD_BASE)/repackaged : $(TODOS_REPACKAGE)
-       $(JVM) \
-        -cp $(LOGGER_JAR):$(BNDLIB_JAR) \
-        $(SDK_SRC_BASE)/sdk/argeo-build/src/org/argeo/build/Repackage.java \
-        $(A2_OUTPUT) $(CATEGORIES_TO_REPACKAGE)
+       $(ARGEO_REPACKAGE) $(A2_OUTPUT) $(CATEGORIES_TO_REPACKAGE)
        touch $(BUILD_BASE)/repackaged
 
 $(BUILD_BASE)/%/to-repackage : $$(shell find % -type f )