I could build the xpcom component on Mac using Firefox source code. Mozilla
code did not build successfully for me.
I downloaded firefox source code from:
ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/1.5.0.7/source/firefox-1.5.0.7-source.tar.bz2
The following site clearly explains how to build an XPCOM component:
http://developer.mozilla.org/en/docs/Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System
If you could already build the component using mozilla source code its good
. Otherwise download firefox source code and follow the steps specified in
that URL.
If you have any problems building the component, i ll clearly give you all
the steps I followed.
Now I have build the dylib successfully, but how to register it with
Firefox?
I put the t.dylib and t.xpt in /Applications/Firefox.app/Content/
MacOS/components and start the firefox, but seems it can not load my
component.
Then I try the regxpcom like this:
regxpcom -x /Applications/Firefox.app/Contents/MacOS/components .
but it says "bus error"...
ÔÚ 2006-10-7£¬ÉÏÎç5:51£¬Jamie Newton дµÀ£º
> I have my component building working now for MacOSX. Heres my
> makefile ( we
> build mozilla from source so the SDK paths may be unfamiliar to
> some). I
> hope this will be of use to those who are still struggling
>
> PLATFORM := $(shell sh ../../../../../install/unix/cplatname identify)
> SOURCEDIR := ../../../../../modules/ServerManager
> OUTPUTDIR := ../../../../../apps/xena/components
> DISTDIR :=
> ../../../../../thirdparty/mozilla/$(PLATFORM)/mozilla/obj-xulrunner/
> dist
> SHAREDDIR := ../../../../../shared
> GECKO_SDK := $(DISTDIR)/sdk
> GECKO_DEFS := -DMOZILLA_STRICT_API
> CXX := c++
> CXXFLAGS := -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -fno-rtti
>
> INCLUDES := -I $(GECKO_SDK)/include -I $(SHAREDDIR)/XPCOM \
>
> LDFLAGS := -lxpcomglue_s -lxpcom -lnspr4 -lplds4 -lplc4 -lmozjs
>
> OBJECTS := ServerManagerImpl.o ServerManagerModule.o
>
> servermanager: $(OUTPUTDIR)/ServerManager.xpt
> $(OUTPUTDIR)/ServerManager.dylib
>
>
> $(OUTPUTDIR)/ServerManager.xpt: $(SOURCEDIR)/ServerManager.idl
> $(GECKO_SDK)/bin/xpidl -m typelib -w -v -I $(GECKO_SDK)/idl -o
> $(OUTPUTDIR)/ServerManager $(SOURCEDIR)/ServerManager.idl; \
> $(GECKO_SDK)/bin/xpidl -m header -w -v -I $(GECKO_SDK)/idl -o
> $(XPCOMDIR)/ServerManager $(SOURCEDIR)/ServerManager.idl; \
> $(DISTDIR)/bin/regxpcom -x $(OUTPUTDIR); \
> touch $(DISTDIR)/bin/.autoreg
>
> $(OUTPUTDIR)/ServerManager.dylib:
> $(CXX) -Os -c -o ServerManagerImpl.o $(GECKO_DEFS) $(INCLUDES)
> $(SOURCEDIR)/ServerManagerImpl.cpp $(CXXFLAGS)
> $(CXX) -Os -c -o ServerManagerModule.o $(GECKO_DEFS) $(INCLUDES)
> $(SOURCEDIR)/ServerManagerModule.cpp $(CXXFLAGS)
> $(CXX) -dynamiclib -o $(OUTPUTDIR)/ServerManager.dylib $(GECKO_DEFS)
> $(OBJECTS) -L$(GECKO_SDK)/lib -L$(GECKO_SDK)/../lib -Wl,-
> executable_path,$(GECKO_SDK)/bin
> $(LDFLAGS) -framework CoreFoundation -framework XUL
>
> clean:
> rm -f $(OUTPUTDIR)/ServerManager.xpt
> rm -f $(OUTPUTDIR)/ServerManager.dylib
>
> "Benjamin Smedberg" <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
>> Keren Dong wrote:
>>> Hi,
>>>
>>> I am trying build a xpcom sample from
>>> http://www.iosart.com/firefox/xpcom/ on Mac OS X, and my makefile
>>> is as
>>> bellow:
>>
>> I'm not sure why people keep using this tutorial (perhaps because
>> there's
>> nothing better), but it is wrong in many ways. In particular, it
>> is using
>> the standalone glue (-DXPCOM_GLUE) for components, which is not
>> recommended.
>> See http://developer.mozilla.org/en/docs/XPCOM_Glue
_________________________________________________________________
One and only Ash. Find out all about her. Only on MSN Search
http://server1.msn.co.in/profile/aishwarya.asp
_______________________________________________
dev-tech-xpcom mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-xpcom