1 ARGEO_BUILD_BASE
:= $(dir $(lastword
$(MAKEFILE_LIST
)))
2 include $(ARGEO_BUILD_BASE
)common.mk
4 # The following variables should be declared in the including Makefile:
5 # CATEGORIES the space-separated list of categories to repackage
7 A2_BASE ?
=/usr
/share
/a2
/usr
/local
/share
/a2
$(A2_OUTPUT
)
9 # Third-party libraries
10 LOGGER_JAR ?
= $(firstword $(foreach base
, $(A2_BASE
), $(wildcard $(base
)/log
/syslogger
/org.argeo.tp
/org.argeo.tp.syslogger.
$(SYSLOGGER_BRANCH
).jar
)))
11 BNDLIB_JAR ?
= $(firstword $(foreach base
, $(A2_BASE
), $(wildcard $(base
)/org.argeo.tp.build
/biz.aQute.bndlib.
$(BNDLIB_BRANCH
).jar
)))
14 ARGEO_REPACKAGE
= $(JVM
) -cp
$(LOGGER_JAR
):$(BNDLIB_JAR
) $(ARGEO_BUILD_BASE
)src
/org
/argeo
/build
/Repackage.java
15 TODOS_REPACKAGE
= $(foreach category
, $(CATEGORIES
),$(BUILD_BASE
)/$(category
)/to-repackage
)
16 BUILD_BASE
= $(SDK_BUILD_BASE
)/$(shell basename $(SDK_SRC_BASE
))
17 REPACKAGED_CATEGORIES
= $(foreach category
, $(CATEGORIES
),$(A2_OUTPUT
)/$(category
))
19 all: $(BUILD_BASE
)/repackaged
22 @
$(foreach category
, $(PORTABLE_CATEGORIES
), $(INSTALL
) $(A2_INSTALL_TARGET
)/$(category
) $(wildcard $(A2_OUTPUT
)/$(category
)/*.jar
);$(LF
))
23 @echo Installed portable jars
\'$(PORTABLE_CATEGORIES
)\' to
$(A2_INSTALL_TARGET
)
24 @
$(foreach category
, $(OS_CATEGORIES
), $(INSTALL
) $(A2_INSTALL_TARGET
)/$(category
:$(TARGET_OS_CATEGORY_PREFIX
)/%=%) $(wildcard $(A2_OUTPUT
)/$(category
)/*.jar
);$(LF
))
25 @echo Installed OS-dependent jars
\'$(OS_CATEGORIES
)\' to
$(A2_INSTALL_TARGET
)
26 @
$(foreach category
, $(ARCH_CATEGORIES
), $(INSTALL
) $(A2_NATIVE_INSTALL_TARGET
)/$(category
:$(TARGET_ARCH_CATEGORY_PREFIX
)/%=%) $(wildcard $(A2_OUTPUT
)/$(category
)/*.jar
);$(LF
))
27 @echo Installed arch-dependent jars
\'$(ARCH_CATEGORIES
)\' to
$(A2_NATIVE_INSTALL_TARGET
)
28 @
$(foreach category
, $(ARCH_CATEGORIES
), $(INSTALL
) $(A2_NATIVE_INSTALL_TARGET
) $(wildcard $(A2_OUTPUT
)/$(category
)/*.so
);$(LF
))
29 @echo Installed arch binaries
\'$(ARCH_CATEGORIES
)\' to
$(A2_NATIVE_INSTALL_TARGET
)
32 $(foreach category
, $(PORTABLE_CATEGORIES
), $(RM
) $(A2_INSTALL_TARGET
)/$(category
);$(LF
))
33 @echo Uninstalled portable jars
\'$(PORTABLE_CATEGORIES
)\' to
$(A2_INSTALL_TARGET
)
34 $(foreach category
, $(OS_CATEGORIES
), $(RM
) $(A2_INSTALL_TARGET
)/$(category
:$(TARGET_OS_CATEGORY_PREFIX
)/%=%);$(LF
))
35 @echo Uninstalled OS-dependent jars
\'$(OS_CATEGORIES
)\' to
$(A2_INSTALL_TARGET
)
36 $(foreach category
, $(ARCH_CATEGORIES
), $(RM
) $(A2_NATIVE_INSTALL_TARGET
)/$(category
:$(TARGET_ARCH_CATEGORY_PREFIX
)/%=%);$(LF
))
37 @echo Uninstalled arch-dependent jars
\'$(ARCH_CATEGORIES
)\' to
$(A2_NATIVE_INSTALL_TARGET
)
38 $(foreach category
, $(ARCH_CATEGORIES
), \
39 $(foreach libfile
, $(wildcard $(A2_OUTPUT
)/$(category
)/*.so
), $(RM
) $(A2_NATIVE_INSTALL_TARGET
)/$(notdir $(libfile
));$(LF
)) \
41 @echo Uninstalled arch binaries
\'$(ARCH_CATEGORIES
)\' to
$(A2_NATIVE_INSTALL_TARGET
)
42 @find
$(A2_INSTALL_TARGET
) -empty
-type d
-delete
45 # We use .SECONDEXPANSION and CATEGORIES_TO_REPACKAGE instead of directly CATEGORIES
46 # so that we don't repackage a category if it hasn't changed
47 $(BUILD_BASE
)/repackaged
: CATEGORIES_TO_REPACKAGE
= $(subst $(abspath
$(BUILD_BASE
))/,, $(subst to-repackage
,, $?
))
48 $(BUILD_BASE
)/repackaged
: $(TODOS_REPACKAGE
)
49 @
$(ARGEO_REPACKAGE
) $(A2_OUTPUT
) $(CATEGORIES_TO_REPACKAGE
)
50 @touch
$(BUILD_BASE
)/repackaged
52 $(BUILD_BASE
)/%/to-repackage
: $$(shell find
% -type f
)
58 @
$(foreach category
, $(CATEGORIES
), rm -rf
$(BUILD_BASE
)/$(category
))
59 @
rm -f
$(BUILD_BASE
)/repackaged