# # ***** 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 Communicator client code, released # March 31, 1998. # # 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): # John Bandhauer # # Alternatively, the contents of this file may be used under the terms of # either of 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 = @top_srcdir@ srcdir = @srcdir@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk MODULE = xpconnect LIBRARY_NAME = xpconnect EXPORT_LIBRARY = 1 SHORT_LIBNAME = xpconect IS_COMPONENT = 1 MODULE_NAME = xpconnect GRE_MODULE = 1 ifeq ($(OS_ARCH)$(MOZ_ENABLE_LIBXUL),WINNT) LIBRARY_NAME = xpc$(MOZ_BITS)$(VERSION_NUMBER) SHORT_LIBNAME = xpc$(MOZ_BITS)$(VERSION_NUMBER) endif LIBXUL_LIBRARY = 1 REQUIRES = xpcom \ string \ js \ caps \ necko \ dom \ $(NULL) # These modules are required because the auto-generated file # dom_quickstubs.cpp #includes header files from many places. REQUIRES += content \ editor \ layout \ rdf \ svg \ xuldoc \ xultmpl \ widget \ $(NULL) CPPSRCS = \ nsScriptError.cpp \ nsXPConnect.cpp \ xpccallcontext.cpp \ xpccomponents.cpp \ xpccontext.cpp \ xpcconvert.cpp \ xpcdebug.cpp \ xpcexception.cpp \ xpcjsid.cpp \ xpcjsruntime.cpp \ xpclog.cpp \ xpcmaps.cpp \ xpcmodule.cpp \ xpcruntimesvc.cpp \ xpcstack.cpp \ xpcstring.cpp \ xpcthreadcontext.cpp \ xpcthrower.cpp \ xpcwrappedjs.cpp \ xpcvariant.cpp \ xpcwrappedjsclass.cpp \ xpcwrappednative.cpp \ xpcwrappednativeinfo.cpp \ xpcwrappednativejsops.cpp \ xpcwrappednativeproto.cpp \ xpcwrappednativescope.cpp \ XPCNativeWrapper.cpp \ xpcJSWeakReference.cpp \ XPCSafeJSObjectWrapper.cpp \ XPCCrossOriginWrapper.cpp \ XPCSystemOnlyWrapper.cpp \ XPCWrapper.cpp \ xpcquickstubs.cpp \ dom_quickstubs.cpp \ $(NULL) ifdef XPC_IDISPATCH_SUPPORT CPPSRCS += XPCDispObject.cpp \ XPCDispInterface.cpp \ XPCDispConvert.cpp \ XPCDispTypeInfo.cpp \ XPCDispTearOff.cpp \ XPCIDispatchExtension.cpp \ XPCDispParams.cpp \ XPCDispParamPropJSClass.cpp \ XPCIDispatchClassInfo.cpp \ nsDispatchSupport.cpp \ $(NULL) endif include $(topsrcdir)/config/config.mk LOCAL_INCLUDES = \ -I$(srcdir)/../loader \ -I$(topsrcdir)/js/src \ -I$(topsrcdir)/js/src/nanojit \ $(NULL) EXTRA_DSO_LDOPTS += \ $(MOZ_COMPONENT_LIBS) \ $(MOZ_JS_LIBS) \ $(NULL) ifdef MOZ_JSLOADER SHARED_LIBRARY_LIBS = \ ../loader/$(LIB_PREFIX)jsloader_s.$(LIB_SUFFIX) \ $(NULL) endif include $(topsrcdir)/config/rules.mk DEFINES += \ -DJSFILE \ -DJS_THREADSAFE \ -DEXPORT_XPC_API \ $(NULL) CONFIG := $(shell cat $(DEPTH)/js/src/mozilla-config.h) ENABLE_JIT = $(filter JS_TRACER, $(CONFIG)) ifneq (,$(ENABLE_JIT)) # Ugly! We need the AVMPLUS defines out of js/src/mozilla-config.h to make the # nanojit headers happy. Gotta figure out a better way to get them, bug 483677. DEFINES += \ -DJS_TRACER=1 \ -DFEATURE_NANOJIT=1 \ $(addprefix -D,$(filter AVMPLUS%,$(CONFIG))) \ $(NULL) ENABLE_TRACEABLE_FLAGS = --enable-traceables endif # ENABLE_JIT ifdef MOZ_XPCTOOLS DEFINES += -DXPC_TOOLS_SUPPORT REQUIRES += xpctools endif ifdef XPC_IDISPATCH_SUPPORT DEFINES += -DXPC_IDISPATCH_SUPPORT ifdef XPC_COMOBJECT DEFINES += -DXPC_COMOBJECT endif endif ifeq ($(OS_ARCH),WINNT) ifndef GNU_CXX ifeq (,$(filter-out 1200 1300 1310,$(_MSC_VER))) # whole program optimization and precompiled headers are incompatible ifeq (,$(findstring GL,$(CXXFLAGS))) # use pre-compiled headers CXXFLAGS += -YX -Fp$(LIBRARY_NAME).pch # precompiled headers require write access to .pch which breaks -j builds .NOTPARALLEL: endif endif endif endif nsXPConnect.$(OBJ_SUFFIX): dom_quickstubs.h xpcjsruntime.$(OBJ_SUFFIX): dom_quickstubs.h dom_quickstubs.h dom_quickstubs.cpp: $(srcdir)/dom_quickstubs.qsconf \ $(srcdir)/qsgen.py \ $(topsrcdir)/xpcom/idl-parser/header.py \ $(topsrcdir)/xpcom/idl-parser/xpidl.py \ $(DEPTH)/js/src/mozilla-config.h $(PYTHON) $(topsrcdir)/config/pythonpath.py \ -I$(topsrcdir)/other-licenses/ply \ -I$(topsrcdir)/xpcom/idl-parser \ $(srcdir)/qsgen.py \ --idlpath=$(DEPTH)/dist/idl \ --cachedir=$(DEPTH)/xpcom/idl-parser \ --header-output dom_quickstubs.h \ --stub-output dom_quickstubs.cpp \ --makedepend-output $(MDDEPDIR)/dom_qsgen.pp \ $(ENABLE_TRACEABLE_FLAGS) \ $(srcdir)/dom_quickstubs.qsconf GARBAGE += \ dom_quickstubs.h \ dom_quickstubs.cpp \ $(MDDEPDIR)/dom_qsgen.pp \ $(NULL)