1 # |
|
2 # Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. |
|
3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
4 # |
|
5 # This code is free software; you can redistribute it and/or modify it |
|
6 # under the terms of the GNU General Public License version 2 only, as |
|
7 # published by the Free Software Foundation. Oracle designates this |
|
8 # particular file as subject to the "Classpath" exception as provided |
|
9 # by Oracle in the LICENSE file that accompanied this code. |
|
10 # |
|
11 # This code is distributed in the hope that it will be useful, but WITHOUT |
|
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
14 # version 2 for more details (a copy is included in the LICENSE file that |
|
15 # accompanied this code). |
|
16 # |
|
17 # You should have received a copy of the GNU General Public License version |
|
18 # 2 along with this work; if not, write to the Free Software Foundation, |
|
19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
20 # |
|
21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
22 # or visit www.oracle.com if you need additional information or have any |
|
23 # questions. |
|
24 # |
|
25 |
|
26 include $(JDK_TOPDIR)/makefiles/docs/CORE_PKGS.gmk |
|
27 include $(JDK_TOPDIR)/makefiles/docs/NON_CORE_PKGS.gmk |
|
28 include $(JDK_TOPDIR)/makefiles/Tools.gmk |
|
29 |
|
30 # What jdk version are we building |
|
31 THIS_JDK_VERSION := $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION) |
|
32 |
|
33 # |
|
34 # Perform release engineering tasks. |
|
35 # |
|
36 # images An image is what the product looks like when it is |
|
37 # installed. |
|
38 # |
|
39 |
|
40 IMAGE_BINDIR = bin |
|
41 |
|
42 # The compiler should not issue a "Proprietary" warning when compiling |
|
43 # classes in the com.sun.java.swing.plaf packages, since we've always |
|
44 # allowed, and even advocated, extending them (see bug 6476749). |
|
45 # |
|
46 # This approach is NOT to be used as a general purpose way to avoid such |
|
47 # compiler warnings for non-core packages. The correct way is to document |
|
48 # the packages in NON_CORE_PKGS.gmk, and include them in the NON_CORE_PKGS |
|
49 # definition. |
|
50 # |
|
51 # Swing has taken this approach only as a temporary measure to avoid |
|
52 # the compiler warnings until we can properly document these packages. |
|
53 # This is covered under 6491853. |
|
54 EXCLUDE_PROPWARN_PKGS = com.sun.java.swing.plaf.windows \ |
|
55 com.sun.java.swing.plaf.motif \ |
|
56 com.sun.java.swing.plaf.gtk |
|
57 |
|
58 # |
|
59 # Include the exported private packages in ct.sym. |
|
60 # This is an interim solution until the ct.sym is replaced |
|
61 # with a new module system (being discussed for JDK 8). |
|
62 # |
|
63 EXPORTED_PRIVATE_PKGS = com.sun.servicetag \ |
|
64 com.oracle.net \ |
|
65 com.oracle.nio |
|
66 |
|
67 # 64-bit solaris has a few special cases. We define the variable |
|
68 # SOLARIS64 for use in this Makefile to easily test those cases |
|
69 ifeq ($(PLATFORM), solaris) |
|
70 ifeq ($(ARCH_DATA_MODEL), 64) |
|
71 SOLARIS64 = true |
|
72 IMAGE_BINDIR = bin/$(ARCH) |
|
73 endif |
|
74 endif |
|
75 |
|
76 JTG_DOCS = $(JDK_TOPDIR)/src/solaris/doc |
|
77 |
|
78 ifeq ($(PLATFORM), macosx) |
|
79 include $(JDK_TOPDIR)/make/common/Release-$(PLATFORM).gmk |
|
80 endif |
|
81 |
|
82 # The base names of all the license and document files for the jdk and jre |
|
83 # (These files get placed in the jdk and jre install images) |
|
84 ifdef OPENJDK |
|
85 # Where to find these files |
|
86 SHARE_JDK_DOC_SRC = $(JDK_TOPDIR) |
|
87 SHARE_JRE_DOC_SRC = $(JDK_TOPDIR) |
|
88 # Same files for jdk and jre, no name changes |
|
89 IMAGE_DOCLIST_JDK = LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README |
|
90 IMAGE_DOCLIST_JDK_DEMOS_AND_SAMPLES = |
|
91 IMAGE_DOCLIST_JRE = LICENSE ASSEMBLY_EXCEPTION THIRD_PARTY_README |
|
92 else |
|
93 # make/closed/common/Defs.gmk for closed location of SHARE_JDK_DOC_SRC |
|
94 |
|
95 IMAGE_DOCLIST_JDK = COPYRIGHT README.html LICENSE THIRDPARTYLICENSEREADME.txt |
|
96 IMAGE_DOCLIST_JDK_DEMOS_AND_SAMPLES = demo/DEMOS_LICENSE sample/SAMPLES_LICENSE |
|
97 IMAGE_DOCLIST_JRE = COPYRIGHT Welcome.html LICENSE THIRDPARTYLICENSEREADME.txt |
|
98 ifeq ($(PLATFORM), windows) |
|
99 IMAGE_DOCLIST_JRE += README.txt |
|
100 else |
|
101 IMAGE_DOCLIST_JRE += README |
|
102 endif |
|
103 endif |
|
104 |
|
105 # Paths to these files we need |
|
106 JDK_DOCFILES = $(IMAGE_DOCLIST_JDK:%=$(JDK_IMAGE_DIR)/%) |
|
107 JRE_DOCFILES = $(IMAGE_DOCLIST_JRE:%=$(JRE_IMAGE_DIR)/%) |
|
108 JDK_DEMOS_AND_SAMPLES_DOCFILES = $(IMAGE_DOCLIST_JDK_DEMOS_AND_SAMPLES:%=$(JDK_IMAGE_DIR)/%) |
|
109 |
|
110 # absolute directory names: note, these must exist prior to build |
|
111 # time - they are created in the main Makefile. |
|
112 JRE_IMAGE_BINDIR = $(JRE_IMAGE_DIR)/bin |
|
113 |
|
114 MAINMANIFEST = $(JDK_TOPDIR)/make/tools/manifest.mf |
|
115 BEANMANIFEST = $(JDK_TOPDIR)/make/javax/swing/beaninfo/manifest |
|
116 |
|
117 # |
|
118 # Man pages |
|
119 # |
|
120 |
|
121 JRE_MAN_PAGES = \ |
|
122 java.1 \ |
|
123 keytool.1 \ |
|
124 orbd.1 \ |
|
125 pack200.1 \ |
|
126 policytool.1 \ |
|
127 rmid.1 \ |
|
128 rmiregistry.1 \ |
|
129 servertool.1 \ |
|
130 tnameserv.1 \ |
|
131 unpack200.1 |
|
132 |
|
133 ifndef OPENJDK |
|
134 JRE_MAN_PAGES += javaws.1 |
|
135 endif |
|
136 |
|
137 JDK_MAN_PAGES = \ |
|
138 $(JRE_MAN_PAGES) \ |
|
139 appletviewer.1 \ |
|
140 extcheck.1 \ |
|
141 idlj.1 \ |
|
142 jar.1 \ |
|
143 jarsigner.1 \ |
|
144 javac.1 \ |
|
145 javadoc.1 \ |
|
146 javah.1 \ |
|
147 javap.1 \ |
|
148 jconsole.1 \ |
|
149 jdb.1 \ |
|
150 jhat.1 \ |
|
151 jinfo.1 \ |
|
152 jmap.1 \ |
|
153 jps.1 \ |
|
154 jrunscript.1 \ |
|
155 jsadebugd.1 \ |
|
156 jstack.1 \ |
|
157 jstat.1 \ |
|
158 jstatd.1 \ |
|
159 native2ascii.1 \ |
|
160 rmic.1 \ |
|
161 schemagen.1 \ |
|
162 serialver.1 \ |
|
163 wsgen.1 \ |
|
164 wsimport.1 \ |
|
165 xjc.1 |
|
166 |
|
167 ifeq ($(PLATFORM), solaris) |
|
168 MANBASEDIRS=$(JDK_TOPDIR)/src/solaris/doc $(IMPORTDOCDIR) |
|
169 MAN1SUBDIR=sun/man/man1 |
|
170 endif # solaris |
|
171 |
|
172 ifeq ($(PLATFORM), linux) |
|
173 MANBASEDIRS=$(JDK_TOPDIR)/src/linux/doc $(IMPORTDOCDIR) |
|
174 MAN1SUBDIR=man |
|
175 JA_DIRNAME=ja_JP.UTF-8 |
|
176 endif # linux |
|
177 |
|
178 define copy-man-pages |
|
179 $(MKDIR) -p $1/man/man1 |
|
180 for manbase in $(MANBASEDIRS:%=%/$(MAN1SUBDIR)) ; do \ |
|
181 for manpage in $2; do \ |
|
182 if [ -f $${manbase}/$${manpage} ] ; then \ |
|
183 $(CP) $${manbase}/$${manpage} $1/man/man1 ; \ |
|
184 for ja_encoding in $(JA_TARGET_ENCODINGS); do \ |
|
185 ja_dir="ja"; \ |
|
186 if [ "$${ja_encoding}" != "$(JA_SOURCE_ENCODING)" ]; then \ |
|
187 ja_dir="ja_JP.$${ja_encoding}"; \ |
|
188 fi; \ |
|
189 $(MKDIR) -p $1/man/$${ja_dir}/man1; \ |
|
190 $(CAT) $${manbase}/ja/$${manpage} \ |
|
191 | $(NATIVE2ASCII) -encoding $(JA_SOURCE_ENCODING) \ |
|
192 | $(SED) 's/@@VERSION@@/$(THIS_JDK_VERSION)/g' \ |
|
193 | $(NATIVE2ASCII) -reverse -encoding $${ja_encoding} \ |
|
194 > $1/man/$${ja_dir}/man1/$${manpage}; \ |
|
195 done; \ |
|
196 fi; \ |
|
197 done; \ |
|
198 done |
|
199 $(java-vm-cleanup) |
|
200 if [ "$(JA_DIRNAME)" != "" ] ; then \ |
|
201 $(CD) $1/man && $(RM) ja && $(LN) -s $(JA_DIRNAME) ja; \ |
|
202 fi |
|
203 endef |
|
204 |
|
205 |
|
206 # no compression unless requested |
|
207 ifndef COMPRESS_JARS |
|
208 CREATE_JAR_OPTS = c0mf |
|
209 CREATE_JAR_OPTS_NOMANIFEST = c0f |
|
210 else |
|
211 CREATE_JAR_OPTS = cmf |
|
212 CREATE_JAR_OPTS_NOMANIFEST = cf |
|
213 endif |
|
214 |
|
215 # |
|
216 # Targets. |
|
217 # |
|
218 INITIAL_IMAGE_JRE=initial-image-jre |
|
219 INITIAL_IMAGE_JDK=initial-image-jdk |
|
220 ifeq ($(PLATFORM), solaris) |
|
221 ifeq ($(ARCH_DATA_MODEL), 64) |
|
222 INITIAL_IMAGE_JRE=initial-image-jre-sol64 |
|
223 INITIAL_IMAGE_JDK=initial-image-jdk-sol64 |
|
224 endif |
|
225 endif |
|
226 |
|
227 images images-clobber \ |
|
228 initial-image-jre initial-image-jdk \ |
|
229 initial-image-jre-sol64 initial-image-jdk-sol64 \ |
|
230 trim-image-jre trim-image-jdk \ |
|
231 identify-image-jre identify-image-jdk \ |
|
232 process-image-jre process-image-jdk \ |
|
233 sec-files sec-files-win jgss-files :: |
|
234 $(ECHO) ">>>Making "$@" @ `$(DATE)` ..." |
|
235 |
|
236 install: images |
|
237 |
|
238 # Order is important here, trim jre after jdk image is created |
|
239 ifeq ($(PLATFORM), macosx) |
|
240 |
|
241 images:: $(INITIAL_IMAGE_JRE) $(EXTRA_JRE_TARGETS) $(INITIAL_IMAGE_JDK) \ |
|
242 trim-image-jre trim-image-jdk \ |
|
243 identify-image-jre identify-image-jdk \ |
|
244 process-image-jre process-image-jdk sec-files sec-files-win jgss-files \ |
|
245 $(EXTRA_IMAGE_TARGETS) |
|
246 else |
|
247 |
|
248 images:: $(INITIAL_IMAGE_JRE) $(INITIAL_IMAGE_JDK) \ |
|
249 trim-image-jre trim-image-jdk \ |
|
250 identify-image-jre identify-image-jdk \ |
|
251 process-image-jre process-image-jdk sec-files sec-files-win jgss-files |
|
252 endif |
|
253 |
|
254 # Don't use these |
|
255 image-jre:: initial-image-jre trim-image-jre identify-image-jre process-image-jre |
|
256 image-jdk:: initial-image-jdk trim-image-jdk identify-image-jdk process-image-jdk |
|
257 |
|
258 # |
|
259 # Sources we ship in the SDK. |
|
260 # |
|
261 SOURCES = \ |
|
262 java/applet \ |
|
263 java/awt \ |
|
264 java/beans \ |
|
265 java/io \ |
|
266 java/lang \ |
|
267 java/math \ |
|
268 java/net \ |
|
269 java/nio \ |
|
270 java/rmi \ |
|
271 java/security \ |
|
272 java/sql \ |
|
273 java/text \ |
|
274 java/util \ |
|
275 com/sun/corba \ |
|
276 com/sun/image/codec/jpeg \ |
|
277 com/sun/imageio \ |
|
278 com/sun/java/swing \ |
|
279 com/sun/javadoc \ |
|
280 com/sun/jmx \ |
|
281 com/sun/source \ |
|
282 com/sun/naming \ |
|
283 com/sun/security/auth \ |
|
284 com/sun/security/jgss \ |
|
285 javax/accessibility \ |
|
286 javax/annotation \ |
|
287 javax/script \ |
|
288 javax/imageio \ |
|
289 javax/lang \ |
|
290 javax/management \ |
|
291 javax/naming \ |
|
292 javax/print \ |
|
293 javax/rmi \ |
|
294 javax/security \ |
|
295 javax/sound \ |
|
296 javax/sql \ |
|
297 javax/swing \ |
|
298 javax/tools \ |
|
299 javax/xml \ |
|
300 com/sun/org/apache \ |
|
301 com/sun/java_cup \ |
|
302 com/sun/jlex \ |
|
303 org/ietf \ |
|
304 org/omg \ |
|
305 org/w3c/dom \ |
|
306 org/xml/sax \ |
|
307 sunw |
|
308 # |
|
309 # Directories where sources may be found. If a file with the same path |
|
310 # name exists in more than one of these places, the one found last on this |
|
311 # list wins. |
|
312 # |
|
313 SOURCE_DIRS = $(SHARE_SRC)/classes $(PLATFORM_SRC)/classes |
|
314 SOURCE_DIRS += $(GENSRCDIR) |
|
315 SOURCE_DIRS += $(IMPORTSRCDIR) |
|
316 SOURCE_DIRS += $(JDK_OUTPUTDIR)/gendocsrc_rmic |
|
317 ifndef OPENJDK |
|
318 SOURCE_DIRS += $(CLOSED_SRC)/share/classes |
|
319 endif |
|
320 |
|
321 |
|
322 # |
|
323 # Specific files and directories that will be filtered out from above areas. |
|
324 # |
|
325 SOURCE_FILTERs = $(SCM_DIRs) ',*' |
|
326 SOURCE_FILES_filter = $(SOURCE_FILTERs:%=-name % -prune -o) |
|
327 |
|
328 # |
|
329 # Bug 4249883 - excluding some unnecessary packages from com.sun.tools |
|
330 # |
|
331 # Bug 5008685 - exclude jconsole from sun/tools |
|
332 # |
|
333 TOOLS = \ |
|
334 META-INF/services/com.sun.jdi.connect.Connector \ |
|
335 META-INF/services/com.sun.jdi.connect.spi.TransportService \ |
|
336 sun/tools/asm \ |
|
337 sun/tools/jar \ |
|
338 sun/tools/java \ |
|
339 sun/tools/javac \ |
|
340 sun/tools/jcmd \ |
|
341 sun/tools/jps \ |
|
342 sun/tools/jstat \ |
|
343 sun/tools/jstatd \ |
|
344 sun/tools/native2ascii \ |
|
345 sun/tools/serialver \ |
|
346 sun/tools/tree \ |
|
347 sun/tools/util \ |
|
348 sun/security/tools/JarBASE64Encoder.class \ |
|
349 sun/security/tools/JarSigner.class \ |
|
350 sun/security/tools/JarSignerParameters.class \ |
|
351 sun/security/tools/JarSignerResources.class \ |
|
352 sun/security/tools/JarSignerResources_ja.class \ |
|
353 sun/security/tools/JarSignerResources_zh_CN.class \ |
|
354 sun/security/tools/SignatureFile\$$Block.class \ |
|
355 sun/security/tools/SignatureFile.class \ |
|
356 sun/security/tools/TimestampedSigner.class \ |
|
357 sun/rmi/rmic \ |
|
358 sun/applet \ |
|
359 sun/jvmstat \ |
|
360 com/sun/javadoc \ |
|
361 com/sun/jdi \ |
|
362 com/sun/jarsigner \ |
|
363 com/sun/source \ |
|
364 com/sun/tools/classfile \ |
|
365 com/sun/tools/doclets \ |
|
366 com/sun/tools/example/debug/expr \ |
|
367 com/sun/tools/example/debug/tty \ |
|
368 com/sun/tools/extcheck \ |
|
369 com/sun/tools/hat \ |
|
370 com/sun/tools/javac \ |
|
371 com/sun/tools/javadoc \ |
|
372 com/sun/tools/javah \ |
|
373 com/sun/tools/javap \ |
|
374 com/sun/tools/corba \ |
|
375 com/sun/tools/internal/xjc \ |
|
376 com/sun/tools/internal/ws \ |
|
377 META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin \ |
|
378 META-INF/services/com.sun.tools.internal.xjc.Plugin \ |
|
379 com/sun/istack/internal/tools \ |
|
380 com/sun/tools/internal/jxc/ap \ |
|
381 com/sun/tools/internal/ws/wscompile/plugin/at_generated \ |
|
382 com/sun/codemodel \ |
|
383 com/sun/tools/internal/jxc \ |
|
384 com/sun/xml/internal/rngom \ |
|
385 com/sun/xml/internal/xsom \ |
|
386 org/relaxng/datatype \ |
|
387 com/sun/xml/internal/dtdparser \ |
|
388 com/sun/tools/jdi \ |
|
389 com/sun/tools/script/shell \ |
|
390 META-INF/services/com.sun.tools.attach.spi.AttachProvider \ |
|
391 com/sun/tools/attach \ |
|
392 sun/tools/attach \ |
|
393 sun/tools/jstack \ |
|
394 sun/tools/jinfo \ |
|
395 sun/tools/jmap |
|
396 |
|
397 # classes that go into jfr.jar |
|
398 JFR_CLASSES_DIRS= \ |
|
399 com/oracle/jrockit/jfr \ |
|
400 oracle/jrockit/jfr |
|
401 |
|
402 # classes that go into jsse.jar |
|
403 JSSE_CLASSES_DIRS = \ |
|
404 sun/security/provider/Sun.class \ |
|
405 sun/security/rsa/SunRsaSign.class \ |
|
406 sun/security/ssl \ |
|
407 com/sun/net/ssl/internal/ssl |
|
408 |
|
409 # classes that go into dnsns.jar |
|
410 DNS_CLASSES_DIRS = \ |
|
411 sun/net/spi/nameservice/dns \ |
|
412 META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor |
|
413 |
|
414 # classes and files that go into localedata.jar |
|
415 LOCALEDATA_JAR_DIRS = \ |
|
416 sun/text/resources/*_ar* \ |
|
417 sun/text/resources/*_hi* \ |
|
418 sun/text/resources/*_iw* \ |
|
419 sun/text/resources/*_iw* \ |
|
420 sun/text/resources/*_ja* \ |
|
421 sun/text/resources/*_ko* \ |
|
422 sun/text/resources/*_th.* \ |
|
423 sun/text/resources/*_th_* \ |
|
424 sun/text/resources/*_vi* \ |
|
425 sun/text/resources/*_zh* \ |
|
426 sun/text/resources/*Data_th \ |
|
427 sun/text/resources/thai_dict \ |
|
428 sun/util/resources/*_ar* \ |
|
429 sun/util/resources/*_hi* \ |
|
430 sun/util/resources/*_iw* \ |
|
431 sun/util/resources/*_iw* \ |
|
432 sun/util/resources/*_ja* \ |
|
433 sun/util/resources/*_ko* \ |
|
434 sun/util/resources/*_th_* \ |
|
435 sun/util/resources/*_th.* \ |
|
436 sun/util/resources/*_vi* \ |
|
437 sun/util/resources/*_zh* |
|
438 |
|
439 LOCALEDATA_JAR_FILES = $(foreach i,$(LOCALEDATA_JAR_DIRS), $(wildcard $(CLASSBINDIR)/$i)) |
|
440 |
|
441 # files under $(OUTPUTDIR) that need to go into sec-bin.zip for builds |
|
442 # where the corresponding sources are not available |
|
443 SEC_FILES_DIRS = \ |
|
444 classes/javax/net \ |
|
445 classes/javax/security/cert \ |
|
446 classes/com/sun/net/ssl \ |
|
447 classes/com/sun/security/cert \ |
|
448 classes/sun/net/www/protocol/https \ |
|
449 classes/sun/security/pkcs12 \ |
|
450 classes/sun/security/ssl \ |
|
451 classes/sun/security/krb5/*.class \ |
|
452 classes/sun/security/krb5/internal/*.class \ |
|
453 classes/sun/security/krb5/internal/ccache \ |
|
454 classes/sun/security/krb5/internal/crypto \ |
|
455 classes/sun/security/krb5/internal/ktab \ |
|
456 classes/sun/security/krb5/internal/rcache \ |
|
457 classes/sun/security/krb5/internal/util \ |
|
458 classes/sun/security/jgss/spi/GSSContextSpi.class |
|
459 |
|
460 # files under $(OUTPUTDIR) that need to go into sec-windows-win.zip for builds |
|
461 # where the corresponding sources are not available |
|
462 SEC_FILES_WIN_DIRS = \ |
|
463 classes/sun/security/krb5/internal/tools |
|
464 |
|
465 # files under $(BINDIR) that need to go into jgss_files.zip for builds |
|
466 # where the corresponding sources are not available |
|
467 JGSS_FILES_DIRS = \ |
|
468 bin/w2k_lsa_auth.dll \ |
|
469 bin/w2k_lsa_auth.map \ |
|
470 bin/w2k_lsa_auth.pdb |
|
471 |
|
472 # The following get removed from the SDK image. |
|
473 NOTJDKTOOLS = \ |
|
474 java_vm |
|
475 |
|
476 # The following get removed from the JRE after the bulk-copy of BINDIR... |
|
477 NOTJRETOOLS = \ |
|
478 appletviewer$(EXE_SUFFIX) \ |
|
479 extcheck$(EXE_SUFFIX) \ |
|
480 idlj$(EXE_SUFFIX) \ |
|
481 jar$(EXE_SUFFIX) \ |
|
482 jarsigner$(EXE_SUFFIX) \ |
|
483 java-rmi.cgi \ |
|
484 javac$(EXE_SUFFIX) \ |
|
485 javadoc$(EXE_SUFFIX) \ |
|
486 javah$(EXE_SUFFIX) \ |
|
487 javap$(EXE_SUFFIX) \ |
|
488 jcmd$(EXE_SUFFIX) \ |
|
489 jdb$(EXE_SUFFIX) \ |
|
490 jps$(EXE_SUFFIX) \ |
|
491 jrunscript$(EXE_SUFFIX) \ |
|
492 jstat$(EXE_SUFFIX) \ |
|
493 jstatd$(EXE_SUFFIX) \ |
|
494 jstack$(EXE_SUFFIX) \ |
|
495 packagebean$(SCRIPT_SUFFIX) \ |
|
496 rmic$(EXE_SUFFIX) \ |
|
497 serialver$(EXE_SUFFIX) \ |
|
498 unregbean$(EXE_SUFFIX) \ |
|
499 jconsole$(EXE_SUFFIX) \ |
|
500 jinfo$(EXE_SUFFIX) \ |
|
501 jmap$(EXE_SUFFIX) \ |
|
502 native2ascii$(EXE_SUFFIX) \ |
|
503 xjc$(EXE_SUFFIX) \ |
|
504 wsgen$(EXE_SUFFIX) \ |
|
505 wsimport$(EXE_SUFFIX) \ |
|
506 schemagen$(EXE_SUFFIX) \ |
|
507 jsadebugd$(EXE_SUFFIX) \ |
|
508 jhat$(EXE_SUFFIX) |
|
509 |
|
510 # The following get removed from the JRE after the bulk-copy of LIBDIR... |
|
511 NOTJRELIBS = tools.jar \ |
|
512 jconsole.jar \ |
|
513 dt.jar |
|
514 |
|
515 ifeq ($(INCLUDE_SA), true) |
|
516 NOTJRELIBS += sa-jdi.jar |
|
517 |
|
518 # The following get removed from the JRE after the bulk-copy of LIBDIR... |
|
519 NOTJRE_SHARED_LIBS = $(SALIB_NAME) |
|
520 else |
|
521 NOTJRE_SHARED_LIBS = |
|
522 endif |
|
523 |
|
524 # Attach library is JDK only |
|
525 NOTJRE_SHARED_LIBS += $(LIB_PREFIX)attach.$(LIBRARY_SUFFIX) |
|
526 |
|
527 # |
|
528 ###### RULES |
|
529 |
|
530 # Processing license files from source area to image area |
|
531 # These will be modified to have the platform specific EOL chars. |
|
532 define process-doc-file |
|
533 $(prep-target) |
|
534 $(SED) 's/$$//g' $< > $@ |
|
535 $(CHMOD) 444 $@ |
|
536 endef |
|
537 |
|
538 # JDK files |
|
539 $(JDK_IMAGE_DIR)/%: $(SHARE_JDK_DOC_SRC)/% |
|
540 $(process-doc-file) |
|
541 |
|
542 $(JDK_IMAGE_DIR)/demo/DEMOS_LICENSE: $(SHARE_JDK_DOC_SRC)/DEMOS_LICENSE |
|
543 $(process-doc-file) |
|
544 |
|
545 $(JDK_IMAGE_DIR)/sample/SAMPLES_LICENSE: $(SHARE_JDK_DOC_SRC)/SAMPLES_LICENSE |
|
546 $(process-doc-file) |
|
547 |
|
548 # JRE files |
|
549 $(JRE_IMAGE_DIR)/%: $(SHARE_JRE_DOC_SRC)/% |
|
550 $(process-doc-file) |
|
551 ifeq ($(PLATFORM), windows) |
|
552 $(JRE_IMAGE_DIR)/README.txt: $(SHARE_JRE_DOC_SRC)/README |
|
553 $(process-doc-file) |
|
554 endif |
|
555 |
|
556 |
|
557 ###################################################### |
|
558 # List of directories in classes directory that should NOT be in rt.jar |
|
559 ###################################################### |
|
560 |
|
561 NOT_RT_JAR_LIST = $(IMAGES_OUTPUTDIR)/tmp/not_rt_jar.list |
|
562 |
|
563 $(NOT_RT_JAR_LIST): FRC |
|
564 $(prep-target) |
|
565 $(ECHO) "#\n" >> $@ |
|
566 $(ECHO) "# List of subdirectories not in include in rt.jar" >> $@ |
|
567 $(ECHO) "# Directories must contain trailing '/'." >> $@ |
|
568 $(ECHO) "com/sun/javadoc/" >> $@ |
|
569 $(ECHO) "com/sun/jdi/" >> $@ |
|
570 $(ECHO) "com/sun/jarsigner/" >> $@ |
|
571 $(ECHO) "com/sun/source/" >> $@ |
|
572 $(ECHO) "com/sun/istack/internal/tools/" >> $@ |
|
573 $(ECHO) "META-INF/services/com.sun.jdi.connect.Connector" >> $@ |
|
574 $(ECHO) "META-INF/services/com.sun.jdi.connect.spi.TransportService" >> $@ |
|
575 $(ECHO) "META-INF/services/com.sun.tools.xjc.Plugin" >> $@ |
|
576 $(ECHO) "com/sun/tools/" >> $@ |
|
577 $(ECHO) "sun/jvmstat/" >> $@ |
|
578 $(ECHO) "sun/nio/cs/ext/" >> $@ |
|
579 $(ECHO) "sun/awt/HKSCS.class" >> $@ |
|
580 $(ECHO) "sun/awt/motif/X11GB2312\$$Decoder.class" >> $@ |
|
581 $(ECHO) "sun/awt/motif/X11GB2312\$$Encoder.class" >> $@ |
|
582 $(ECHO) "sun/awt/motif/X11GB2312.class" >> $@ |
|
583 $(ECHO) "sun/awt/motif/X11GBK\$$Encoder.class" >> $@ |
|
584 $(ECHO) "sun/awt/motif/X11GBK.class" >> $@ |
|
585 $(ECHO) "sun/awt/motif/X11KSC5601\$$Decoder.class" >> $@ |
|
586 $(ECHO) "sun/awt/motif/X11KSC5601\$$Encoder.class" >> $@ |
|
587 $(ECHO) "sun/awt/motif/X11KSC5601.class" >> $@ |
|
588 $(ECHO) "META-INF/services/java.nio.charset.spi.CharsetProvider" >> $@ |
|
589 $(ECHO) "sun/rmi/rmic/" >> $@ |
|
590 $(ECHO) "sun/tools/asm/" >> $@ |
|
591 $(ECHO) "sun/tools/java/" >> $@ |
|
592 $(ECHO) "sun/tools/javac/" >> $@ |
|
593 $(ECHO) "com/sun/tools/classfile/" >> $@ |
|
594 $(ECHO) "com/sun/tools/javap/" >> $@ |
|
595 $(ECHO) "sun/tools/jcmd/" >> $@ |
|
596 $(ECHO) "sun/tools/jconsole/" >> $@ |
|
597 $(ECHO) "sun/tools/jps/" >> $@ |
|
598 $(ECHO) "sun/tools/jstat/" >> $@ |
|
599 $(ECHO) "sun/tools/jstatd/" >> $@ |
|
600 $(ECHO) "sun/tools/native2ascii/" >> $@ |
|
601 $(ECHO) "sun/tools/serialver/" >> $@ |
|
602 $(ECHO) "sun/tools/tree/" >> $@ |
|
603 $(ECHO) "sun/tools/util/" >> $@ |
|
604 $(ECHO) "sun/security/tools/JarBASE64Encoder.class" >> $@ |
|
605 $(ECHO) "sun/security/tools/JarSigner.class" >> $@ |
|
606 $(ECHO) "sun/security/tools/JarSignerParameters.class" >> $@ |
|
607 $(ECHO) "sun/security/tools/JarSignerResources.class" >> $@ |
|
608 $(ECHO) "sun/security/tools/JarSignerResources_ja.class" >> $@ |
|
609 $(ECHO) "sun/security/tools/JarSignerResources_zh_CN.class" >> $@ |
|
610 $(ECHO) "sun/security/tools/SignatureFile\$$Block.class" >> $@ |
|
611 $(ECHO) "sun/security/tools/SignatureFile.class" >> $@ |
|
612 $(ECHO) "sun/security/tools/TimestampedSigner.class" >> $@ |
|
613 $(ECHO) "sun/security/provider/Sun.class" >> $@ |
|
614 $(ECHO) "sun/security/rsa/SunRsaSign.class" >> $@ |
|
615 $(ECHO) "sun/security/ssl/" >> $@ |
|
616 $(ECHO) "sun/security/pkcs11/" >> $@ |
|
617 $(ECHO) "sun/security/ec/ECDHKeyAgreement.class" >> $@ |
|
618 $(ECHO) "sun/security/ec/ECDSASignature.class" >> $@ |
|
619 $(ECHO) "sun/security/ec/ECKeyPairGenerator.class" >> $@ |
|
620 $(ECHO) "sun/security/ec/SunEC\$$1.class" >> $@ |
|
621 $(ECHO) "sun/security/ec/SunEC.class" >> $@ |
|
622 $(ECHO) "sun/security/ec/SunECEntries.class" >> $@ |
|
623 $(ECHO) "sun/security/ec/ECDSASignature\$$Raw.class" >> $@ |
|
624 $(ECHO) "sun/security/ec/ECDSASignature\$$SHA1.class" >> $@ |
|
625 $(ECHO) "sun/security/ec/ECDSASignature\$$SHA256.class" >> $@ |
|
626 $(ECHO) "sun/security/ec/ECDSASignature\$$SHA384.class" >> $@ |
|
627 $(ECHO) "sun/security/ec/ECDSASignature\$$SHA512.class" >> $@ |
|
628 $(ECHO) "com/sun/net/ssl/internal/ssl/" >> $@ |
|
629 $(ECHO) "javax/crypto/" >> $@ |
|
630 $(ECHO) "sun/security/internal/" >> $@ |
|
631 $(ECHO) "com/sun/crypto/provider/" >> $@ |
|
632 $(ECHO) "META-INF/services/com.sun.tools.attach.spi.AttachProvider" >> $@ |
|
633 $(ECHO) "com/sun/tools/attach/" >> $@ |
|
634 $(ECHO) "org/relaxng/datatype/" >> $@ |
|
635 $(ECHO) "com/sun/codemodel/" >> $@ |
|
636 $(ECHO) "com/sun/xml/internal/dtdparser/" >> $@ |
|
637 $(ECHO) "com/sun/xml/internal/rngom/" >> $@ |
|
638 $(ECHO) "com/sun/xml/internal/xsom/" >> $@ |
|
639 $(ECHO) "com/sun/tools/script/shell/" >> $@ |
|
640 $(ECHO) "sun/tools/attach/" >> $@ |
|
641 $(ECHO) "sun/tools/jstack/" >> $@ |
|
642 $(ECHO) "sun/tools/jinfo/" >> $@ |
|
643 $(ECHO) "sun/tools/jmap/" >> $@ |
|
644 $(ECHO) "sun/net/spi/nameservice/dns/" >> $@ |
|
645 $(ECHO) "META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor" >> $@ |
|
646 $(ECHO) "javax/swing/AbstractButtonBeanInfo.class" >> $@ |
|
647 $(ECHO) "javax/swing/BoxBeanInfo.class" >> $@ |
|
648 $(ECHO) "javax/swing/JAppletBeanInfo.class" >> $@ |
|
649 $(ECHO) "javax/swing/JButtonBeanInfo.class" >> $@ |
|
650 $(ECHO) "javax/swing/JCheckBoxBeanInfo.class" >> $@ |
|
651 $(ECHO) "javax/swing/JCheckBoxMenuItemBeanInfo.class" >> $@ |
|
652 $(ECHO) "javax/swing/JColorChooserBeanInfo.class" >> $@ |
|
653 $(ECHO) "javax/swing/JComboBoxBeanInfo.class" >> $@ |
|
654 $(ECHO) "javax/swing/JComponentBeanInfo.class" >> $@ |
|
655 $(ECHO) "javax/swing/JDesktopPaneBeanInfo.class" >> $@ |
|
656 $(ECHO) "javax/swing/JDialogBeanInfo.class" >> $@ |
|
657 $(ECHO) "javax/swing/JEditorPaneBeanInfo.class" >> $@ |
|
658 $(ECHO) "javax/swing/JFileChooserBeanInfo.class" >> $@ |
|
659 $(ECHO) "javax/swing/JFormattedTextFieldBeanInfo.class" >> $@ |
|
660 $(ECHO) "javax/swing/JFrameBeanInfo.class" >> $@ |
|
661 $(ECHO) "javax/swing/JInternalFrameBeanInfo.class" >> $@ |
|
662 $(ECHO) "javax/swing/JLabelBeanInfo.class" >> $@ |
|
663 $(ECHO) "javax/swing/JLayeredPaneBeanInfo.class" >> $@ |
|
664 $(ECHO) "javax/swing/JListBeanInfo.class" >> $@ |
|
665 $(ECHO) "javax/swing/JMenuBarBeanInfo.class" >> $@ |
|
666 $(ECHO) "javax/swing/JMenuBeanInfo.class" >> $@ |
|
667 $(ECHO) "javax/swing/JMenuItemBeanInfo.class" >> $@ |
|
668 $(ECHO) "javax/swing/JOptionPaneBeanInfo.class" >> $@ |
|
669 $(ECHO) "javax/swing/JPanelBeanInfo.class" >> $@ |
|
670 $(ECHO) "javax/swing/JPasswordFieldBeanInfo.class" >> $@ |
|
671 $(ECHO) "javax/swing/JPopupMenuBeanInfo.class" >> $@ |
|
672 $(ECHO) "javax/swing/JProgressBarBeanInfo.class" >> $@ |
|
673 $(ECHO) "javax/swing/JRadioButtonBeanInfo.class" >> $@ |
|
674 $(ECHO) "javax/swing/JRadioButtonMenuItemBeanInfo.class" >> $@ |
|
675 $(ECHO) "javax/swing/JScrollBarBeanInfo.class" >> $@ |
|
676 $(ECHO) "javax/swing/JScrollPaneBeanInfo.class" >> $@ |
|
677 $(ECHO) "javax/swing/JSeparatorBeanInfo.class" >> $@ |
|
678 $(ECHO) "javax/swing/JSliderBeanInfo.class" >> $@ |
|
679 $(ECHO) "javax/swing/JSpinnerBeanInfo.class" >> $@ |
|
680 $(ECHO) "javax/swing/JSplitPaneBeanInfo.class" >> $@ |
|
681 $(ECHO) "javax/swing/JTabbedPaneBeanInfo.class" >> $@ |
|
682 $(ECHO) "javax/swing/JTableBeanInfo.class" >> $@ |
|
683 $(ECHO) "javax/swing/JTextAreaBeanInfo.class" >> $@ |
|
684 $(ECHO) "javax/swing/JTextFieldBeanInfo.class" >> $@ |
|
685 $(ECHO) "javax/swing/JTextPaneBeanInfo.class" >> $@ |
|
686 $(ECHO) "javax/swing/JToggleButtonBeanInfo.class" >> $@ |
|
687 $(ECHO) "javax/swing/JToolBarBeanInfo.class" >> $@ |
|
688 $(ECHO) "javax/swing/JTreeBeanInfo.class" >> $@ |
|
689 $(ECHO) "javax/swing/JWindowBeanInfo.class" >> $@ |
|
690 $(ECHO) "javax/swing/SwingBeanInfoBase.class" >> $@ |
|
691 $(ECHO) "javax/swing/text/JTextComponentBeanInfo.class" >> $@ |
|
692 $(ECHO) "sun/swing/BeanInfoUtils.class" >> $@ |
|
693 $(ECHO) $(patsubst $(CLASSBINDIR)/%,%,$(LOCALEDATA_JAR_FILES)) | $(TR) " " "\n" >> $@ |
|
694 ifndef OPENJDK |
|
695 ifndef JAVASE_EMBEDDED |
|
696 $(ECHO) "com/oracle/jrockit/jfr/" >> $@ |
|
697 $(ECHO) "com/oracle/jrockit/jfr/client/" >> $@ |
|
698 $(ECHO) "com/oracle/jrockit/jfr/management/" >> $@ |
|
699 $(ECHO) "oracle/jrockit/jfr/" >> $@ |
|
700 $(ECHO) "oracle/jrockit/jfr/events/" >> $@ |
|
701 $(ECHO) "oracle/jrockit/jfr/openmbean/" >> $@ |
|
702 $(ECHO) "oracle/jrockit/jfr/parser/" >> $@ |
|
703 $(ECHO) "oracle/jrockit/jfr/settings/" >> $@ |
|
704 $(ECHO) "oracle/jrockit/jfr/tools/" >> $@ |
|
705 $(ECHO) "oracle/jrockit/jfr/util/" >> $@ |
|
706 $(ECHO) "oracle/jrockit/jfr/util/log/" >> $@ |
|
707 $(ECHO) "oracle/jrockit/jfr/util/os/" >> $@ |
|
708 $(ECHO) "oracle/jrockit/jfr/util/text/" >> $@ |
|
709 endif |
|
710 endif |
|
711 (cd $(JDK_OUTPUTDIR)/classes && $(FIND) . -name "_the.*") >> $@ |
|
712 ifeq ($(PLATFORM), macosx) |
|
713 $(ECHO) "com/sun/nio/sctp/" >> $@ |
|
714 $(ECHO) "sun/nio/ch/sctp/" >> $@ |
|
715 $(ECHO) "sun/jdbc/" >> $@ |
|
716 $(ECHO) "sun/nio/ch/DevPollArrayWrapper\$$Updator.class" >> $@ |
|
717 $(ECHO) "sun/nio/ch/DevPollArrayWrapper.class" >> $@ |
|
718 $(ECHO) "sun/nio/ch/DevPollSelectorImpl.class" >> $@ |
|
719 $(ECHO) "sun/nio/ch/DevPollSelectorProvider.class" >> $@ |
|
720 $(ECHO) "sun/nio/ch/EPollArrayWrapper\$$Updator.class" >> $@ |
|
721 $(ECHO) "sun/nio/ch/EPollArrayWrapper.class" >> $@ |
|
722 $(ECHO) "sun/nio/ch/EPollSelectorImpl.class" >> $@ |
|
723 $(ECHO) "sun/nio/ch/EPollSelectorProvider.class" >> $@ |
|
724 endif |
|
725 |
|
726 ###################################################### |
|
727 # List of directories in classes directory that should NOT be in resources.jar |
|
728 ###################################################### |
|
729 |
|
730 NOT_RESOURCES_JAR_LIST = $(IMAGES_OUTPUTDIR)/tmp/not_resources_jar.list |
|
731 |
|
732 $(NOT_RESOURCES_JAR_LIST): FRC |
|
733 $(prep-target) |
|
734 $(ECHO) "#\n" >> $@ |
|
735 $(ECHO) "# List of subdirectories not in include in resources.jar" >> $@ |
|
736 $(ECHO) "# Directories must contain trailing '/'." >> $@ |
|
737 $(ECHO) "javax/swing/beaninfo/" >> $@ |
|
738 |
|
739 TOTAL_JAR_EXCLUDE_LIST = $(IMAGES_OUTPUTDIR)/tmp/total_jar_exclude.list |
|
740 |
|
741 ###################################################### |
|
742 # Total exclude list |
|
743 ###################################################### |
|
744 |
|
745 $(TOTAL_JAR_EXCLUDE_LIST): $(NOT_RT_JAR_LIST) $(NOT_RESOURCES_JAR_LIST) |
|
746 $(prep-target) |
|
747 $(ECHO) "#\n" >> $@ |
|
748 $(ECHO) "# List of subdirectories not in include in resources.jar" >> $@ |
|
749 $(CAT) $(NOT_RT_JAR_LIST) >>$@ |
|
750 $(CAT) $(NOT_RESOURCES_JAR_LIST) >>$@ |
|
751 |
|
752 # File order list for rt.jar |
|
753 # - sun.applet is included, till hotjava stops relying on it. |
|
754 # - sun.tools.jar is included, needs cleanup. |
|
755 # |
|
756 REORDER_TEMPDIR=$(IMAGES_OUTPUTDIR)/tmp/reorder |
|
757 TOTAL_JAR_FILELIST=$(REORDER_TEMPDIR)/file_list |
|
758 |
|
759 JARFILELISTS_TEMPDIR=$(IMAGES_OUTPUTDIR)/tmp/jarfilelists |
|
760 RT_JAR_FILELIST=$(JARFILELISTS_TEMPDIR)/rt_jar_list |
|
761 RES_JAR_FILELIST=$(JARFILELISTS_TEMPDIR)/resources_jar_list |
|
762 |
|
763 $(TOTAL_JAR_FILELIST): $(BUILD_TOOLS) $(TOTAL_JAR_EXCLUDE_LIST) |
|
764 $(prep-target) |
|
765 $(RM) $@.temp |
|
766 ($(CD) $(CLASSBINDIR) && \ |
|
767 $(TOOL_JARREORDER) \ |
|
768 -o $@.temp $(ABS_LIBDIR)/classlist $(TOTAL_JAR_EXCLUDE_LIST) . ) |
|
769 $(MV) $@.temp $@ |
|
770 ($(CD) $(CLASSBINDIR) && $(java-vm-cleanup)) |
|
771 |
|
772 # Create the jfr.jar containing Java Flight Recorder implementation |
|
773 JFR_JAR= |
|
774 ifndef OPENJDK |
|
775 ifndef JAVASE_EMBEDDED |
|
776 JFR_JAR=$(ABS_TEMPDIR)/jfr-orig.jar |
|
777 $(JFR_JAR): $(OTHER_JAR_MANIFEST_FILE) |
|
778 $(prep-target) |
|
779 $(CD) $(CLASSBINDIR) && \ |
|
780 $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \ |
|
781 $(JFR_CLASSES_DIRS) $(BOOT_JAR_JFLAGS) |
|
782 @$(CD) $(CLASSBINDIR) && $(java-vm-cleanup) |
|
783 endif |
|
784 endif |
|
785 |
|
786 # Create the rt.jar file list & non-class files list |
|
787 |
|
788 $(RT_JAR_FILELIST) + $(RES_JAR_FILELIST): \ |
|
789 $(TOTAL_JAR_FILELIST) $(BUILD_TOOLS) |
|
790 $(RM) $(RT_JAR_FILELIST) $(RES_JAR_FILELIST) |
|
791 $(MKDIR) -p $(JARFILELISTS_TEMPDIR) |
|
792 $(TOOL_JARSPLIT) \ |
|
793 $(TOTAL_JAR_FILELIST) \ |
|
794 -o $(RT_JAR_FILELIST) $(RES_JAR_FILELIST) |
|
795 $(java-vm-cleanup) |
|
796 |
|
797 # Create the manifest file. |
|
798 RT_JAR_MANIFEST_FILE=$(IMAGES_OUTPUTDIR)/tmp/rt_manifest.tmp |
|
799 $(RT_JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST) |
|
800 $(prep-target) |
|
801 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ |
|
802 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ |
|
803 $(MAINMANIFEST) >> $@ |
|
804 $(ECHO) >> $@ |
|
805 $(CAT) $(BEANMANIFEST) >> $@ |
|
806 |
|
807 OTHER_JAR_MANIFEST_FILE=$(IMAGES_OUTPUTDIR)/tmp/other_manifest.tmp |
|
808 $(OTHER_JAR_MANIFEST_FILE): $(MAINMANIFEST) |
|
809 $(prep-target) |
|
810 $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ |
|
811 -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ |
|
812 $(MAINMANIFEST) >> $@ |
|
813 |
|
814 # Create resources.jar containing non-class files |
|
815 RESOURCES_JAR=$(IMAGES_OUTPUTDIR)/tmp/resources-orig.jar |
|
816 $(RESOURCES_JAR): $(RES_JAR_FILELIST) $(OTHER_JAR_MANIFEST_FILE) |
|
817 $(prep-target) |
|
818 $(CD) $(CLASSBINDIR) && \ |
|
819 $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \ |
|
820 @$(RES_JAR_FILELIST) $(BOOT_JAR_JFLAGS) |
|
821 $(CD) $(CLASSBINDIR) && $(java-vm-cleanup) |
|
822 |
|
823 # Create jsse.jar containing SunJSSE implementation classes |
|
824 JSSE_JAR=$(IMAGES_OUTPUTDIR)/tmp/jsse-orig.jar |
|
825 $(JSSE_JAR): $(OTHER_JAR_MANIFEST_FILE) |
|
826 $(prep-target) |
|
827 $(CD) $(CLASSBINDIR) && \ |
|
828 $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \ |
|
829 $(JSSE_CLASSES_DIRS) $(BOOT_JAR_JFLAGS) |
|
830 @$(CD) $(CLASSBINDIR) && $(java-vm-cleanup) |
|
831 |
|
832 # Create dnsns.jar |
|
833 # Create without manifest for now to not differ with old buildsystem. |
|
834 DNS_JAR=$(IMAGES_OUTPUTDIR)/tmp/dns-orig.jar |
|
835 $(DNS_JAR): $(OTHER_JAR_MANIFEST_FILE) |
|
836 $(prep-target) |
|
837 $(CD) $(CLASSBINDIR) && \ |
|
838 $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS_NOMANIFEST) $@ \ |
|
839 $(DNS_CLASSES_DIRS) $(BOOT_JAR_JFLAGS) |
|
840 @$(CD) $(CLASSBINDIR) && $(java-vm-cleanup) |
|
841 |
|
842 # Create localedata.jar containing localedata for non european languages |
|
843 LOCALEDATA_JAR=$(IMAGES_OUTPUTDIR)/localedata-orig.jar |
|
844 $(LOCALEDATA_JAR): $(LOCALEDATA_JAR_FILES) |
|
845 $(prep-target) |
|
846 # Create without manifest for now to not differ with old buildsystem. |
|
847 # $(CD) $(CLASSBINDIR) && \ |
|
848 # $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \ |
|
849 # $(LOCALEDATA_JAR_DIRS) $(BOOT_JAR_JFLAGS) |
|
850 $(CD) $(CLASSBINDIR) && \ |
|
851 $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS_NOMANIFEST) $@ \ |
|
852 $(LOCALEDATA_JAR_DIRS) $(BOOT_JAR_JFLAGS) |
|
853 $(CD) $(CLASSBINDIR) && $(java-vm-cleanup) |
|
854 |
|
855 # Create sec-bin.zip |
|
856 SEC_FILES_ZIP=$(IMAGES_OUTPUTDIR)/tmp/sec-bin.zip |
|
857 sec-files:: |
|
858 $(prep-target) |
|
859 $(RM) $(SEC_FILES_ZIP) |
|
860 $(CD) $(OUTPUTDIR) && \ |
|
861 $(ZIPEXE) -rq9 $(SEC_FILES_ZIP) $(SEC_FILES_DIRS) |
|
862 $(java-vm-cleanup) |
|
863 |
|
864 # Create sec-windows-bin.zip |
|
865 SEC_FILES_WIN_ZIP=$(IMAGES_OUTPUTDIR)/tmp/sec-windows-bin.zip |
|
866 sec-files-win:: |
|
867 ifeq ($(PLATFORM), windows) |
|
868 $(prep-target) |
|
869 $(RM) $(SEC_FILES_WIN_ZIP) |
|
870 $(CD) $(OUTPUTDIR) && \ |
|
871 $(ZIPEXE) -rq9 $(SEC_FILES_WIN_ZIP) $(SEC_FILES_WIN_DIRS) |
|
872 $(java-vm-cleanup) |
|
873 endif |
|
874 |
|
875 # Create JGSS files that contains the native Kerberos library |
|
876 JGSS_WIN32_FILES_ZIP=$(IMAGES_OUTPUTDIR)/tmp/jgss-windows-i586-bin.zip |
|
877 JGSS_WIN64_FILES_ZIP=$(IMAGES_OUTPUTDIR)/tmp/jgss-windows-x64-bin.zip |
|
878 jgss-files:: |
|
879 ifeq ($(PLATFORM), windows) |
|
880 $(prep-target) |
|
881 ifeq ($(ARCH_DATA_MODEL), 32) |
|
882 $(RM) $(JGSS_WIN32_FILES_ZIP) |
|
883 $(CD) $(OUTPUTDIR) && \ |
|
884 $(ZIPEXE) -rq9 $(JGSS_WIN32_FILES_ZIP) $(JGSS_FILES_DIRS) |
|
885 else |
|
886 $(RM) $(JGSS_WIN64_FILES_ZIP) |
|
887 $(CD) $(OUTPUTDIR) && \ |
|
888 $(ZIPEXE) -rq9 $(JGSS_WIN64_FILES_ZIP) $(JGSS_FILES_DIRS) |
|
889 endif |
|
890 $(java-vm-cleanup) |
|
891 endif |
|
892 |
|
893 # Create rt.jar |
|
894 RT_JAR=$(IMAGES_OUTPUTDIR)/tmp/rt-orig.jar |
|
895 $(RT_JAR): $(RT_JAR_FILELIST) $(RT_JAR_MANIFEST_FILE) |
|
896 $(prep-target) |
|
897 $(CD) $(CLASSBINDIR) && \ |
|
898 $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ \ |
|
899 @$(RT_JAR_FILELIST) $(BOOT_JAR_JFLAGS) |
|
900 $(CD) $(CLASSBINDIR) && $(java-vm-cleanup) |
|
901 |
|
902 # SE-Embedded targets if enabled |
|
903 include $(JDK_TOPDIR)/makefiles/common/Release-embedded.gmk |
|
904 |
|
905 |
|
906 ###################################################### |
|
907 # JRE Image |
|
908 ###################################################### |
|
909 |
|
910 initial-image-jre-setup: |
|
911 $(RM) -r $(JRE_IMAGE_DIR) |
|
912 $(MKDIR) -p $(JRE_IMAGE_DIR) |
|
913 |
|
914 # 64-bit solaris jre image contains only the 64-bit add-on files. |
|
915 initial-image-jre-sol64:: initial-image-jre-setup |
|
916 @# Use tar instead of cp to preserve the symbolic links |
|
917 for dir in bin lib ; do \ |
|
918 ( $(CD) $(OUTPUTDIR) && \ |
|
919 $(TAR) cf - `$(FIND) $$dir -name '$(ARCH)' -print` | \ |
|
920 ($(CD) $(JRE_IMAGE_DIR) && $(TAR) xf -) ) ; \ |
|
921 done |
|
922 @# Remove some files from the jre area |
|
923 for t in $(NOTJRETOOLS) ; do \ |
|
924 $(RM) $(JRE_IMAGE_DIR)/bin$(ISA_DIR)/$$t ; \ |
|
925 done |
|
926 for l in $(NOTJRELIBS) ; do \ |
|
927 $(RM) $(JRE_IMAGE_DIR)/lib/$$l ; \ |
|
928 done |
|
929 $(RM) `$(FIND) $(JRE_IMAGE_DIR)/lib -name 'orb.idl'` |
|
930 $(RM) `$(FIND) $(JRE_IMAGE_DIR)/lib -name 'ir.idl'` |
|
931 |
|
932 # Construct an initial jre image (initial jdk jre) no trimming or stripping |
|
933 # See "initial-image-jdk-setup" for an explanation of the rm of |
|
934 # drive names like C: |
|
935 initial-image-jre:: initial-image-jre-setup \ |
|
936 $(JRE_DOCFILES) \ |
|
937 $(RT_JAR) $(RESOURCES_JAR) $(JSSE_JAR) $(JFR_JAR) $(DNS_JAR) $(LOCALEDATA_JAR) \ |
|
938 $(BUILD_TOOLS) |
|
939 @# Copy in bin directory |
|
940 $(CD) $(OUTPUTDIR) && $(FIND) bin -depth | $(CPIO) -pdum $(JRE_IMAGE_DIR) |
|
941 @# CTE plugin security change require new empty directory lib/applet |
|
942 $(MKDIR) -p $(JRE_IMAGE_DIR)/lib/applet |
|
943 @# Copy in lib directory |
|
944 $(CD) $(OUTPUTDIR) && $(FIND) lib -depth | $(CPIO) -pdum $(JRE_IMAGE_DIR) |
|
945 ifeq ($(USING_CYGWIN),true) |
|
946 $(RM) -rf $(JRE_IMAGE_DIR)/[A-Za-z]: |
|
947 $(RM) -rf $(OUTPUTDIR)/[A-Za-z]: |
|
948 endif |
|
949 @# Make sure all directories are read/execute for everyone |
|
950 $(CHMOD) a+rx `$(FIND) $(JRE_IMAGE_DIR) -type d` |
|
951 @# Remove some files from the jre area |
|
952 for t in $(NOTJRETOOLS) ; do \ |
|
953 $(RM) $(JRE_IMAGE_DIR)/bin$(ISA_DIR)/$$t ; \ |
|
954 done |
|
955 for l in $(NOTJRELIBS) ; do \ |
|
956 $(RM) $(JRE_IMAGE_DIR)/lib/$$l ; \ |
|
957 done |
|
958 @# Remove orb.idl and ir.idl from jre |
|
959 $(FIND) $(JRE_IMAGE_DIR)/lib -name 'orb.idl' -exec $(RM) \{} \; |
|
960 $(FIND) $(JRE_IMAGE_DIR)/lib -name 'ir.idl' -exec $(RM) \{} \; |
|
961 @# Copy in rt.jar & resources.jar file |
|
962 $(CP) $(RT_JAR) $(JRE_IMAGE_DIR)/lib/rt.jar |
|
963 $(CP) $(RESOURCES_JAR) $(JRE_IMAGE_DIR)/lib/resources.jar |
|
964 $(CP) $(JSSE_JAR) $(JRE_IMAGE_DIR)/lib/jsse.jar |
|
965 ifneq ($(JFR_JAR),) |
|
966 $(CP) $(JFR_JAR) $(JRE_IMAGE_DIR)/lib/jfr.jar |
|
967 endif |
|
968 $(CP) $(DNS_JAR) $(JRE_IMAGE_DIR)/lib/ext/dnsns.jar |
|
969 $(CP) $(LOCALEDATA_JAR) $(JRE_IMAGE_DIR)/lib/ext/localedata.jar |
|
970 @# Generate meta-index to make boot and extension class loaders lazier |
|
971 $(CD) $(JRE_IMAGE_DIR)/lib && \ |
|
972 $(TOOL_BUILDMETAINDEX) \ |
|
973 -o meta-index *.jar |
|
974 $(CD) $(JRE_IMAGE_DIR)/lib && $(java-vm-cleanup) |
|
975 $(CD) $(JRE_IMAGE_DIR)/lib/ext && \ |
|
976 $(TOOL_BUILDMETAINDEX) \ |
|
977 -o meta-index *.jar |
|
978 $(CD) $(JRE_IMAGE_DIR)/lib/ext && $(java-vm-cleanup) |
|
979 ifeq ($(PLATFORM), macosx) |
|
980 @#install jobjc, apple mac only |
|
981 $(CP) $(OUTPUTDIR)/JObjC.build/JObjC.jar $(JRE_IMAGE_DIR)/lib/JObjC.jar |
|
982 endif |
|
983 ifeq ($(PLATFORM), windows) |
|
984 @# Remove certain *.lib files |
|
985 $(CD) $(JRE_IMAGE_DIR)/lib && \ |
|
986 $(RM) java.$(LIB_SUFFIX) jvm.$(LIB_SUFFIX) \ |
|
987 awt.$(LIB_SUFFIX) jawt.$(LIB_SUFFIX) |
|
988 ifeq ($(ARCH_DATA_MODEL), 32) |
|
989 @# The Java Kernel JRE image ships with a special VM. It is not included |
|
990 @# in the full JRE image, so remove it. Also, is it only for 32-bit windows. |
|
991 $(CD) $(JRE_IMAGE_DIR)/bin && $(RM) -r kernel |
|
992 endif |
|
993 endif # Windows |
|
994 ifneq ($(PLATFORM), windows) |
|
995 $(call copy-man-pages,$(JRE_IMAGE_DIR),$(JRE_MAN_PAGES)) |
|
996 endif # !windows |
|
997 |
|
998 # Trim out any extra files not for the jre shipment but wanted in the jdk jre. |
|
999 # (Note the jdk WILL want the jre image before this trimming) |
|
1000 # Removes server VM on Windows 32bit. |
|
1001 # Remove certain shared libraries that should not be in the jre image |
|
1002 # but should be in the jdk jre image. |
|
1003 trim-image-jre:: |
|
1004 @# Clean out all _the. files. |
|
1005 $(FIND) $(JRE_IMAGE_DIR) -name "_the.*" $(FIND_DELETE) |
|
1006 ifeq ($(PLATFORM), windows) |
|
1007 ifeq ($(ARCH_DATA_MODEL), 32) |
|
1008 $(RM) -r $(JRE_IMAGE_DIR)/bin/server |
|
1009 endif |
|
1010 ifdef NOTJRE_SHARED_LIBS |
|
1011 for l in $(NOTJRE_SHARED_LIBS) ; do \ |
|
1012 $(RM) $(JRE_IMAGE_DIR)/bin/$$l ; \ |
|
1013 done ; |
|
1014 endif |
|
1015 else # PLATFORM |
|
1016 ifdef NOTJRE_SHARED_LIBS |
|
1017 for l in $(NOTJRE_SHARED_LIBS) ; do \ |
|
1018 $(RM) $(JRE_IMAGE_DIR)/lib/$(LIBARCH)/$$l ; \ |
|
1019 done ; |
|
1020 endif |
|
1021 endif # PLATFORM |
|
1022 |
|
1023 # Get list of all binary (COFF or Elf) files in the jre |
|
1024 JRE_BIN_LIST=$(TEMPDIR)/jre-bin-files.list |
|
1025 $(JRE_BIN_LIST): |
|
1026 $(RM) $@ |
|
1027 ifeq ($(PLATFORM), windows) |
|
1028 $(FIND) $(JRE_IMAGE_DIR)/bin -type f -name \*.exe \ |
|
1029 -o -name \*.dll | $(EGREP) -v -i "$(MSVCRNN_DLL)" > $@ |
|
1030 else |
|
1031 $(FIND) $(JRE_IMAGE_DIR)/lib -type f -name \*.$(LIB_SUFFIX) >> $@ |
|
1032 $(FILE) `$(FIND) $(JRE_IMAGE_DIR)/bin -type f -name \*$(EXE_SUFFIX)` \ |
|
1033 | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@ |
|
1034 endif |
|
1035 |
|
1036 # Post process the image (strips and mcs on Elf files we are shipping) |
|
1037 # (Note the jdk WILL want the jre image before this processing) |
|
1038 process-image-jre:: $(JRE_BIN_LIST) |
|
1039 ifneq ($(POST_STRIP_PROCESS), ) |
|
1040 @for f in `$(CAT) $(JRE_BIN_LIST)`; do \ |
|
1041 $(CHMOD) u+w $${f}; \ |
|
1042 $(ECHO) $(POST_STRIP_PROCESS) $${f}; \ |
|
1043 $(POST_STRIP_PROCESS) $${f}; \ |
|
1044 $(CHMOD) go-w $${f}; \ |
|
1045 done |
|
1046 endif |
|
1047 ifneq ($(POST_MCS_PROCESS), ) |
|
1048 @for f in `$(CAT) $(JRE_BIN_LIST)`; do \ |
|
1049 $(CHMOD) u+w $${f}; \ |
|
1050 $(ECHO) $(POST_MCS_PROCESS) $${f}; \ |
|
1051 $(POST_MCS_PROCESS) $${f}; \ |
|
1052 $(CHMOD) go-w $${f}; \ |
|
1053 done |
|
1054 endif |
|
1055 @for f in `$(CAT) $(JRE_BIN_LIST)`; do \ |
|
1056 $(call binary_file_verification,$${f}); \ |
|
1057 done |
|
1058 $(RM) $(JRE_BIN_LIST) |
|
1059 |
|
1060 ###################################################### |
|
1061 # JDK Image |
|
1062 ###################################################### |
|
1063 # Note: cpio ($(CPIO)) sometimes leaves directories without rx access. |
|
1064 |
|
1065 # REMIND: the $(RM) calls for patterns like c:, d: following $(CPIO) |
|
1066 # are because the 1.7.x versions of cygwin's cpio command drops these |
|
1067 # in the working directory if the output path begins with that pattern |
|
1068 # The one for the output jre subdirectory gets there because cpio sees its |
|
1069 # own dropping in the input jre subdirectory. Need to remove both of these. |
|
1070 # We can remove these RM's if someone figures out how to stop cpio from |
|
1071 # leaving these there. |
|
1072 # Note that its a real problem not because this directory can end up in the |
|
1073 # bundle (I think it won't since it not in bin or lib and those are the |
|
1074 # only places from which we copy everything), but because the presence |
|
1075 # of this file causes cygwin's find to bomb out, thus breaking the build |
|
1076 # in "install". |
|
1077 initial-image-jdk-setup: |
|
1078 $(RM) -r $(JDK_IMAGE_DIR) |
|
1079 $(MKDIR) -p $(JDK_IMAGE_DIR)/jre |
|
1080 ($(CD) $(JRE_IMAGE_DIR) && $(FIND) . -depth -print \ |
|
1081 | $(CPIO) -pdum $(JDK_IMAGE_DIR)/jre ) |
|
1082 ifeq ($(USING_CYGWIN),true) |
|
1083 $(RM) -rf $(JRE_IMAGE_DIR)/[A-Za-z]: |
|
1084 $(RM) -rf $(JDK_IMAGE_DIR)/jre/[A-Za-z]: |
|
1085 endif |
|
1086 $(RM) -rf $(JDK_IMAGE_DIR)/jre/man |
|
1087 $(CHMOD) a+rx `$(FIND) $(JDK_IMAGE_DIR) -type d` |
|
1088 |
|
1089 initial-image-jdk64-bindemos: |
|
1090 for dir in bin demo ; do \ |
|
1091 ( $(CD) $(OUTPUTDIR) && \ |
|
1092 $(TAR) cf - `$(FIND) $$dir -name '$(LIBARCH)' -print` | \ |
|
1093 ($(CD) $(JDK_IMAGE_DIR) && $(TAR) xf -) ) ; \ |
|
1094 done |
|
1095 |
|
1096 # Solaris 64 bit image is special |
|
1097 initial-image-jdk-sol64:: initial-image-jdk-setup \ |
|
1098 initial-image-jdk64-bindemos |
|
1099 |
|
1100 # DB files to add |
|
1101 ifdef OPENJDK |
|
1102 |
|
1103 initial-image-jdk-db: |
|
1104 |
|
1105 else |
|
1106 |
|
1107 # Create the list of db *.zip files to bundle with jdk |
|
1108 ABS_DB_PATH :=$(call FullPath,$(CLOSED_SHARE_SRC)/db) |
|
1109 DB_ZIP_LIST := $(shell $(LS) $(ABS_DB_PATH)/*.zip 2>/dev/null) |
|
1110 # Can't have : in these file names as they are used in a rule |
|
1111 # below. |
|
1112 ifdef USING_CYGWIN |
|
1113 DB_ZIP_LIST:=$(shell $(CYGPATH) -a -u $(DB_ZIP_LIST)) |
|
1114 endif |
|
1115 |
|
1116 # Java DB image. Move the Java DB demo directory into the JDK's demo |
|
1117 # dir and in the process, rename it to db. Also remove index.html, |
|
1118 # since it presumes docs are co-located. Also remove register.html (no |
|
1119 # longer relevant). |
|
1120 initial-image-jdk-db: $(DB_ZIP_LIST) |
|
1121 $(MKDIR) -p $(JDK_IMAGE_DIR)/db |
|
1122 for d in $(DB_ZIP_LIST); do \ |
|
1123 ($(CD) $(JDK_IMAGE_DIR)/db && $(UNZIP) -o $$d); \ |
|
1124 done |
|
1125 $(CP) $(ABS_DB_PATH)/README-JDK.html $(JDK_IMAGE_DIR)/db |
|
1126 ifndef NO_DEMOS |
|
1127 $(RM) -rf $(NEWDEMODIR)/db |
|
1128 $(MV) $(JDK_IMAGE_DIR)/db/demo $(NEWDEMODIR)/db |
|
1129 $(CP) $(ABS_DB_PATH)/README-JDK-DEMOS.html $(NEWDEMODIR)/db/ |
|
1130 else |
|
1131 $(RM) -rf $(JDK_IMAGE_DIR)/db/demo |
|
1132 endif |
|
1133 $(RM) $(JDK_IMAGE_DIR)/db/index.html $(JDK_IMAGE_DIR)/db/register.html |
|
1134 endif |
|
1135 |
|
1136 # The launcher source files we need for src.zip |
|
1137 FILES_launcher = $(wildcard $(SHARE_SRC)/bin/*) \ |
|
1138 $(wildcard $(PLATFORM_SRC)/bin/java_md*) |
|
1139 |
|
1140 # Standard jdk image |
|
1141 initial-image-jdk:: initial-image-jdk-setup \ |
|
1142 initial-image-jdk-db \ |
|
1143 $(JDK_DOCFILES) \ |
|
1144 $(JDK_DEMOS_AND_SAMPLES_DOCFILES) |
|
1145 $(MKDIR) $(JDK_IMAGE_DIR)/lib |
|
1146 @# |
|
1147 @# Copy in the jars in lib that only belong in the JDK |
|
1148 @# |
|
1149 for l in $(NOTJRELIBS); do \ |
|
1150 if [ -r $(LIBDIR)/$$l ]; then \ |
|
1151 $(CP) $(LIBDIR)/$$l $(JDK_IMAGE_DIR)/lib; \ |
|
1152 fi; \ |
|
1153 done |
|
1154 ifeq ($(PLATFORM), windows) |
|
1155 @# |
|
1156 @# lib/ |
|
1157 @# |
|
1158 $(CP) $(LIBDIR)/$(LIB_PREFIX)jvm.$(LIB_SUFFIX) $(JDK_IMAGE_DIR)/lib |
|
1159 $(CP) $(LIBDIR)/$(LIB_PREFIX)jawt.$(LIB_SUFFIX) $(JDK_IMAGE_DIR)/lib |
|
1160 @# |
|
1161 @# bin/ |
|
1162 @# |
|
1163 @# copy all EXE files and only certain DLL files from BINDIR |
|
1164 $(MKDIR) -p $(JDK_IMAGE_DIR)/bin |
|
1165 $(CP) $(BINDIR)/*$(EXE_SUFFIX) $(JDK_IMAGE_DIR)/bin |
|
1166 $(CP) $(BINDIR)/jli.$(LIBRARY_SUFFIX) $(JDK_IMAGE_DIR)/bin |
|
1167 ifeq ($(COMPILER_VERSION), VS2010) |
|
1168 $(CP) $(BINDIR)/msvc*100.$(LIBRARY_SUFFIX) $(JDK_IMAGE_DIR)/bin |
|
1169 endif |
|
1170 else # PLATFORM |
|
1171 @# |
|
1172 @# bin/ |
|
1173 @# |
|
1174 ($(CD) $(BINDIR)/.. && $(TAR) cf - \ |
|
1175 `$(FIND) bin \( -type f -o -type l \) -print `) | \ |
|
1176 ($(CD) $(JDK_IMAGE_DIR) && $(TAR) xf -) |
|
1177 endif # PLATFORM |
|
1178 @# |
|
1179 @# lib/tools.jar |
|
1180 @# |
|
1181 $(MKDIR) -p $(IMAGES_OUTPUTDIR)/lib |
|
1182 $(CD) $(CLASSBINDIR) && \ |
|
1183 $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS_NOMANIFEST) $(IMAGES_OUTPUTDIR)/lib/tools.jar \ |
|
1184 $(TOOLS) $(BOOT_JAR_JFLAGS) |
|
1185 $(CD) $(CLASSBINDIR) && $(java-vm-cleanup) |
|
1186 $(CP) $(IMAGES_OUTPUTDIR)/lib/tools.jar $(JDK_IMAGE_DIR)/lib/tools.jar |
|
1187 @# |
|
1188 @# lib/ct.sym |
|
1189 @# |
|
1190 $(MKDIR) -p $(IMAGES_OUTPUTDIR)/symbols/META-INF/sym |
|
1191 $(BOOT_JAVA_CMD) \ |
|
1192 -Xbootclasspath/p:$(JAVAC_JAR) \ |
|
1193 -Xbootclasspath/a:$(JDK_OUTPUTDIR)/classes \ |
|
1194 -jar $(JAVAC_JAR) $(JAVACFLAGS) \ |
|
1195 -XDprocess.packages -proc:only \ |
|
1196 -processor com.sun.tools.javac.sym.CreateSymbols \ |
|
1197 -Acom.sun.tools.javac.sym.Jar=$(RT_JAR) \ |
|
1198 -Acom.sun.tools.javac.sym.Dest=$(IMAGES_OUTPUTDIR)/symbols/META-INF/sym/rt.jar \ |
|
1199 $(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS) $(EXPORTED_PRIVATE_PKGS) |
|
1200 $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS_NOMANIFEST) $(IMAGES_OUTPUTDIR)/lib/ct.sym \ |
|
1201 -C $(IMAGES_OUTPUTDIR)/symbols META-INF $(BOOT_JAR_JFLAGS) |
|
1202 $(java-vm-cleanup) |
|
1203 $(CP) $(IMAGES_OUTPUTDIR)/lib/ct.sym $(JDK_IMAGE_DIR)/lib/ct.sym |
|
1204 @# |
|
1205 @# CORBA supported orb.idl and ir.idl should be copied to lib |
|
1206 @# |
|
1207 $(CP) $(LIBDIR)/orb.idl $(JDK_IMAGE_DIR)/lib/orb.idl |
|
1208 $(CP) $(LIBDIR)/ir.idl $(JDK_IMAGE_DIR)/lib/ir.idl |
|
1209 ifeq ($(PLATFORM), linux) |
|
1210 @# |
|
1211 @# on Linux copy jexec from jre/lib to /lib |
|
1212 @# |
|
1213 $(CP) $(LIBDIR)/jexec $(JDK_IMAGE_DIR)/lib/jexec |
|
1214 endif # PLATFORM |
|
1215 @# |
|
1216 @# src.zip |
|
1217 @# |
|
1218 $(MKDIR) -p $(JDK_IMAGE_DIR)/src |
|
1219 @# |
|
1220 @# The '*-*' pattern in the find command excludes files named with dashes, |
|
1221 @# such as the java.nio templates for generated classes |
|
1222 @# |
|
1223 @# The Linux 'tar' command cannot handle the huge command line argument |
|
1224 @# generated by the more efficient solaris/windows method of copying files. |
|
1225 @# So for Linux, make use of the -T option (like Solaris' -I option) of |
|
1226 @# obtaining the list of files from a file. MKS tar has no such option. |
|
1227 |
|
1228 ifneq (,$(findstring $(PLATFORM), linux macosx)) |
|
1229 for d in $(SOURCE_DIRS); do \ |
|
1230 $(RM) $(IMAGES_OUTPUTDIR)/tmp/src-files.list; \ |
|
1231 ($(CD) $$d && \ |
|
1232 for sd in $(SOURCES) ; do \ |
|
1233 if [ -d $$sd ] ; then \ |
|
1234 $(FIND) $$sd $(SOURCE_FILES_filter) \ |
|
1235 -name '*.java' -print \ |
|
1236 >> $(IMAGES_OUTPUTDIR)/tmp/src-files.list ; \ |
|
1237 fi; \ |
|
1238 done ; \ |
|
1239 ) ; \ |
|
1240 if [ -f $(IMAGES_OUTPUTDIR)/tmp/src-files.list ] ; then \ |
|
1241 ($(CD) $$d && $(TAR) cf - -T $(IMAGES_OUTPUTDIR)/tmp/src-files.list ) \ |
|
1242 | ($(CD) $(JDK_IMAGE_DIR)/src && $(TAR) xf -); \ |
|
1243 fi; \ |
|
1244 done |
|
1245 else |
|
1246 for d in $(SOURCE_DIRS); do \ |
|
1247 $(RM) $(IMAGES_OUTPUTDIR)/tmp/src-files.list; \ |
|
1248 ($(CD) $$d && \ |
|
1249 for sd in $(SOURCES) ; do \ |
|
1250 if [ -d $$sd ] ; then \ |
|
1251 $(FIND) $$sd $(SOURCE_FILES_filter) \ |
|
1252 -name '*.java' -print \ |
|
1253 >> $(IMAGES_OUTPUTDIR)/tmp/src-files.list ; \ |
|
1254 fi; \ |
|
1255 done ; \ |
|
1256 ) ; \ |
|
1257 if [ -f $(IMAGES_OUTPUTDIR)/tmp/src-files.list ] ; then \ |
|
1258 ($(CD) $$d && $(TAR) cf - `$(CAT) $(IMAGES_OUTPUTDIR)/tmp/src-files.list`) \ |
|
1259 | ($(CD) $(JDK_IMAGE_DIR)/src && $(TAR) xf -); \ |
|
1260 fi; \ |
|
1261 done |
|
1262 endif |
|
1263 $(RM) $(IMAGES_OUTPUTDIR)/tmp/src-files.list |
|
1264 $(CHMOD) -R +w $(JDK_IMAGE_DIR)/src |
|
1265 $(MKDIR) -p $(JDK_IMAGE_DIR)/src/launcher |
|
1266 $(CP) $(FILES_launcher) $(JDK_IMAGE_DIR)/src/launcher |
|
1267 $(CD) $(JDK_IMAGE_DIR)/src && $(ZIPEXE) -qr ../src.zip * |
|
1268 $(RM) -r $(JDK_IMAGE_DIR)/src |
|
1269 @# |
|
1270 @# demo, include |
|
1271 @# |
|
1272 ifndef NO_DEMOS |
|
1273 mkdir -p $(JDK_IMAGE_DIR)/demo |
|
1274 $(CP) -r -f $(NEWDEMODIR)/* $(JDK_IMAGE_DIR)/demo |
|
1275 $(FIND) $(JDK_IMAGE_DIR)/demo -name "_the.*" $(FIND_DELETE) |
|
1276 endif |
|
1277 ifndef NO_SAMPLES |
|
1278 $(CP) -r -f $(SAMPLEDIR) $(JDK_IMAGE_DIR) |
|
1279 endif |
|
1280 $(CP) -r $(INCLUDEDIR) $(JDK_IMAGE_DIR) |
|
1281 @# |
|
1282 @# Swing BeanInfo generation |
|
1283 @# |
|
1284 $(CP) $(JDK_OUTPUTDIR)/lib/dt.jar $(JDK_IMAGE_DIR)/lib/dt.jar |
|
1285 ifneq ($(PLATFORM), windows) |
|
1286 $(call copy-man-pages,$(JDK_IMAGE_DIR),$(JDK_MAN_PAGES)) |
|
1287 endif # !windows |
|
1288 |
|
1289 # Trim out files we don't want to ship |
|
1290 trim-image-jdk:: |
|
1291 @# Clean out all _the. files. |
|
1292 $(FIND) $(JDK_IMAGE_DIR) -name "_the.*" $(FIND_DELETE) |
|
1293 @# Remove tools that should not be part of SDK. |
|
1294 for t in $(NOTJDKTOOLS); do \ |
|
1295 $(RM) $(JDK_IMAGE_DIR)/bin/$${t}$(EXE_SUFFIX); \ |
|
1296 done |
|
1297 |
|
1298 # Get list of binary (COFF or Elf) files in the jdk |
|
1299 JDK_BIN_LIST=$(TEMPDIR)/jdk-bin-files.list |
|
1300 $(JDK_BIN_LIST): |
|
1301 ifeq ($(PLATFORM), windows) |
|
1302 $(FIND) $(JDK_IMAGE_DIR)/jre/bin -type f -name \*.exe \ |
|
1303 -o -name \*.dll | $(EGREP) -v -i "$(MSVCRNN_DLL)" > $@ |
|
1304 $(FIND) $(JDK_IMAGE_DIR)/bin -type f -name \*.exe \ |
|
1305 -o -name \*.dll | $(EGREP) -v -i "$(MSVCRNN_DLL)" >> $@ |
|
1306 else |
|
1307 $(RM) $@ |
|
1308 $(FIND) $(JDK_IMAGE_DIR)/jre/lib -type f -name \*.$(LIB_SUFFIX) >> $@ |
|
1309 $(FILE) `$(FIND) $(JDK_IMAGE_DIR)/jre/bin -type f -name \*$(EXE_SUFFIX)` \ |
|
1310 | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@ |
|
1311 $(FILE) `$(FIND) $(JDK_IMAGE_DIR)/bin -type f -name \*$(EXE_SUFFIX)` \ |
|
1312 | $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@ |
|
1313 endif |
|
1314 |
|
1315 # Post process the image (strips and mcs on files we are shipping) |
|
1316 process-image-jdk:: $(JDK_BIN_LIST) |
|
1317 ifneq ($(POST_STRIP_PROCESS), ) |
|
1318 @for f in `$(CAT) $(JDK_BIN_LIST)`; do \ |
|
1319 $(CHMOD) u+w $${f}; \ |
|
1320 $(ECHO) $(POST_STRIP_PROCESS) $${f}; \ |
|
1321 $(POST_STRIP_PROCESS) $${f}; \ |
|
1322 $(CHMOD) go-w $${f}; \ |
|
1323 done |
|
1324 endif |
|
1325 ifneq ($(POST_MCS_PROCESS), ) |
|
1326 @for f in `$(CAT) $(JDK_BIN_LIST)`; do \ |
|
1327 $(CHMOD) u+w $${f}; \ |
|
1328 $(ECHO) $(POST_MCS_PROCESS) $${f}; \ |
|
1329 $(POST_MCS_PROCESS) $${f}; \ |
|
1330 $(CHMOD) go-w $${f}; \ |
|
1331 done |
|
1332 endif |
|
1333 @for f in `$(CAT) $(JDK_BIN_LIST)`; do \ |
|
1334 $(call binary_file_verification,$${f}); \ |
|
1335 done |
|
1336 $(RM) $(JDK_BIN_LIST) |
|
1337 |
|
1338 ################################################################### |
|
1339 # What did we build |
|
1340 ################################################################### |
|
1341 |
|
1342 # The jdk text info file that lives at the root of the install image. |
|
1343 |
|
1344 JDK_INFO_FILE = $(JDK_IMAGE_DIR)/release |
|
1345 JRE_INFO_FILE = $(JRE_IMAGE_DIR)/release |
|
1346 |
|
1347 # Common way to emit a line into the release or info file |
|
1348 define info-file-item # name value |
|
1349 $(PRINTF) '%s="%s"\n' $1 $2 >> $@ |
|
1350 endef |
|
1351 |
|
1352 # Values to emit |
|
1353 MINIMUM_OS_NAME := $(REQUIRED_OS_NAME) |
|
1354 MINIMUM_OS_VERSION := $(REQUIRED_OS_VERSION) |
|
1355 MINIMUM_OS_ARCH := $(ARCH) |
|
1356 ALL_SOURCE_TIPS = $(shell \ |
|
1357 if [ -f $(SOURCE_TIPS) ] ; then \ |
|
1358 $(CAT) $(SOURCE_TIPS) ; \ |
|
1359 fi) |
|
1360 |
|
1361 $(JDK_INFO_FILE): FRC |
|
1362 $(prep-target) |
|
1363 $(call info-file-item, "JAVA_VERSION", "$(THIS_JDK_VERSION)") |
|
1364 $(call info-file-item, "OS_NAME", "$(MINIMUM_OS_NAME)") |
|
1365 $(call info-file-item, "OS_VERSION", "$(MINIMUM_OS_VERSION)") |
|
1366 $(call info-file-item, "OS_ARCH", "$(MINIMUM_OS_ARCH)") |
|
1367 $(call info-file-item, "SOURCE", "$(ALL_SOURCE_TIPS)") |
|
1368 |
|
1369 # Create release file to identify this image |
|
1370 identify-image-jdk:: $(JDK_INFO_FILE) |
|
1371 |
|
1372 $(JRE_INFO_FILE): FRC |
|
1373 $(prep-target) |
|
1374 $(call info-file-item, "JAVA_VERSION", "$(THIS_JDK_VERSION)") |
|
1375 $(call info-file-item, "OS_NAME", "$(MINIMUM_OS_NAME)") |
|
1376 $(call info-file-item, "OS_VERSION", "$(MINIMUM_OS_VERSION)") |
|
1377 $(call info-file-item, "OS_ARCH", "$(MINIMUM_OS_ARCH)") |
|
1378 $(call info-file-item, "SOURCE", "$(ALL_SOURCE_TIPS)") |
|
1379 |
|
1380 # Create release file to identify this image |
|
1381 identify-image-jre:: $(JRE_INFO_FILE) |
|
1382 |
|
1383 images images-clobber:: |
|
1384 $(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..." |
|
1385 $(java-vm-cleanup) |
|
1386 |
|
1387 .PHONY: images image-jre image-jdk \ |
|
1388 initial-image-jre initial-image-jdk \ |
|
1389 initial-image-jre-sol64 initial-image-jdk-sol64 \ |
|
1390 initial-image-jdk-setup \ |
|
1391 initial-image-jdk-db \ |
|
1392 initial-image-jdk64-bindemos \ |
|
1393 initial-image-jre-setup \ |
|
1394 trim-image-jre trim-image-jdk \ |
|
1395 process-image-jre process-image-jdk \ |
|
1396 identify-image-jre identify-image-jdk \ |
|
1397 images-clobber |
|
1398 |
|
1399 # Force rule |
|
1400 FRC: |
|
1401 |
|