make/lib/Awt2dLibraries.gmk
changeset 50494 1ac60dacaafb
parent 50484 f8c15a2f2ae9
parent 50471 f0aeede1b855
child 50826 f5b95be8b6e2
child 56721 01b558efd286
child 56726 3a9b7a1f9197
equal deleted inserted replaced
50493:8a3b993c6adc 50494:1ac60dacaafb
    25 
    25 
    26 $(eval $(call IncludeCustomExtension, lib/Awt2dLibraries-pre.gmk))
    26 $(eval $(call IncludeCustomExtension, lib/Awt2dLibraries-pre.gmk))
    27 
    27 
    28 WIN_AWT_LIB := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libawt/awt.lib
    28 WIN_AWT_LIB := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libawt/awt.lib
    29 
    29 
    30 ################################################################################
    30 LIBAWT_DEFAULT_HEADER_DIRS := \
    31 
    31     libawt/awt/image \
    32 BUILD_LIBMLIB_SRC := $(TOPDIR)/src/java.desktop/share/native/libmlib_image \
    32     libawt/awt/image/cvutils \
    33     $(TOPDIR)/src/java.desktop/share/native/common/awt/medialib
    33     libawt/java2d \
    34 BUILD_LIBMLIB_CFLAGS := -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES \
    34     libawt/java2d/loops \
    35     $(addprefix -I, $(BUILD_LIBMLIB_SRC)) \
    35     libawt/java2d/pipe \
    36     -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libmlib_image
    36     #
    37 
    37 
    38 BUILD_LIBMLIB_LDLIBS :=
    38 ################################################################################
    39 
    39 
    40 BUILD_LIBMLIB_CFLAGS += -DMLIB_NO_LIBSUNMATH
    40 # We must not include java.desktop/unix/native/libmlib_image, which is only
       
    41 # for usage by solaris-sparc in libmlib_image_v.
       
    42 BUILD_LIBMLIB_EXCLUDE_SRC_PATTERNS := unix
       
    43 
       
    44 BUILD_LIBMLIB_CFLAGS := -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES -DMLIB_NO_LIBSUNMATH
    41 
    45 
    42 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
    46 ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
    43   BUILD_LIBMLIB_CFLAGS += -DMLIB_OS64BIT
    47   BUILD_LIBMLIB_CFLAGS += -DMLIB_OS64BIT
    44 endif
    48 endif
    45 
    49 
    46 ifneq ($(OPENJDK_TARGET_OS), windows)
       
    47   BUILD_LIBMLIB_LDLIBS += $(LIBM) $(LIBDL)
       
    48 endif
       
    49 
       
    50 $(eval $(call SetupJdkLibrary, BUILD_LIBMLIB_IMAGE, \
    50 $(eval $(call SetupJdkLibrary, BUILD_LIBMLIB_IMAGE, \
    51     NAME := mlib_image, \
    51     NAME := mlib_image, \
    52     SRC := $(BUILD_LIBMLIB_SRC), \
    52     EXTRA_SRC := common/awt/medialib, \
    53     EXCLUDE_FILES := mlib_c_ImageBlendTable.c, \
    53     EXCLUDE_FILES := mlib_c_ImageBlendTable.c, \
       
    54     EXCLUDE_SRC_PATTERNS := $(BUILD_LIBMLIB_EXCLUDE_SRC_PATTERNS), \
    54     OPTIMIZATION := HIGHEST, \
    55     OPTIMIZATION := HIGHEST, \
    55     CFLAGS := $(CFLAGS_JDKLIB) \
    56     CFLAGS := $(CFLAGS_JDKLIB) \
    56         $(BUILD_LIBMLIB_CFLAGS), \
    57         $(BUILD_LIBMLIB_CFLAGS), \
    57     LDFLAGS := $(LDFLAGS_JDKLIB) \
    58     LDFLAGS := $(LDFLAGS_JDKLIB) \
    58         $(call SET_SHARED_LIBRARY_ORIGIN), \
    59         $(call SET_SHARED_LIBRARY_ORIGIN), \
    59     LIBS := $(BUILD_LIBMLIB_LDLIBS) \
    60     LIBS := $(JDKLIB_LIBS), \
    60         $(JDKLIB_LIBS), \
    61     LIBS_unix := $(LIBM) $(LIBDL), \
    61 ))
    62 ))
    62 
    63 
    63 $(BUILD_LIBMLIB_IMAGE): $(call FindLib, java.base, java)
    64 $(BUILD_LIBMLIB_IMAGE): $(call FindLib, java.base, java)
    64 
    65 
    65 TARGETS += $(BUILD_LIBMLIB_IMAGE)
    66 TARGETS += $(BUILD_LIBMLIB_IMAGE)
    66 
    67 
    67 ################################################################################
    68 ################################################################################
    68 
    69 
    69 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
    70 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
    70 
    71 
    71   LIBMLIB_IMAGE_V_SRC := $(TOPDIR)/src/java.desktop/share/native/libmlib_image \
    72   # libmlib_image_v is basically built from mlib_image sources, with some additions
    72       $(TOPDIR)/src/java.desktop/unix/native/libmlib_image \
    73   # and some exclusions.
    73       $(TOPDIR)/src/java.desktop/share/native/common/awt/medialib \
    74   LIBMLIB_IMAGE_V_SRC := \
    74       $(TOPDIR)/src/java.desktop/unix/native/common/awt/medialib \
    75      libmlib_image \
    75       #
    76      common/awt/medialib \
    76   LIBMLIB_IMAGE_V_CFLAGS := $(TOPDIR)/src/java.desktop/unix/native/libmlib_image/vis_$(OPENJDK_TARGET_CPU_BITS).il \
    77      #
    77       $(addprefix -I, $(LIBMLIB_IMAGE_V_SRC)) \
    78 
    78       #
    79   LIBMLIB_IMAGE_V_CFLAGS := -xarch=sparcvis -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES \
       
    80       $(TOPDIR)/src/$(MODULE)/unix/native/libmlib_image/vis_$(OPENJDK_TARGET_CPU_BITS).il
       
    81 
       
    82   ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
       
    83     LIBMLIB_IMAGE_V_CFLAGS += -DMLIB_OS64BIT
       
    84   endif
    79 
    85 
    80   BUILD_LIBMLIB_IMAGE_V_EXFILES := \
    86   BUILD_LIBMLIB_IMAGE_V_EXFILES := \
    81       awt_ImagingLib.c \
    87       awt_ImagingLib.c \
    82       mlib_c_ImageAffine_BC.c \
    88       mlib_c_ImageAffine_BC.c \
    83       mlib_c_ImageAffine_BC_S16.c \
    89       mlib_c_ImageAffine_BC_S16.c \
    93       mlib_c_ImageCopy.c \
    99       mlib_c_ImageCopy.c \
    94       mlib_c_ImageLookUp.c \
   100       mlib_c_ImageLookUp.c \
    95       mlib_c_ImageLookUp_f.c \
   101       mlib_c_ImageLookUp_f.c \
    96       #
   102       #
    97 
   103 
    98   LIBMLIB_IMAGE_V_CFLAGS += $(filter-out -DMLIB_NO_LIBSUNMATH, $(BUILD_LIBMLIB_CFLAGS))
       
    99 
       
   100   $(eval $(call SetupJdkLibrary, BUILD_LIBMLIB_IMAGE_V, \
   104   $(eval $(call SetupJdkLibrary, BUILD_LIBMLIB_IMAGE_V, \
   101       NAME := mlib_image_v, \
   105       NAME := mlib_image_v, \
   102       SRC := $(LIBMLIB_IMAGE_V_SRC), \
   106       SRC := $(LIBMLIB_IMAGE_V_SRC), \
   103       EXCLUDE_FILES := $(BUILD_LIBMLIB_IMAGE_V_EXFILES), \
   107       EXCLUDE_FILES := $(BUILD_LIBMLIB_IMAGE_V_EXFILES), \
   104       OPTIMIZATION := HIGHEST, \
   108       OPTIMIZATION := HIGHEST, \
   105       CFLAGS := -xarch=sparcvis \
   109       CFLAGS := $(CFLAGS_JDKLIB) \
   106           $(LIBMLIB_IMAGE_V_CFLAGS) \
   110           $(LIBMLIB_IMAGE_V_CFLAGS), \
   107           $(CFLAGS_JDKLIB), \
       
   108       LDFLAGS := $(LDFLAGS_JDKLIB) \
   111       LDFLAGS := $(LDFLAGS_JDKLIB) \
   109           $(call SET_SHARED_LIBRARY_ORIGIN), \
   112           $(call SET_SHARED_LIBRARY_ORIGIN), \
   110       LIBS := -ljava -ljvm $(BUILD_LIBMLIB_LDLIBS), \
   113       LIBS := -ljava -ljvm $(LIBM) $(LIBDL), \
   111   ))
   114   ))
   112 
   115 
   113   $(BUILD_LIBMLIB_IMAGE_V): $(call FindLib, java.base, java)
   116   $(BUILD_LIBMLIB_IMAGE_V): $(call FindLib, java.base, java)
   114 
   117 
   115   TARGETS += $(BUILD_LIBMLIB_IMAGE_V)
   118   TARGETS += $(BUILD_LIBMLIB_IMAGE_V)
   116 
   119 
   117 endif
   120 endif
   118 
   121 
   119 ################################################################################
   122 ################################################################################
   120 
   123 
   121 LIBAWT_DIRS := $(TOPDIR)/src/java.desktop/share/native/libawt \
   124 LIBAWT_EXTRA_SRC := \
   122     $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt \
   125     common/awt/debug \
   123     $(TOPDIR)/src/java.desktop/share/native/common/awt/debug \
   126     $(TOPDIR)/src/$(MODULE)/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
   124     $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
       
   125     #
   127     #
   126 
   128 
   127 ifeq ($(OPENJDK_TARGET_OS), aix)
   129 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
   128   LIBAWT_DIRS += $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS)/native/libawt
   130   LIBAWT_EXTRA_SRC += $(TOPDIR)/src/$(MODULE)/share/native/common/awt/medialib
   129 endif
   131 endif
   130 
   132 
   131 ifeq ($(OPENJDK_TARGET_OS), windows)
   133 ifeq ($(OPENJDK_TARGET_OS), windows)
   132   LIBAWT_DIRS += $(TOPDIR)/src/java.desktop/share/native/common/awt/utility
   134   LIBAWT_EXTRA_SRC += \
       
   135       $(TOPDIR)/src/$(MODULE)/share/native/common/awt/utility \
       
   136       $(TOPDIR)/src/$(MODULE)/share/native/common/font \
       
   137       $(TOPDIR)/src/$(MODULE)/share/native/common/java2d/opengl \
       
   138       $(TOPDIR)/src/$(MODULE)/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt/systemscale \
       
   139       #
   133 endif
   140 endif
   134 
   141 
   135 ifneq ($(filter $(OPENJDK_TARGET_OS), solaris linux macosx aix), )
   142 ifneq ($(filter $(OPENJDK_TARGET_OS), solaris linux macosx aix), )
   136   LIBAWT_EXFILES += awt_Font.c CUPSfuncs.c fontpath.c X11Color.c
   143   LIBAWT_EXFILES += awt_Font.c CUPSfuncs.c fontpath.c X11Color.c
   137 endif
   144 endif
   138 
   145 
   139 ifeq ($(OPENJDK_TARGET_OS), macosx)
   146 ifeq ($(OPENJDK_TARGET_OS), macosx)
   140   LIBAWT_EXFILES += initIDs.c awt/image/cvutils/img_colors.c
   147   LIBAWT_EXFILES += initIDs.c awt/image/cvutils/img_colors.c
   141 endif
   148 endif
   142 
   149 
   143 LIBAWT_CFLAGS += -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
       
   144     $(addprefix -I, $(shell find $(LIBAWT_DIRS) -type d)) \
       
   145     $(LIBJAVA_HEADER_FLAGS) \
       
   146     $(addprefix -I, $(BUILD_LIBMLIB_IMAGE_SRC)) \
       
   147     #
       
   148 
       
   149 LIBAWT_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES $(X_CFLAGS)
       
   150 
       
   151 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc)
       
   152   LIBAWT_CFLAGS += -DMLIB_ADD_SUFF
       
   153   LIBAWT_CFLAGS += -xarch=sparcvis
       
   154 
       
   155   LIBAWT_CFLAGS += $(TOPDIR)/src/java.desktop/unix/native/libmlib_image/vis_$(OPENJDK_TARGET_CPU_BITS).il
       
   156   LIBAWT_DIRS += $(TOPDIR)/src/java.desktop/share/native/common/awt/medialib
       
   157   LIBAWT_EXFILES += java2d/loops/MapAccelFunc.c
       
   158 
       
   159   ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
       
   160     LIBAWT_ASFLAGS = -P -xarch=v9a
       
   161   else
       
   162     LIBAWT_ASFLAGS = -P -xarch=v8plusa
       
   163   endif
       
   164 else
       
   165   LIBAWT_EXCLUDES += \
       
   166       $(TOPDIR)/src/java.desktop/unix/native/libawt/awt/medialib \
       
   167       $(TOPDIR)/src/java.desktop/unix/native/libawt/java2d/loops \
       
   168       $(TOPDIR)/src/java.desktop/unix/native/common/awt/medialib \
       
   169       #
       
   170 endif
       
   171 
       
   172 ifneq ($(OPENJDK_TARGET_OS), solaris)
       
   173   LIBAWT_CFLAGS += -DMLIB_NO_LIBSUNMATH
       
   174 endif
       
   175 
       
   176 ifeq ($(OPENJDK_TARGET_OS), windows)
   150 ifeq ($(OPENJDK_TARGET_OS), windows)
   177   LIBAWT_DIRS += $(TOPDIR)/src/java.desktop/share/native/common/font \
       
   178       $(TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
       
   179       $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt/systemscale \
       
   180   # Why does libawt need java.base headers?
       
   181   LIBAWT_CFLAGS += -I$(TOPDIR)/src/java.desktop/share/native/common/font \
       
   182       -I$(TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
       
   183       -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/java2d/opengl \
       
   184       -I$(TOPDIR)/src/java.desktop/windows/native/include \
       
   185       -I$(TOPDIR)/src/java.desktop/share/native/include \
       
   186       -I$(SUPPORT_OUTPUTDIR)/headers/java.base \
       
   187       #
       
   188   LIBAWT_EXFILES += \
   151   LIBAWT_EXFILES += \
   189       java2d/d3d/D3DShaderGen.c \
   152       java2d/d3d/D3DShaderGen.c \
   190       awt/image/cvutils/img_colors.c \
   153       awt/image/cvutils/img_colors.c \
   191       #
   154       #
   192 
   155 endif
       
   156 
       
   157 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU), solaris-sparcv9)
       
   158   LIBAWT_EXFILES += java2d/loops/MapAccelFunc.c
       
   159 else
       
   160   LIBAWT_EXCLUDES += \
       
   161       $(TOPDIR)/src/$(MODULE)/unix/native/libawt/awt/medialib \
       
   162       $(TOPDIR)/src/$(MODULE)/unix/native/libawt/java2d/loops \
       
   163       $(TOPDIR)/src/$(MODULE)/unix/native/common/awt/medialib \
       
   164       #
       
   165 endif
       
   166 
       
   167 LIBAWT_EXTRA_HEADER_DIRS := \
       
   168     $(LIBAWT_DEFAULT_HEADER_DIRS) \
       
   169     $(call GetJavaHeaderDir, java.base) \
       
   170     libawt/awt/medialib \
       
   171     libawt/java2d/d3d \
       
   172     libawt/java2d/opengl \
       
   173     libawt/java2d/windows \
       
   174     libawt/windows \
       
   175     common/awt/medialib \
       
   176     libmlib_image \
       
   177     include \
       
   178     java.base:libjava \
       
   179     java.base:include \
       
   180     #
       
   181 
       
   182 LIBAWT_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES $(X_CFLAGS)
       
   183 
       
   184 ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU), solaris-sparcv9)
       
   185   LIBAWT_CFLAGS += -xarch=sparcvis -DMLIB_ADD_SUFF \
       
   186       $(TOPDIR)/src/$(MODULE)/unix/native/libmlib_image/vis_$(OPENJDK_TARGET_CPU_BITS).il
       
   187 
       
   188   LIBAWT_ASFLAGS = -P -xarch=v9a
       
   189 endif
       
   190 
       
   191 ifneq ($(OPENJDK_TARGET_OS), solaris)
       
   192   LIBAWT_CFLAGS += -DMLIB_NO_LIBSUNMATH
       
   193 endif
       
   194 
       
   195 ifeq ($(OPENJDK_TARGET_OS), windows)
   193   LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE
   196   LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE
   194   ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
   197   ifeq ($(OPENJDK_TARGET_CPU_BITS), 64)
   195     LIBAWT_CFLAGS += -DMLIB_OS64BIT
   198     LIBAWT_CFLAGS += -DMLIB_OS64BIT
   196   endif
   199   endif
   197 
   200 
   198   LIBAWT_RC_FLAGS ?= -I $(TOPDIR)/src/java.base/windows/native/launcher/icons
   201   LIBAWT_RC_FLAGS ?= -I $(TOPDIR)/src/java.base/windows/native/launcher/icons
   199   LIBAWT_VERSIONINFO_RESOURCE := $(TOPDIR)/src/java.desktop/windows/native/libawt/windows/awt.rc
   202   LIBAWT_VERSIONINFO_RESOURCE := $(TOPDIR)/src/$(MODULE)/windows/native/libawt/windows/awt.rc
   200 endif
   203 endif
   201 
   204 
   202 ifeq ($(OPENJDK_TARGET_OS), linux)
   205 ifeq ($(OPENJDK_TARGET_OS), linux)
   203   # FIXME: This is probably not what we want to do, but keep it now for compatibility.
   206   # FIXME: This is probably not what we want to do, but keep it now for compatibility.
   204   LIBAWT_CFLAGS += $(EXPORT_ALL_SYMBOLS)
   207   LIBAWT_CFLAGS += $(EXPORT_ALL_SYMBOLS)
   213   LIBAWT_CFLAGS += -fgcse-after-reload
   216   LIBAWT_CFLAGS += -fgcse-after-reload
   214 endif
   217 endif
   215 
   218 
   216 $(eval $(call SetupJdkLibrary, BUILD_LIBAWT, \
   219 $(eval $(call SetupJdkLibrary, BUILD_LIBAWT, \
   217     NAME := awt, \
   220     NAME := awt, \
   218     SRC := $(LIBAWT_DIRS), \
   221     EXTRA_SRC := $(LIBAWT_EXTRA_SRC), \
   219     EXCLUDES := $(LIBAWT_EXCLUDES), \
   222     EXCLUDES := $(LIBAWT_EXCLUDES), \
   220     EXCLUDE_FILES := $(LIBAWT_EXFILES), \
   223     EXCLUDE_FILES := $(LIBAWT_EXFILES), \
   221     OPTIMIZATION := LOW, \
   224     OPTIMIZATION := LOW, \
   222     CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS), \
   225     CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS), \
       
   226     EXTRA_HEADER_DIRS := $(LIBAWT_EXTRA_HEADER_DIRS), \
   223     DISABLED_WARNINGS_gcc := sign-compare unused-result maybe-uninitialized \
   227     DISABLED_WARNINGS_gcc := sign-compare unused-result maybe-uninitialized \
   224         format-nonliteral parentheses, \
   228         format-nonliteral parentheses, \
   225     DISABLED_WARNINGS_clang := logical-op-parentheses extern-initializer, \
   229     DISABLED_WARNINGS_clang := logical-op-parentheses extern-initializer, \
   226     DISABLED_WARNINGS_solstudio := E_DECLARATION_IN_CODE, \
   230     DISABLED_WARNINGS_solstudio := E_DECLARATION_IN_CODE, \
   227     DISABLED_WARNINGS_microsoft := 4244 4267 4996, \
   231     DISABLED_WARNINGS_microsoft := 4244 4267 4996, \
   263 
   267 
   264 TARGETS += $(BUILD_LIBAWT)
   268 TARGETS += $(BUILD_LIBAWT)
   265 
   269 
   266 ################################################################################
   270 ################################################################################
   267 
   271 
   268 ifeq ($(findstring $(OPENJDK_TARGET_OS),windows macosx),)
   272 ifeq ($(findstring $(OPENJDK_TARGET_OS), windows macosx), )
   269   ifeq ($(ENABLE_HEADLESS_ONLY), false)
   273   ifeq ($(ENABLE_HEADLESS_ONLY), false)
   270 
   274 
   271     LIBAWT_XAWT_DIRS := \
   275     LIBAWT_XAWT_EXTRA_SRC := \
   272         $(wildcard $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS)/native/libawt_xawt) \
   276         common/awt \
   273         $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt_xawt \
   277         common/java2d \
   274         $(TOPDIR)/src/java.desktop/share/native/common/awt/debug \
   278         common/font \
   275         $(TOPDIR)/src/java.desktop/share/native/common/awt/utility \
       
   276         $(TOPDIR)/src/java.desktop/share/native/common/font \
       
   277         $(TOPDIR)/src/java.desktop/share/native/common/java2d \
       
   278         $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/java2d \
       
   279         $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
       
   280         #
   279         #
   281 
   280 
   282     ifneq ($(filter $(OPENJDK_TARGET_OS),linux solaris aix), )
       
   283       LIBAWT_XAWT_DIRS += $(TOPDIR)/src/java.desktop/unix/native/common/awt/systemscale
       
   284     endif
       
   285 
       
   286     LIBAWT_XAWT_EXCLUDES := medialib
   281     LIBAWT_XAWT_EXCLUDES := medialib
   287 
   282 
   288     LIBAWT_XAWT_CFLAGS := $(addprefix -I, $(shell $(FIND) $(LIBAWT_XAWT_DIRS) -type d)) \
   283     LIBAWT_XAWT_EXTRA_HEADER_DIRS := \
   289         -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
   284         $(LIBAWT_DEFAULT_HEADER_DIRS) \
   290         -I$(TOPDIR)/src/java.desktop/share/native/include \
   285         libawt_xawt/awt \
   291         -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS)/native/include \
   286         include \
   292         -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/include \
   287         common/awt/debug \
   293         -I$(TOPDIR)/src/java.desktop/share/native/libawt/java2d \
   288         common/awt/systemscale \
   294         -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt/java2d \
   289         common/font \
   295         -I$(TOPDIR)/src/java.desktop/share/native/libawt/java2d/loops \
   290         common/java2d/opengl \
   296         -I$(TOPDIR)/src/java.desktop/share/native/libawt/java2d/pipe \
   291         common/java2d/x11 \
   297         -I$(TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
       
   298         -I$(TOPDIR)/src/java.desktop/share/native/libawt/awt/image \
       
   299         -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/font \
       
   300         $(LIBJAVA_HEADER_FLAGS)
       
   301         #
   292         #
   302 
   293 
   303     LIBAWT_XAWT_CFLAGS += -DXAWT -DXAWT_HACK \
   294     LIBAWT_XAWT_CFLAGS += -DXAWT -DXAWT_HACK \
   304         -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
   295         -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
   305         $(FONTCONFIG_CFLAGS) \
   296         $(FONTCONFIG_CFLAGS) \
   332       BUILD_LIBAWT_XAWT_debug_mem.c_CFLAGS := -w
   323       BUILD_LIBAWT_XAWT_debug_mem.c_CFLAGS := -w
   333     endif
   324     endif
   334 
   325 
   335     $(eval $(call SetupJdkLibrary, BUILD_LIBAWT_XAWT, \
   326     $(eval $(call SetupJdkLibrary, BUILD_LIBAWT_XAWT, \
   336         NAME := awt_xawt, \
   327         NAME := awt_xawt, \
   337         SRC := $(LIBAWT_XAWT_DIRS), \
   328         EXTRA_SRC := $(LIBAWT_XAWT_EXTRA_SRC), \
       
   329         EXTRA_HEADER_DIRS := $(LIBAWT_XAWT_EXTRA_HEADER_DIRS), \
   338         EXCLUDES := $(LIBAWT_XAWT_EXCLUDES), \
   330         EXCLUDES := $(LIBAWT_XAWT_EXCLUDES), \
   339         OPTIMIZATION := LOW, \
   331         OPTIMIZATION := LOW, \
   340         CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \
   332         CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \
   341             $(X_CFLAGS), \
   333             $(X_CFLAGS), \
   342         WARNINGS_AS_ERRORS_xlc := false, \
   334         WARNINGS_AS_ERRORS_xlc := false, \
   348             E_ASSIGNMENT_TYPE_MISMATCH E_NON_CONST_INIT, \
   340             E_ASSIGNMENT_TYPE_MISMATCH E_NON_CONST_INIT, \
   349         LDFLAGS := $(LDFLAGS_JDKLIB) \
   341         LDFLAGS := $(LDFLAGS_JDKLIB) \
   350             $(call SET_SHARED_LIBRARY_ORIGIN) \
   342             $(call SET_SHARED_LIBRARY_ORIGIN) \
   351             -L$(INSTALL_LIBRARIES_HERE), \
   343             -L$(INSTALL_LIBRARIES_HERE), \
   352         LIBS :=  $(X_LIBS) $(LIBAWT_XAWT_LIBS), \
   344         LIBS :=  $(X_LIBS) $(LIBAWT_XAWT_LIBS), \
   353         RC_FLAGS := $(RC_FLAGS) \
       
   354             -D "JDK_FNAME=xawt.dll" \
       
   355             -D "JDK_INTERNAL_NAME=xawt" \
       
   356             -D "JDK_FTYPE=0x2L", \
       
   357     ))
   345     ))
   358 
   346 
   359     $(BUILD_LIBAWT_XAWT): $(call FindLib, java.base, java)
   347     $(BUILD_LIBAWT_XAWT): $(call FindLib, java.base, java)
   360 
   348 
   361     $(BUILD_LIBAWT_XAWT): $(BUILD_LIBAWT)
   349     $(BUILD_LIBAWT_XAWT): $(BUILD_LIBAWT)
   365   endif
   353   endif
   366 endif
   354 endif
   367 
   355 
   368 ################################################################################
   356 ################################################################################
   369 
   357 
   370 LIBLCMS_SRC := $(TOPDIR)/src/java.desktop/share/native/liblcms
       
   371 LIBLCMS_CPPFLAGS += -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
       
   372     -I$(TOPDIR)/src/java.desktop/share/native/libawt/java2d \
       
   373     -I$(TOPDIR)/src/java.desktop/share/native/common/awt/debug \
       
   374     $(LIBJAVA_HEADER_FLAGS) \
       
   375     #
       
   376 # The fast floor code loses precision.
   358 # The fast floor code loses precision.
   377 LCMS_CFLAGS=-DCMS_DONT_USE_FAST_FLOOR
   359 LCMS_CFLAGS=-DCMS_DONT_USE_FAST_FLOOR
       
   360 
       
   361 LCMS_CFLAGS_JDKLIB := $(filter-out -xc99=%none, $(CFLAGS_JDKLIB))
   378 
   362 
   379 ifeq ($(USE_EXTERNAL_LCMS), true)
   363 ifeq ($(USE_EXTERNAL_LCMS), true)
   380   # If we're using an external library, we'll just need the wrapper part.
   364   # If we're using an external library, we'll just need the wrapper part.
   381   # By including it explicitly, all other files will be excluded.
   365   # By including it explicitly, all other files will be excluded.
   382   BUILD_LIBLCMS_INCLUDE_FILES := LCMS.c
   366   BUILD_LIBLCMS_INCLUDE_FILES := LCMS.c
       
   367   # If we're using an external library, we can't include our own SRC path
       
   368   # as includes, instead the system headers should be used.
       
   369   LIBLCMS_HEADERS_FROM_SRC := false
   383 else
   370 else
   384   BUILD_LIBLCMS_INCLUDE_FILES :=
   371   BUILD_LIBLCMS_INCLUDE_FILES :=
   385   # If we're using the bundled library, we'll need to include it in the
       
   386   # include path explicitly. Otherwise the system headers will be used.
       
   387   LIBLCMS_CPPFLAGS += $(addprefix -I, $(LIBLCMS_SRC))
       
   388 endif
   372 endif
   389 
   373 
   390 $(eval $(call SetupJdkLibrary, BUILD_LIBLCMS, \
   374 $(eval $(call SetupJdkLibrary, BUILD_LIBLCMS, \
   391     NAME := lcms, \
   375     NAME := lcms, \
   392     SRC := $(LIBLCMS_SRC), \
       
   393     INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \
   376     INCLUDE_FILES := $(BUILD_LIBLCMS_INCLUDE_FILES), \
   394     OPTIMIZATION := HIGHEST, \
   377     OPTIMIZATION := HIGHEST, \
   395     CFLAGS := $(filter-out -xc99=%none, $(CFLAGS_JDKLIB)) \
   378     CFLAGS := $(LCMS_CFLAGS_JDKLIB) \
   396         $(LIBLCMS_CPPFLAGS) \
       
   397         $(LCMS_CFLAGS), \
   379         $(LCMS_CFLAGS), \
   398     CFLAGS_solaris := -xc99=no_lib, \
   380     CFLAGS_solaris := -xc99=no_lib, \
   399     CFLAGS_windows := -DCMS_IS_WINDOWS_, \
   381     CFLAGS_windows := -DCMS_IS_WINDOWS_, \
       
   382     EXTRA_HEADER_DIRS := \
       
   383         common/awt/debug \
       
   384         libawt/java2d, \
       
   385     HEADERS_FROM_SRC := $(LIBLCMS_HEADERS_FROM_SRC), \
   400     DISABLED_WARNINGS_gcc := format-nonliteral type-limits misleading-indentation, \
   386     DISABLED_WARNINGS_gcc := format-nonliteral type-limits misleading-indentation, \
   401     DISABLED_WARNINGS_clang := tautological-compare, \
   387     DISABLED_WARNINGS_clang := tautological-compare, \
   402     DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \
   388     DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \
   403     DISABLED_WARNINGS_microsoft := 4819, \
   389     DISABLED_WARNINGS_microsoft := 4819, \
   404     LDFLAGS := $(LDFLAGS_JDKLIB) \
   390     LDFLAGS := $(LDFLAGS_JDKLIB) \
   412 
   398 
   413 $(BUILD_LIBLCMS): $(BUILD_LIBAWT)
   399 $(BUILD_LIBLCMS): $(BUILD_LIBAWT)
   414 
   400 
   415 ################################################################################
   401 ################################################################################
   416 
   402 
   417 LIBJAVAJPEG_SRC += $(TOPDIR)/src/java.desktop/share/native/libjavajpeg
       
   418 
       
   419 # "DISABLED_WARNINGS_gcc := clobbered" rationale:
   403 # "DISABLED_WARNINGS_gcc := clobbered" rationale:
   420 # Suppress gcc warnings like "variable might be clobbered by 'longjmp'
   404 # Suppress gcc warnings like "variable might be clobbered by 'longjmp'
   421 # or 'vfork'": this warning indicates that some variable is placed to
   405 # or 'vfork'": this warning indicates that some variable is placed to
   422 # a register by optimized compiler and it's value might be lost on longjmp().
   406 # a register by optimized compiler and it's value might be lost on longjmp().
   423 # Recommended way to avoid such warning is to declare the variable as
   407 # Recommended way to avoid such warning is to declare the variable as
   427 ifeq ($(USE_EXTERNAL_LIBJPEG), true)
   411 ifeq ($(USE_EXTERNAL_LIBJPEG), true)
   428   LIBJPEG_LIBS := -ljpeg
   412   LIBJPEG_LIBS := -ljpeg
   429   BUILD_LIBJAVAJPEG_INCLUDE_FILES := \
   413   BUILD_LIBJAVAJPEG_INCLUDE_FILES := \
   430       imageioJPEG.c \
   414       imageioJPEG.c \
   431       jpegdecoder.c
   415       jpegdecoder.c
   432   BUILD_LIBJAVAJPEG_HEADERS :=
   416   # If we're using an external library, we can't include our own SRC path
       
   417   # as includes, instead the system headers should be used.
       
   418   LIBJPEG_HEADERS_FROM_SRC := false
   433 else
   419 else
   434   LIBJPEG_LIBS :=
   420   LIBJPEG_LIBS :=
   435   BUILD_LIBJAVAJPEG_INCLUDE_FILES :=
   421   BUILD_LIBJAVAJPEG_INCLUDE_FILES :=
   436   BUILD_LIBJAVAJPEG_HEADERS := $(addprefix -I, $(LIBJAVAJPEG_SRC))
       
   437 endif
   422 endif
   438 
   423 
   439 $(eval $(call SetupJdkLibrary, BUILD_LIBJAVAJPEG, \
   424 $(eval $(call SetupJdkLibrary, BUILD_LIBJAVAJPEG, \
   440     NAME := javajpeg, \
   425     NAME := javajpeg, \
   441     SRC := $(LIBJAVAJPEG_SRC), \
       
   442     INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \
   426     INCLUDE_FILES := $(BUILD_LIBJAVAJPEG_INCLUDE_FILES), \
   443     OPTIMIZATION := HIGHEST, \
   427     OPTIMIZATION := HIGHEST, \
   444     CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBJAVAJPEG_HEADERS) \
   428     CFLAGS := $(CFLAGS_JDKLIB), \
   445         $(LIBJAVA_HEADER_FLAGS) \
   429     HEADERS_FROM_SRC := $(LIBJPEG_HEADERS_FROM_SRC), \
   446         -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop, \
       
   447     DISABLED_WARNINGS_gcc := clobbered implicit-fallthrough shift-negative-value, \
   430     DISABLED_WARNINGS_gcc := clobbered implicit-fallthrough shift-negative-value, \
   448     LDFLAGS := $(LDFLAGS_JDKLIB) \
   431     LDFLAGS := $(LDFLAGS_JDKLIB) \
   449         $(call SET_SHARED_LIBRARY_ORIGIN), \
   432         $(call SET_SHARED_LIBRARY_ORIGIN), \
   450     LIBS := $(LIBJPEG_LIBS) $(JDKLIB_LIBS), \
   433     LIBS := $(LIBJPEG_LIBS) $(JDKLIB_LIBS), \
   451     LIBS_windows := $(WIN_JAVA_LIB) jvm.lib, \
   434     LIBS_windows := $(WIN_JAVA_LIB) jvm.lib, \
   458 ################################################################################
   441 ################################################################################
   459 
   442 
   460 # Mac and Windows only use the native AWT lib, do not build libawt_headless
   443 # Mac and Windows only use the native AWT lib, do not build libawt_headless
   461 ifeq ($(findstring $(OPENJDK_TARGET_OS), windows macosx),)
   444 ifeq ($(findstring $(OPENJDK_TARGET_OS), windows macosx),)
   462 
   445 
   463   LIBAWT_HEADLESS_DIRS := $(TOPDIR)/src/java.desktop/unix/native/libawt_headless/awt \
   446   LIBAWT_HEADLESS_EXTRA_SRC := \
   464       $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
   447       common/font \
   465       $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/java2d \
   448       common/java2d \
   466       $(TOPDIR)/src/java.desktop/share/native/common/java2d \
   449       $(TOPDIR)/src/$(MODULE)/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
   467       $(TOPDIR)/src/java.desktop/share/native/common/font \
       
   468       #
   450       #
   469 
   451 
   470   LIBAWT_HEADLESS_EXCLUDES := medialib
   452   LIBAWT_HEADLESS_EXCLUDES := medialib
   471   LIBAWT_HEADLESS_CFLAGS := -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
   453 
   472       $(addprefix -I, $(LIBAWT_HEADLESS_DIRS)) \
   454   LIBAWT_HEADLESS_EXTRA_HEADER_DIRS := \
   473       -I$(TOPDIR)/src/java.desktop/share/native/libawt/awt/image \
   455       $(LIBAWT_DEFAULT_HEADER_DIRS) \
   474       -I$(TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
   456       common/awt/debug \
   475       -I$(TOPDIR)/src/java.desktop/share/native/libawt/java2d \
   457       common/font \
   476       -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt/java2d \
   458       common/java2d/opengl \
   477       -I$(TOPDIR)/src/java.desktop/share/native/libawt/java2d/loops \
   459       #
   478       -I$(TOPDIR)/src/java.desktop/share/native/libawt/java2d/pipe \
   460 
   479       -I$(TOPDIR)/src/java.desktop/share/native/common/awt/debug \
   461   LIBAWT_HEADLESS_CFLAGS := $(CUPS_CFLAGS) $(FONTCONFIG_CFLAGS) $(X_CFLAGS) \
   480       -I$(TOPDIR)/src/java.desktop/share/native/common/font \
   462       -DHEADLESS=true -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
   481       -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/font \
       
   482       -I$(TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
       
   483       -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/java2d/opengl \
       
   484       $(LIBJAVA_HEADER_FLAGS) \
       
   485       #
       
   486 
   463 
   487   $(eval $(call SetupJdkLibrary, BUILD_LIBAWT_HEADLESS, \
   464   $(eval $(call SetupJdkLibrary, BUILD_LIBAWT_HEADLESS, \
   488       NAME := awt_headless, \
   465       NAME := awt_headless, \
   489       SRC := $(LIBAWT_HEADLESS_DIRS), \
   466       EXTRA_SRC := $(LIBAWT_HEADLESS_EXTRA_SRC), \
   490       EXCLUDES := $(LIBAWT_HEADLESS_EXCLUDES), \
   467       EXCLUDES := $(LIBAWT_HEADLESS_EXCLUDES), \
   491       OPTIMIZATION := LOW, \
   468       OPTIMIZATION := LOW, \
   492       CFLAGS := $(CFLAGS_JDKLIB) \
   469       CFLAGS := $(CFLAGS_JDKLIB) \
   493           -DHEADLESS=true \
       
   494           -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
       
   495           $(CUPS_CFLAGS) \
       
   496           $(FONTCONFIG_CFLAGS) \
       
   497           $(X_CFLAGS) \
       
   498           $(LIBAWT_HEADLESS_CFLAGS), \
   470           $(LIBAWT_HEADLESS_CFLAGS), \
       
   471       EXTRA_HEADER_DIRS := $(LIBAWT_HEADLESS_EXTRA_HEADER_DIRS), \
   499       DISABLED_WARNINGS_xlc := 1506-356, \
   472       DISABLED_WARNINGS_xlc := 1506-356, \
   500       DISABLED_WARNINGS_solstudio := E_EMPTY_TRANSLATION_UNIT, \
   473       DISABLED_WARNINGS_solstudio := E_EMPTY_TRANSLATION_UNIT, \
   501       LDFLAGS := $(LDFLAGS_JDKLIB) \
   474       LDFLAGS := $(LDFLAGS_JDKLIB) \
   502           $(call SET_SHARED_LIBRARY_ORIGIN), \
   475           $(call SET_SHARED_LIBRARY_ORIGIN), \
   503       LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
   476       LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
   517 endif
   490 endif
   518 
   491 
   519 ################################################################################
   492 ################################################################################
   520 
   493 
   521 ifeq ($(FREETYPE_TO_USE), system)
   494 ifeq ($(FREETYPE_TO_USE), system)
       
   495   # For use by libfontmanager:
   522   LIBFREETYPE_CFLAGS := $(FREETYPE_CFLAGS)
   496   LIBFREETYPE_CFLAGS := $(FREETYPE_CFLAGS)
   523   LIBFREETYPE_LIBS := $(FREETYPE_LIBS)
   497   LIBFREETYPE_LIBS := $(FREETYPE_LIBS)
   524 else
   498 else
   525   LIBFREETYPE_SRC := $(TOPDIR)/src/java.desktop/share/native/libfreetype
   499   BUILD_LIBFREETYPE_HEADER_DIRS := $(TOPDIR)/src/$(MODULE)/share/native/libfreetype/include
   526   BUILD_LIBFREETYPE_HEADERS := $(addprefix -I, $(LIBFREETYPE_SRC)/include)
   500   BUILD_LIBFREETYPE_CFLAGS := -DFT2_BUILD_LIBRARY $(EXPORT_ALL_SYMBOLS)
   527   LIBFREETYPE_CFLAGS := $(BUILD_LIBFREETYPE_HEADERS)
   501 
       
   502   # For use by libfontmanager:
       
   503   LIBFREETYPE_CFLAGS := -I$(BUILD_LIBFREETYPE_HEADER_DIRS)
   528   ifeq ($(OPENJDK_TARGET_OS), windows)
   504   ifeq ($(OPENJDK_TARGET_OS), windows)
   529     LIBFREETYPE_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfreetype/freetype.lib
   505     LIBFREETYPE_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfreetype/freetype.lib
   530   else
   506   else
   531     LIBFREETYPE_LIBS := -lfreetype
   507     LIBFREETYPE_LIBS := -lfreetype
   532   endif
   508   endif
   533 
   509 
   534   $(eval $(call SetupJdkLibrary, BUILD_LIBFREETYPE, \
   510   $(eval $(call SetupJdkLibrary, BUILD_LIBFREETYPE, \
   535       NAME := freetype, \
   511       NAME := freetype, \
   536       SRC := $(LIBFREETYPE_SRC)/src, \
       
   537       OPTIMIZATION := HIGHEST, \
   512       OPTIMIZATION := HIGHEST, \
   538       CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBFREETYPE_HEADERS) \
   513       CFLAGS := $(CFLAGS_JDKLIB) \
   539           -DFT2_BUILD_LIBRARY $(EXPORT_ALL_SYMBOLS), \
   514           $(BUILD_LIBFREETYPE_CFLAGS), \
       
   515       EXTRA_HEADER_DIRS := $(BUILD_LIBFREETYPE_HEADER_DIRS), \
   540       DISABLED_WARNINGS_solstudio := \
   516       DISABLED_WARNINGS_solstudio := \
   541          E_STATEMENT_NOT_REACHED \
   517          E_STATEMENT_NOT_REACHED \
   542          E_END_OF_LOOP_CODE_NOT_REACHED, \
   518          E_END_OF_LOOP_CODE_NOT_REACHED, \
   543       DISABLED_WARNINGS_microsoft := 4267 4244 4312, \
   519       DISABLED_WARNINGS_microsoft := 4267 4244 4312, \
   544       DISABLED_WARNINGS_gcc := implicit-fallthrough, \
   520       DISABLED_WARNINGS_gcc := implicit-fallthrough, \
   549   TARGETS += $(BUILD_LIBFREETYPE)
   525   TARGETS += $(BUILD_LIBFREETYPE)
   550 endif
   526 endif
   551 
   527 
   552 ###########################################################################
   528 ###########################################################################
   553 
   529 
   554 LIBFONTMANAGER_SRC := $(TOPDIR)/src/java.desktop/share/native/libfontmanager \
       
   555     $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libfontmanager
       
   556 LIBFONTMANAGER_CFLAGS := \
       
   557     $(addprefix -I, $(shell $(FIND) \
       
   558       $(LIBFONTMANAGER_SRC) \
       
   559       $(TOPDIR)/src/java.desktop/share/native/libawt \
       
   560       $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt \
       
   561       $(TOPDIR)/src/java.desktop/share/native/common \
       
   562       $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common -type d)) \
       
   563     -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
       
   564     $(LIBJAVA_HEADER_FLAGS) \
       
   565     #
       
   566 
       
   567 #### Begin harfbuzz configuration
   530 #### Begin harfbuzz configuration
   568 
   531 
   569 HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN
   532 HARFBUZZ_CFLAGS := -DHAVE_OT -DHAVE_FALLBACK -DHAVE_UCDN
   570 
   533 
   571 ifneq ($(OPENJDK_TARGET_OS), windows)
   534 ifneq ($(OPENJDK_TARGET_OS), windows)
   588 LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-ft.cc
   551 LIBFONTMANAGER_EXCLUDE_FILES += harfbuzz/hb-ft.cc
   589 
   552 
   590 LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
   553 LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
   591 
   554 
   592 #### End harfbuzz configuration
   555 #### End harfbuzz configuration
       
   556 
       
   557 LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
       
   558     libfontmanager/harfbuzz \
       
   559     libfontmanager/harfbuzz/hb-ucdn \
       
   560     common/awt \
       
   561     common/font \
       
   562     libawt/java2d \
       
   563     libawt/java2d/pipe \
       
   564     libawt/java2d/loops \
       
   565     #
   593 
   566 
   594 LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS)
   567 LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS)
   595 BUILD_LIBFONTMANAGER_FONTLIB += $(LIBFREETYPE_LIBS)
   568 BUILD_LIBFONTMANAGER_FONTLIB += $(LIBFREETYPE_LIBS)
   596 
   569 
   597 LIBFONTMANAGER_OPTIMIZATION := HIGH
   570 LIBFONTMANAGER_OPTIMIZATION := HIGH
   598 
   571 
   599 ifeq ($(OPENJDK_TARGET_OS), windows)
   572 ifeq ($(OPENJDK_TARGET_OS), windows)
   600   LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
   573   LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
   601       X11TextRenderer.c
   574       X11TextRenderer.c
   602   LIBFONTMANAGER_OPTIMIZATION := HIGHEST
   575   LIBFONTMANAGER_OPTIMIZATION := HIGHEST
   603   LIBFONTMANAGER_CFLAGS += -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt/windows
       
   604 else ifeq ($(OPENJDK_TARGET_OS), macosx)
   576 else ifeq ($(OPENJDK_TARGET_OS), macosx)
   605   LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
   577   LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
   606       X11TextRenderer.c \
   578       X11TextRenderer.c \
   607       fontpath.c \
   579       fontpath.c \
   608       lcdglyph.c
   580       lcdglyph.c
   609 else
   581 else
   610   LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \
   582   LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \
   611       lcdglyph.c
   583       lcdglyph.c
   612 endif
   584 endif
   613 
   585 
   614 LIBFONTMANAGER_CFLAGS += $(FONT_HEADERS) $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
   586 LIBFONTMANAGER_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
   615 
   587 
   616 ifeq ($(TOOLCHAIN_TYPE), gcc)
   588 ifeq ($(TOOLCHAIN_TYPE), gcc)
   617   # Turn off all warnings for sunFont.c. This is needed because the specific warning
   589   # Turn off all warnings for sunFont.c. This is needed because the specific warning
   618   # about discarding 'const' qualifier cannot be turned off individually.
   590   # about discarding 'const' qualifier cannot be turned off individually.
   619   BUILD_LIBFONTMANAGER_sunFont.c_CFLAGS := -w
   591   BUILD_LIBFONTMANAGER_sunFont.c_CFLAGS := -w
   625 #   Filter relevant linker flags disallowing unresolved symbols as we cannot
   597 #   Filter relevant linker flags disallowing unresolved symbols as we cannot
   626 #   build-time decide to which library to link against (libawt_headless or
   598 #   build-time decide to which library to link against (libawt_headless or
   627 #   libawt_xawt). See JDK-8196516 for details.
   599 #   libawt_xawt). See JDK-8196516 for details.
   628 $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
   600 $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
   629     NAME := fontmanager, \
   601     NAME := fontmanager, \
   630     SRC := $(LIBFONTMANAGER_SRC), \
       
   631     EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
   602     EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \
   632         AccelGlyphCache.c, \
   603         AccelGlyphCache.c, \
   633     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
   604     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
   634     CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
   605     CFLAGS := $(CFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
   635     CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
   606     CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBFONTMANAGER_CFLAGS), \
   636     OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
   607     OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
   637     CFLAGS_windows = -DCC_NOEX, \
   608     CFLAGS_windows = -DCC_NOEX, \
       
   609     EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
   638     WARNINGS_AS_ERRORS_xlc := false, \
   610     WARNINGS_AS_ERRORS_xlc := false, \
   639     DISABLED_WARNINGS_gcc := sign-compare int-to-pointer-cast \
   611     DISABLED_WARNINGS_gcc := sign-compare int-to-pointer-cast \
   640         type-limits missing-field-initializers implicit-fallthrough, \
   612         type-limits missing-field-initializers implicit-fallthrough, \
   641     DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
   613     DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
   642         maybe-uninitialized, \
   614         maybe-uninitialized, \
   664 ))
   636 ))
   665 
   637 
   666 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
   638 $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
   667 
   639 
   668 ifeq ($(OPENJDK_TARGET_OS), macosx)
   640 ifeq ($(OPENJDK_TARGET_OS), macosx)
   669   $(BUILD_LIBFONTMANAGER): $(call FindLib, java.desktop, awt_lwawt)
   641   $(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
   670 endif
   642 endif
   671 
   643 
   672 ifeq ($(FREETYPE_TO_USE), bundled)
   644 ifeq ($(FREETYPE_TO_USE), bundled)
   673   $(BUILD_LIBFONTMANAGER): $(BUILD_LIBFREETYPE)
   645   $(BUILD_LIBFONTMANAGER): $(BUILD_LIBFREETYPE)
   674 endif
   646 endif
   676 TARGETS += $(BUILD_LIBFONTMANAGER)
   648 TARGETS += $(BUILD_LIBFONTMANAGER)
   677 
   649 
   678 ################################################################################
   650 ################################################################################
   679 
   651 
   680 ifeq ($(OPENJDK_TARGET_OS), windows)
   652 ifeq ($(OPENJDK_TARGET_OS), windows)
   681   LIBJAWT_SRC := $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libjawt
   653 
   682   LIBJAWT_CFLAGS := -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt/windows \
   654   LIBJAWT_CFLAGS := -EHsc -DUNICODE -D_UNICODE
   683       -I$(TOPDIR)/src/java.desktop/share/native/common/awt/debug \
   655 
   684       -I$(TOPDIR)/src/java.desktop/share/native/libawt/java2d \
   656   LIBJAWT_EXTRA_HEADER_DIRS := \
   685       -I$(TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
   657       include \
   686       -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt/java2d/windows \
   658       common/awt/debug \
   687       -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
   659       libawt/awt/image/cvutils \
   688       -I$(TOPDIR)/src/java.desktop/windows/native/include \
   660       libawt/java2d \
   689       -I$(TOPDIR)/src/java.desktop/share/native/include \
   661       libawt/java2d/windows \
   690       $(LIBJAVA_HEADER_FLAGS) \
   662       libawt/windows \
       
   663       java.base:include \
       
   664       java.base:libjava \
   691       #
   665       #
   692 
   666 
   693   ifeq ($(OPENJDK_TARGET_CPU), x86)
   667   ifeq ($(OPENJDK_TARGET_CPU), x86)
   694     KERNEL32_LIB := kernel32.lib
   668     KERNEL32_LIB := kernel32.lib
   695   endif
   669   endif
       
   670 
   696   $(eval $(call SetupJdkLibrary, BUILD_LIBJAWT, \
   671   $(eval $(call SetupJdkLibrary, BUILD_LIBJAWT, \
   697       NAME := jawt, \
   672       NAME := jawt, \
   698       SRC := $(LIBJAWT_SRC), \
       
   699       INCLUDE_FILES := $(LIBJAWT_INCLUDE_FILES), \
       
   700       OPTIMIZATION := LOW, \
   673       OPTIMIZATION := LOW, \
   701       CFLAGS := $(CXXFLAGS_JDKLIB) \
   674       CFLAGS := $(CXXFLAGS_JDKLIB) \
   702           -EHsc -DUNICODE -D_UNICODE \
       
   703           $(LIBJAWT_CFLAGS), \
   675           $(LIBJAWT_CFLAGS), \
       
   676       EXTRA_HEADER_DIRS := $(LIBJAWT_EXTRA_HEADER_DIRS), \
   704       LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK), \
   677       LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK), \
   705       LIBS := $(JDKLIB_LIBS) $(KERNEL32_LIB) advapi32.lib $(WIN_AWT_LIB), \
   678       LIBS := $(JDKLIB_LIBS) $(KERNEL32_LIB) advapi32.lib $(WIN_AWT_LIB), \
   706   ))
   679   ))
   707 
   680 
   708   $(BUILD_LIBJAWT): $(BUILD_LIBAWT)
   681   $(BUILD_LIBJAWT): $(BUILD_LIBAWT)
   717   TARGETS += $(COPY_JAWT_LIB)
   690   TARGETS += $(COPY_JAWT_LIB)
   718 
   691 
   719 else # OPENJDK_TARGET_OS not windows
   692 else # OPENJDK_TARGET_OS not windows
   720 
   693 
   721   ifeq ($(OPENJDK_TARGET_OS), macosx)
   694   ifeq ($(OPENJDK_TARGET_OS), macosx)
   722     LIBJAWT_SRC := $(TOPDIR)/src/java.desktop/macosx/native/libjawt
   695     # libjawt on macosx do not use the unix code
   723   else
   696     LIBJAWT_EXCLUDE_SRC_PATTERNS := unix
   724     LIBJAWT_SRC := $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libjawt
   697   endif
   725   endif
       
   726   LIBJAWT_CFLAGS := \
       
   727       -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt \
       
   728       -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS)/native/include \
       
   729       -I$(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/include \
       
   730       -I$(TOPDIR)/src/java.desktop/share/native/include \
       
   731       $(LIBJAVA_HEADER_FLAGS) \
       
   732       #
       
   733 
   698 
   734   ifeq ($(OPENJDK_TARGET_OS), macosx)
   699   ifeq ($(OPENJDK_TARGET_OS), macosx)
   735     JAWT_LIBS := -lawt_lwawt
   700     JAWT_LIBS := -lawt_lwawt
   736   else
   701   else
   737     JAWT_LIBS :=
   702     JAWT_LIBS :=
   740     endif
   705     endif
   741     ifeq ($(ENABLE_HEADLESS_ONLY), false)
   706     ifeq ($(ENABLE_HEADLESS_ONLY), false)
   742       JAWT_LIBS += -lawt_xawt
   707       JAWT_LIBS += -lawt_xawt
   743     else
   708     else
   744       JAWT_LIBS += -lawt_headless
   709       JAWT_LIBS += -lawt_headless
   745       HEADLESS_CFLAG += -DHEADLESS
   710       ifeq ($(OPENJDK_TARGET_OS), linux)
       
   711         JAWT_CFLAGS += -DHEADLESS
       
   712       endif
   746     endif
   713     endif
   747   endif
   714   endif
   748 
   715 
   749   $(eval $(call SetupJdkLibrary, BUILD_LIBJAWT, \
   716   $(eval $(call SetupJdkLibrary, BUILD_LIBJAWT, \
   750       NAME := jawt, \
   717       NAME := jawt, \
   751       SRC := $(LIBJAWT_SRC), \
   718       EXCLUDE_SRC_PATTERNS := $(LIBJAWT_EXCLUDE_SRC_PATTERNS), \
   752       INCLUDE_FILES := $(JAWT_FILES), \
   719       INCLUDE_FILES := $(JAWT_FILES), \
   753       OPTIMIZATION := LOW, \
   720       OPTIMIZATION := LOW, \
   754       CFLAGS := $(CFLAGS_JDKLIB) \
   721       CFLAGS := $(CFLAGS_JDKLIB) \
   755           $(LIBJAWT_CFLAGS), \
   722           $(JAWT_CFLAGS), \
   756       CFLAGS_linux := $(HEADLESS_CFLAG), \
   723       EXTRA_HEADER_DIRS := \
   757       CFLAGS_macosx := $(LIBJAWT_CFLAGS_macosx), \
   724           include \
       
   725           common/awt, \
   758       LDFLAGS := $(LDFLAGS_JDKLIB) \
   726       LDFLAGS := $(LDFLAGS_JDKLIB) \
   759           $(call SET_SHARED_LIBRARY_ORIGIN), \
   727           $(call SET_SHARED_LIBRARY_ORIGIN), \
   760       LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
   728       LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
   761       LDFLAGS_macosx := -Wl$(COMMA)-rpath$(COMMA)@loader_path, \
   729       LDFLAGS_macosx := -Wl$(COMMA)-rpath$(COMMA)@loader_path, \
   762       LIBS_unix := $(JAWT_LIBS) $(JDKLIB_LIBS), \
   730       LIBS_unix := $(JAWT_LIBS) $(JDKLIB_LIBS), \
   780 
   748 
   781 ################################################################################
   749 ################################################################################
   782 
   750 
   783 ifeq ($(ENABLE_HEADLESS_ONLY), false)
   751 ifeq ($(ENABLE_HEADLESS_ONLY), false)
   784 
   752 
   785   LIBSPLASHSCREEN_DIRS := \
   753   LIBSPLASHSCREEN_EXTRA_SRC := \
   786       $(TOPDIR)/src/java.desktop/share/native/libjavajpeg \
   754       common/awt/systemscale \
   787       $(TOPDIR)/src/java.desktop/share/native/libsplashscreen \
   755       #
   788       #
   756 
   789 
   757   ifeq ($(USE_EXTERNAL_LIBGIF), false)
   790   ifeq ($(USE_EXTERNAL_LIBGIF), true)
   758     LIBSPLASHSCREEN_HEADER_DIRS += libsplashscreen/giflib
       
   759   else
       
   760     LIBSPLASHSCREEN_EXCLUDES := giflib
   791     GIFLIB_LIBS := -lgif
   761     GIFLIB_LIBS := -lgif
   792     LIBSPLASHSCREEN_EXCLUDES := giflib
   762   endif
       
   763 
       
   764   ifeq ($(USE_EXTERNAL_LIBJPEG), false)
       
   765     # While the following ought to work, it will currently pull in the closed
       
   766     # additions to this library, and this was not done previously in the build.
       
   767     # LIBSPLASHSCREEN_EXTRA_SRC += libjavajpeg
       
   768     LIBSPLASHSCREEN_EXTRA_SRC += $(TOPDIR)/src/java.desktop/share/native/libjavajpeg
   793   else
   769   else
   794     LIBSPLASHSCREEN_CFLAGS += -I$(TOPDIR)/src/java.desktop/share/native/libsplashscreen/giflib
       
   795   endif
       
   796 
       
   797   ifeq ($(USE_EXTERNAL_LIBJPEG), true)
       
   798     LIBJPEG_LIBS := -ljpeg
   770     LIBJPEG_LIBS := -ljpeg
   799   else
       
   800     LIBSPLASHSCREEN_DIRS += $(TOPDIR)/src/java.desktop/share/native/libjavajpeg
       
   801     LIBJPEG_CFLAGS := -I$(TOPDIR)/src/java.desktop/share/native/libjavajpeg
       
   802   endif
   771   endif
   803 
   772 
   804   ifeq ($(USE_EXTERNAL_LIBPNG), false)
   773   ifeq ($(USE_EXTERNAL_LIBPNG), false)
   805     LIBSPLASHSCREEN_DIRS += $(TOPDIR)/src/java.desktop/share/native/libsplashscreen/libpng
   774     LIBSPLASHSCREEN_HEADER_DIRS += libsplashscreen/libpng
       
   775 
       
   776     ifeq ($(OPENJDK_TARGET_OS), macosx)
       
   777       ifeq ($(USE_EXTERNAL_LIBZ), true)
       
   778         # When building our own libpng and using an external libz, we need to
       
   779         # inject our own libz.h to tweak the exported ZLIB_VERNUM macro. See
       
   780         # $(TOPDIR)/src/java.desktop/macosx/native/libsplashscreen/libpng/zlibwrapper/zlib.h
       
   781         # for details. This must be specified with -iquote, not -I to avoid a
       
   782         # circular include.
       
   783         LIBSPLASHSCREEN_CFLAGS += -iquote $(TOPDIR)/src/$(MODULE)/macosx/native/libsplashscreen/libpng/zlibwrapper
       
   784       endif
       
   785     endif
   806   else
   786   else
   807     LIBSPLASHSCREEN_EXCLUDES += libpng
   787     LIBSPLASHSCREEN_EXCLUDES += libpng
   808   endif
   788   endif
   809 
   789 
   810   ifneq ($(OPENJDK_TARGET_OS), macosx)
   790   ifeq ($(USE_EXTERNAL_LIBZ), false)
   811     LIBSPLASHSCREEN_DIRS += $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libsplashscreen
   791     LIBSPLASHSCREEN_EXTRA_SRC += java.base:libzip/zlib
   812   else
   792   endif
   813     LIBSPLASHSCREEN_DIRS += $(TOPDIR)/src/java.desktop/macosx/native/libsplashscreen
   793 
   814   endif
   794   ifeq ($(OPENJDK_TARGET_OS), macosx)
   815 
   795     # libsplashscreen on macosx do not use the unix code
   816   ifneq ($(filter $(OPENJDK_TARGET_OS),linux solaris aix), )
   796     LIBSPLASHSCREEN_EXCLUDE_SRC_PATTERNS := unix
   817     LIBSPLASHSCREEN_DIRS += $(TOPDIR)/src/java.desktop/unix/native/common/awt/systemscale
   797   endif
   818   endif
   798 
   819 
   799   LIBSPLASHSCREEN_CFLAGS += -DSPLASHSCREEN -DPNG_NO_MMX_CODE -DPNG_ARM_NEON_OPT=0
   820   ifeq ($(OPENJDK_TARGET_OS), windows)
       
   821     LIBSPLASHSCREEN_DIRS += $(TOPDIR)/src/java.desktop/windows/native/common/awt/systemscale
       
   822   endif
       
   823   LIBSPLASHSCREEN_CFLAGS += -DSPLASHSCREEN -DPNG_NO_MMX_CODE -DPNG_ARM_NEON_OPT=0 \
       
   824       $(addprefix -I, $(LIBSPLASHSCREEN_DIRS)) \
       
   825       $(LIBJAVA_HEADER_FLAGS) \
       
   826       #
       
   827 
   800 
   828   ifeq ($(OPENJDK_TARGET_OS), macosx)
   801   ifeq ($(OPENJDK_TARGET_OS), macosx)
   829     LIBSPLASHSCREEN_CFLAGS += -DWITH_MACOSX
   802     LIBSPLASHSCREEN_CFLAGS += -DWITH_MACOSX
   830     LIBSPLASHSCREEN_CFLAGS += -I$(TOPDIR)/src/java.desktop/macosx/native/libosxapp
       
   831 
   803 
   832     BUILD_LIBSPLASHSCREEN_java_awt_SplashScreen.c_CFLAGS := -x objective-c -O0
   804     BUILD_LIBSPLASHSCREEN_java_awt_SplashScreen.c_CFLAGS := -x objective-c -O0
   833     BUILD_LIBSPLASHSCREEN_splashscreen_gfx_impl.c_CFLAGS := -x objective-c -O0
   805     BUILD_LIBSPLASHSCREEN_splashscreen_gfx_impl.c_CFLAGS := -x objective-c -O0
   834     BUILD_LIBSPLASHSCREEN_splashscreen_gif.c_CFLAGS := -x objective-c -O0
   806     BUILD_LIBSPLASHSCREEN_splashscreen_gif.c_CFLAGS := -x objective-c -O0
   835     BUILD_LIBSPLASHSCREEN_splashscreen_impl.c_CFLAGS := -x objective-c -O0
   807     BUILD_LIBSPLASHSCREEN_splashscreen_impl.c_CFLAGS := -x objective-c -O0
   842   else
   814   else
   843     LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 $(X_CFLAGS)
   815     LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 $(X_CFLAGS)
   844   endif
   816   endif
   845 
   817 
   846   LIBSPLASHSCREEN_LIBS :=
   818   LIBSPLASHSCREEN_LIBS :=
   847 
       
   848   ifeq ($(USE_EXTERNAL_LIBZ), false)
       
   849     LIBSPLASHSCREEN_DIRS += $(TOPDIR)/src/java.base/share/native/libzip/zlib
       
   850   else
       
   851     ifeq ($(OPENJDK_TARGET_OS), macosx)
       
   852       ifeq ($(USE_EXTERNAL_LIBPNG), false)
       
   853         # When building our own libpng and using an external libz, we need to
       
   854         # inject our own libz.h to tweak the exported ZLIB_VERNUM macro. See
       
   855         # $(TOPDIR)/src/java.desktop/macosx/native/libsplashscreen/libpng/zlib.h
       
   856         # for details.
       
   857         LIBSPLASHSCREEN_CFLAGS += -iquote $(TOPDIR)/src/java.desktop/macosx/native/libsplashscreen/libpng
       
   858       endif
       
   859     endif
       
   860   endif
       
   861 
   819 
   862   ifeq ($(OPENJDK_TARGET_OS), macosx)
   820   ifeq ($(OPENJDK_TARGET_OS), macosx)
   863     LIBSPLASHSCREEN_LIBS += \
   821     LIBSPLASHSCREEN_LIBS += \
   864         $(LIBM) -lpthread -liconv -losxapp \
   822         $(LIBM) -lpthread -liconv -losxapp \
   865         -framework ApplicationServices \
   823         -framework ApplicationServices \
   870     LIBSPLASHSCREEN_LIBS += kernel32.lib user32.lib gdi32.lib delayimp.lib $(WIN_JAVA_LIB) jvm.lib
   828     LIBSPLASHSCREEN_LIBS += kernel32.lib user32.lib gdi32.lib delayimp.lib $(WIN_JAVA_LIB) jvm.lib
   871   else
   829   else
   872     LIBSPLASHSCREEN_LIBS += $(X_LIBS) -lX11 -lXext $(LIBM) -lpthread -ldl
   830     LIBSPLASHSCREEN_LIBS += $(X_LIBS) -lX11 -lXext $(LIBM) -lpthread -ldl
   873   endif
   831   endif
   874 
   832 
       
   833   LIBSPLASHSCREEN_HEADER_DIRS += \
       
   834       libosxapp \
       
   835       java.base:include \
       
   836       java.base:libjava \
       
   837       #
       
   838 
   875   $(eval $(call SetupJdkLibrary, BUILD_LIBSPLASHSCREEN, \
   839   $(eval $(call SetupJdkLibrary, BUILD_LIBSPLASHSCREEN, \
   876       NAME := splashscreen, \
   840       NAME := splashscreen, \
   877       SRC := $(LIBSPLASHSCREEN_DIRS), \
   841       EXTRA_SRC := $(LIBSPLASHSCREEN_EXTRA_SRC), \
       
   842       EXCLUDE_SRC_PATTERNS := $(LIBSPLASHSCREEN_EXCLUDE_SRC_PATTERNS), \
   878       EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
   843       EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
   879       EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \
   844       EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \
   880       OPTIMIZATION := LOW, \
   845       OPTIMIZATION := LOW, \
   881       CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
   846       CFLAGS := $(CFLAGS_JDKLIB) $(LIBSPLASHSCREEN_CFLAGS) \
   882           $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS) $(LIBZ_CFLAGS), \
   847           $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS) $(LIBZ_CFLAGS), \
       
   848       EXTRA_HEADER_DIRS := $(LIBSPLASHSCREEN_HEADER_DIRS), \
   883       DISABLED_WARNINGS_gcc := sign-compare type-limits unused-result \
   849       DISABLED_WARNINGS_gcc := sign-compare type-limits unused-result \
   884           maybe-uninitialized shift-negative-value implicit-fallthrough, \
   850           maybe-uninitialized shift-negative-value implicit-fallthrough, \
   885       DISABLED_WARNINGS_clang := incompatible-pointer-types, \
   851       DISABLED_WARNINGS_clang := incompatible-pointer-types, \
   886       DISABLED_WARNINGS_solstudio := E_NEWLINE_NOT_LAST E_DECLARATION_IN_CODE \
   852       DISABLED_WARNINGS_solstudio := E_NEWLINE_NOT_LAST E_DECLARATION_IN_CODE \
   887           E_STATEMENT_NOT_REACHED, \
   853           E_STATEMENT_NOT_REACHED, \
   896   ))
   862   ))
   897 
   863 
   898   TARGETS += $(BUILD_LIBSPLASHSCREEN)
   864   TARGETS += $(BUILD_LIBSPLASHSCREEN)
   899 
   865 
   900   ifeq ($(OPENJDK_TARGET_OS), macosx)
   866   ifeq ($(OPENJDK_TARGET_OS), macosx)
   901     $(BUILD_LIBSPLASHSCREEN): $(call FindLib, java.desktop, osxapp)
   867     $(BUILD_LIBSPLASHSCREEN): $(call FindLib, $(MODULE), osxapp)
   902   endif
   868   endif
   903 
   869 
   904 endif
   870 endif
   905 
   871 
   906 ################################################################################
   872 ################################################################################
   907 
   873 
   908 ifeq ($(OPENJDK_TARGET_OS), macosx)
   874 ifeq ($(OPENJDK_TARGET_OS), macosx)
   909 
   875 
   910   LIBAWT_LWAWT_DIRS := \
   876   LIBAWT_LWAWT_EXTRA_SRC := \
   911       $(TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt \
   877       $(TOPDIR)/src/$(MODULE)/unix/native/common/awt \
   912       $(TOPDIR)/src/java.desktop/unix/native/common/awt \
   878       $(TOPDIR)/src/$(MODULE)/share/native/common/font \
   913       $(TOPDIR)/src/java.desktop/share/native/common/font \
   879       $(TOPDIR)/src/$(MODULE)/share/native/common/java2d \
   914       $(TOPDIR)/src/java.desktop/share/native/common/java2d \
   880       #
   915       #
   881 
   916 
   882   LIBAWT_LWAWT_EXTRA_HEADER_DIRS := \
   917   LIBAWT_LWAWT_CFLAGS := \
   883       $(LIBAWT_DEFAULT_HEADER_DIRS) \
   918       $(addprefix -I, $(LIBAWT_LWAWT_DIRS)) \
   884       libawt_lwawt/awt \
   919       -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
   885       libawt_lwawt/font \
   920       -I$(TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt/awt \
   886       libawt_lwawt/java2d/opengl \
   921       -I$(TOPDIR)/src/java.desktop/unix/native/libawt_xawt/awt \
   887       include \
   922       -I$(TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt/font \
   888       common/awt/debug \
   923       -I$(TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt/java2d/opengl \
   889       common/java2d/opengl \
   924       -I$(TOPDIR)/src/java.desktop/share/native/common/awt/debug \
   890       libosxapp \
   925       -I$(TOPDIR)/src/java.desktop/share/native/common/java2d/opengl \
   891       #
   926       -I$(TOPDIR)/src/java.desktop/macosx/native/include \
   892 
   927       -I$(TOPDIR)/src/java.desktop/share/native/include \
   893   LIBAWT_LWAWT_CFLAGS := $(X_CFLAGS) $(X_LIBS)
   928       -I$(TOPDIR)/src/java.desktop/share/native/libawt/awt/image \
       
   929       -I$(TOPDIR)/src/java.desktop/share/native/libawt/awt/image/cvutils \
       
   930       -I$(TOPDIR)/src/java.desktop/share/native/libawt/java2d \
       
   931       -I$(TOPDIR)/src/java.desktop/unix/native/libawt/java2d \
       
   932       -I$(TOPDIR)/src/java.desktop/share/native/libawt/java2d/loops \
       
   933       -I$(TOPDIR)/src/java.desktop/share/native/libawt/java2d/pipe \
       
   934       -I$(TOPDIR)/src/java.desktop/share/native/libmlib_image/ \
       
   935       -I$(TOPDIR)/src/java.desktop/macosx/native/libosxapp \
       
   936       $(LIBJAVA_HEADER_FLAGS) \
       
   937       #
       
   938 
   894 
   939   LIBAWT_LWAWT_EXFILES := fontpath.c awt_Font.c X11Color.c
   895   LIBAWT_LWAWT_EXFILES := fontpath.c awt_Font.c X11Color.c
   940   LIBAWT_LWAWT_EXCLUDES := $(TOPDIR)/src/java.desktop/unix/native/common/awt/medialib
   896   LIBAWT_LWAWT_EXCLUDES := $(TOPDIR)/src/$(MODULE)/unix/native/common/awt/medialib
   941 
   897 
   942   $(eval $(call SetupJdkLibrary, BUILD_LIBAWT_LWAWT, \
   898   $(eval $(call SetupJdkLibrary, BUILD_LIBAWT_LWAWT, \
   943       NAME := awt_lwawt, \
   899       NAME := awt_lwawt, \
   944       SRC := $(LIBAWT_LWAWT_DIRS), \
   900       EXTRA_SRC := $(LIBAWT_LWAWT_EXTRA_SRC), \
   945       INCLUDE_FILES := $(LIBAWT_LWAWT_FILES), \
   901       INCLUDE_FILES := $(LIBAWT_LWAWT_FILES), \
   946       EXCLUDE_FILES := $(LIBAWT_LWAWT_EXFILES), \
   902       EXCLUDE_FILES := $(LIBAWT_LWAWT_EXFILES), \
   947       EXCLUDES := $(LIBAWT_LWAWT_EXCLUDES), \
   903       EXCLUDES := $(LIBAWT_LWAWT_EXCLUDES), \
   948       OPTIMIZATION := LOW, \
   904       OPTIMIZATION := LOW, \
   949       CFLAGS := $(CFLAGS_JDKLIB) \
   905       CFLAGS := $(CFLAGS_JDKLIB) \
   950           $(X_CFLAGS) \
       
   951           $(X_LIBS) \
       
   952           $(LIBAWT_LWAWT_CFLAGS), \
   906           $(LIBAWT_LWAWT_CFLAGS), \
       
   907       EXTRA_HEADER_DIRS := $(LIBAWT_LWAWT_EXTRA_HEADER_DIRS), \
   953       DISABLED_WARNINGS_clang := incomplete-implementation enum-conversion \
   908       DISABLED_WARNINGS_clang := incomplete-implementation enum-conversion \
   954           deprecated-declarations objc-method-access bitwise-op-parentheses \
   909           deprecated-declarations objc-method-access bitwise-op-parentheses \
   955           incompatible-pointer-types parentheses-equality extra-tokens, \
   910           incompatible-pointer-types parentheses-equality extra-tokens, \
   956       LDFLAGS := $(LDFLAGS_JDKLIB) \
   911       LDFLAGS := $(LDFLAGS_JDKLIB) \
   957           $(call SET_SHARED_LIBRARY_ORIGIN) \
   912           $(call SET_SHARED_LIBRARY_ORIGIN) \
   974 
   929 
   975   $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBAWT)
   930   $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBAWT)
   976 
   931 
   977   $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBMLIB_IMAGE)
   932   $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBMLIB_IMAGE)
   978 
   933 
   979   $(BUILD_LIBAWT_LWAWT): $(call FindLib, java.desktop, osxapp)
   934   $(BUILD_LIBAWT_LWAWT): $(call FindLib, $(MODULE), osxapp)
   980 
   935 
   981   $(BUILD_LIBAWT_LWAWT): $(call FindLib, java.base, java)
   936   $(BUILD_LIBAWT_LWAWT): $(call FindLib, java.base, java)
   982 
   937 
   983 endif
   938 endif
   984 
   939 
   986 
   941 
   987 ifeq ($(OPENJDK_TARGET_OS), macosx)
   942 ifeq ($(OPENJDK_TARGET_OS), macosx)
   988 
   943 
   989   $(eval $(call SetupJdkLibrary, BUILD_LIBOSXUI, \
   944   $(eval $(call SetupJdkLibrary, BUILD_LIBOSXUI, \
   990       NAME := osxui, \
   945       NAME := osxui, \
   991       SRC := $(TOPDIR)/src/java.desktop/macosx/native/libosxui, \
       
   992       OPTIMIZATION := LOW, \
   946       OPTIMIZATION := LOW, \
   993       CFLAGS := $(CFLAGS_JDKLIB) \
   947       CFLAGS := $(CFLAGS_JDKLIB), \
   994           -I$(TOPDIR)/src/java.desktop/macosx/native/libosxui \
   948       EXTRA_HEADER_DIRS := \
   995           -I$(TOPDIR)/src/java.desktop/macosx/native/libawt_lwawt/awt \
   949           libawt_lwawt/awt \
   996           -I$(TOPDIR)/src/java.desktop/macosx/native/libosxapp \
   950           libosxapp, \
   997           -I$(TOPDIR)/src/java.base/share/native/libjava \
       
   998           -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
       
   999           -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop,  \
       
  1000       DISABLED_WARNINGS_clang := deprecated-declarations, \
   951       DISABLED_WARNINGS_clang := deprecated-declarations, \
  1001       LDFLAGS := $(LDFLAGS_JDKLIB) \
   952       LDFLAGS := $(LDFLAGS_JDKLIB) \
  1002           $(call SET_SHARED_LIBRARY_ORIGIN) \
   953           $(call SET_SHARED_LIBRARY_ORIGIN) \
  1003           -Wl$(COMMA)-rpath$(COMMA)@loader_path \
   954           -Wl$(COMMA)-rpath$(COMMA)@loader_path \
  1004           -L$(INSTALL_LIBRARIES_HERE), \
   955           -L$(INSTALL_LIBRARIES_HERE), \
  1013 
   964 
  1014   TARGETS += $(BUILD_LIBOSXUI)
   965   TARGETS += $(BUILD_LIBOSXUI)
  1015 
   966 
  1016   $(BUILD_LIBOSXUI): $(BUILD_LIBAWT)
   967   $(BUILD_LIBOSXUI): $(BUILD_LIBAWT)
  1017 
   968 
  1018   $(BUILD_LIBOSXUI): $(call FindLib, java.desktop, osxapp)
   969   $(BUILD_LIBOSXUI): $(call FindLib, $(MODULE), osxapp)
  1019 
   970 
  1020   $(BUILD_LIBOSXUI): $(BUILD_LIBAWT_LWAWT)
   971   $(BUILD_LIBOSXUI): $(BUILD_LIBAWT_LWAWT)
  1021 
   972 
  1022 endif
   973 endif
  1023 
   974