1 # |
|
2 # Copyright (c) 2011, 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 # |
|
27 # SE-Embedded Reduced JRE targets |
|
28 # |
|
29 ifdef JAVASE_EMBEDDED |
|
30 |
|
31 reduced-image-jre reduced-headless-image-jre :: |
|
32 @$(ECHO) ">>>Making "$@" @ `$(DATE)` ..." |
|
33 |
|
34 # Add the reduced-jre images as pre-reqs. These will be processed last |
|
35 images:: reduced-image-jre reduced-headless-image-jre |
|
36 |
|
37 |
|
38 ###################################################### |
|
39 # Create the headless rt.jar |
|
40 ###################################################### |
|
41 |
|
42 NOT_HEADLESS_RT_JAR_LIST = $(ABS_TEMPDIR)/not_hl_rt_jar.list |
|
43 HEADLESS_RT_JAR_FILELIST=$(JARFILELISTS_TEMPDIR)/hl_rt_jar_list |
|
44 TOTAL_HEADLESS_JAR_FILELIST=$(REORDER_TEMPDIR)/hl_file_list |
|
45 HEADLESS_CLASSLIST=$(ABS_TEMPDIR)/headless_classlist |
|
46 |
|
47 # Add the jar file directories that we don't want in the |
|
48 # headless JRE. If you want to remove most classes in a |
|
49 # directory, put the directory in the NOT_HEADLESS_RT_JAR_LIST |
|
50 # and put the individual classes you want to keep in the |
|
51 # HEADLESS_CLASSLIST file. |
|
52 $(NOT_HEADLESS_RT_JAR_LIST): $(NOT_RT_JAR_LIST) |
|
53 $(RM) $(HEADLESS_CLASSLIST) |
|
54 $(RM) $(NOT_HEADLESS_RT_JAR_LIST) |
|
55 $(CP) $(NOT_RT_JAR_LIST) $(NOT_HEADLESS_RT_JAR_LIST) |
|
56 # List all the packages to be excluded |
|
57 $(ECHO) "sun/awt/motif/" >> $@ |
|
58 $(ECHO) "sun/awt/X11/" >> $@ |
|
59 $(ECHO) "sun/applet/" >> $@ |
|
60 $(ECHO) "sun/java2d/opengl/" >> $@ |
|
61 $(ECHO) "com/sun/java/swing/plaf/" >> $@ |
|
62 # List all the individual classes to be included |
|
63 $(ECHO) "sun/awt/motif/MFontConfiguration.class" >$(HEADLESS_CLASSLIST) |
|
64 $(ECHO) "sun/applet/AppContextCreator.class" >>$(HEADLESS_CLASSLIST) |
|
65 $(ECHO) "sun/applet/AppletAudioClip.class" >>$(HEADLESS_CLASSLIST) |
|
66 $(ECHO) "sun/java2d/opengl/GLXSurfaceData.class" >>$(HEADLESS_CLASSLIST) |
|
67 $(ECHO) "sun/java2d/opengl/GLXSurfaceData"\$$"GLXOffScreenSurfaceData.class" >>$(HEADLESS_CLASSLIST) |
|
68 $(ECHO) "sun/java2d/opengl/GLXVolatileSurfaceManager.class" >>$(HEADLESS_CLASSLIST) |
|
69 $(ECHO) "sun/java2d/opengl/OGLSurfaceData.class" >>$(HEADLESS_CLASSLIST) |
|
70 |
|
71 |
|
72 $(TOTAL_HEADLESS_JAR_FILELIST): $(JARREORDER_JARFILE) $(NOT_HEADLESS_RT_JAR_LIST) |
|
73 $(prep-target) |
|
74 $(RM) $@.temp |
|
75 $(CD) $(CLASSBINDIR) ; \ |
|
76 $(BOOT_JAVA_CMD) -jar $(JARREORDER_JARFILE) \ |
|
77 -o $@.temp - $(NOT_HEADLESS_RT_JAR_LIST) . |
|
78 # Add on the explicitly included class files from the otherwise excluded packages |
|
79 $(CAT) $(HEADLESS_CLASSLIST) >> $@.temp |
|
80 $(MV) $@.temp $@ |
|
81 @$(CD) $(CLASSBINDIR); $(java-vm-cleanup) |
|
82 |
|
83 # Create the headless rt.jar file list & non-class files list |
|
84 MakeHeadlessJarFileList: $(TOTAL_HEADLESS_JAR_FILELIST) $(JARSPLIT_JARFILE) |
|
85 @$(RM) $(HEADLESS_RT_JAR_FILELIST) $(RES_JAR_FILELIST) |
|
86 $(BOOT_JAVA_CMD) -jar $(JARSPLIT_JARFILE) $(TOTAL_HEADLESS_JAR_FILELIST) \ |
|
87 -o $(HEADLESS_RT_JAR_FILELIST) $(RES_JAR_FILELIST) |
|
88 @$(java-vm-cleanup) |
|
89 |
|
90 # Create headless rt.jar |
|
91 HL_RT_JAR=$(ABS_TEMPDIR)/rt-hl-orig.jar |
|
92 $(HL_RT_JAR): MakeHeadlessJarFileList $(RT_JAR_MANIFEST_FILE) |
|
93 $(prep-target) |
|
94 $(CD) $(CLASSBINDIR) ; \ |
|
95 $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ @$(HEADLESS_RT_JAR_FILELIST) \ |
|
96 $(JAR_JFLAGS) |
|
97 @$(CD) $(CLASSBINDIR); $(java-vm-cleanup) |
|
98 |
|
99 |
|
100 # |
|
101 # Produce a reduced Headful JRE for Embedded Devices |
|
102 # |
|
103 # The deployment binaries are added during the deployment build process |
|
104 # |
|
105 |
|
106 # Binaries that don't get included in reduced jre image bin directory |
|
107 NOT_REDUCEDJRE_BIN = \ |
|
108 java_vm \ |
|
109 kinit \ |
|
110 klist \ |
|
111 ktab \ |
|
112 orbd \ |
|
113 policytool \ |
|
114 rmid \ |
|
115 rmiregistry \ |
|
116 servertool \ |
|
117 tnameserv \ |
|
118 pack200 \ |
|
119 unpack200 |
|
120 |
|
121 # jars/resources/libs that don't get included in reduced jre image lib directory |
|
122 NOT_REDUCEDJRE_LIB = \ |
|
123 charsets.jar \ |
|
124 ext/dnsns.jar \ |
|
125 ext/localedata.jar \ |
|
126 $(LIBARCH)/client/classes.jsa \ |
|
127 $(LIBARCH)/libjavaplugin_jni.so \ |
|
128 $(LIBARCH)/libjavaplugin_nscp_gcc29.so \ |
|
129 $(LIBARCH)/libjavaplugin_nscp.so \ |
|
130 $(LIBARCH)/libjavaplugin_oji.so |
|
131 |
|
132 # JRE docs that don't get included in reduced jre image top directory |
|
133 NOT_REDUCEDJRE_DOC = \ |
|
134 Welcome.html |
|
135 |
|
136 reduced-image-jre:: |
|
137 @$(ECHO) Starting to Produce Reduced JRE |
|
138 @# |
|
139 @# First make a copy of the full JRE |
|
140 @# |
|
141 $(RM) -r $(JRE_REDUCED_IMAGE_DIR) |
|
142 $(MKDIR) -p $(JRE_REDUCED_IMAGE_DIR) |
|
143 $(CD) $(JRE_IMAGE_DIR); \ |
|
144 $(TAR) cf - . | ($(CD) $(JRE_REDUCED_IMAGE_DIR); $(TAR) xf - ); |
|
145 |
|
146 @# |
|
147 @# Remove all of the files that are not needed for the |
|
148 @# reduced JRE |
|
149 @# |
|
150 for l in $(NOT_REDUCEDJRE_BIN) ; do \ |
|
151 $(RM) $(JRE_REDUCED_IMAGE_DIR)/bin/$$l ; \ |
|
152 done |
|
153 for l in $(NOT_REDUCEDJRE_LIB) ; do \ |
|
154 $(RM) $(JRE_REDUCED_IMAGE_DIR)/lib/$$l ; \ |
|
155 done |
|
156 for l in $(NOT_REDUCEDJRE_DOC) ; do \ |
|
157 $(RM) $(JRE_REDUCED_IMAGE_DIR)/$$l ; \ |
|
158 done |
|
159 |
|
160 @# Remove misc. other files |
|
161 $(RM) -r $(JRE_REDUCED_IMAGE_DIR)/man |
|
162 $(RM) -f $(JRE_REDUCED_IMAGE_DIR)/CHANGES |
|
163 |
|
164 @$(ECHO) Done Creating Reduced JRE |
|
165 |
|
166 # |
|
167 # Produce a reduced Headless JRE |
|
168 # |
|
169 reduced-headless-image-jre:: $(RT_JAR) $(RESOURCES_JAR) $(BUILD_META_INDEX) $(HL_RT_JAR) |
|
170 @$(ECHO) Starting to Produce Reduced Headless JRE |
|
171 @# |
|
172 @# First make a copy of the reduced JRE we just built |
|
173 @# |
|
174 $(RM) -r $(JRE_REDUCED_HEADLESS_IMAGE_DIR) |
|
175 $(MKDIR) -p $(JRE_REDUCED_HEADLESS_IMAGE_DIR) |
|
176 $(CD) $(JRE_REDUCED_IMAGE_DIR); \ |
|
177 $(TAR) cf - . | ($(CD) $(JRE_REDUCED_HEADLESS_IMAGE_DIR); $(TAR) xf - ); |
|
178 |
|
179 @# Replace the full rt.jar with the headless rt.jar |
|
180 $(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/rt.jar |
|
181 $(CP) $(HL_RT_JAR) $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/rt.jar |
|
182 |
|
183 @# |
|
184 @# Remove all of the files that are not needed for the |
|
185 @# reduced Headless JRE |
|
186 @# |
|
187 $(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/gtkhelper |
|
188 $(RM) $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/libjsoundalsa.so |
|
189 $(RM) -r $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/audio |
|
190 $(RM) -fr $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/applet |
|
191 $(RM) $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/awt_robot |
|
192 $(RM) $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/libawt_xawt.so |
|
193 $(RM) -r $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/libsplashscreen.so |
|
194 @# Remove oblique fonts and reduce font support to LucidaSansRegular only |
|
195 $(RM) -fr $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/oblique-fonts |
|
196 $(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaBrightDemiBold.ttf |
|
197 $(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaBrightDemiItalic.ttf |
|
198 $(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaBrightItalic.ttf |
|
199 $(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaBrightRegular.ttf |
|
200 $(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaSansDemiBold.ttf |
|
201 $(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaTypewriterBold.ttf |
|
202 $(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaTypewriterRegular.ttf |
|
203 |
|
204 ifeq ($(PLATFORM), linux) |
|
205 # put out minimal fonts.dir file for the remaining font |
|
206 $(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir |
|
207 $(ECHO) 6>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir |
|
208 $(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-1">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir |
|
209 $(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-2">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir |
|
210 $(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-4">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir |
|
211 $(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-5">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir |
|
212 $(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-7">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir |
|
213 $(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-9">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir |
|
214 |
|
215 endif # Linux |
|
216 |
|
217 @# |
|
218 @# all done with JRE reduced headless image |
|
219 @# |
|
220 |
|
221 @$(ECHO) Done Creating Reduced Headless JRE |
|
222 |
|
223 images-clobber:: |
|
224 $(RM) -r $(JRE_REDUCED_IMAGE_DIR) |
|
225 $(RM) -r $(JRE_REDUCED_HEADLESS_IMAGE_DIR) |
|
226 |
|
227 .PHONY: reduced-image-jre reduced-headless-image-jre |
|
228 |
|
229 endif # JAVASE_EMBEDDED |
|
230 |
|