make/common/Modules.gmk
Print this page
@@ -131,30 +131,49 @@
$(JRE_MODULE_IMAGE_DIR)/README.txt: $(SHARE_JRE_DOC_SRC)/README
$(process-doc-file)
endif
#
+# On Windows dll's are installed into the same direcory as native cmds
+ifeq ($(PLATFORM), windows)
+ NATLIBS_DIR=bin
+else
+ NATLIBS_DIR=lib/$(LIBARCH)
+endif
+
+#
# Create a module library for the specified image location
define create-module-library
image=$(strip $1); \
mlib=$(MODULE_IMAGES_DIR)/$$image/lib/modules; \
+natlib=$(MODULE_IMAGES_DIR)/$$image/$(NATLIBS_DIR); \
+natcmd=$(MODULE_IMAGES_DIR)/$$image/bin; \
+config=$(MODULE_IMAGES_DIR)/$$image/lib; \
$(ECHO) "Creating module library $$mlib" ; \
-$(HOST_JMOD_CMD) create -N $(JMOD_CREATE_ARGS) -L $$mlib
+$(HOST_JMOD_CMD) create -N $(JMOD_CREATE_ARGS) -L $$mlib \
+ --natlib $$natlib --natcmd $$natcmd --config $$config
endef
# Copy module content to the module image
# $1 - image location
# $2 - module name
#
define copy-module-content
image=$(strip $1); m=$(strip $2); \
javahome=$(MODULE_IMAGES_DIR)/$$image; \
-for d in bin lib ; do \
- if [ -d $$m/$$d ] ; then \
- $(CP) -rf $(ABS_MODULEPATH_DIR)/$$m/$$d $$javahome; \
- fi ; \
-done
+natlib=$(MODULE_IMAGES_DIR)/$$image/$(NATLIBS_DIR); \
+natcmd=$(MODULE_IMAGES_DIR)/$$image/bin; \
+config=$(MODULE_IMAGES_DIR)/$$image/lib; \
+if [ -d $$m/bin ] ; then \
+ $(CP) -rf $(ABS_MODULEPATH_DIR)/$$m/bin/* $$natcmd; \
+fi ; \
+if [ -d $$m/lib ] ; then \
+ $(CP) -rf $(ABS_MODULEPATH_DIR)/$$m/lib/* $$natlib; \
+fi ; \
+if [ -d $$m/etc ] ; then \
+ $(CP) -rf $(ABS_MODULEPATH_DIR)/$$m/etc/* $$config; \
+fi
endef
#
# Copy JRE image to the dest
# $1 - jre image location
@@ -176,31 +195,33 @@
fi
endef
#
# Install jigsaw module
+# Install from the jmod file, if it has been created (see BUILD_PACKAGES)
# $1 - image location
# $2 - module name
define install-jigsaw-module
image=$(strip $1); m=$(strip $2); \
mlib=$(MODULE_IMAGES_DIR)/$$image/lib/modules; \
mid=`$(HOST_JMOD_CMD) ls -L $$mlib $$m | $(GREP) -v '#'` ; \
+jmodfile=$(ABS_OUTPUTDIR)/jigsaw-pkgs/jmod/$$m@$(MODULE_VERSION).jmod ; \
if [ "x$$mid" = "x" ] ; then \
- $(ECHO) "Installing module $$m in $$image" ; \
$(CD) $(ABS_MODULEPATH_DIR) && \
- if [ -d $$m/resources ] ; then \
- $(HOST_JMOD_CMD) install $$m/classes -r $$m/resources -L $$mlib $(JMOD_INSTALL_ARGS) $$m || exit 1; \
+ if [ -f $$jmodfile ] ; then \
+ $(ECHO) "Installing module $$m in $$image, from $$jmodfile" ; \
+ $(HOST_JMOD_CMD) install $$jmodfile -L $$mlib || exit 1; \
else \
+ $(ECHO) "Installing module $$m in $$image, from $$m/classes and copy" ; \
$(HOST_JMOD_CMD) install $$m/classes -L $$mlib $(JMOD_INSTALL_ARGS) $$m || exit 1; \
- fi ; \
$(call copy-module-content,$1,$2) ; \
+ fi ; \
else \
$(ECHO) "Module $$m already installed in $$image" ; \
fi
endef
-
# Rules for building packages
include $(BUILDDIR)/common/BuildNativePackages.gmk
# set BUILD_PACKAGES=false to skip building jmod packages
#