# # ***** 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.org code. # # The Initial Developer of the Original Code is # Benjamin Smedberg # Portions created by the Initial Developer are Copyright (C) 1998 # the Initial Developer. All Rights Reserved. # # Contributor(s): # # 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 = libxul LIBRARY_NAME = xul EXPORT_LIBRARY = 1 FORCE_USE_PIC = 1 FORCE_SHARED_LIB = 1 MOZILLA_INTERNAL_API = 1 ifeq ($(OS_ARCH),Darwin) # This is going to be a framework named "XUL", not an ordinary library named # "libxul.dylib" LIBRARY_NAME=XUL DLL_PREFIX= DLL_SUFFIX= endif REQUIRES = \ xpcom \ string \ xpcom_obsolete \ $(ZLIB_REQUIRES) \ xulapp \ $(NULL) CPPSRCS = \ nsStaticXULComponents.cpp \ $(NULL) ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_) REQUIRES += libreg widget gfx CPPSRCS += \ dlldeps.cpp \ dlldeps-obs.cpp \ nsGFXDeps.cpp \ nsDllMain.cpp \ dlldeps-xul.cpp \ $(NULL) ifndef MOZ_NATIVE_ZLIB CPPSRCS += dlldeps-zlib.cpp DEFINES += -DZLIB_INTERNAL endif LOCAL_INCLUDES += \ -I$(topsrcdir)/widget/src/windows \ -I$(topsrcdir)/widget/src/build \ $(NULL) RESFILE = xulrunner.res endif ifeq ($(OS_ARCH),WINNT) DEFINES += -DZLIB_DLL=1 endif # dependent libraries STATIC_LIBS = \ xpcom_core \ xpcom_compat \ unicharutil_s \ ucvutil_s \ gkgfx \ gfxshared_s \ xulapp_s \ $(NULL) # component libraries COMPONENT_LIBS += \ xpcom_compat_c \ xpconnect \ necko \ uconv \ i18n \ jar$(VERSION_NUMBER) \ pref \ caps \ rdf \ htmlpars \ imglib2 \ gkplugin \ gklayout \ docshell \ embedcomponents \ webbrwsr \ editor \ nsappshell \ txmgr \ composer \ chrome \ mozfind \ appcomps \ commandlines \ toolkitcomps \ xpinstall \ jsd \ $(NULL) ifdef MOZ_PLACES COMPONENT_LIBS += storagecomps STATIC_LIBS += morkreader_s else COMPONENT_LIBS += \ mork \ $(NULL) endif ifeq ($(OS_ARCH),WINNT) COMPONENT_LIBS += intlcmpt endif ifdef MOZ_MATHML COMPONENT_LIBS += ucvmath endif ifneq (,$(filter xlib,$(MOZ_WIDGET_TOOLKIT))$(MOZ_ENABLE_XLIB)$(MOZ_ENABLE_XPRINT)) STATIC_LIBS += xlibrgb endif ifdef MOZ_ENABLE_XPRINT DEFINES += -DMOZ_ENABLE_XPRINT STATIC_LIBS += xprintutil COMPONENTS_LIBS += gfxxprint endif ifdef MOZ_ENABLE_XLIB STATIC_LIBS += xlibxtbin endif ifdef MOZ_ENABLE_GTK STATIC_LIBS += gtksuperwin COMPONENT_LIBS += widget_gtk endif ifdef MOZ_ENABLE_GTK2 COMPONENT_LIBS += widget_gtk2 endif ifneq (,$(MOZ_ENABLE_GTK)$(MOZ_ENABLE_GTK2)) STATIC_LIBS += gtkxtbin endif ifdef MOZ_IPCD DEFINES += -DMOZ_IPCD COMPONENT_LIBS += ipcdc endif ifneq (,$(strip $(filter data keyword gopher viewsource,$(NECKO_PROTOCOLS)))) DEFINES += -DNECKO2 COMPONENT_LIBS += necko2 endif ifdef MOZ_ENABLE_POSTSCRIPT DEFINES += -DMOZ_ENABLE_POSTSCRIPT STATIC_LIBS += gfxpsshar COMPONENT_LIBS += gfxps endif ifneq (,$(filter icon,$(MOZ_IMG_DECODERS))) ifndef MOZ_ENABLE_GNOMEUI DEFINES += -DICON_DECODER COMPONENT_LIBS += imgicon endif endif ifeq (windows,$(MOZ_WIDGET_TOOLKIT)) COMPONENT_LIBS += gkgfxwin gkwidget endif ifeq (beos,$(MOZ_WIDGET_TOOLKIT)) COMPONENT_LIBS += gfx_beos widget_beos endif ifeq (os2,$(MOZ_WIDGET_TOOLKIT)) COMPONENT_LIBS += gfx_os2 wdgtos2 endif ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) COMPONENT_LIBS += gfx_mac widget_mac endif ifeq (qt,$(MOZ_WIDGET_TOOLKIT)) COMPONENT_LIBS += widget_qt endif ifdef MOZ_ENABLE_CAIRO_GFX DEFINES += -DMOZ_ENABLE_CAIRO_GFX COMPONENT_LIBS += gkgfxcairo else ifneq (,$(MOZ_ENABLE_GTK)$(MOZ_ENABLE_GTK2)) COMPONENT_LIBS += gfx_gtk endif ifdef MOZ_ENABLE_QT COMPONENT_LIBS += gfx_qt endif ifdef MOZ_ENABLE_XLIB COMPONENT_LIBS += gfx_xlib endif ifdef MOZ_ENABLE_PHOTON COMPONENT_LIBS += gfx_photon endif endif ifdef MOZ_ENABLE_XLIB COMPONENT_LIBS += widget_xlib endif ifdef MOZ_ENABLE_PHOTON COMPONENT_LIBS += widget_photon endif ifdef MOZ_OJI STATIC_LIBS += jsj COMPONENT_LIBS += oji endif ifdef ACCESSIBILITY COMPONENT_LIBS += accessibility endif ifdef MOZ_ENABLE_XREMOTE COMPONENT_LIBS += remoteservice endif SHARED_LIBRARY_LIBS = \ $(foreach lib,$(STATIC_LIBS),$(DIST)/lib/$(LIB_PREFIX)$(lib).$(LIB_SUFFIX)) \ $(foreach component,$(COMPONENT_LIBS),$(DIST)/lib/components/$(LIB_PREFIX)$(component).$(LIB_SUFFIX)) \ $(NULL) EXTRA_DSO_LDOPTS += \ $(MOZ_FIX_LINK_PATHS) \ $(LIBS_DIR) \ $(JPEG_LIBS) \ $(PNG_LIBS) \ $(MOZ_JS_LIBS) \ $(NULL) ifdef MOZ_NATIVE_ZLIB EXTRA_DSO_LDOPTS += $(ZLIB_LIBS) else EXTRA_DSO_LDOPTS += $(MOZ_ZLIB_LIBS) endif ifdef GC_LEAK_DETECTOR EXTRA_DSO_LIBS += boehm endif ifdef NS_TRACE_MALLOC EXTRA_DSO_LIBS += tracemalloc endif ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) EXTRA_DSO_LIBS += macmorefiles_s EXTRA_DEPS += $(DIST)/lib/$(LIB_PREFIX)macmorefiles_s.$(LIB_SUFFIX) endif LOCAL_INCLUDES += -I$(topsrcdir)/config ifdef MOZ_JAVAXPCOM LOCAL_INCLUDES += \ -I$(topsrcdir)/extensions/java/xpcom/src \ -I$(JAVA_INCLUDE_PATH) \ $(NULL) ifeq ($(OS_ARCH),WINNT) CPPSRCS += dlldeps-javaxpcom.cpp LOCAL_INCLUDES += -I$(JAVA_INCLUDE_PATH)/win32 else ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) EXTRA_DSO_LDOPTS += -framework JavaVM else LOCAL_INCLUDES += -I$(JAVA_INCLUDE_PATH)/linux endif endif STATIC_LIBS += javaxpcom endif # MOZ_JAVAXPCOM include $(topsrcdir)/config/rules.mk EXTRA_DSO_LDOPTS += $(EXTRA_DSO_LIBS) OS_LIBS += $(LIBICONV) DEFINES += \ -D_IMPL_NS_COM \ -D_IMPL_NS_STRINGAPI \ -DEXPORT_XPT_API \ -DEXPORT_XPTC_API \ -DEXPORT_XPTI_API \ -D_IMPL_NS_COM_OBSOLETE \ -D_IMPL_NS_GFX \ -D_IMPL_NS_WIDGET \ -DIMPL_XULAPI \ $(NULL) EXTRA_DSO_LDOPTS += $(NSPR_LIBS) ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) CXXFLAGS += $(TK_CFLAGS) EXTRA_DSO_LDOPTS += \ -framework Cocoa \ -framework QuickTime \ -framework IOKit \ $(TK_LIBS) \ $(NULL) endif ifdef MOZ_ENABLE_XINERAMA EXTRA_DSO_LDOPTS += $(MOZ_XINERAMA_LIBS) endif ifneq (,$(filter gtk gtk2 qt xlib,$(MOZ_WIDGET_TOOLKIT))) EXTRA_DSO_LDOPTS += $(XLDFLAGS) $(XLIBS) $(MOZ_GTK_LDFLAGS) $(MOZ_XFT_LIBS) $(MOZ_GTK2_LIBS) $(XT_LIBS) endif ifdef MOZ_ENABLE_XPRINT EXTRA_DSO_LDOPTS += $(MOZ_XPRINT_LDFLAGS) endif ifdef MOZ_ENABLE_PANGO EXTRA_DSO_LDOPTS += $(MOZ_PANGO_LIBS) endif ifeq ($(OS_ARCH),BeOS) EXTRA_DSO_LDOPTS += -lbe endif ifeq ($(OS_ARCH),WINNT) EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME,shell32 ole32 uuid version winspool Comdlg32) ifneq (,$(MOZ_DEBUG)$(NS_TRACE_MALLOC)) EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME,imagehlp) endif ifdef GNU_CXX DSO_LDOPTS += -Wl,--export-all-symbols endif endif # WINNT ifdef MOZ_JPROF EXTRA_DSO_LDOPTS += -ljprof endif ifdef NS_TRACE_MALLOC EXTRA_DSO_LIBS += tracemalloc endif ifdef MOZ_SVG_RENDERER_GDIPLUS OS_LIBS += Gdiplus.lib endif ifdef MOZ_SVG_RENDERER_LIBART EXTRA_DSO_LDOPTS += $(MOZ_LIBART_LIBS) endif ifneq (,$(MOZ_ENABLE_CANVAS)$(MOZ_SVG_RENDERER_CAIRO)) EXTRA_DSO_LDOPTS += $(MOZ_CAIRO_LIBS) endif export:: dlldeps.cpp dlldeps-obs.cpp dlldeps.cpp: $(topsrcdir)/xpcom/build/dlldeps.cpp $(INSTALL) $^ . dlldeps-obs.cpp: $(topsrcdir)/xpcom/obsolete/dlldeps-obs.cpp $(INSTALL) $^ . ifdef MOZ_JAVAXPCOM export:: dlldeps-javaxpcom.cpp dlldeps-javaxpcom.cpp: $(topsrcdir)/extensions/java/xpcom/src/dlldeps-javaxpcom.cpp $(INSTALL) $^ . endif