# 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
# The following variables should be declared in the including Makefile:
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))
all: $(BUILD_BASE)/repackaged
+install:
+ @$(foreach category, $(CATEGORIES), mkdir -p $(A2_INSTALL_TARGET)/$(category); cp $(A2_OUTPUT)/$(category)/*.jar $(A2_INSTALL_TARGET)/$(category);)
+ @echo Installed $(CATEGORIES) to $(A2_INSTALL_TARGET)
+
+uninstall:
+ @$(foreach category, $(CATEGORIES), rm -rf $(A2_INSTALL_TARGET)/$(category);)
+ @find $(A2_INSTALL_TARGET) -empty -type d -delete
+ @echo Uninstalled $(CATEGORIES) from $(A2_INSTALL_TARGET)
+
.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)
- $(ARGEO_REPACKAGE) $(A2_OUTPUT) $(CATEGORIES_TO_REPACKAGE)
- touch $(BUILD_BASE)/repackaged
+ @$(ARGEO_REPACKAGE) $(A2_OUTPUT) $(CATEGORIES_TO_REPACKAGE)
+ @touch $(BUILD_BASE)/repackaged
$(BUILD_BASE)/%/to-repackage : $$(shell find % -type f )
@rm -rf $(dir $@)
@touch $@
clean:
- $(foreach category, $(CATEGORIES), rm -rf $(BUILD_BASE)/$(category))
- rm -f $(BUILD_BASE)/repackaged
+ @$(foreach category, $(CATEGORIES), rm -rf $(BUILD_BASE)/$(category))
+ @rm -f $(BUILD_BASE)/repackaged