blob: 7ca05207edef047fc6421c24be5f486248df9204 [file] [log] [blame]
#
# Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
#
# to create directory:
#
INIT += $(LIB_LOCATION)
#
# Files
#
# mawt.gmk is just used in building X/Motif native code, so
# this list of java files is no longer included.
#include FILES_java_unix.gmk
include $(BUILDDIR)/sun/awt/FILES_c_unix.gmk
include $(BUILDDIR)/sun/awt/FILES_export_unix.gmk
# Check which C files should be built. Headless uses only
# non-motif files. Also, a version-specific motif file is
# compiled based on the motif version.
FILES_c = $(FILES_NO_MOTIF_c)
ifeq ($(PLATFORM), macosx)
FILES_objc = $(FILES_NO_MOTIF_objc)
endif # PLATFORM
ifeq ($(PLATFORM), solaris)
ifneq ($(ARCH), amd64)
FILES_reorder += reorder-$(ARCH)
endif
endif
#
# Rules
#
# Class files should be built & clobbered in make/sun/awt
# If removing this line, also reinclude sun_awt.jmk
DONT_CLOBBER_CLASSES = true
ifndef HEADLESS
ifeq ($(VARIANT), OPT)
FILES_m = ../awt/mapfile-mawt-vers
endif
endif
# Since this library will be living in a subdirectory below the other libraries
# we need to add an extra runpath so that libraries in the upper directory
# are found at runtime.
LD_RUNPATH_EXTRAS = ..
include $(BUILDDIR)/common/Mapfile-vers.gmk
include $(BUILDDIR)/common/Library.gmk
$(LIB_LOCATION):
$(MKDIR) -p $@
clean::
#
# Add to the ambient vpath to pick up files in subdirectories
#
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/alphacomposite
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/image
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/image/gif
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/image/cvutils
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/shell
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/medialib
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl
vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl
vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/debug
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../font
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe
vpath %.cpp $(SHARE_SRC)/native/$(PKGDIR)/image
vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)/robot_child
ifeq ($(PLATFORM), macosx)
vpath %.m $(call NativeSrcDirList,,native/sun/font)
endif # PLATFORM
#
# Libraries to link in.
#
ifeq ($(DEBUG_BINARIES), true)
CFLAGS += -g
endif
ifeq ($(HEADLESS),true)
CFLAGS += -DHEADLESS=$(HEADLESS)
CPPFLAGS += -DHEADLESS=$(HEADLESS)
OTHER_LDLIBS =
else
LIBXTST = -lXtst
ifeq ($(PLATFORM), linux)
ifeq ($(ARCH_DATA_MODEL), 64)
# XXX what about the rest of them?
LIBXT = -lXt
else
# Allows for builds on Debian GNU Linux, X11 is in a different place
LIBXT = $(firstword $(wildcard $(OPENWIN_LIB)/libXt.a) \
$(wildcard /usr/lib/libXt.a))
LIBSM = $(firstword $(wildcard $(OPENWIN_LIB)/libSM.a) \
$(wildcard /usr/lib/libSM.a))
LIBICE = $(firstword $(wildcard $(OPENWIN_LIB)/libICE.a) \
$(wildcard /usr/lib/libICE.a))
LIBXTST = $(firstword $(wildcard $(OPENWIN_LIB)/libXtst.a) \
$(wildcard /usr/lib/libXtst.a))
endif
endif
# Use -lXmu for EditRes support
LIBXMU_DBG = -lXmu
LIBXMU_OPT =
LIBXMU = $(LIBXMU_$(VARIANT))
ifeq ($(PLATFORM), solaris)
OTHER_LDLIBS = -lXt -lXext $(LIBXTST) $(LIBXMU) -lX11 -lXi
endif
ifneq (,$(findstring $(PLATFORM), linux macosx))
OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH
# XXX what is this define below? Isn't it motif-related?
OTHER_CFLAGS += -DXMSTRINGDEFINES=1
OTHER_LDLIBS = $(LIBXMU) $(LIBXTST) -lXext $(LIBXT) $(LIBSM) $(LIBICE) -lX11 -lXi
endif
endif
# !HEADLESS
OTHER_LDLIBS += $(JVMLIB) $(LIBCXX) \
-lawt $(LIBM) $(LIBDL)
#
# Sun CC with -Xa misdefines __STDC__ to 0 (zero).
# The following will force checking of X11 prototypes.
#
ifneq ($(CC_VERSION),gcc)
CPPFLAGS += -DFUNCPROTO=15
endif
#
# Other extra flags needed for compiling.
#
CPPFLAGS += -I$(CUPS_HEADERS_PATH)
ifndef HEADLESS
CPPFLAGS += -I$(OPENWIN_HOME)/include
LDFLAGS += -L$(OPENWIN_LIB)
endif # !HEADLESS
CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \
-I$(SHARE_SRC)/native/$(PKGDIR)/../font \
-I$(PLATFORM_SRC)/native/$(PKGDIR)/../font \
-I$(SHARE_SRC)/native/$(PKGDIR)/image \
-I$(SHARE_SRC)/native/$(PKGDIR)/image/cvutils \
-I$(SHARE_SRC)/native/$(PKGDIR)/shell \
-I$(SHARE_SRC)/native/$(PKGDIR)/alphacomposite \
-I$(SHARE_SRC)/native/$(PKGDIR)/medialib \
-I$(PLATFORM_SRC)/native/$(PKGDIR)/medialib \
-I$(SHARE_SRC)/native/$(PKGDIR)/../java2d \
-I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d \
-I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops \
-I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe \
-I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/opengl \
-I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/opengl \
-I$(PLATFORM_SRC)/native/$(PKGDIR)/../java2d/x11 \
-I$(SHARE_SRC)/native/$(PKGDIR)/../dc/doe \
-I$(SHARE_SRC)/native/$(PKGDIR)/../dc/path \
-I$(PLATFORM_SRC)/native/$(PKGDIR)/../jdga \
-I$(PLATFORM_SRC)/native/$(PKGDIR) \
$(EVENT_MODEL)
ifeq ($(PLATFORM), macosx)
CPPFLAGS += -I$(CUPS_HEADERS_PATH) \
$(call NativeSrcDirList,-I,native/sun/awt) \
$(call NativeSrcDirList,-I,native/sun/font)
ifndef HEADLESS
CPPFLAGS += -I$(MOTIF_DIR)/include \
-I$(OPENWIN_HOME)/include
LDFLAGS += -L$(MOTIF_LIB) -L$(OPENWIN_LIB)
else
LDFLAGS += -framework Accelerate \
-framework ApplicationServices \
-framework Cocoa \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-framework JavaNativeFoundation \
-framework JavaRuntimeSupport
endif # !HEADLESS
endif # PLATFORM
ifeq ($(PLATFORM), linux)
# Checking for the X11/extensions headers at the additional location
CPPFLAGS += -I$(firstword $(wildcard $(OPENWIN_HOME)/include/X11/extensions) \
$(wildcard /usr/include/X11/extensions))
endif
ifeq ($(PLATFORM), macosx)
CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \
-I$(OPENWIN_HOME)/include
endif
ifeq ($(PLATFORM), solaris)
CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions
endif
ifeq ($(PLATFORM), macosx)
CPPFLAGS += -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
endif
LDFLAGS += -L$(LIBDIR)/$(LIBARCH)/$(TSOBJDIR) \
$(AWT_RUNPATH)
CLASSES.export += java.io.InputStream \
java.lang.ThreadGroup