view make/sun/awt/mawt.gmk @ 0:37a05a11f281

Initial load
author duke
date Sat, 01 Dec 2007 00:00:00 +0000
parents
children 38e32b2db431
line wrap: on
line source
#
# Copyright 2000-2007 Sun Microsystems, Inc.  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.  Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#

#
# to create directory:
#
INIT += $(LIB_LOCATION) 

ifndef HEADLESS
ifeq ($(PLATFORM), linux)
ifeq ($(STATIC_MOTIF),false)
INIT += $(LIB_LOCATION)/libXm.so
endif
endif
endif

#
# 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.
ifdef HEADLESS
  FILES_c = $(FILES_NO_MOTIF_c)
else
  FILES_c = $(FILES_MOTIF_c) $(FILES_NO_MOTIF_c)

  ifeq ($(MOTIF_VERSION), 2)
    FILES_c += awt_motif21.c
    FILES_c += awt_Choice21.c
  endif

endif

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 $@

ifeq ($(PLATFORM), linux)
ifeq ($(STATIC_MOTIF),false)
$(LIB_LOCATION)/libXm.so:
	$(CP) $(MOTIF_LIB)/libXm.so $(LIB_LOCATION)/libXm.so
# Automounter problem makes the link fail on Redhat 6.1.
#	$(LN) -s $(MOTIF_LIB)/libXm.so $(LIB_LOCATION)/libXm.so
endif
endif

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

#
# Libraries to link in.
#


#CFLAGS += -g
ifeq ($(HEADLESS),true)
CFLAGS += -DHEADLESS=$(HEADLESS)
CPPFLAGS += -DHEADLESS=$(HEADLESS)
OTHER_LDLIBS =
else
CFLAGS += -DMOTIF_VERSION=$(MOTIF_VERSION)

ifeq ($(STATIC_MOTIF),true)
    LIBXM = $(MOTIF_LIB)/libXm.a -lXp -lXmu
    ifeq ($(PLATFORM), linux)
	ifeq ($(ARCH_DATA_MODEL), 64)
            LIBXT = -lXt
        else
        # Allows for builds on Debian GNU Linux, X11 is in a different place 
	    LIBXT = $(firstword $(wildcard /usr/X11R6/lib/libXt.a) \
                            $(wildcard /usr/lib/libXt.a))
	    LIBSM = $(firstword $(wildcard /usr/X11R6/lib/libSM.a) \
                            $(wildcard /usr/lib/libSM.a))
	    LIBICE = $(firstword $(wildcard /usr/X11R6/lib/libICE.a) \
                             $(wildcard /usr/lib/libICE.a))
	endif
    endif
else
    LIBXM = -L$(MOTIF_LIB) -lXm -lXp
    ifeq ($(PLATFORM), linux)
	LIBXT = -lXt
	LIBSM = 
	LIBICE = 
    endif
endif

LIBXTST = -lXtst

# Use -lXmu for EditRes support
LIBXMU_DBG	= -lXmu
LIBXMU_OPT	=
LIBXMU		= $(LIBXMU_$(VARIANT))

ifeq ($(PLATFORM), solaris)
OTHER_LDLIBS = $(LIBXM) -lXt -lXext $(LIBXTST) $(LIBXMU) -lX11 -lXi
endif

ifeq ($(PLATFORM), linux)
OTHER_CFLAGS += -DMLIB_NO_LIBSUNMATH
OTHER_CFLAGS += -DMOTIF_VERSION=2
OTHER_CFLAGS += -DXMSTRINGDEFINES=1
OTHER_LDLIBS = $(LIBXM) $(LIBXMU) $(LIBXTST) -lXext $(LIBXT) $(LIBSM) $(LIBICE) -lX11 -lXi
endif

endif
# !HEADLESS

OTHER_LDLIBS += $(JVMLIB) $(LIBCXX) \
                -lawt $(LIBM) -ldl

#
# 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$(MOTIF_DIR)/include \
            -I$(OPENWIN_HOME)/include 
LDFLAGS  += -L$(MOTIF_LIB) -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), linux)
# Checking for the X11/extensions headers at the additional location
  CPPFLAGS += -I/X11R6/include/X11/extensions \
              -I/usr/include/X11/extensions
endif

ifeq ($(PLATFORM), solaris)
  CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions
endif


LDFLAGS += -L$(LIBDIR)/$(LIBARCH)/$(TSOBJDIR) \
	   $(AWT_RUNPATH)

CLASSES.export += java.io.InputStream \
		  java.lang.ThreadGroup