#
# The contents of this file are subject to the Netscape Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/NPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is mozilla.org code.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation.  Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s): 
#

DEPTH       = ../..
topsrcdir   = ../..
srcdir      = .
VPATH       = .

include $(DEPTH)/config/autoconf.mk

MODULE      = gfx
LIBRARY_NAME    = gkgfx
EXPORT_LIBRARY = 1
GRE_MODULE	= 1

PACKAGE_FILE = gfx.pkg

REQUIRES	= xpcom \
		  windowwatcher \
		  dom \
		  string \
		  widget \
		  locale \
		  view \
		  pref \
		  unicharutil \
		  $(NULL)

DIRS        = shared

ifdef MOZ_ENABLE_FREETYPE2
DIRS        += freetype
endif

ifdef MOZ_ENABLE_POSTSCRIPT
DIRS        += ps
endif

ifeq ($(MOZ_GFX_TOOLKIT),cocoa)
DIRS	    += mac
endif

ifneq (,$(filter beos os2 mac windows,$(MOZ_GFX_TOOLKIT)))
DIRS        += $(MOZ_GFX_TOOLKIT)
endif

# Build xlibrgb only for X toolkits and/or Xprint
ifneq (,$(filter xlib,$(MOZ_WIDGET_TOOLKIT))$(MOZ_ENABLE_XLIB)$(MOZ_ENABLE_XPRINT))
DIRS        += xlibrgb
endif

ifdef MOZ_ENABLE_XPRINT
DIRS        += xprintutil xprint 
endif
ifdef MOZ_ENABLE_GTK
DIRS        += gtk
endif
ifdef MOZ_ENABLE_GTK2
DIRS        += gtk
endif
ifdef MOZ_ENABLE_XLIB
DIRS        += xlib
endif
ifdef MOZ_ENABLE_PHOTON
DIRS        += photon
endif

CPPSRCS = \
        nsBlender.cpp \
        nsColor.cpp \
        nsColorNames.cpp \
        nsDeviceContext.cpp \
        nsFont.cpp \
        nsFontList.cpp \
        nsNameValuePairDB.cpp \
        nsRect.cpp \
        nsRegion.cpp \
        nsTransform2D.cpp \
        nsScriptableRegion.cpp \
        nsPrintOptionsImpl.cpp \
        nsPrintSettingsImpl.cpp \
        nsPrintSession.cpp \
        $(NULL)

ifeq (,$(filter windows,$(MOZ_WIDGET_TOOLKIT)))
REQUIRES += uconv
endif

ifneq (,$(filter gtk gtk2 xlib os2,$(MOZ_WIDGET_TOOLKIT)))
CPPSRCS += \
        nsRegionImpl.cpp \
        $(NULL)
endif

ifneq (,$(filter gtk gtk2 xlib beos windows os2 mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
CPPSRCS += imgScaler.cpp
endif

ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
CPPSRCS += \
        mac/nsRegionPool.cpp \
        $(NULL)
endif

ifeq ($(OS_ARCH),OS2)
CPPSRCS += \
        os2/nsOS2Uni.cpp \
        os2/nsPaletteOS2.cpp \
        $(NULL)
EXPORTS += \
        os2/nsOS2Uni.h \
        os2/nsPaletteOS2.h \
        $(NULL)
endif

ifdef MOZ_ENABLE_POSTSCRIPT
PS_LCPPSRCS = nsPaperPS.cpp
CPPSRCS += \
        $(PS_LCPPSRCS) \
        $(NULL)
endif

EXTRA_DSO_LDOPTS = \
        $(DIST)/lib/$(LIB_PREFIX)mozutil_s.$(LIB_SUFFIX) \
        $(MOZ_UNICHARUTIL_LIBS) \
        $(MOZ_COMPONENT_LIBS) \
        $(NULL)

ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
EXTRA_DSO_LDOPTS += \
        $(TK_LIBS) \
        $(NULL)
endif

# This library is used by other shared libs in a static build
FORCE_USE_PIC = 1

include $(topsrcdir)/config/rules.mk

DEFINES     += -D_IMPL_NS_GFX

ifdef MOZ_ENABLE_POSTSCRIPT
GARBAGE     += $(PS_LCPPSRCS)

export:: $(addprefix $(srcdir)/ps/,$(PS_LCPPSRCS))
	$(INSTALL) $^ .
endif
