From e31141ea5d8d60ca2f7bb5bd2bd892e76f55fc55 Mon Sep 17 00:00:00 2001 From: "seawood%netscape.com" Date: Fri, 16 Nov 2001 07:42:48 +0000 Subject: [PATCH] Allow modules to override *default* optimization levels by setting MODULE_OPTIMIZE_FLAGS Bug #110215 r=bryner git-svn-id: svn://10.0.0.236/trunk@108282 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/config/Makefile.in | 4 ++++ mozilla/config/autoconf.mk.in | 4 ++++ mozilla/config/config.mk | 22 ++++++++++++++++++++-- mozilla/config/mkdepend/Makefile.in | 3 +++ mozilla/configure.in | 13 +++++-------- 5 files changed, 36 insertions(+), 10 deletions(-) diff --git a/mozilla/config/Makefile.in b/mozilla/config/Makefile.in index fdaf4a17f00..65874e75fbc 100644 --- a/mozilla/config/Makefile.in +++ b/mozilla/config/Makefile.in @@ -54,6 +54,10 @@ ifdef NSBUILDROOT override NSBUILDROOT := endif +ifndef GNU_CC +MODULE_OPTIMIZE_FLAGS = -O3 +endif + include $(topsrcdir)/config/config.mk include $(topsrcdir)/config/rules.mk diff --git a/mozilla/config/autoconf.mk.in b/mozilla/config/autoconf.mk.in index e4fabb684fb..448c3e35ccf 100644 --- a/mozilla/config/autoconf.mk.in +++ b/mozilla/config/autoconf.mk.in @@ -129,6 +129,10 @@ OS_INCLUDES = $(NSPR_CFLAGS) $(JPEG_CFLAGS) $(PNG_CFLAGS) $(MNG_CFLAGS) $(ZLIB_C OS_LIBS = @LIBS@ ACDEFINES = @DEFS@ +MOZ_OPTIMIZE = @MOZ_OPTIMIZE@ +MOZ_OPTIMIZE_FLAGS = @MOZ_OPTIMIZE_FLAGS@ +MOZ_OPTIMIZE_LDFLAGS = @MOZ_OPTIMIZE_LDFLAGS@ + XCFLAGS = @XCFLAGS@ XLDFLAGS = @XLDFLAGS@ XLIBS = @XLIBS@ diff --git a/mozilla/config/config.mk b/mozilla/config/config.mk index 16972a55795..4983f400155 100644 --- a/mozilla/config/config.mk +++ b/mozilla/config/config.mk @@ -444,12 +444,30 @@ endif CFLAGS = $(OS_CFLAGS) CXXFLAGS = $(OS_CXXFLAGS) +LDFLAGS = $(OS_LDFLAGS) + +# Allow each module to override the *default* optimization settings +# by setting MODULE_OPTIMIZE_FLAGS iff the developer has not given +# arguments to --enable-optimize +ifdef MOZ_OPTIMIZE +ifeq (1,$(MOZ_OPTIMIZE)) +ifdef MODULE_OPTIMIZE_FLAGS +CFLAGS += $(MODULE_OPTIMIZE_FLAGS) +CXXFLAGS += $(MODULE_OPTIMIZE_FLAGS) +else +CFLAGS += $(MOZ_OPTIMIZE_FLAGS) +CXXFLAGS += $(MOZ_OPTIMIZE_FLAGS) +endif # MODULE_OPTIMIZE_FLAGS +else +CFLAGS += $(MOZ_OPTIMIZE_FLAGS) +CXXFLAGS += $(MOZ_OPTIMIZE_FLAGS) +endif # MOZ_OPTIMIZE == 1 +LDFLAGS += $(MOZ_OPTIMIZE_LDFLAGS) +endif # MOZ_OPTIMIZE COMPILE_CFLAGS = $(DEFINES) $(INCLUDES) $(XCFLAGS) $(PROFILER_CFLAGS) $(DSO_CFLAGS) $(DSO_PIC_CFLAGS) $(CFLAGS) $(OS_COMPILE_CFLAGS) COMPILE_CXXFLAGS = $(DEFINES) $(INCLUDES) $(XCFLAGS) $(PROFILER_CFLAGS) $(DSO_CFLAGS) $(DSO_PIC_CFLAGS) $(CXXFLAGS) $(OS_COMPILE_CXXFLAGS) -LDFLAGS = $(OS_LDFLAGS) - # # Some platforms (Solaris) might require builds using either # (or both) compiler(s). diff --git a/mozilla/config/mkdepend/Makefile.in b/mozilla/config/mkdepend/Makefile.in index b1a06cb1407..17b56c365ab 100644 --- a/mozilla/config/mkdepend/Makefile.in +++ b/mozilla/config/mkdepend/Makefile.in @@ -28,6 +28,9 @@ include $(DEPTH)/config/autoconf.mk MODULE = mkdepend PROGRAM = mkdepend +ifdef GNU_CC +MODULE_OPTIMIZE_FLAGS = -O3 +endif CSRCS = \ cppsetup.c \ diff --git a/mozilla/configure.in b/mozilla/configure.in index f9d6066fd41..32aee3e5384 100644 --- a/mozilla/configure.in +++ b/mozilla/configure.in @@ -2989,8 +2989,7 @@ dnl ======================================================== dnl = Enable code optimization. OFF by default. dnl ======================================================== MOZ_OPTIMIZE= -if test ! "$MOZ_OPTIMIZE_FLAGS" -then +if test ! "$MOZ_OPTIMIZE_FLAGS"; then MOZ_OPTIMIZE_FLAGS="-O" fi @@ -3000,15 +2999,13 @@ MOZ_ARG_ENABLE_STRING(optimize, MOZ_OPTIMIZE=1 if test -n "$enableval" && test "$enableval" != "yes"; then MOZ_OPTIMIZE_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'` + MOZ_OPTIMIZE=2 fi fi ]) -if test "$MOZ_OPTIMIZE" -then - CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS" - CXXFLAGS="$CXXFLAGS $MOZ_OPTIMIZE_FLAGS" - LDFLAGS="$LDFLAGS $MOZ_OPTIMIZE_LDFLAGS" -fi +AC_SUBST(MOZ_OPTIMIZE) +AC_SUBST(MOZ_OPTIMIZE_FLAGS) +AC_SUBST(MOZ_OPTIMIZE_LDFLAGS) dnl ======================================================== dnl = Enable/disable debug for specific modules only