#
# @(#)GNUmakefile	1.169 99/03/17
#
BUILDDIR = ../..
include $(BUILDDIR)/Platform.gmk
PACKAGE = sun.awt
LIBRARY = awt
PRODUCT = sun
MIXEDCPLUSPLUSLIBRARY = 1
include $(BUILDDIR)/makefiles/Defs.gmk

#
# Files
#
include $(MINCLUDES)sun_awt.jmk
include $(MINCLUDES)sun_awt.cmk

FILES_export = \
        sun/awt/font/NativeFontWrapper.java \
	sun/awt/image/Image.java \
	sun/awt/image/ImageRepresentation.java \
	sun/awt/image/OffScreenImage.java \
	sun/awt/image/GifImageDecoder.java \
	sun/awt/image/NativeLibLoader.java \
	sun/java2d/loops/ThreeByteRenderer.java \
	sun/java2d/loops/IntDiscreteRenderer.java \
	sun/java2d/loops/ByteDiscreteRenderer.java \
	sun/java2d/loops/ShortDiscreteRenderer.java \
        sun/awt/image/ImagingLib.java \
        sun/java2d/loops/ImageData.java \
        sun/java2d/loops/GIFAcceleratorLoops.java \
        sun/awt/motif/X11GIFAcceleratorLoops.java \
        sun/java2d/loops/DefaultComponent.java \
        sun/java2d/loops/IndexGrayAccelerators.java \
        sun/java2d/loops/XBGRLoops.java \
        sun/java2d/loops/ShortCompositing.java \
        sun/java2d/loops/IndexedCompositing.java \
        sun/java2d/loops/Gray8Blters.java \
        sun/java2d/loops/Gray16Blters.java \
        sun/java2d/loops/GraphicsPrimitive.java \
	sun/awt/motif/PrintControl.java \
	sun/awt/motif/PSGraphics.java \
	sun/awt/motif/PSPrintControl.java \
	sun/awt/motif/PSPrintJob.java \
	sun/awt/motif/UPrintDialog.java \
	sun/awt/motif/PrintStatusDialog.java \
	sun/awt/motif/X11Graphics.java \
	sun/awt/motif/X11Image.java \
	sun/awt/motif/X11FontMetrics.java \
	sun/awt/motif/X11Clipboard.java \
	sun/awt/motif/X11Selection.java \
	sun/awt/motif/X11SelectionHolder.java \
	sun/awt/motif/X11InputMethod.java \
	sun/awt/motif/MInputMethodControl.java \
	sun/awt/motif/X11CustomCursor.java \
	sun/awt/motif/MFontPeer.java \
	sun/awt/motif/MToolkit.java \
	sun/awt/motif/MComponentPeer.java \
	sun/awt/motif/MCanvasPeer.java \
	sun/awt/motif/MButtonPeer.java \
	sun/awt/motif/MTextFieldPeer.java \
	sun/awt/motif/MLabelPeer.java \
	sun/awt/motif/MCheckboxPeer.java \
	sun/awt/motif/MFileDialogPeer.java \
	sun/awt/motif/MListPeer.java \
	sun/awt/motif/MWindowPeer.java \
	sun/awt/motif/MMenuBarPeer.java \
	sun/awt/motif/MMenuPeer.java \
        sun/awt/motif/MPopupMenuPeer.java \
	sun/awt/motif/MDialogPeer.java \
	sun/awt/motif/MMenuItemPeer.java \
	sun/awt/motif/MCheckboxMenuItemPeer.java \
	sun/awt/motif/MChoicePeer.java \
	sun/awt/motif/MTextAreaPeer.java \
	sun/awt/motif/MScrollbarPeer.java \
	sun/awt/motif/MScrollPanePeer.java \
	sun/awt/motif/InputThread.java \
	sun/awt/motif/MFramePeer.java \
	sun/awt/EmbeddedFrame.java \
	sun/awt/motif/MEmbeddedFrame.java \
	sun/awt/motif/MEmbeddedFramePeer.java \
	sun/awt/motif/MDrawingSurfaceInfo.java \
	sun/awt/PlatformFont.java \
	sun/awt/FontDescriptor.java \
	sun/awt/NativeLibLoader.java \
	sun/awt/motif/MDropTargetContextPeer.java \
	sun/awt/motif/MDragSourceContextPeer.java \
	sun/awt/motif/MRobotPeer.java \
	sun/awt/X11GraphicsEnvironment.java \
	sun/awt/X11GraphicsDevice.java \
	sun/awt/X11GraphicsConfig.java \
	sun/awt/CharsetString.java \
	sun/java2d/pipe/DuctusClipRenderer.java \
	sun/java2d/pipe/ShapeSpanIterator.java \
	sun/java2d/pipe/SpanClipRenderer.java \
	sun/java2d/pipe/RegionIterator.java \
	sun/awt/color/CMMImageLayout.java \
	sun/awt/color/ICC_Transform.java \
        sun/awt/image/IntegerComponentRaster.java

FILES_export2 = \
	java/awt/AlphaComposite.java \
	java/awt/Cursor.java \
	java/awt/Graphics.java \
	java/awt/Color.java \
	java/awt/Image.java \
	java/awt/Rectangle.java \
	java/awt/Event.java \
	java/awt/Font.java \
	java/awt/Insets.java \
	java/awt/Point.java \
	java/awt/FontMetrics.java \
	java/awt/Toolkit.java \
	java/awt/Component.java \
	java/awt/Container.java \
	java/awt/Canvas.java \
	java/awt/Button.java \
	java/awt/List.java \
	java/awt/Adjustable.java \
	java/awt/Scrollbar.java \
	java/awt/ScrollPane.java \
	java/awt/ScrollPaneAdjustable.java \
	java/awt/Window.java \
	java/awt/TextField.java \
	java/awt/Label.java \
	java/awt/Choice.java \
	java/awt/TextArea.java \
	java/awt/MenuBar.java \
	java/awt/Menu.java \
	java/awt/MenuComponent.java \
	java/awt/PopupMenu.java \
	java/awt/Dialog.java \
	java/awt/FileDialog.java \
	java/awt/MenuItem.java \
	java/awt/Checkbox.java \
	java/awt/CheckboxMenuItem.java \
	java/awt/CheckboxGroup.java \
	java/awt/Frame.java \
        java/awt/Transparency.java \
	java/awt/AWTException.java \
	java/awt/AWTEvent.java \
	java/awt/Dimension.java \
	java/awt/SystemColor.java \
        java/awt/color/ColorSpace.java \
        java/awt/color/ICC_Profile.java \
        java/awt/geom/PathIterator.java \
	java/awt/image/AffineTransformOp.java \
	java/awt/image/ImageConsumer.java \
	java/awt/image/ImageObserver.java \
        java/awt/image/BufferedImage.java \
	java/awt/image/ColorModel.java \
	java/awt/image/ConvolveOp.java \
	java/awt/image/DirectColorModel.java \
	java/awt/image/IndexColorModel.java \
	java/awt/image/DataBuffer.java \
        java/awt/datatransfer/Transferable.java \
        java/awt/datatransfer/DataFlavor.java \
        java/awt/datatransfer/UnsupportedFlavorException.java \
        java/awt/datatransfer/Clipboard.java \
	java/awt/datatransfer/ClipboardOwner.java \
	java/awt/datatransfer/StringSelection.java \
	java/awt/event/AdjustmentEvent.java \
	java/awt/event/KeyEvent.java \
	java/awt/event/MouseEvent.java \
	java/awt/event/FocusEvent.java \
	java/awt/event/InputEvent.java \
	java/awt/event/WindowEvent.java \
	java/awt/event/NativeLibLoader.java \
	java/awt/peer/ComponentPeer.java \
	java/awt/dnd/DnDConstants.java

FILES_c += initIDs.c 

#
# Rules
#

include $(BUILDDIR)/makefiles/Library.gmk

#
# Extra rules.
#
OPTIMIZED += properties dgalibs
DEBUG     += properties dgalibs

clean:: java2d.clean motif.clean properties.clean dgalib.clean

java2d.clean:
	rm -rf $(CLASSBINDIR)/sun/java2d .classes.*

#
# 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)/medialib
vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops
vpath %.c   $(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe

#
# Libraries to link in.
#
ifneq ($(CC_VERSION),gcc)
LIBCXX = -lC
endif
OTHER_LDLIBS = -lmlib_image$(SUFFIX) $(LIBCXX) $(JVMLIB) -lXm -lXt -lXext -lXtst -lX11 -lm -ldl

#
# Extra C flags.
#
ifneq ($(CC_VERSION),gcc)
CFLAGS += -xCC
endif

#
# Default Motif directory. Set MOTIF_DIR to ALT_MOTIF_DIR if set
# otherwise, set it to _MOTIF_DIR
#
ifeq ($(ARCH), sparc)
_MOTIF_DIR=/usr/local/Motif
endif
# FIXME: Should we have a staging are for x86, like sparc?
ifeq ($(ARCH), i386)
_MOTIF_DIR=/usr/dt
endif
MOTIF_DIR=$(_MOTIF_DIR$(ALT_MOTIF_DIR))$(ALT_MOTIF_DIR)

INIT += motif

motif: $(OBJDIR)/.library.dirs.$(ARCH) $(OBJDIR)/.library.motif.$(ARCH)

$(OBJDIR)/.library.motif.$(ARCH): $(MOTIF_DIR)/lib/libXm.so.3
	cp $(MOTIF_DIR)/lib/libXm.so.3 $(LIBDIR)/$(ARCH)/$(TSOBJDIR)
	cd $(LIBDIR)/$(ARCH)/$(TSOBJDIR); rm -f libXm.so; \
		ln -s libXm.so.3 libXm.so
	@-touch $(OBJDIR)/.library.motif.$(ARCH)

motif.clean :
	rm -f $(LIBDIR)/$(ARCH)/$(TSOBJDIR)/libXm.*

#
# Solaris X11 Direct Graphics Access library
#

_DGALIBS_sparc = \
	libjdgaSUNWcg6.so \
	libjdgaSUNWffb.so

_DGALIBS_i386 = 	# no i386 library yet

DGALIBS = $(_DGALIBS_$(ARCH):%=$(LIBDIR)/$(ARCH)/%)

dgalibs: $(DGALIBS)

$(LIBDIR)/$(ARCH)/libjdgaSUNW%.so: $(PLATFORM_SRC)/lib/$(ARCH)/libjdgaSUNW%.so
	rm -f $@
	cp $(PLATFORM_SRC)/lib/$(ARCH)/$< $(LIBDIR)/$(ARCH)/


dgalib.clean:
	rm -f $(LIBDIR)/$(ARCH)/libjdgaSUNW*

_FONTPROPS = \
	font.properties			\
	font.properties.5.5.1		\
	font.properties.ISO8859_15_FDIS	\
	font.properties.ja		\
	font.properties.ja.5.5.1	\
	psfont.properties.ja		\
	font.properties.ko		\
	font.properties.ko.5.5.1	\
	font.properties.zh_EUC_CN	\
	font.properties.zh_EUC_CN.5.5.1	\
	font.properties.zh_GBK		\
	font.properties.zh_TW_EUC_TW	\
	font.properties.zh_TW_EUC_TW.5.5.1\
	font.properties.zh_TW_Big5	\
	font.properties.zh_TW_Big5.5.5.1\
	font.properties.cs		\
	font.properties.el		\
	font.properties.hu		\
	font.properties.lt		\
	font.properties.lv		\
	font.properties.pl		\
	font.properties.ru		\
	font.properties.tr

_RESOURCES = \
	updialog.properties		\
	updialog_ja.properties		\
	printcontrol.properties		\
	printcontrol_ja.properties

_LOCALES = \
	ja \
	ja_JP.PCK \
	ja_JP.UTF-8

FONTPROPS = $(_FONTPROPS:%=$(LIBDIR)/%)
RESDIR    = $(CLASSBINDIR)/sun/awt/motif/resources
RESOURCES = $(_RESOURCES:%=$(RESDIR)/%)
LCLRES    = $(_LOCALES:%=$(LIBDIR)/locale/%/app-defaults/XApplication)

properties: $(LIBDIR) $(FONTPROPS) $(RESDIR) $(RESOURCES) $(LCLRES)

$(LIBDIR)/%: $(PLATFORM_SRC)/classes/sun/awt/motif/%
	@echo Installing resource: $@
	@$(RM) $@
	@cp $< $@

$(RESDIR)/%.properties: \
		$(PLATFORM_SRC)/classes/sun/awt/motif/resources/%.properties
	@echo Installing resource: $@
	@$(RM) $@
	@cp $< $@

$(LIBDIR)/locale/%/app-defaults/XApplication: \
	$(PLATFORM_SRC)/native/sun/awt/locale/%/app-defaults/XApplication
	@echo Installing resource: $@
	@$(RM) -r ${dir $@}
	mkdir -p ${dir $@}
	cp -r $< ${dir $@}

properties.clean :
	$(RM) $(FONTPROPS)
	$(RM) -r $(RESDIR)

$(LIBDIR) $(RESDIR): 
	mkdir -p $@

#
# Other extra flags needed for compiling.
#
CPPFLAGS += -I$(OPENWINHOME)/include \
	    -I$(MOTIF_DIR)/include \
            -I$(SHARE_SRC)/native/$(PKGDIR)/image \
	    -I$(SHARE_SRC)/native/$(PKGDIR)/image/cvutils \
	    -I$(SHARE_SRC)/native/$(PKGDIR)/alphacomposite \
            -I$(SHARE_SRC)/native/$(PKGDIR)/medialib \
            -I$(PLATFORM_SRC)/native/$(PKGDIR)/medialib \
	    -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/loops \
	    -I$(SHARE_SRC)/native/$(PKGDIR)/../java2d/pipe \
	    -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/doe \
	    -I$(SHARE_SRC)/native/$(PKGDIR)/../dc/path \
            -I$(PLATFORM_SRC)/native/$(PKGDIR)/../jdga \
	    $(EVENT_MODEL)

AWT_RUNPATH = -R/usr/dt/lib -R/usr/openwin/lib

LDFLAGS += -L$(LIBDIR)/$(ARCH)/$(TSOBJDIR) \
	   -L$(MOTIF_DIR)/lib -L$(OPENWINHOME)/lib \
	   $(AWT_RUNPATH)

CLASSES.export += java.io.InputStream \
		  java.lang.ThreadGroup \
		  sun.io.CharToByteConverter \
		  sun.io.ByteToCharConverter

#
# Has been converted to the JNI: generate JNI-style header files
#
JAVAHFLAGS += -jni

