diff --git a/build/macosx/js-icc-flight.mk b/build/macosx/js-icc-flight.mk new file mode 100644 index 00000000000..901cfd869e5 --- /dev/null +++ b/build/macosx/js-icc-flight.mk @@ -0,0 +1,16 @@ +OBJDIR_ICC = $(MOZ_OBJDIR)/js-icc +OBJDIR_X86 = $(MOZ_OBJDIR)/i386 + +include $(OBJDIR_X86)/config/autoconf.mk +include $(TOPSRCDIR)/config/config.mk + +ifdef MOZ_DEBUG +DBGTAG = Debug +else +DBGTAG = +endif + +# Just copy the icc-produced libmozjs.dylib over +postflight_all: + echo "Postflight: copying libmozjs.dylib..." + $(INSTALL) $(OBJDIR_ICC)/dist/bin/libmozjs.dylib $(OBJDIR_X86)/dist/$(MOZ_APP_DISPLAYNAME)$(DBGTAG).app/Contents/MacOS/ diff --git a/build/macosx/universal/mozconfig b/build/macosx/universal/mozconfig index de7fe79d1a2..f38e4814035 100644 --- a/build/macosx/universal/mozconfig +++ b/build/macosx/universal/mozconfig @@ -52,6 +52,7 @@ ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.4u.sdk # problem, because the variables it affects only need to be set for # configure. if test -n "$MOZ_BUILD_APP" ; then +if test "$MOZ_BUILD_APP" = "i386" -o "$MOZ_BUILD_APP" = "ppc"; then TARGET_CPU=$MOZ_BUILD_APP GCC_VERSION=4.0 @@ -89,3 +90,4 @@ if test -n "$MOZ_BUILD_APP" ; then # needs to know to look for universal bits when building the .dmg. UNIVERSAL_BINARY=1 fi +fi diff --git a/config/autoconf.mk.in b/config/autoconf.mk.in index c433ea12465..b9afd568e9c 100644 --- a/config/autoconf.mk.in +++ b/config/autoconf.mk.in @@ -343,6 +343,8 @@ GNU_LD = @GNU_LD@ GNU_CC = @GNU_CC@ GNU_CXX = @GNU_CXX@ HAVE_GCC3_ABI = @HAVE_GCC3_ABI@ +INTEL_CC = @INTEL_CC@ +INTEL_CXX = @INTEL_CXX@ HOST_CC = @HOST_CC@ HOST_CXX = @HOST_CXX@ diff --git a/configure.in b/configure.in index 67a7652f34d..b423bcce0b9 100644 --- a/configure.in +++ b/configure.in @@ -375,6 +375,20 @@ if test "$GNU_CC"; then fi fi +INTEL_CC= +INTEL_CXX= +if test "$GCC" = yes; then + if test "`$CC -help 2>&1 | grep -c 'Intel(R) C Compiler'`" != "0"; then + INTEL_CC=1 + fi +fi + +if test "$GXX" = yes; then + if test "`$CXX -help 2>&1 | grep -c 'Intel(R) C++ Compiler'`" != "0"; then + INTEL_CXX=1 + fi +fi + dnl Special win32 checks dnl ======================================================== case "$target" in @@ -610,6 +624,8 @@ AC_SUBST(GNU_AS) AC_SUBST(GNU_LD) AC_SUBST(GNU_CC) AC_SUBST(GNU_CXX) +AC_SUBST(INTEL_CC) +AC_SUBST(INTEL_CXX) dnl ======================================================== dnl Checks for programs. @@ -743,6 +759,7 @@ case "$target" in if test -n "$_MACOSX_DEPLOYMENT_TARGET" ; then dnl Use the specified value export MACOSX_DEPLOYMENT_TARGET=$_MACOSX_DEPLOYMENT_TARGET + AC_DEFINE_UNQUOTED(__ENVIRONMENT_MAC_OS_X_VERION_MIN_REQUIRED__,$_MACOSX_DEPLOYMENT_TARGET) elif test -z "$MACOSX_DEPLOYMENT_TARGET" ; then dnl No value specified on the command line or in the environment, dnl use the lesser of the application's minimum or the architecture's @@ -1275,14 +1292,23 @@ if test "$GNU_CC"; then # -Wconversion - complained when char's or short's were used a function args # -Wshadow - removed because it generates more noise than help --pete _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -W -Wno-unused -Wpointer-arith" - if test "$CPU_ARCH" != "ia64" && test "$CPU_ARCH" != "sparc"; then + if test "$CPU_ARCH" != "ia64" && test "$CPU_ARCH" != "sparc" \ + && test -z "$INTEL_CC"; then # don't use -Wcast-align on ia64 or sparc, it's noisy on those platforms + # icc doesn't support this flag. _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wcast-align" fi dnl Turn pedantic on but disable the warnings for long long _PEDANTIC=1 - _IGNORE_LONG_LONG_WARNINGS=1 + + if test -z "$INTEL_CC"; then + _IGNORE_LONG_LONG_WARNINGS=1 + _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -W" + else + _IGNORE_LONG_LONG_WARNINGS= + fi + _DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT' _USE_CPP_INCLUDE_FLAG=1 @@ -1306,8 +1332,10 @@ if test "$GNU_CXX"; then CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" # Turn on GNU specific features _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wconversion -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor" - if test "$CPU_ARCH" != "ia64" && test "$CPU_ARCH" != "sparc"; then + if test "$CPU_ARCH" != "ia64" && test "$CPU_ARCH" != "sparc" \ + && test -z "$INTEL_CC"; then # don't use -Wcast-align on ia64 or sparc, it's noisy on those platforms + # icc doesn't support this flag. _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wcast-align" fi @@ -6639,6 +6667,13 @@ fi CFLAGS="$_SAVE_CFLAGS" +if test -n $INTEL_CC; then + PROFILE_GEN_CFLAGS="-prof-gen -prof-dir ." + PROFILE_GEN_LDFLAGS= + PROFILE_USE_CFLAGS="-prof-use -prof-dir ." + PROFILE_USE_LDFLAGS= +fi + AC_SUBST(PROFILE_GEN_CFLAGS) AC_SUBST(PROFILE_GEN_LDFLAGS) AC_SUBST(PROFILE_USE_CFLAGS)