jdk/make/modules/Makefile
changeset 4665 d14dc3d9e1fa
parent 4524 697144bd8b04
child 4681 7d382dfe6e55
equal deleted inserted replaced
4664:0b0443cbc448 4665:d14dc3d9e1fa
    38 MODULE_JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/manifest.tmp
    38 MODULE_JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/manifest.tmp
    39 
    39 
    40 TMP=$(ABS_TEMPDIR)/modules
    40 TMP=$(ABS_TEMPDIR)/modules
    41 MODULE_CLASSLIST = $(TMP)/classlist
    41 MODULE_CLASSLIST = $(TMP)/classlist
    42 MODULE_CLASSES = $(TMP)/classes
    42 MODULE_CLASSES = $(TMP)/classes
    43 MODULE_LIST = $(MODULE_CLASSLIST)/modules.list
    43 MODULES_LIST = $(MODULE_CLASSLIST)/modules.list
    44 
       
    45 # Modules in the modules/ext directory
       
    46 EXT_MODULES = localedata security-sunec security-sunjce
       
    47 
       
    48 # Build PKCS#11 on all platforms except 64-bit Windows.
       
    49 # We exclude windows-amd64 because we don't have any
       
    50 # 64-bit PKCS#11 implementations to test with on that platform.
       
    51 PKCS11 = security-sunpkcs11
       
    52 ifeq ($(ARCH_DATA_MODEL), 64)
       
    53   ifeq ($(PLATFORM), windows)
       
    54     PKCS11 =
       
    55   endif
       
    56 endif
       
    57 
       
    58 EXT_MODULES += $(PKCS11)
       
    59 
       
    60 # Build Microsoft CryptoAPI provider only on (non-64-bit) Windows platform.
       
    61 ifeq ($(PLATFORM), windows)
       
    62   ifneq ($(ARCH_DATA_MODEL), 64)
       
    63     EXT_MODULES += security-sunmscapi
       
    64   endif
       
    65 endif
       
    66 
       
    67 
       
    68 JDK_MODULES = tools
       
    69 
    44 
    70 SUBDIRS = tools
    45 SUBDIRS = tools
    71 all build clean clobber::
    46 all build clean clobber::
    72 	$(SUBDIRS-loop)
    47 	$(SUBDIRS-loop)
    73 
    48 
    74 all:: unpack-jars gen-classlist modularize
    49 all:: unpack-jars gen-classlist modularize
    75 
    50 
    76 $(CLASSANALYZER_JAR):
    51 $(CLASSANALYZER_JAR):
    77 	$(CD) tools && $(MAKE) all
    52 	$(CD) tools && $(MAKE) all
    78 
    53 
    79 JAR_LIST := $(shell $(FIND) $(ABS_OUTPUTDIR)/lib -name \*.jar -depth) 
    54 JAR_LIST := $(shell $(FIND) $(ABS_OUTPUTDIR)/lib -name \*.jar -print) 
    80 unpack-jars:
    55 unpack-jars:
    81 	$(RM) -rf $(MODULE_CLASSES)
    56 	$(RM) -rf $(MODULE_CLASSES)
    82 	$(MKDIR) -p $(MODULE_CLASSES)
    57 	$(MKDIR) -p $(MODULE_CLASSES)
    83 	$(CP) -rf $(CLASSBINDIR)/* $(MODULE_CLASSES)
    58 	$(CP) -rf $(CLASSBINDIR)/* $(MODULE_CLASSES)
    84 	for jf in  $(JAR_LIST) ; do \
    59 	for jf in  $(JAR_LIST) ; do \
   105 	@$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..."
    80 	@$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..."
   106 
    81 
   107 modularize: $(MODULE_JAR_MANIFEST_FILE)
    82 modularize: $(MODULE_JAR_MANIFEST_FILE)
   108 	@$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."
    83 	@$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."
   109 	@$(RM) -rf $(MODULE_LIB)
    84 	@$(RM) -rf $(MODULE_LIB)
   110 	@$(MKDIR) -p $(MODULE_LIB)/lib
       
   111 	@$(MKDIR) -p $(MODULE_LIB)/jre/lib/ext
       
   112 
    85 
   113 	@# create modules
    86 	@# create jar file for modules and
   114 	for m in `$(NAWK) '{print $$1}' $(MODULE_LIST)` ; do \
    87 	@# copy other files from all members of this module 
       
    88 	for m in `$(NAWK) '{print $$1}' $(MODULES_LIST)` ; do \
   115    	   $(ECHO) "Creating module $$m" ; \
    89    	   $(ECHO) "Creating module $$m" ; \
   116    	   $(SED) -e 's%\\%\/%g' < $(MODULE_CLASSLIST)/$$m.classlist > $(TMP)/tmp.cf ; \
    90    	   $(SED) -e 's%\\%\/%g' < $(MODULE_CLASSLIST)/$$m.classlist > $(TMP)/tmp.cf ; \
   117 	   if [ -f $(MODULE_CLASSLIST)/$$m.resources ] ; then \
    91 	   if [ -f $(MODULE_CLASSLIST)/$$m.resources ] ; then \
   118    	       $(SED) -e 's%\\%\/%g' < $(MODULE_CLASSLIST)/$$m.resources >> $(TMP)/tmp.cf ; \
    92    	       $(SED) -e 's%\\%\/%g' < $(MODULE_CLASSLIST)/$$m.resources >> $(TMP)/tmp.cf ; \
   119            fi ; \
    93            fi ; \
       
    94            $(MKDIR) -p $(MODULE_LIB)/$$m/lib; \
   120 	   $(CD) $(MODULE_CLASSES) && \
    95 	   $(CD) $(MODULE_CLASSES) && \
   121                $(BOOT_JAR_CMD) c0mf $(MODULE_JAR_MANIFEST_FILE) \
    96                $(BOOT_JAR_CMD) c0mf $(MODULE_JAR_MANIFEST_FILE) \
   122 		   $(MODULE_LIB)/$$m.jar \
    97 		   $(MODULE_LIB)/$$m/lib/$$m.jar \
   123 		   @$(TMP)/tmp.cf \
    98 	           @$(TMP)/tmp.cf \
   124                    $(BOOT_JAR_JFLAGS) ; \
    99                    $(BOOT_JAR_JFLAGS); \
   125 	done
   100 	   for s in `$(GREP) "^$$m" $(MODULES_LIST)` ; do \
       
   101                if [ -d $(TMP)/$$s ] ; then \
       
   102                	   $(CP) -rf $(TMP)/$$s/*  $(MODULE_LIB)/$$m; \
       
   103 		   $(RM) -rf $(MODULE_LIB)/$$m/classes; \
       
   104 	       fi \
       
   105 	   done \
       
   106         done
   126 	@$(CD) $(MODULE_CLASSES) && $(java-vm-cleanup)
   107 	@$(CD) $(MODULE_CLASSES) && $(java-vm-cleanup)
   127 	@# move modules to lib, jre/lib, or jre/lib/ext
       
   128 	for m in $(EXT_MODULES) ; do \
       
   129 	   $(MV) $(MODULE_LIB)/$$m.jar $(MODULE_LIB)/jre/lib/ext ; \
       
   130 	done
       
   131 	for m in $(JDK_MODULES) ; do \
       
   132 	   $(MV) $(MODULE_LIB)/$$m.jar $(MODULE_LIB)/lib ; \
       
   133 	done
       
   134 	$(MV) $(MODULE_LIB)/*.jar $(MODULE_LIB)/jre/lib
       
   135 	@$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..."
   108 	@$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..."
   136 
   109 
   137 $(MODULE_JAR_MANIFEST_FILE):
   110 $(MODULE_JAR_MANIFEST_FILE):
   138 	$(SED) -e "s/@@RELEASE@@/$(RELEASE)/" $(MAINMANIFEST) > $@
   111 	$(SED) -e "s/@@RELEASE@@/$(RELEASE)/" $(MAINMANIFEST) > $@
   139 
   112 
   140 clean clobber::
   113 clean clobber::
   141 	$(RM) -rf $(MODULE_CLASSLIST)
   114 	$(RM) -rf $(MODULE_CLASSLIST)
   142 	$(RM) -rf $(MODULE_LIB)
   115 	$(RM) -rf $(MODULE_LIB)
   143 	$(RM) -f $(MODULE_JAR_MANIFEST_FILE)
   116 	$(RM) $(MODULE_JAR_MANIFEST_FILE)
   144 	$(RM) -f $(CLASSANALYZER_JAR)
   117 	$(RM) $(CLASSANALYZER_JAR)
   145