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
>
> --BDS 


_______________________________________________
dev-tech-xpcom mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-xpcom

Reply via email to