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
 #