# ***** 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 # the mozilla.org SeaMonkey project. # Portions created by the Initial Developer are Copyright (C) 2006 # the Initial Developer. All Rights Reserved. # # Contributor(s): # Mark Banner # # 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 MOZILLA_INTERNAL_API = 1 AB_CD = $(MOZ_UI_LOCALE) DEFINES += -DAB_CD=$(AB_CD) DIRS = profile # XXX browser-prefs.js should be moved to within the /suite directory at # some sensible stage. PREF_JS_EXPORTS = \ $(topsrcdir)/xpfe/bootstrap/browser-prefs.js \ $(NULL) ifeq ($(USE_SHORT_LIBNAME), 1) PROGRAM = $(MOZ_APP_NAME)$(BIN_SUFFIX) else PROGRAM = $(MOZ_APP_NAME)-bin$(BIN_SUFFIX) endif REQUIRES = \ xpcom \ xulapp \ $(NULL) CPPSRCS = nsSuiteApp.cpp LOCAL_INCLUDES += -I$(topsrcdir)/toolkit/xre ifdef BUILD_STATIC_LIBS STATIC_COMPONENTS_LINKER_PATH = -L$(DIST)/lib/components LIBS += $(DIST)/lib/$(LIB_PREFIX)xulapp_s.$(LIB_SUFFIX) else ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) LIBS += $(DIST)/bin/XUL else EXTRA_DSO_LIBS += xul endif endif ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) TK_LIBS := -framework Cocoa $(TK_LIBS) endif LIBS += \ $(STATIC_COMPONENTS_LINKER_PATH) \ $(MOZ_JS_LIBS) \ $(EXTRA_DSO_LIBS) \ $(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) endif ifdef MOZ_JPROF LIBS += -ljprof endif ifndef MOZ_WINCONSOLE ifdef MOZ_DEBUG MOZ_WINCONSOLE = 1 else MOZ_WINCONSOLE = 0 endif endif NSDISTMODE = copy include $(topsrcdir)/config/config.mk ifndef BUILD_STATIC_LIBS ifdef NS_TRACE_MALLOC EXTRA_DSO_LIBS += tracemalloc endif else include $(topsrcdir)/config/static-config.mk EXTRA_DEPS += \ $(STATIC_EXTRA_DEPS) \ $(NULL) DEFINES += $(STATIC_DEFINES) CPPSRCS += $(STATIC_CPPSRCS) EXTRA_DSO_LIBS += $(STATIC_EXTRA_DSO_LIBS) REQUIRES += $(STATIC_REQUIRES) EXTRA_LIBS += $(STATIC_EXTRA_LIBS) 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_SUITE -I$(srcdir) else RCFLAGS += -DMOZ_SUITE --include-dir $(srcdir) endif ifdef BUILD_STATIC_LIBS RCFLAGS += -DMOZ_STATIC_BUILD endif endif ifeq ($(OS_ARCH),BeOS) BEOS_PROGRAM_RESOURCE = $(topsrcdir)/xpfe/bootstrap/apprunner-beos.rsrc ifdef BUILD_STATIC_LIBS OS_LIBS += -ltracker -lgame endif endif ifeq ($(OS_ARCH),OS2) RESFILE=splashos2.res endif include $(topsrcdir)/config/rules.mk ifdef BUILD_STATIC_LIBS include $(topsrcdir)/config/static-rules.mk endif DEFINES += -DAPP_VERSION="$(MOZ_APP_VERSION)" ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) ifdef BUILD_STATIC_LIBS LIBS += -framework QuickTime -framework IOKit endif 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 $(PROGRAM): $(DIST)/lib/$(LIB_PREFIX)xulapp_s.$(LIB_SUFFIX) ifneq (,$(filter windows os2 gtk gtk2,$(MOZ_WIDGET_TOOLKIT))) ifneq (,$(filter windows os2,$(MOZ_WIDGET_TOOLKIT))) ICON_SUFFIX=.ico else ICON_SUFFIX=.xpm endif ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) ICON_DIR=gtk else ICON_DIR=$(MOZ_WIDGET_TOOLKIT) endif DESKTOP_ICONS = \ abcardWindow \ addressbookWindow \ bmPropsWindow \ bookmark-window \ calendar-window \ chatzilla-window \ downloadManager \ editorWindow \ findBookmarkWindow \ findHistoryWindow \ history-window \ jsconsoleWindow \ main-window \ messengerWindow \ msgcomposeWindow \ venkman-window \ winInspectorMain \ $(NULL) ifeq (windows,$(MOZ_WIDGET_TOOLKIT)) # Windows icons DESKTOP_ICONS += \ gif-file \ html-file \ misc-file \ image-file \ jpeg-file \ script-file \ xml-file \ xul-file \ $(NULL) endif ifeq ($(ICON_DIR),gtk) DESKTOP_ICONS_SMALL=$(patsubst %,%16,$(DESKTOP_ICONS)) endif DESKTOP_ICON_FILES = $(addsuffix $(ICON_SUFFIX), $(DESKTOP_ICONS) $(DESKTOP_ICONS_SMALL)) # XXX this icons should be moved to within the /suite directory at # some sensible stage. libs:: $(addprefix $(topsrcdir)/xpfe/bootstrap/icons/$(ICON_DIR)/,$(DESKTOP_ICON_FILES)) $(INSTALL) $^ $(DIST)/bin/chrome/icons/default # XXX Uncomment this line and delete the one under it when icons move install:: $(addprefix $(topsrcdir)/xpfe/bootstrap/icons/$(ICON_DIR)/,$(DESKTOP_ICON_FILES)) $(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(mozappdir)/chrome/icons/default GARBAGE += $(addprefix $(DIST)/bin/chrome/icons/default/,$(DESKTOP_ICON_FILES)) endif # XXX mozilla.in should move or be copied to this directory at some stage ifneq (,$(filter-out OS2 WINNT Darwin,$(OS_ARCH))) $(MOZ_APP_NAME):: mozilla.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk cat $< | sed -e "s|%MOZAPPDIR%|$(mozappdir)|" \ -e "s|%MOZ_USER_DIR%|.mozilla|" \ -e "s|%MREDIR%|$(mredir)|" \ -e "s|%MOZ_APP_DISPLAYNAME%|$(MOZ_APP_DISPLAYNAME)|" \ -e "s|%MOZILLA-BIN%|$(PROGRAM)|g" > $@ chmod +x $@ libs:: $(MOZ_APP_NAME) $(INSTALL) $< $(DIST)/bin install:: $(MOZ_APP_NAME) $(SYSINSTALL) $< $(DESTDIR)$(bindir) GARBAGE += $(MOZ_APP_NAME) GARBAGE += $(addprefix $(DIST)/bin/defaults/pref/, browser-prefs.js) endif ifeq ($(MOZ_WIDGET_TOOLKIT),photon) LIBS += -lphexlib endif ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) AB := $(firstword $(subst -, ,$(AB_CD))) ifdef MOZ_DEBUG APP_NAME = $(MOZ_APP_DISPLAYNAME)Debug else APP_NAME = $(MOZ_APP_DISPLAYNAME) endif libs:: $(PROGRAM) mkdir -p $(DIST)/$(APP_NAME).app/Contents/MacOS rsync -a --exclude CVS --exclude "*.in" $(srcdir)/macbuild/Contents $(DIST)/$(APP_NAME).app --exclude English.lproj mkdir -p $(DIST)/$(APP_NAME).app/Contents/Resources/$(AB).lproj rsync -a --exclude CVS $(srcdir)/macbuild/Contents/Resources/English.lproj/ $(DIST)/$(APP_NAME).app/Contents/Resources/$(AB).lproj sed -e "s/MOZ_APP_NAME/$(MOZ_APP_NAME)/" -e "s/MOZ_APP_DISPLAYNAME/$(MOZ_APP_DISPLAYNAME)/" -e "s/MOZ_APP_VERSION/$(MOZ_APP_VERSION)/" $(srcdir)/macbuild/Contents/Info.plist.in > $(DIST)/$(APP_NAME).app/Contents/Info.plist rsync -a $(DIST)/bin/ $(DIST)/$(APP_NAME).app/Contents/MacOS rm -f $(DIST)/$(APP_NAME).app/Contents/MacOS/$(PROGRAM) rsync -aL $(PROGRAM) $(DIST)/$(APP_NAME).app/Contents/MacOS mkdir -p $(DIST)/$(APP_NAME).app/Contents/Plug-Ins rsync -a --copy-unsafe-links $(DIST)/package/PrintPDE.plugin $(DIST)/$(APP_NAME).app/Contents/Plug-Ins cp -RL $(srcdir)/../branding/icons/mac/*.icns $(DIST)/$(APP_NAME).app/Contents/Resources/ cp -RL $(DIST)/package/mozillaSuite.rsrc $(DIST)/$(APP_NAME).app/Contents/Resources/$(PROGRAM).rsrc echo -n APPLMOZZ > $(DIST)/$(APP_NAME).app/Contents/PkgInfo # remove CVS dirs from packaged app find $(DIST)/$(APP_NAME).app -type d -name "CVS" -prune -exec rm -rf {} \; clean clobber:: rm -rf $(DIST)/$(APP_NAME).app endif libs:: $(INSTALL) $(topsrcdir)/LICENSE $(DIST)/bin