Improve native install
[cc0/argeo-build.git] / repackage.mk
index e1846b72aee284473fa202087c5710e5f185dda7..228f6ed8c813fcc56b276d3000677e973cbef0be 100644 (file)
@@ -7,7 +7,7 @@ include $(ARGEO_BUILD_BASE)common.mk
 # 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:
@@ -25,16 +25,31 @@ BNDLIB_JAR ?= $(lastword $(foreach base, $(A2_BASE), $(wildcard $(base)/org.arge
 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, $(PORTABLE_CATEGORIES), mkdir -p $(A2_INSTALL_TARGET)/$(category);  cp $(A2_OUTPUT)/$(category)/*.jar $(A2_INSTALL_TARGET)/$(category);)
+       @echo Installed $(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);)
+       @echo Installed $(OS_CATEGORIES) to $(A2_INSTALL_TARGET)
+       mkdir -p $(A2_NATIVE_INSTALL_TARGET)
+       @$(foreach category, $(ARCH_CATEGORIES), cp $(A2_OUTPUT)/$(category)/*.so $(A2_NATIVE_INSTALL_TARGET);)
+       @echo Installed $(ARCH_CATEGORIES) to $(A2_NATIVE_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 $@)
@@ -42,5 +57,5 @@ $(BUILD_BASE)/%/to-repackage : $$(shell find % -type f )
        @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