1 | #
|
---|
2 | # Copyright (c) 2002, 2007, 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 | BUILDDIR = ../..
|
---|
27 | PACKAGE = sun.awt.X11
|
---|
28 | LIBRARY = mawt
|
---|
29 | LIBRARY_OUTPUT = xawt
|
---|
30 | LIB_LOCATION = $(LIBDIR)/$(LIBARCH)/xawt
|
---|
31 | PRODUCT = sun
|
---|
32 |
|
---|
33 | include $(BUILDDIR)/common/Defs.gmk
|
---|
34 |
|
---|
35 | GEN_DIR=$(GENSRCDIR)/sun/awt/X11
|
---|
36 |
|
---|
37 | CLASSES_INIT += $(TEMPDIR)/.gen.wrappers $(TEMPDIR)/.gen_icons touch.wrappers
|
---|
38 |
|
---|
39 | .PHONY: generated.clean
|
---|
40 |
|
---|
41 | #
|
---|
42 | # Files
|
---|
43 | #
|
---|
44 | include FILES_c_unix.gmk
|
---|
45 | include FILES_export_unix.gmk
|
---|
46 | AUTO_FILES_JAVA_DIRS = sun/awt/X11
|
---|
47 | AUTO_JAVA_PRUNE = WrapperGenerator.java
|
---|
48 |
|
---|
49 | LDFLAGS += -L$(OPENWIN_LIB)
|
---|
50 |
|
---|
51 | ifeq ($(PLATFORM), linux)
|
---|
52 | LDFLAGS += -lpthread
|
---|
53 | dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
|
---|
54 | endif
|
---|
55 |
|
---|
56 | # Since this library will be living in a subdirectory below the other libraries
|
---|
57 | # we need to add an extra runpath so that libraries in the upper directory
|
---|
58 | # are found at runtime.
|
---|
59 | LD_RUNPATH_EXTRAS = ..
|
---|
60 |
|
---|
61 | #
|
---|
62 | # Rules.
|
---|
63 | #
|
---|
64 | include $(BUILDDIR)/common/Mapfile-vers.gmk
|
---|
65 | include $(BUILDDIR)/common/Library.gmk
|
---|
66 |
|
---|
67 | #
|
---|
68 | # Add to the ambient vpath to pick up files in subdirectories
|
---|
69 | #
|
---|
70 | vpath %.c $(SHARE_SRC)/native/sunawt/alphacomposite
|
---|
71 | vpath %.c $(PLATFORM_SRC)/native/sun/xawt
|
---|
72 | vpath %.c $(PLATFORM_SRC)/native/sun/awt
|
---|
73 | vpath %.c $(SHARE_SRC)/native/sun/awt/debug
|
---|
74 | vpath %.c $(SHARE_SRC)/native/sun/awt/image
|
---|
75 | vpath %.c $(SHARE_SRC)/native/sun/awt/image/gif
|
---|
76 | vpath %.c $(SHARE_SRC)/native/sun/awt/image/cvutils
|
---|
77 | vpath %.c $(SHARE_SRC)/native/sun/awt/shell
|
---|
78 | vpath %.c $(SHARE_SRC)/native/sun/java2d
|
---|
79 | vpath %.c $(SHARE_SRC)/native/sun/java2d/loops
|
---|
80 | vpath %.c $(SHARE_SRC)/native/sun/java2d/pipe
|
---|
81 | vpath %.c $(SHARE_SRC)/native/sun/awt/medialib
|
---|
82 | vpath %.cpp $(SHARE_SRC)/native/sun/image
|
---|
83 | vpath %.c $(SHARE_SRC)/native/sun/font
|
---|
84 | vpath %.c $(PLATFORM_SRC)/native/sun/awt/robot_child
|
---|
85 | vpath %.c $(SHARE_SRC)/native/sun/java2d/opengl
|
---|
86 | vpath %.c $(PLATFORM_SRC)/native/sun/java2d/opengl
|
---|
87 | vpath %.c $(PLATFORM_SRC)/native/sun/java2d/x11
|
---|
88 |
|
---|
89 | OTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -ldl \
|
---|
90 | $(LDFLAGS_COMMON) $(AWT_RUNPATH) $(OTHER_LDFLAGS) -lXtst -lXi
|
---|
91 |
|
---|
92 | ifeq ($(PLATFORM), solaris)
|
---|
93 | CPPFLAGS += -DFUNCPROTO=15
|
---|
94 | dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
|
---|
95 | endif
|
---|
96 |
|
---|
97 | CPPFLAGS += -I$(CUPS_HEADERS_PATH)
|
---|
98 |
|
---|
99 | CPPFLAGS += -DXAWT -DXAWT_HACK \
|
---|
100 | -I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders \
|
---|
101 | -I$(PLATFORM_SRC)/native/sun/awt \
|
---|
102 | -I$(PLATFORM_SRC)/native/sun/xawt \
|
---|
103 | -I$(PLATFORM_SRC)/native/sun/jdga \
|
---|
104 | -I$(SHARE_SRC)/native/sun/awt/debug \
|
---|
105 | -I$(SHARE_SRC)/native/sun/awt/image/cvutils \
|
---|
106 | -I$(SHARE_SRC)/native/sun/java2d \
|
---|
107 | -I$(SHARE_SRC)/native/sun/java2d/loops \
|
---|
108 | -I$(SHARE_SRC)/native/sun/awt/image/cvutils \
|
---|
109 | -I$(SHARE_SRC)/native/sun/awt/image \
|
---|
110 | -I$(SHARE_SRC)/native/sun/font \
|
---|
111 | -I$(PLATFORM_SRC)/native/sun/java2d \
|
---|
112 | -I$(SHARE_SRC)/native/sun/java2d/pipe \
|
---|
113 | -I$(SHARE_SRC)/native/sun/java2d/opengl \
|
---|
114 | -I$(PLATFORM_SRC)/native/sun/java2d/opengl \
|
---|
115 | -I$(PLATFORM_SRC)/native/sun/java2d/x11 \
|
---|
116 | -I$(SHARE_SRC)/native/sun/dc/path \
|
---|
117 | -I$(SHARE_SRC)/native/sun/dc/doe \
|
---|
118 | -I$(SHARE_SRC)/native/sun/awt/alphacomposite \
|
---|
119 | -I$(SHARE_SRC)/native/sun/awt/medialib \
|
---|
120 | -I$(PLATFORM_SRC)/native/sun/awt/medialib \
|
---|
121 | -I$(PLATFORM_SRC)/native/sun/font \
|
---|
122 | -I$(SHARE_SRC)/native/sun/awt \
|
---|
123 | -I$(PLATFORM_SRC)/native/sun/awt
|
---|
124 |
|
---|
125 | ifeq ($(PLATFORM), linux)
|
---|
126 | # Allows for builds on Debian GNU Linux, X11 is in a different place
|
---|
127 | CPPFLAGS += -I/usr/X11R6/include/X11/extensions \
|
---|
128 | -I/usr/include/X11/extensions \
|
---|
129 | -I$(MOTIF_DIR)/include \
|
---|
130 | -I$(OPENWIN_HOME)/include
|
---|
131 | endif
|
---|
132 |
|
---|
133 | ifeq ($(PLATFORM), solaris)
|
---|
134 | CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions -I$(MOTIF_DIR)/include
|
---|
135 | endif
|
---|
136 |
|
---|
137 | ifeq ($(MILESTONE), internal)
|
---|
138 | CPPFLAGS += -DINTERNAL_BUILD
|
---|
139 | endif
|
---|
140 |
|
---|
141 | #LDFLAGS_OPT += -L../../../build/solaris-sparc/lib/sparc/motif21 -lmawt_g -lXext -lXm -lXt -ldl
|
---|
142 |
|
---|
143 | #
|
---|
144 | # Generation of wrappers
|
---|
145 | #
|
---|
146 | SIZER_DIR=$(GEN_DIR)/generator
|
---|
147 | SIZER = $(SIZER_DIR)/sizer
|
---|
148 | SIZER_32_C = $(SIZER).32.c
|
---|
149 | SIZER_64_C = $(SIZER).64.c
|
---|
150 | CFLAGS_32=$(CFLAGS)
|
---|
151 | CFLAGS_64=$(CFLAGS)
|
---|
152 |
|
---|
153 | ifeq ($(PLATFORM), solaris)
|
---|
154 |
|
---|
155 | isalist:=$(shell $(ISAINFO))
|
---|
156 |
|
---|
157 | ifneq (,$(findstring sparcv9, $(isalist)))
|
---|
158 | # On sparcv9 we generate both 32 and 64-bit sizers in spite of ARCH_DATA_MODEL.
|
---|
159 | # On sparcv9 CFLAGS already contain $(XARCH_OPTION/64), so to generate 32-bit sizer we need to change this option.
|
---|
160 | CFLAGS_32=$(subst $(XARCH_OPTION/64),$(XARCH_OPTION/32),$(CFLAGS))
|
---|
161 | SIZERS = $(SIZER).32 $(SIZER).64
|
---|
162 | SIZERS_C = $(SIZER_32_C) $(SIZER_64_C)
|
---|
163 | SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 $(WRAPPER_GENERATOR_DIR)/sizes.64
|
---|
164 | CFLAGS_64=$(CFLAGS) $(XARCH_OPTION/64)
|
---|
165 | else
|
---|
166 | ifneq (,$(findstring amd64, $(isalist)))
|
---|
167 | # On amd64 we generate both 32 and 64-bit sizers in spite of ARCH_DATA_MODEL.
|
---|
168 | # On amd64 CFLAGS already contain $(XARCH_OPTION/64), so to generate 32-bit sizer we need to change this option.
|
---|
169 | CFLAGS_32=$(subst $(XARCH_OPTION/64),$(XARCH_OPTION/32),$(CFLAGS))
|
---|
170 | SIZERS = $(SIZER).32 $(SIZER).64
|
---|
171 | SIZERS_C = $(SIZER_32_C) $(SIZER_64_C)
|
---|
172 | SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 $(WRAPPER_GENERATOR_DIR)/sizes.64
|
---|
173 | CFLAGS_64=$(CFLAGS) $(XARCH_OPTION/64)
|
---|
174 | else # !sparcv9 : includes (32-bit) sparc, i586
|
---|
175 | SIZERS = $(SIZER).32
|
---|
176 | SIZERS_C = $(SIZER_32_C)
|
---|
177 | SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32
|
---|
178 | endif # amd64
|
---|
179 | endif # sparcv9
|
---|
180 |
|
---|
181 | else # !solaris
|
---|
182 |
|
---|
183 | ifeq ($(ARCH_DATA_MODEL), 32)
|
---|
184 | SIZERS = $(SIZER).32
|
---|
185 | SIZERS_C = $(SIZER_32_C)
|
---|
186 | SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32
|
---|
187 | else # !32
|
---|
188 | SIZERS = $(SIZER).64
|
---|
189 | SIZERS_C = $(SIZER_64_C)
|
---|
190 | SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.64
|
---|
191 | endif # 32
|
---|
192 |
|
---|
193 | endif # solaris
|
---|
194 |
|
---|
195 | # XXX Hack for 6185483 - use hard-coded sizes.
|
---|
196 | # Add the 64-bit platforms that need to be included into 32-bit build
|
---|
197 | # and have sizes.64-$(PLATFORM)-$(LIBARCH) hardcoded in the workspace
|
---|
198 | ifeq ($(PLATFORM)-$(LIBARCH), solaris-i386)
|
---|
199 | # If you define DOHACK=true for some combination of $(PLATFORM)-$(LIBARCH),
|
---|
200 | # make sure you have sizes.64-$(PLATFORM)-$(LIBARCH) pre-generated in
|
---|
201 | # $(PLATFORM_SRC)/classes/sun/awt/X11/generator/
|
---|
202 | DOHACK=true
|
---|
203 | endif # Hack
|
---|
204 |
|
---|
205 | ifeq ($(DOHACK), true)
|
---|
206 | PREDEFINED_SIZES_TMPL=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/sizes.64-$(PLATFORM)-$(LIBARCH)
|
---|
207 | PREDEFINED_SIZES=$(WRAPPER_GENERATOR_DIR)/sizes.64
|
---|
208 | SIZES += $(WRAPPER_GENERATOR_DIR)/sizes.64
|
---|
209 | endif
|
---|
210 |
|
---|
211 | ifeq ($(PLATFORM)-$(LIBARCH), solaris-amd64)
|
---|
212 | DOCOMPARE=true
|
---|
213 | endif
|
---|
214 | # 64 bit sizers are generated on platform-libarch (left) for use
|
---|
215 | # on platform-libarch (right) and stored under the latter name.
|
---|
216 | # Do compare manually stored and automatically generated pair(s)
|
---|
217 | # if DOCOMPARE=true, just after the generation.
|
---|
218 | STORED_SIZES_TMPL_solaris_amd64=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/sizes.64-solaris-i386
|
---|
219 |
|
---|
220 | WRAPPER_GENERATOR_JAVA=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/WrapperGenerator.java
|
---|
221 | WRAPPER_GENERATOR_DIR=$(GENSRCDIR)/sun/awt/X11/generator
|
---|
222 | WRAPPER_GENERATOR_TEMPDIR=$(TEMPDIR)/sun/awt/X11/generator
|
---|
223 | WRAPPER_GENERATOR_CLASS=$(WRAPPER_GENERATOR_TEMPDIR)/WrapperGenerator.class
|
---|
224 | XLIBTYPES=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/xlibtypes.txt
|
---|
225 |
|
---|
226 | $(SIZERS): $(SIZERS_C)
|
---|
227 | $(prep-target)
|
---|
228 | $(CC) $(CFLAGS_$(subst .,,$(suffix $@))) $(CPPFLAGS) -o $@ $(SIZER)$(suffix $@).c
|
---|
229 |
|
---|
230 | $(WRAPPER_GENERATOR_CLASS): $(WRAPPER_GENERATOR_JAVA)
|
---|
231 | $(prep-target)
|
---|
232 | $(BOOT_JAVAC_CMD) -d $(WRAPPER_GENERATOR_TEMPDIR) $(WRAPPER_GENERATOR_JAVA)
|
---|
233 |
|
---|
234 | $(SIZERS_C): $(WRAPPER_GENERATOR_CLASS) $(XLIBTYPES)
|
---|
235 | $(prep-target)
|
---|
236 | $(MKDIR) -p $(WRAPPER_GENERATOR_TEMPDIR)
|
---|
237 | $(BOOT_JAVA_CMD) -cp $(WRAPPER_GENERATOR_TEMPDIR) WrapperGenerator \
|
---|
238 | $(SIZER_DIR) $(XLIBTYPES) "sizer" $(subst .,,$(suffix $(basename $@)))
|
---|
239 |
|
---|
240 | $(SIZES): $(SIZERS)
|
---|
241 | @if [ "$(DOHACK)$@" = "true$(PREDEFINED_SIZES)" ]; then \
|
---|
242 | $(ECHO) COPYING $(PREDEFINED_SIZES_TMPL) into $@; \
|
---|
243 | $(CP) $(PREDEFINED_SIZES_TMPL) $@; \
|
---|
244 | $(CHMOD) +w $@;\
|
---|
245 | else \
|
---|
246 | $(ECHO) GENERATING $@; \
|
---|
247 | $(WRAPPER_GENERATOR_DIR)/sizer$(suffix $@) > $@; \
|
---|
248 | fi
|
---|
249 | @if [ "$(DOCOMPARE)$(suffix $@)" = "true.64" ]; then \
|
---|
250 | $(ECHO) COMPARING $@ and $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
|
---|
251 | $(DIFF) $@ $(STORED_SIZES_TMPL_$(PLATFORM)_$(LIBARCH)); \
|
---|
252 | fi
|
---|
253 |
|
---|
254 | $(TEMPDIR)/.gen.wrappers: $(SIZES) $(WRAPPER_GENERATOR_CLASS) $(XLIBTYPES)
|
---|
255 | $(BOOT_JAVA_CMD) -cp $(WRAPPER_GENERATOR_TEMPDIR) WrapperGenerator \
|
---|
256 | $(GEN_DIR) $(XLIBTYPES) "gen" $(WRAPPER_GENERATOR_DIR)/sizes
|
---|
257 |
|
---|
258 | touch.wrappers: $(TEMPDIR)/.gen.wrappers
|
---|
259 | $(MKDIR) -p $(TEMPDIR)
|
---|
260 | $(TOUCH) $(TEMPDIR)/.gen.wrappers
|
---|
261 |
|
---|
262 | generated.clean:
|
---|
263 | $(RM) -r $(WRAPPER_GENERATOR_TEMPDIR)
|
---|
264 | $(RM) -r $(WRAPPER_GENERATOR_DIR)
|
---|
265 | $(RM) -r $(GEN_DIR)/*.java
|
---|
266 |
|
---|
267 | ifdef OPENJDK
|
---|
268 | ICONS_PATH_PREFIX=$(PLATFORM_SRC)
|
---|
269 | else
|
---|
270 | ICONS_PATH_PREFIX=$(CLOSED_SRC)/solaris
|
---|
271 | endif
|
---|
272 |
|
---|
273 | ICONS = \
|
---|
274 | $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon16.png \
|
---|
275 | $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon24.png \
|
---|
276 | $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon32.png \
|
---|
277 | $(ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon48.png
|
---|
278 |
|
---|
279 | TEMPDIR_CLASSES = $(TEMPDIR)/classes
|
---|
280 |
|
---|
281 | $(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class: ToBin.java
|
---|
282 | @$(prep-target)
|
---|
283 | $(BOOT_JAVAC_CMD) -d $(TEMPDIR_CLASSES) $<
|
---|
284 |
|
---|
285 | $(TEMPDIR)/.gen_icons: $(TEMPDIR_CLASSES)/sun/awt/X11/ToBin.class $(ICONS)
|
---|
286 | $(prep-target)
|
---|
287 | for i in $(ICONS); do \
|
---|
288 | filename=`basename $$i`; \
|
---|
289 | name=`$(ECHO) $$filename | $(TR) '\-.' '__'`; \
|
---|
290 | classname=$(GEN_DIR)/XAWTIcon32_$$name.java; \
|
---|
291 | $(RM) $$classname; \
|
---|
292 | $(ECHO) "package sun.awt.X11;" >> $$classname ; \
|
---|
293 | $(ECHO) "public class XAWTIcon32_$$name {" >> $$classname; \
|
---|
294 | $(ECHO) "public static int[] $$name = { " >> $$classname; \
|
---|
295 | $(CAT) $$i | \
|
---|
296 | $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES) \
|
---|
297 | -Dawt.toolkit=sun.awt.motif.MToolkit \
|
---|
298 | -Djava.awt.headless=true \
|
---|
299 | sun.awt.X11.ToBin >> $$classname; \
|
---|
300 | $(ECHO) "}; }" >> $$classname; \
|
---|
301 | classname=$(GEN_DIR)/XAWTIcon64_$$name.java; \
|
---|
302 | $(RM) $$classname; \
|
---|
303 | $(ECHO) "package sun.awt.X11;" >> $$classname ; \
|
---|
304 | $(ECHO) "public class XAWTIcon64_$$name {" >> $$classname; \
|
---|
305 | $(ECHO) "public static long[] $$name = { " >> $$classname; \
|
---|
306 | $(CAT) $$i | \
|
---|
307 | $(BOOT_JAVA_CMD) -cp $(TEMPDIR_CLASSES) \
|
---|
308 | -Dawt.toolkit=sun.awt.motif.MToolkit \
|
---|
309 | -Djava.awt.headless=true \
|
---|
310 | sun.awt.X11.ToBin >> $$classname; \
|
---|
311 | $(ECHO) "}; }" >> $$classname; \
|
---|
312 | done
|
---|
313 | $(TOUCH) $@
|
---|
314 |
|
---|
315 | clean clobber:: generated.clean
|
---|
316 |
|
---|
317 | .PHONY: generated.clean robot_child
|
---|
318 |
|
---|