diff --git a/build/pgo/profileserver.py b/build/pgo/profileserver.py index 2542f19ab488..7094172bb82f 100644 --- a/build/pgo/profileserver.py +++ b/build/pgo/profileserver.py @@ -64,11 +64,24 @@ if __name__ == '__main__': from optparse import OptionParser automation = Automation() - parser = OptionParser() + parser = OptionParser(usage='OBJDIR=path/to/objdir python %prog [NUM_RUNS]') addCommonOptions(parser) options, args = parser.parse_args() + if not os.getenv('OBJDIR'): + parser.error('Please specify the OBJDIR environment variable.') + + if not args: + num_runs = 1 + else: + try: + num_runs = int(args[0]) + except: + parser.error('NUM_RUNS argument must be an integer.') + if num_runs < 1: + parser.error('NUM_RUNS must be greater than zero.') + debuggerInfo = getDebuggerInfo(".", options.debugger, options.debuggerArgs, options.debuggerInteractive) @@ -85,9 +98,14 @@ if __name__ == '__main__': url = "http://localhost:%d/index.html" % PORT appPath = os.path.join(SCRIPT_DIR, automation.DEFAULT_APP) - status = automation.runApp(url, browserEnv, appPath, PROFILE_DIRECTORY, {}, - debuggerInfo=debuggerInfo, - # the profiling HTML doesn't output anything, - # so let's just run this without a timeout - timeout = None) - sys.exit(status) + + for i in range(0, num_runs): + if num_runs != 1: + print "Starting profiling run %d of %d" % (i + 1, num_runs) + status = automation.runApp(url, browserEnv, appPath, PROFILE_DIRECTORY, {}, + debuggerInfo=debuggerInfo, + # the profiling HTML doesn't output anything, + # so let's just run this without a timeout + timeout = None) + if status != 0: + sys.exit(status) diff --git a/config/rules.mk b/config/rules.mk index 9b4f271967db..c27f141979f5 100644 --- a/config/rules.mk +++ b/config/rules.mk @@ -903,6 +903,17 @@ endif endif # SHARED_LIBRARY || PROGRAM endif # WINNT_ endif # MOZ_PROFILE_GENERATE || MOZ_PROFILE_USE +ifdef MOZ_PROFILE_GENERATE +# Clean up profiling data during PROFILE_GENERATE phase +export:: +ifeq ($(OS_ARCH)_$(GNU_CC), WINNT_) + -$(RM) *.pgd +else +ifdef GNU_CC + -$(RM) *.gcda +endif +endif +endif endif # NO_PROFILE_GUIDED_OPTIMIZE ############################################## diff --git a/js/src/config/rules.mk b/js/src/config/rules.mk index 9b4f271967db..c27f141979f5 100644 --- a/js/src/config/rules.mk +++ b/js/src/config/rules.mk @@ -903,6 +903,17 @@ endif endif # SHARED_LIBRARY || PROGRAM endif # WINNT_ endif # MOZ_PROFILE_GENERATE || MOZ_PROFILE_USE +ifdef MOZ_PROFILE_GENERATE +# Clean up profiling data during PROFILE_GENERATE phase +export:: +ifeq ($(OS_ARCH)_$(GNU_CC), WINNT_) + -$(RM) *.pgd +else +ifdef GNU_CC + -$(RM) *.gcda +endif +endif +endif endif # NO_PROFILE_GUIDED_OPTIMIZE ############################################## diff --git a/modules/libreg/Makefile.in b/modules/libreg/Makefile.in index 1fc7c20a57ac..6bda65d5324b 100644 --- a/modules/libreg/Makefile.in +++ b/modules/libreg/Makefile.in @@ -44,7 +44,7 @@ include $(DEPTH)/config/autoconf.mk MODULE = libreg -DIRS = include src standalone +DIRS = include src include $(topsrcdir)/config/rules.mk diff --git a/modules/libreg/standalone/Makefile.in b/modules/libreg/standalone/Makefile.in deleted file mode 100644 index d58010eb4e19..000000000000 --- a/modules/libreg/standalone/Makefile.in +++ /dev/null @@ -1,74 +0,0 @@ -# -# ***** 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 Corporation. -# Portions created by the Initial Developer are Copyright (C) 1998 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# Samir Gehani -# -# 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 -include $(srcdir)/../src/objs.mk - -MODULE = libreg -LIBRARY_NAME = mozregsa_s - -ifeq ($(OS_ARCH),WINNT) -USE_STATIC_LIBS = 1 -endif - -CSRCS = $(MODULES_LIBREG_SRC_LCSRCS) - -FORCE_STATIC_LIB = 1 - -GARBAGE += $(MODULES_LIBREG_SRC_LCSRCS) $(wildcard *.$(OBJ_SUFFIX)) - -ifeq ($(OS_ARCH),WINNT) -GARBAGE += $(addprefix $(srcdir)/,$(MODULES_LIBREG_SRC_LCSRCS)) -endif - -SRCS_IN_OBJDIR = 1 - -include $(topsrcdir)/config/rules.mk - -DEFINES += -DSTANDALONE_REGISTRY - -LOCAL_INCLUDES = -I$(srcdir)/../src - -export:: $(MODULES_LIBREG_SRC_CSRCS) - $(INSTALL) $^ . - diff --git a/toolkit/toolkit-makefiles.sh b/toolkit/toolkit-makefiles.sh index 07d9df9efd1d..0713273c5012 100644 --- a/toolkit/toolkit-makefiles.sh +++ b/toolkit/toolkit-makefiles.sh @@ -311,7 +311,6 @@ MAKEFILES_libreg=" modules/libreg/Makefile modules/libreg/include/Makefile modules/libreg/src/Makefile - modules/libreg/standalone/Makefile " MAKEFILES_libpref="