source: trunk/openjdk/jdk/make/sun/xawt/Makefile

Last change on this file was 278, checked in by dmik, 14 years ago

trunk: Merged in openjdk6 b22 from branches/vendor/oracle.

File size: 11.0 KB
Line 
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
26BUILDDIR = ../..
27PACKAGE = sun.awt.X11
28LIBRARY = mawt
29LIBRARY_OUTPUT = xawt
30LIB_LOCATION = $(LIBDIR)/$(LIBARCH)/xawt
31PRODUCT = sun
32
33include $(BUILDDIR)/common/Defs.gmk
34
35GEN_DIR=$(GENSRCDIR)/sun/awt/X11
36
37CLASSES_INIT += $(TEMPDIR)/.gen.wrappers $(TEMPDIR)/.gen_icons touch.wrappers
38
39.PHONY: generated.clean
40
41#
42# Files
43#
44include FILES_c_unix.gmk
45include FILES_export_unix.gmk
46AUTO_FILES_JAVA_DIRS = sun/awt/X11
47AUTO_JAVA_PRUNE = WrapperGenerator.java
48
49LDFLAGS += -L$(OPENWIN_LIB)
50
51ifeq ($(PLATFORM), linux)
52LDFLAGS += -lpthread
53dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
54endif
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.
59LD_RUNPATH_EXTRAS = ..
60
61#
62# Rules.
63#
64include $(BUILDDIR)/common/Mapfile-vers.gmk
65include $(BUILDDIR)/common/Library.gmk
66
67#
68# Add to the ambient vpath to pick up files in subdirectories
69#
70vpath %.c $(SHARE_SRC)/native/sunawt/alphacomposite
71vpath %.c $(PLATFORM_SRC)/native/sun/xawt
72vpath %.c $(PLATFORM_SRC)/native/sun/awt
73vpath %.c $(SHARE_SRC)/native/sun/awt/debug
74vpath %.c $(SHARE_SRC)/native/sun/awt/image
75vpath %.c $(SHARE_SRC)/native/sun/awt/image/gif
76vpath %.c $(SHARE_SRC)/native/sun/awt/image/cvutils
77vpath %.c $(SHARE_SRC)/native/sun/awt/shell
78vpath %.c $(SHARE_SRC)/native/sun/java2d
79vpath %.c $(SHARE_SRC)/native/sun/java2d/loops
80vpath %.c $(SHARE_SRC)/native/sun/java2d/pipe
81vpath %.c $(SHARE_SRC)/native/sun/awt/medialib
82vpath %.cpp $(SHARE_SRC)/native/sun/image
83vpath %.c $(SHARE_SRC)/native/sun/font
84vpath %.c $(PLATFORM_SRC)/native/sun/awt/robot_child
85vpath %.c $(SHARE_SRC)/native/sun/java2d/opengl
86vpath %.c $(PLATFORM_SRC)/native/sun/java2d/opengl
87vpath %.c $(PLATFORM_SRC)/native/sun/java2d/x11
88
89OTHER_LDLIBS = $(LIBM) -lawt -lXext -lX11 -ldl \
90 $(LDFLAGS_COMMON) $(AWT_RUNPATH) $(OTHER_LDFLAGS) -lXtst -lXi
91
92ifeq ($(PLATFORM), solaris)
93CPPFLAGS += -DFUNCPROTO=15
94dummy := $(shell $(MKDIR) -p $(LIB_LOCATION))
95endif
96
97CPPFLAGS += -I$(CUPS_HEADERS_PATH)
98
99CPPFLAGS += -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
125ifeq ($(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
131endif
132
133ifeq ($(PLATFORM), solaris)
134 CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions -I$(MOTIF_DIR)/include
135endif
136
137ifeq ($(MILESTONE), internal)
138 CPPFLAGS += -DINTERNAL_BUILD
139endif
140
141#LDFLAGS_OPT += -L../../../build/solaris-sparc/lib/sparc/motif21 -lmawt_g -lXext -lXm -lXt -ldl
142
143#
144# Generation of wrappers
145#
146SIZER_DIR=$(GEN_DIR)/generator
147SIZER = $(SIZER_DIR)/sizer
148SIZER_32_C = $(SIZER).32.c
149SIZER_64_C = $(SIZER).64.c
150CFLAGS_32=$(CFLAGS)
151CFLAGS_64=$(CFLAGS)
152
153ifeq ($(PLATFORM), solaris)
154
155isalist:=$(shell $(ISAINFO))
156
157ifneq (,$(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.
160CFLAGS_32=$(subst $(XARCH_OPTION/64),$(XARCH_OPTION/32),$(CFLAGS))
161SIZERS = $(SIZER).32 $(SIZER).64
162SIZERS_C = $(SIZER_32_C) $(SIZER_64_C)
163SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 $(WRAPPER_GENERATOR_DIR)/sizes.64
164CFLAGS_64=$(CFLAGS) $(XARCH_OPTION/64)
165else
166ifneq (,$(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.
169CFLAGS_32=$(subst $(XARCH_OPTION/64),$(XARCH_OPTION/32),$(CFLAGS))
170SIZERS = $(SIZER).32 $(SIZER).64
171SIZERS_C = $(SIZER_32_C) $(SIZER_64_C)
172SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32 $(WRAPPER_GENERATOR_DIR)/sizes.64
173CFLAGS_64=$(CFLAGS) $(XARCH_OPTION/64)
174else # !sparcv9 : includes (32-bit) sparc, i586
175SIZERS = $(SIZER).32
176SIZERS_C = $(SIZER_32_C)
177SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32
178endif # amd64
179endif # sparcv9
180
181else # !solaris
182
183ifeq ($(ARCH_DATA_MODEL), 32)
184SIZERS = $(SIZER).32
185SIZERS_C = $(SIZER_32_C)
186SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.32
187else # !32
188SIZERS = $(SIZER).64
189SIZERS_C = $(SIZER_64_C)
190SIZES = $(WRAPPER_GENERATOR_DIR)/sizes.64
191endif # 32
192
193endif # 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
198ifeq ($(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/
202DOHACK=true
203endif # Hack
204
205ifeq ($(DOHACK), true)
206PREDEFINED_SIZES_TMPL=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/sizes.64-$(PLATFORM)-$(LIBARCH)
207PREDEFINED_SIZES=$(WRAPPER_GENERATOR_DIR)/sizes.64
208SIZES += $(WRAPPER_GENERATOR_DIR)/sizes.64
209endif
210
211ifeq ($(PLATFORM)-$(LIBARCH), solaris-amd64)
212DOCOMPARE=true
213endif
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.
218STORED_SIZES_TMPL_solaris_amd64=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/sizes.64-solaris-i386
219
220WRAPPER_GENERATOR_JAVA=$(PLATFORM_SRC)/classes/sun/awt/X11/generator/WrapperGenerator.java
221WRAPPER_GENERATOR_DIR=$(GENSRCDIR)/sun/awt/X11/generator
222WRAPPER_GENERATOR_TEMPDIR=$(TEMPDIR)/sun/awt/X11/generator
223WRAPPER_GENERATOR_CLASS=$(WRAPPER_GENERATOR_TEMPDIR)/WrapperGenerator.class
224XLIBTYPES=$(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
258touch.wrappers: $(TEMPDIR)/.gen.wrappers
259 $(MKDIR) -p $(TEMPDIR)
260 $(TOUCH) $(TEMPDIR)/.gen.wrappers
261
262generated.clean:
263 $(RM) -r $(WRAPPER_GENERATOR_TEMPDIR)
264 $(RM) -r $(WRAPPER_GENERATOR_DIR)
265 $(RM) -r $(GEN_DIR)/*.java
266
267ifdef OPENJDK
268 ICONS_PATH_PREFIX=$(PLATFORM_SRC)
269else
270 ICONS_PATH_PREFIX=$(CLOSED_SRC)/solaris
271endif
272
273ICONS = \
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
279TEMPDIR_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
315clean clobber:: generated.clean
316
317.PHONY: generated.clean robot_child
318
Note: See TracBrowser for help on using the repository browser.