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

Reply via email to