#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla 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/MPL/
#
# 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 the Initial Developer are Copyright (C) 1998
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****

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

include $(DEPTH)/config/autoconf.mk

MODULE		= widget
LIBRARY_NAME	= widget_gtk
EXPORT_LIBRARY = 1
IS_COMPONENT	= 1
MODULE_NAME	= nsWidgetGTKModule
GRE_MODULE	= 1
LIBXUL_LIBRARY = 1

PACKAGE_FILE = widget_gtk.pkg

REQUIRES	= xpcom \
		  string \
		  appshell \
		  gfx \
		  pref \
		  dom \
		  uconv \
		  necko \
		  view \
		  util \
		  unicharutil \
		  $(NULL)
ifdef NS_TRACE_MALLOC
REQUIRES	+= tracemalloc
endif

CSRCS		= \
		keysym2ucs.c

CPPSRCS		= \
		nsAppShell.cpp \
		nsBidiKeyboard.cpp \
		nsButton.cpp \
		nsCheckButton.cpp \
		nsClipboard.cpp \
		nsDragService.cpp \
		nsGtkEventHandler.cpp \
		nsGtkUtils.cpp \
		nsKeyboardUtils.cpp \
		nsLabel.cpp \
		nsLookAndFeel.cpp \
		nsSound.cpp \
		nsTextHelper.cpp \
		nsTextWidget.cpp \
		nsToolkit.cpp \
		nsWidget.cpp \
		nsWidgetFactory.cpp \
		nsWindow.cpp \
		nsGtkIMEHelper.cpp \
		$(NULL)

SHARED_LIBRARY_LIBS = $(DIST)/lib/libxpwidgets_s.a

EXTRA_DSO_LIBS	= gkgfx

ifdef NS_TRACE_MALLOC
EXTRA_DSO_LIBS	+= tracemalloc
endif

EXTRA_DSO_LDOPTS = \
		$(LIBS_DIR) \
		$(EXTRA_DSO_LIBS) \
		$(MOZ_COMPONENT_LIBS) \
		$(MOZ_JS_LIBS) \
		$(NULL)

EXTRA_DSO_LDOPTS +=  -L$(DIST)/lib -lgtksuperwin $(MOZ_GTK_LDFLAGS)

include $(topsrcdir)/config/rules.mk

CXXFLAGS	+= $(MOZ_GTK_CFLAGS)
CFLAGS		+= $(MOZ_GTK_CFLAGS)

DEFINES		+= -D_IMPL_NS_WIDGET -DUSE_XIM

ifeq ($(OS_ARCH), SunOS)
ifndef GNU_CC
# When using Sun's WorkShop compiler, including
# /wherever/workshop-5.0/SC5.0/include/CC/std/time.h
# causes most of these compiles to fail with:
# line 29: Error: Multiple declaration for std::tm.
# So, this gets around the problem.
DEFINES		+= -D_TIME_H=1
endif
endif

ifeq ($(OS_ARCH), OpenVMS)
DEFINES		+= -DGENERIC_MOTIF_REDEFINES
endif

LOCAL_INCLUDES	= \
		-I$(srcdir)/../xpwidgets \
		-I$(srcdir) \
		-I$(topsrcdir)/gfx/src/gtk \
		$(NULL)

ICON_FILES	= \
		$(srcdir)/mozicon50.xpm \
		$(srcdir)/mozicon16.xpm \
		$(NULL)

libs::
	$(INSTALL) $(ICON_FILES) $(DIST)/bin/icons

install::
	$(SYSINSTALL) $(IFLAGS1) $(ICON_FILES) $(DESTDIR)$(mozappdir)/icons

