edburns%acm.org 4d80afa4ef At long last, I have webclient running on Mac OSX. I only have a
PowerBook G4, so the only binary I can produce is for the PowerPC.
Perhaps someone lucky enough to own a MacBookPro can produce a binary
for me on that processor architecture.

Many thanks to the generous folks on #developers, in particular, timeless,
cbarrett, sdwilsh, and jhpedemonte.

Here are the changes.

SECTION: Changes

M dist/build.xml

- propogate clean on mac os x

- On mac os x, there is .jnilib and also .dylib

M dom/build.xml

- propogate make on mac os x

M webclient/build.xml

- new file for javah on mac

- propogate clobber_all on mac

M webclient/classes_spec/org/mozilla/webclient/BrowserControlCanvas.java

- get the tree lock before calling to native code to get the native window

A webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/CocoaAppKitThreadDelegatingNativeEventThread.java

- Allows running arbitrary code on the AppKit thread.  Prevents Thread
  Safety assertions.

M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/CocoaBrowserControlCanvas.java

- adhere to informal protocol to create NativeEventThread

M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/ImplObjectNative.java

- use NativeEventThread.instance.isNativeEventThread()

M webclient/classes_spec/org/mozilla/webclient/impl/wrapper_native/NativeEventThread.java

- implement isNativeEventThread()

M webclient/src_moz/Makefile.in

- turn on objc-exceptions on mac os x

M webclient/src_moz/NativeBrowserControl.cpp
M webclient/src_moz/NativeBrowserControl.h

- work with cocoa

M webclient/src_moz/NativeEventThread.cpp
M webclient/src_moz/cocoa/CocoaBrowserControlCanvas.h
M webclient/src_moz/cocoa/CocoaBrowserControlCanvasImpl.cpp

- two methods to run arbitrary code on the AppKit thread

M webclient/src_moz/cocoa/CocoaBrowserControlCanvas.mm
M webclient/test/manual/src/classes/org/mozilla/webclient/test/TestBrowser.java


git-svn-id: svn://10.0.0.236/trunk@227737 18797224-902f-48f8-a5cc-f745e15eee43
2007-06-10 16:24:12 +00:00

229 lines
5.5 KiB
Makefile

# 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 Sun Microsystems,
# Inc. Portions created by Sun are
# Copyright (C) 1999 Sun Microsystems, Inc. All
# Rights Reserved.
#
# Contributor(s):
DEPTH = ../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
# IMPORTANT: on Linux, if building webclient with a non-debug mozilla
# tree, the libwidget_gtk.so binary produced will not work with
# webclient. Namely, the symbol handle_gdk_event__FP9_GdkEventPv will
# be defined locally, not globaly, as is required. For the webclient
# 1.0 release, we're going to bundle a libwidget_gtk.so with the xpi.
# If you want to do a non-debug build of your own, you must make sure
# yor libwidget_gtk.so is linked without these options:
# -DNDEBUG -DTRIMMED
# and with these options
# -DNDEBUG -DDEBUG_edburns
# If your libwidget_gtk.so has this symbol:
# 0003b2d0 T handle_gdk_event__FP9_GdkEventPv
# with the capital T, you're ok. The version of libwidget_gtk.so used
# in the webclient 1.0 bundle is available at:
# <http://www.mozilla.org/projects/blackwood/webclient/bin/1.0/libwidget_gtk.so>.
# to build WEBCLIENT_PACKAGE_BUILD on linux, grab libwidget_gtk.so from
# the above URL and put it in the same directory as this file.
include $(DEPTH)/config/autoconf.mk
ifneq ($(BAL_INTERFACE),)
LIBRARY_NAME = webclient_bal
else
LIBRARY_NAME = webclient
endif
REQUIRES = xpcom \
layout \
shistory \
find \
appcomps \
appshell \
xmlextras \
uconv \
unicharutil \
pref \
locale \
intl \
rdf \
bookmarks \
content \
commandhandler \
editor \
string \
embed_base \
webBrowser_core \
webbrwsr \
webshell \
windowwatcher \
profile \
necko \
docshell \
dom \
widget \
uriloader \
webbrowserpersist \
gfx \
gtkembedmoz \
$(NULL)
# BROKEN SOURCES
# CBrowserContainer.cpp \
# PromptActionEvents.cpp \
# CurrentPageActionEvents.cpp \
# HistoryActionEvents.cpp \
# ISupportsPeer.cpp \
# NativeEventThreadActionEvents.cpp \
# WindowControlActionEvents.cpp \
CPPSRCS = \
HistoryImpl.cpp \
WindowCreator.cpp \
nsActions.cpp \
NavigationActionEvents.cpp \
InputStreamShim.cpp \
NativeInputStreamImpl.cpp \
LoadCompleteProgressListener.cpp \
CurrentPageImpl.cpp \
NativeBrowserControl.cpp \
NativeWrapperFactory.cpp \
EmbedWindow.cpp \
EmbedProgress.cpp \
EmbedEventListener.cpp \
EventRegistrationImpl.cpp \
HttpHeaderVisitorImpl.cpp \
AjaxListener.cpp \
NativeEventThread.cpp \
NavigationImpl.cpp \
ns_util.cpp \
ns_util_export.cpp \
dom_util.cpp \
PreferencesImpl.cpp \
ProfileManagerImpl.cpp \
WrapperFactoryImpl.cpp \
WindowControlImpl.cpp \
$(NULL)
# rdf_util.cpp \
# BookmarksImpl.cpp \
# RDFEnumeration.cpp \
# RDFTreeNode.cpp \
# wsRDFObserver.cpp \
ifeq ($(OS_ARCH),Linux)
CPPSRCS += \
gtk/GtkBrowserControlCanvas.cpp \
$(NULL)
DIRS = gtk
else
ifeq ($(OS_ARCH),Darwin)
CMMSRCS = cocoa/CocoaBrowserControlCanvas.mm
CPPSRCS += cocoa/CocoaBrowserControlCanvasImpl.cpp
DLL_SUFFIX = .jnilib
#DSO_LDOPTS += -L/System/Library/Frameworks/JavaVM.Framework/Libraries -ljawt
DSO_LDOPTS += -framework JavaVM -framework AppKit -lobjc -L$(srcdir)/../src_share -framework Carbon
else
ifeq ($(OS_ARCH),WINNT)
CPPSRCS += \
win32/Win32BrowserControlCanvas.cpp \
$(NULL)
else
CPPSRCS += \
gtk/GtkBrowserControlCanvas.cpp \
$(NULL)
DIRS = gtk
INCLUDES += -I./gtk
endif
endif
endif
EXTRA_LIBS += \
$(XPCOM_LIBS) \
$(NSPR_LIBS) \
$(DIST)/lib/$(LIB_PREFIX)embed_base_s.$(LIB_SUFFIX) \
$(NULL)
ifeq ($(OS_ARCH),WINNT)
EXTRA_LIBS += \
$(DIST)/lib/wc_share.lib \
$(MOZ_JDKHOME)/lib/jawt.lib \
$(NULL)
endif
include $(topsrcdir)/config/rules.mk
DEFINES += -DMOZILLA_INTERNAL_API -DFORCE_PR_LOG
ifdef MOZ_ENABLE_GTK
ifndef MOZ_MONOLITHIC_TOOLKIT
CXXFLAGS += $(MOZ_GTK_CFLAGS)
CFLAGS += $(MOZ_GTK_CFLAGS)
EXTRA_DSO_LDOPTS += -lgtkxtbin -lgtksuperwin -lwc_share -lembed_base_s -L/usr/X11R6/lib -lXt
else
CXXFLAGS += $(TK_CFLAGS)
CFLAGS += $(TK_CFLAGS)
EXTRA_DSO_LDOPTS += -lgtkxtbin -lgtksuperwin -lwc_share -lembed_base_s -L/usr/X11R6/lib -lXt
endif
endif
ifneq ($(BAL_INTERFACE),)
CXXFLAGS += -DBAL_INTERFACE
endif
ifneq ($(BAL_INTERFACE),)
EXTRA_DSO_LDOPTS += -lwc_share_bal
else
ifneq ($(OS_ARCH),WINNT)
EXTRA_DSO_LDOPTS += -lwc_share
endif
endif
INCLUDES += -I$(MOZ_SRC)/mozilla/widget/src/xpwidgets
ifeq ($(OS_ARCH),Linux)
INCLUDES := -I$(MOZ_JDKHOME)/include -I$(MOZ_JDKHOME)/include/linux $(INCLUDES) \
-I$(DEPTH)/widget/src/gtk -I$(srcdir)/../src_share -I../src_share
else
ifeq ($(OS_ARCH),WINNT)
INCLUDES := -I$(MOZ_JDKHOME)/include -I$(MOZ_JDKHOME)/include/win32 $(INCLUDES) \
-I$(srcdir)/../src_share -I../src_share -I. -I./win32
else
ifeq ($(OS_ARCH),Darwin)
INCLUDES := -I$(MOZ_JDKHOME)/include $(INCLUDES) -I$(srcdir)/../src_share -I../src_share -I. -I$(srcdir) -I$(srcdir)/cocoa -I./cocoa -I$(DIST)/include/plugin
CXXFLAGS += -fobjc-exceptions
else
INCLUDES := -I$(MOZ_JDKHOME)/include -I$(MOZ_JDKHOME)/include/solaris $(INCLUDES) \
-I$(DEPTH)/widget/src/gtk -I$(srcdir)/../src_share -I../src_share
endif
endif
endif
clobber_all:: clobber