# vim:set ts=8 sw=8 sts=8 noet: # ***** 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 Toolkit Crash Reporter # # The Initial Developer of the Original Code is # Ted Mielczarek # Portions created by the Initial Developer are Copyright (C) 2005 # the Initial Developer. All Rights Reserved. # # Contributor(s): # # 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@ relativesrcdir = toolkit/crashreporter/client include $(DEPTH)/config/autoconf.mk MODULE = crashreporter # Don't use the STL wrappers in the crashreporter clients; they don't # link with -lmozalloc, and it really doesn't matter here anyway. STL_FLAGS = ifneq ($(OS_TARGET),Android) PROGRAM = crashreporter$(BIN_SUFFIX) DIST_PROGRAM = crashreporter$(BIN_SUFFIX) endif LOCAL_INCLUDES = -I$(srcdir)/../google-breakpad/src CPPSRCS = crashreporter.cpp ifeq ($(OS_ARCH),WINNT) CPPSRCS += crashreporter_win.cpp LIBS += \ $(DEPTH)/toolkit/crashreporter/google-breakpad/src/client/windows/sender/$(LIB_PREFIX)crash_report_sender_s.$(LIB_SUFFIX) \ $(DEPTH)/toolkit/crashreporter/google-breakpad/src/common/windows/$(LIB_PREFIX)breakpad_windows_common_s.$(LIB_SUFFIX) \ $(NULL) LOCAL_INCLUDES += -I$(srcdir) RCINCLUDE = crashreporter.rc DEFINES += -DUNICODE -D_UNICODE OS_LIBS += $(call EXPAND_LIBNAME,comctl32 shell32 wininet shlwapi) MOZ_WINCONSOLE = 0 endif ifeq ($(OS_ARCH),Darwin) CPPSRCS += crashreporter_unix_common.cpp CMMSRCS += crashreporter_osx.mm OS_LIBS += -framework Cocoa LIBS += \ $(DEPTH)/toolkit/crashreporter/google-breakpad/src/common/mac/$(LIB_PREFIX)breakpad_mac_common_s.$(LIB_SUFFIX) \ $(NULL) LOCAL_INCLUDES += -I$(srcdir) -I$(srcdir)/../google-breakpad/src/common/mac/ endif ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) CPPSRCS += crashreporter_gtk_common.cpp crashreporter_unix_common.cpp ifdef MOZ_PLATFORM_MAEMO CPPSRCS += crashreporter_maemo_gtk.cpp # Maemo's libcurl doesn't ship with a set of CA certificates, # so we have to ship our own. libs:: $(DIST)/bin/crashreporter.crt $(DIST)/bin/crashreporter.crt: $(topsrcdir)/security/nss/lib/ckfw/builtins/certdata.txt certdata2pem.py $(PYTHON) $(srcdir)/certdata2pem.py < $< > $@ # The xpcshell test case here verifies that the CA certificate list # works with OpenSSL. XPCSHELL_TESTS = maemo-unit else CPPSRCS += crashreporter_linux.cpp endif LIBS += \ $(DEPTH)/toolkit/crashreporter/google-breakpad/src/common/linux/$(LIB_PREFIX)breakpad_linux_common_s.$(LIB_SUFFIX) \ $(NULL) LOCAL_INCLUDES += -I$(srcdir) OS_CXXFLAGS += $(MOZ_GTK2_CFLAGS) $(MOZ_GTHREAD_CFLAGS) OS_LIBS += $(MOZ_GTK2_LIBS) $(MOZ_GTHREAD_LIBS) FORCE_USE_PIC=1 endif ifeq ($(OS_ARCH),SunOS) CPPSRCS += crashreporter_linux.cpp crashreporter_unix.cpp LIBS += \ $(DEPTH)/toolkit/crashreporter/google-breakpad/src/common/solaris/$(LIB_PREFIX)breakpad_solaris_common_s.$(LIB_SUFFIX) \ $(NULL) LOCAL_INCLUDES += -I$(srcdir) OS_CXXFLAGS += $(MOZ_GTK2_CFLAGS) $(MOZ_GTHREAD_CFLAGS) OS_LIBS += $(MOZ_GTK2_LIBS) $(MOZ_GTHREAD_LIBS) FORCE_USE_PIC=1 endif include $(topsrcdir)/config/rules.mk ifeq ($(OS_ARCH),Darwin) libs:: $(NSINSTALL) -D $(DIST)/bin/crashreporter.app rsync -a -C --exclude "*.in" $(srcdir)/macbuild/Contents $(DIST)/bin/crashreporter.app sed -e "s/%APP_NAME%/$(MOZ_APP_DISPLAYNAME)/" $(srcdir)/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in | \ iconv -f UTF-8 -t UTF-16 > $(DIST)/bin/crashreporter.app/Contents/Resources/English.lproj/InfoPlist.strings $(NSINSTALL) -D $(DIST)/bin/crashreporter.app/Contents/MacOS $(NSINSTALL) $(DIST)/bin/crashreporter $(DIST)/bin/crashreporter.app/Contents/MacOS rm -f $(DIST)/bin/crashreporter endif ifeq (,$(filter-out Linux SunOS,$(OS_ARCH))) libs:: $(topsrcdir)/toolkit/themes/winstripe/global/throbber/Throbber-small.gif $(INSTALL) $^ $(DIST)/bin endif ifdef MOZ_PLATFORM_MAEMO libs:: $(INSTALL) $(DIST)/bin/crashreporter.crt $(DEPTH)/_tests/xpcshell/$(MODULE)/maemo-unit/ endif