make/UpdateX11Wrappers.gmk
branchihse-cflags-rewrite-branch
changeset 56211 657780f239c4
parent 48355 4944950606ef
child 56212 d1a4766aa7ac
equal deleted inserted replaced
56194:8b7430e0a67a 56211:657780f239c4
       
     1 #
       
     2 # Copyright (c) 2012, 2018, 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 
       
    28 default: all
       
    29 
       
    30 include $(SPEC)
       
    31 include MakeBase.gmk
       
    32 include NativeCompilation.gmk
       
    33 include ToolsJdk.gmk
       
    34 
       
    35 ################################################################################
       
    36 # This file is responsible for extracting the x11 native struct offsets to
       
    37 # the xawt Java library. The tool needs to be run on the os/arch that
       
    38 # will host the final jvm, thus the tool cannot be used when cross compiling.
       
    39 #
       
    40 # Two versions of the generated offset file, sizes-32.txt and sizes-64.txt are
       
    41 # committed into the source code repository. These are the ones used in
       
    42 # GensrcX11Wrappers.gmk to generate the Java code during the build.
       
    43 ################################################################################
       
    44 
       
    45 ifeq ($(COMPILE_TYPE), cross)
       
    46   $(error It is not possible to update the x11wrappers when cross-compiling)
       
    47 endif
       
    48 
       
    49 X11WRAPPERS_OUTPUT := $(SUPPORT_OUTPUTDIR)/x11wrappers
       
    50 
       
    51 GENSRC_X11WRAPPERS_DATADIR := $(TOPDIR)/make/data/x11wrappergen
       
    52 
       
    53 BITS := $(OPENJDK_TARGET_CPU_BITS)
       
    54 
       
    55 # Generate the C code for the program that will output the offset file.
       
    56 $(X11WRAPPERS_OUTPUT)/src/data_generator.c: $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(BUILD_TOOLS_JDK)
       
    57 	$(call LogInfo, Generating X11 wrapper data generator source code)
       
    58 	$(call MakeDir, $(@D))
       
    59 	$(TOOL_WRAPPERGENERATOR) gen_c_source $@ $(GENSRC_X11WRAPPERS_DATADIR)/xlibtypes.txt $(BITS)
       
    60 
       
    61 DATA_GENERATOR_INCLUDES := \
       
    62     -I$(TOPDIR)/src/hotspot/share/include \
       
    63     -I$(TOPDIR)/src/hotspot/os/$(HOTSPOT_TARGET_OS_TYPE)/include \
       
    64     -I$(SUPPORT_OUTPUTDIR)/modules_include/java.base \
       
    65     -I$(SUPPORT_OUTPUTDIR)/modules_include/java.base/$(OPENJDK_TARGET_OS_INCLUDE_SUBDIR) \
       
    66     -I$(TOPDIR)/src/java.base/share/native/libjava \
       
    67     -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
       
    68     -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
       
    69     -I$(TOPDIR)/src/java.desktop/share/native/common/awt/debug \
       
    70     -I$(TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
       
    71     #
       
    72 
       
    73 # Compile the generated C code into an executable.
       
    74 $(eval $(call SetupNativeCompilation, BUILD_DATA_GENERATOR, \
       
    75     PROGRAM := data_generator, \
       
    76     OUTPUT_DIR := $(X11WRAPPERS_OUTPUT)/bin, \
       
    77     EXTRA_FILES := $(X11WRAPPERS_OUTPUT)/src/data_generator.c, \
       
    78     CFLAGS := $(X_CFLAGS) $(DATA_GENERATOR_INCLUDES), \
       
    79     LIBS := $(X_LIBS) -lc, \
       
    80     OBJECT_DIR := $(X11WRAPPERS_OUTPUT)/objs, \
       
    81 ))
       
    82 
       
    83 # Run the executable to create the data file.
       
    84 $(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(BITS).txt: $(BUILD_DATA_GENERATOR_TARGET)
       
    85 	$(call LogInfo, Generating X11 wrapper data files)
       
    86 	$(call MakeDir, $(@D))
       
    87 	$(BUILD_DATA_GENERATOR_TARGET) | $(SORT) > $@
       
    88 
       
    89 TARGETS += $(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(BITS).txt
       
    90 
       
    91 ################################################################################
       
    92 
       
    93 all: $(TARGETS)
       
    94 
       
    95 .PHONY: all default