# vim:set ts=8 sw=8 sts=8 et: # ***** 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 # Netscape Communications. # Portions created by the Initial Developer are Copyright (C) 2001 # the Initial Developer. All Rights Reserved. # # Contributor(s): # Brian Ryner # Jonathan Wilson # Dan Mosedale # Darin Fisher # Benjamin Smedberg # # Alternatively, the contents of this file may be used under the terms of # either 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 DIRS = profile PREF_JS_EXPORTS = $(srcdir)/xulrunner.js GARBAGE += $(addprefix $(DIST)/bin/defaults/pref/,xulrunner.js) DEFINES += -DAB_CD=$(AB_CD) ifeq ($(USE_SHORT_LIBNAME), 1) PROGRAM = xulrunner$(BIN_SUFFIX) else ifeq ($(OS_ARCH), BeOS) PROGRAM = xulrunner$(BIN_SUFFIX) else PROGRAM = xulrunner-bin$(BIN_SUFFIX) endif endif DEFINES += -DXULRUNNER_PROGNAME=\"xulrunner\" ifdef MOZ_JAVAXPCOM DEFINES += -DMOZ_JAVAXPCOM endif ifdef TARGET_XPCOM_ABI DEFINES += -DTARGET_XPCOM_ABI=\"$(TARGET_XPCOM_ABI)\" endif CPPSRCS = nsXULRunnerApp.cpp ifneq (,$(filter WINNT WINCE,$(OS_ARCH))) CPPSRCS += nsRegisterGREWin.cpp else ifeq (OS2,$(OS_ARCH)) CPPSRCS += nsRegisterGREVoid.cpp else ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) CPPSRCS += nsRegisterGREVoid.cpp else CPPSRCS += nsRegisterGREUnix.cpp endif endif endif LOCAL_INCLUDES += \ -I$(topsrcdir)/toolkit/xre \ -I$(topsrcdir)/toolkit/profile/src \ $(NULL) ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) TK_LIBS := -framework Cocoa $(TK_LIBS) endif ifndef MOZ_ENABLE_LIBXUL ifeq (bundle,$(MOZ_FS_LAYOUT)) LIBS += $(DIST)/bin/XUL else EXTRA_DSO_LIBS += xul endif endif LIBS += \ $(EXTRA_DSO_LIBS) \ $(MOZ_JS_LIBS) \ $(DIST)/lib/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) \ $(XPCOM_LIBS) \ $(NSPR_LIBS) \ $(TK_LIBS) \ $(NULL) # Add explicit X11 dependency when building against X11 toolkits ifneq (,$(filter gtk gtk2 xlib,$(MOZ_WIDGET_TOOLKIT))) LIBS += $(XLDFLAGS) $(XLIBS) $(XEXT_LIBS) $(XCOMPOSITE_LIBS) endif ifdef MOZ_JPROF LIBS += -ljprof endif ifndef MOZ_WINCONSOLE ifdef MOZ_DEBUG MOZ_WINCONSOLE = 1 else MOZ_WINCONSOLE = 0 endif endif DEFINES += -DMOZ_WINCONSOLE=$(MOZ_WINCONSOLE) # This switches $(INSTALL) to copy mode, like $(SYSINSTALL), so things that # shouldn't get 755 perms need $(IFLAGS1) for either way of calling nsinstall. NSDISTMODE = copy include $(topsrcdir)/config/config.mk ifdef _MSC_VER # Always enter a Windows program through wmain, whether or not we're # a console application. ifdef WINCE WIN32_EXE_LDFLAGS += -ENTRY:mainWCRTStartup else WIN32_EXE_LDFLAGS += -ENTRY:wmainCRTStartup endif endif ifeq ($(OS_ARCH),WINNT) OS_LIBS += $(call EXPAND_LIBNAME,comctl32 comdlg32 uuid shell32 ole32 oleaut32 version winspool) RCINCLUDE = splash.rc ifndef GNU_CC RCFLAGS += -DMOZ_XULRUNNER -I$(srcdir) else RCFLAGS += -DMOZ_XULRUNNER --include-dir $(srcdir) endif ifdef DEBUG RCFLAGS += -DDEBUG endif endif ifeq ($(OS_ARCH),BeOS) OS_LIBS += -ltracker endif ifeq ($(OS_ARCH),OS2) RESFILE=splashos2.res RCFLAGS += -DMOZ_XULRUNNER ifdef DEBUG RCFLAGS += -DDEBUG endif RCFLAGS += -DXULRUNNER_ICO=\"$(DIST)/branding/xulrunner.ico\" -DDOCUMENT_ICO=\"$(DIST)/branding/document.ico\" endif LIBS += $(JEMALLOC_LIBS) include $(topsrcdir)/config/rules.mk DEFINES += -DXULRUNNER_ICO=\"$(DIST)/branding/xulrunner.ico\" -DDOCUMENT_ICO=\"$(DIST)/branding/document.ico\" ifeq ($(MOZ_WIDGET_TOOLKIT),photon) LIBS += -lphexlib endif ifeq ($(OS_ARCH),WINNT) # # Control the default heap size. # This is the heap returned by GetProcessHeap(). # As we use the CRT heap, the default size is too large and wastes VM. # # The default heap size is 1MB on Win32. # The heap will grow if need be. # # Set it to 256k. See bug 127069. # ifndef GNU_CC LDFLAGS += /HEAP:0x40000 endif endif ifneq (,$(filter-out OS2 WINCE WINNT BeOS,$(OS_ARCH))) ifeq (unix, $(MOZ_FS_LAYOUT)) xulrunner:: $(topsrcdir)/build/unix/mozilla.in $(GLOBAL_DEPS) cat $< | sed -e "s|%MOZAPPDIR%|$(installdir)|" \ -e "s|%MOZ_USER_DIR%|.mozilla/xulrunner|" \ -e "s|%MOZ_APP_DISPLAYNAME%|$(MOZ_APP_DISPLAYNAME)|" > $@ chmod +x $@ libs:: xulrunner $(INSTALL) $< $(DIST)/bin install:: xulrunner $(SYSINSTALL) $< $(DESTDIR)$(bindir) GARBAGE += xulrunner endif endif ifneq (,$(filter gtk gtk2,$(MOZ_WIDGET_TOOLKIT))) ICON_FILES = \ $(DIST)/branding/document.png \ $(NULL) libs:: $(ICON_FILES) $(INSTALL) $(IFLAGS1) $^ $(DIST)/bin/icons install:: $(SYSINSTALL) $(IFLAGS1) $(ICON_FILES) $(DESTDIR)$(mozappdir)/icons endif ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) libs:: $(INSTALL) $(IFLAGS1) $(DIST)/branding/default16.png $(DIST)/bin/chrome/icons/default $(INSTALL) $(IFLAGS1) $(DIST)/branding/default32.png $(DIST)/bin/chrome/icons/default $(INSTALL) $(IFLAGS1) $(DIST)/branding/default48.png $(DIST)/bin/chrome/icons/default endif # XXX applications would need to supply this file #export:: brand.dtd.in # $(PERL) $(topsrcdir)/config/preprocessor.pl $(DEFINES) $(ACDEFINES) $^ > brand.dtd export:: $(NSINSTALL) -D $(DIST)/branding ifeq ($(OS_ARCH),WINNT) cp $(srcdir)/xulrunner.ico $(DIST)/branding/xulrunner.ico cp $(srcdir)/xulrunner.ico $(DIST)/branding/app.ico cp $(srcdir)/document.ico $(DIST)/branding/document.ico endif ifneq (,$(filter gtk gtk2,$(MOZ_WIDGET_TOOLKIT))) cp $(srcdir)/document.png $(DIST)/branding/document.png endif ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) cp $(srcdir)/default16.png $(DIST)/branding/default16.png cp $(srcdir)/default32.png $(DIST)/branding/default32.png cp $(srcdir)/default48.png $(DIST)/branding/default48.png endif ifeq ($(OS_ARCH),OS2) cp $(srcdir)/xulrunner-os2.ico $(DIST)/branding/xulrunner.ico endif libs:: touch $(DIST)/bin/.autoreg ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) FRAMEWORK_NAME = XUL FRAMEWORK_VERSION = $(MOZILLA_VERSION) libs:: $(PROGRAM) mkdir -p $(DIST)/$(FRAMEWORK_NAME).framework/Versions/$(FRAMEWORK_VERSION)/Resources $(NSINSTALL) $(srcdir)/macbuild/InfoPlist.strings $(DIST)/$(FRAMEWORK_NAME).framework/Versions/$(FRAMEWORK_VERSION)/Resources sed -e "s/APP_VERSION/$(APP_VERSION)/" $(srcdir)/macbuild/Info.plist.in > $(DIST)/$(FRAMEWORK_NAME).framework/Versions/$(FRAMEWORK_VERSION)/Info.plist rsync -a $(DIST)/bin/ $(DIST)/$(FRAMEWORK_NAME).framework/Versions/$(FRAMEWORK_VERSION) --exclude mangle --exclude shlibsign rm -f $(DIST)/$(FRAMEWORK_NAME).framework/Versions/Current \ $(DIST)/$(FRAMEWORK_NAME).framework/libxpcom.dylib \ $(DIST)/$(FRAMEWORK_NAME).framework/XUL \ $(DIST)/$(FRAMEWORK_NAME).framework/xulrunner-bin ln -s $(FRAMEWORK_VERSION) $(DIST)/$(FRAMEWORK_NAME).framework/Versions/Current ln -s Versions/Current/libxpcom.dylib $(DIST)/$(FRAMEWORK_NAME).framework/libxpcom.dylib ln -s Versions/Current/XUL $(DIST)/$(FRAMEWORK_NAME).framework/XUL ln -s Versions/Current/xulrunner-bin $(DIST)/$(FRAMEWORK_NAME).framework/xulrunner-bin clean clobber:: rm -rf $(DIST)/$(FRAMEWORK_NAME).framework endif README_FILE = $(topsrcdir)/README.txt libs:: $(INSTALL) $(IFLAGS1) $(README_FILE) $(DIST)/bin $(INSTALL) $(IFLAGS1) $(topsrcdir)/LICENSE $(DIST)/bin