X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=inline;f=repackage.mk;h=f68fc09ff933afcf3edf4b4a7bc7cb507e3d22fc;hb=731021f68224b769cffee4d89f2938fc23e56a56;hp=3461a25370cea0eb600b6104f417318197945eae;hpb=042b45bd86c0ccbf66f6083f7073c76f985560f5;p=cc0%2Fargeo-build.git diff --git a/repackage.mk b/repackage.mk index 3461a25..f68fc09 100644 --- a/repackage.mk +++ b/repackage.mk @@ -1,43 +1,32 @@ ARGEO_BUILD_BASE := $(dir $(lastword $(MAKEFILE_LIST))) include $(ARGEO_BUILD_BASE)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 -JVM ?= $(JAVA_HOME)/bin/java # The following variables should be declared in the including Makefile: -# CATEGORIES the space-separated list of categories to repackage +# 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)/log/syslogger/org.argeo.tp/org.argeo.tp.syslogger.$(SYSLOGGER_BRANCH).jar))) -BNDLIB_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.argeo.tp.build/biz.aQute.bndlib.$(BNDLIB_BRANCH).jar))) +LOGGER_JAR ?= $(firstword $(foreach base, $(A2_BASE), $(wildcard $(base)/log/syslogger/org.argeo.tp/org.argeo.tp.syslogger.$(SYSLOGGER_BRANCH).jar))) +BNDLIB_JAR ?= $(firstword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.argeo.tp.build/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)) REPACKAGED_CATEGORIES = $(foreach category, $(CATEGORIES),$(A2_OUTPUT)/$(category)) +INSTALL=install -m644 -D all: $(BUILD_BASE)/repackaged install: - @$(foreach category, $(PORTABLE_CATEGORIES), mkdir -p $(A2_INSTALL_TARGET)/$(category); cp $(A2_OUTPUT)/$(category)/*.jar $(A2_INSTALL_TARGET)/$(category);) + $(foreach category, $(PORTABLE_CATEGORIES), $(INSTALL) $(wildcard $(A2_OUTPUT)/$(category)/*.jar) $(A2_INSTALL_TARGET)/$(category);$(LF)) @echo Installed portable jars '$(PORTABLE_CATEGORIES)' to $(A2_INSTALL_TARGET) - @$(foreach category, $(OS_CATEGORIES), mkdir -p $(A2_INSTALL_TARGET)/$(category); cp $(A2_OUTPUT)/$(category)/*.jar $(A2_INSTALL_TARGET)/$(category);) + $(foreach category, $(OS_CATEGORIES), $(INSTALL) $(wildcard $(A2_OUTPUT)/$(category)/*.jar) $(A2_INSTALL_TARGET)/$(patsubst,$(TARGET_OS_CATEGORY_PREFIX)/%,%,$(category));$(LF)) @echo Installed OS-dependent jars '$(OS_CATEGORIES)' to $(A2_INSTALL_TARGET) - mkdir -p $(A2_NATIVE_INSTALL_TARGET) - @$(foreach category, $(ARCH_CATEGORIES), mkdir -p $(A2_NATIVE_INSTALL_TARGET)/$(category); cp $(A2_OUTPUT)/$(category)/*.jar $(A2_NATIVE_INSTALL_TARGET)/$(category);) + $(foreach category, $(ARCH_CATEGORIES), $(INSTALL) $(wildcard $(A2_OUTPUT)/$(category)/*.jar) $(A2_NATIVE_INSTALL_TARGET)/$(patsubst,$(TARGET_OS_CATEGORY_PREFIX)/%,%,$(category));$(LF)) @echo Installed arch-dependent jars '$(ARCH_CATEGORIES)' to $(A2_NATIVE_INSTALL_TARGET) - @$(foreach category, $(ARCH_CATEGORIES), cp $(A2_OUTPUT)/$(category)/*.so $(A2_NATIVE_INSTALL_TARGET);) + $(foreach category, $(ARCH_CATEGORIES), $(INSTALL) $(wildcard $(A2_OUTPUT)/$(category)/*.so) $(A2_NATIVE_INSTALL_TARGET);$(LF)) @echo Installed arch binaries '$(ARCH_CATEGORIES)' to $(A2_NATIVE_INSTALL_TARGET) uninstall: