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 |
|