When building with pymake, use gmake for NSS because of the pain and suffering on Windows.

This commit is contained in:
Benjamin Smedberg 2009-03-11 16:32:10 -04:00
parent c72ec148e3
commit 00e5abb4e4
5 changed files with 45 additions and 70 deletions

View File

@ -40,6 +40,15 @@ topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
ifndef .PYMAKE
ifeq (,$(MAKE_VERSION))
$(error GNU Make is required)
endif
ifeq (,$(filter-out 3.78 3.79,$(MAKE_VERSION)))
$(error GNU Make 3.80 or higher is required)
endif
endif
include $(DEPTH)/config/autoconf.mk
default::

View File

@ -389,6 +389,7 @@ TARGET_MD_ARCH = @TARGET_MD_ARCH@
TARGET_XPCOM_ABI = @TARGET_XPCOM_ABI@
AUTOCONF = @AUTOCONF@
GMAKE = @GMAKE@
PERL = @PERL@
PYTHON = @PYTHON@
RANLIB = @RANLIB@

View File

@ -121,7 +121,6 @@ PERL_VERSION=5.006
CAIRO_VERSION=1.6.0
PANGO_VERSION=1.14.0
GTK2_VERSION=2.10.0
MAKE_VERSION=3.78
WINDRES_VERSION=2.14.90
W32API_VERSION=3.8
GNOMEVFS_VERSION=2.0
@ -187,7 +186,6 @@ dnl ==============================================================
if test -z "$CROSS_COMPILE"; then
case "$target" in
*-cygwin*|*-mingw*|*-msvc*|*-mks*)
MAKE_VERSION=3.79
if test -z "$CC"; then CC=cl; fi
if test -z "$CXX"; then CXX=cl; fi
if test -z "$CPP"; then CPP="cl -E -nologo"; fi
@ -974,37 +972,24 @@ fi # COMPILE_ENVIRONMENT
dnl Be sure the make we use is GNU make.
dnl on win32, gmake.exe is the generally the wrong version
if test -n "$MAKE"; then
if test `echo $MAKE | grep -c make.py` != 1; then
NOT_PYMAKE=$MAKE
fi
fi
case "$host_os" in
cygwin*|mingw*|mks*|msvc*)
MOZ_PATH_PROGS(MAKE, $MAKE make gmake, :)
MOZ_PATH_PROGS(GMAKE, $GMAKE $NOT_PYMAKE make gmake, :)
;;
*)
MOZ_PATH_PROGS(MAKE, $MAKE gmake make, :)
MOZ_PATH_PROGS(GMAKE, $GMAKE $NOT_PYMAKE gmake make, :)
;;
esac
_make_try=`$MAKE --version 2>/dev/null | grep GNU`
if test ! "$_make_try"
then
echo
echo "*** $MAKE is not GNU Make. You will not be able to build Mozilla without GNU Make."
echo
exit 1
if test "$GMAKE" = ":"; then
AC_MSG_ERROR([GNU make not found])
fi
dnl Now exit if version if < MAKE_VERSION
rm -f dummy.mk
echo 'all: ; @echo $(MAKE_VERSION)' > dummy.mk
_make_vers=`$MAKE --no-print-directory -f dummy.mk all 2>/dev/null`
rm -f dummy.mk
_MAKE_MAJOR_VERSION=`echo $_make_vers | $AWK -F\. '{ print $1 }'`
_MAKE_MINOR_VERSION=`echo $_make_vers | $AWK -F\. '{ print $2 }'`
MAKE_MAJOR_VERSION=`echo $MAKE_VERSION | $AWK -F\. '{ print $1 }'`
MAKE_MINOR_VERSION=`echo $MAKE_VERSION | $AWK -F\. '{ print $2 }'`
if test "$_MAKE_MAJOR_VERSION" -lt "$MAKE_MAJOR_VERSION" || \
test "$_MAKE_MAJOR_VERSION" = "$MAKE_MAJOR_VERSION" -a \
"$_MAKE_MINOR_VERSION" -lt "$MAKE_MINOR_VERSION"; then
AC_MSG_ERROR([GNU Make $MAKE_VERSION or higher is required to build Mozilla.])
fi
AC_SUBST(MAKE)
AC_SUBST(GMAKE)
if test "$COMPILE_ENVIRONMENT"; then

View File

@ -108,7 +108,6 @@ NSPR_VERSION=4
dnl Set the minimum version of toolkit libs used by mozilla
dnl ========================================================
PERL_VERSION=5.006
MAKE_VERSION=3.78
WINDRES_VERSION=2.14.90
W32API_VERSION=3.8
@ -176,7 +175,6 @@ dnl ==============================================================
if test -z "$CROSS_COMPILE"; then
case "$target" in
*-cygwin*|*-mingw*|*-msvc*|*-mks*)
MAKE_VERSION=3.79
if test -z "$CC"; then CC=cl; fi
if test -z "$CXX"; then CXX=cl; fi
if test -z "$CPP"; then CPP="cl -E -nologo"; fi
@ -845,8 +843,6 @@ fi
fi # COMPILE_ENVIRONMENT
dnl Be sure the make we use is GNU make.
dnl on win32, gmake.exe is the generally the wrong version
case "$host_os" in
cygwin*|mingw*|mks*|msvc*)
MOZ_PATH_PROGS(MAKE, $MAKE make gmake, :)
@ -855,29 +851,6 @@ cygwin*|mingw*|mks*|msvc*)
MOZ_PATH_PROGS(MAKE, $MAKE gmake make, :)
;;
esac
_make_try=`$MAKE --version 2>/dev/null | grep GNU`
if test ! "$_make_try"
then
echo
echo "*** $MAKE is not GNU Make. You will not be able to build Mozilla without GNU Make."
echo
exit 1
fi
dnl Now exit if version if < MAKE_VERSION
rm -f dummy.mk
echo 'all: ; @echo $(MAKE_VERSION)' > dummy.mk
_make_vers=`$MAKE --no-print-directory -f dummy.mk all 2>/dev/null`
rm -f dummy.mk
_MAKE_MAJOR_VERSION=`echo $_make_vers | $AWK -F\. '{ print $1 }'`
_MAKE_MINOR_VERSION=`echo $_make_vers | $AWK -F\. '{ print $2 }'`
MAKE_MAJOR_VERSION=`echo $MAKE_VERSION | $AWK -F\. '{ print $1 }'`
MAKE_MINOR_VERSION=`echo $MAKE_VERSION | $AWK -F\. '{ print $2 }'`
if test "$_MAKE_MAJOR_VERSION" -lt "$MAKE_MAJOR_VERSION" || \
test "$_MAKE_MAJOR_VERSION" = "$MAKE_MAJOR_VERSION" -a \
"$_MAKE_MINOR_VERSION" -lt "$MAKE_MINOR_VERSION"; then
AC_MSG_ERROR([GNU Make $MAKE_VERSION or higher is required to build Mozilla.])
fi
AC_SUBST(MAKE)
if test "$COMPILE_ENVIRONMENT"; then

View File

@ -158,8 +158,15 @@ endif
ifeq (WINNT_1,$(OS_TARGET)_$(MOZ_MEMORY))
export DLLFLAGS
endif
ifdef .PYMAKE
NSSMAKE = $(GMAKE)
else
NSSMAKE = $(MAKE)
endif
# NSS makefiles are not safe for parallel execution.
DEFAULT_GMAKE_FLAGS = MAKE="$(MAKE) -j1" -j1
DEFAULT_GMAKE_FLAGS = MAKE="$(NSSMAKE) -j1" -j1
DEFAULT_GMAKE_FLAGS += CC="$(CC)"
DEFAULT_GMAKE_FLAGS += SOURCE_MD_DIR=$(ABS_DIST)
DEFAULT_GMAKE_FLAGS += DIST=$(ABS_DIST)
@ -266,11 +273,11 @@ export:: .nss.cleaned
.nss.cleaned: .nss.checkout
ifndef MOZ_NATIVE_NSS
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
$(NSSMAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
$(NSSMAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
ifndef SKIP_CHK
$(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) clean
$(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
$(NSSMAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) clean
$(NSSMAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
endif
touch $@
endif
@ -292,22 +299,22 @@ endif
libs::
ifndef MOZ_NATIVE_NSS
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS)
$(NSSMAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS)
ifndef NSS_DISABLE_DBM
$(MAKE) -C $(topsrcdir)/security/dbm $(DEFAULT_GMAKE_FLAGS)
$(NSSMAKE) -C $(topsrcdir)/security/dbm $(DEFAULT_GMAKE_FLAGS)
endif
$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS)
$(NSSMAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS)
ifdef ENABLE_TESTS
# Need certutil binary for mochitest certificates generation
$(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS)
$(MAKE) -C $(topsrcdir)/security/nss/cmd/certutil $(DEFAULT_GMAKE_FLAGS)
$(MAKE) -C $(topsrcdir)/security/nss/cmd/pk12util $(DEFAULT_GMAKE_FLAGS)
$(NSSMAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS)
$(NSSMAKE) -C $(topsrcdir)/security/nss/cmd/certutil $(DEFAULT_GMAKE_FLAGS)
$(NSSMAKE) -C $(topsrcdir)/security/nss/cmd/pk12util $(DEFAULT_GMAKE_FLAGS)
endif
ifndef SKIP_CHK
ifndef ENABLE_TESTS # Just avoid secondary compile
$(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS)
$(NSSMAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS)
endif
$(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS)
$(NSSMAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS)
endif
$(INSTALL) -m 755 $(DIST)/lib/$(LOADABLE_ROOT_MODULE) $(DIST)/bin
ifndef SKIP_CHK
@ -425,11 +432,11 @@ ifdef MOZ_XUL
$(MAKE) -C pki $@
endif
ifndef MOZ_NATIVE_NSS
$(MAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
$(MAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
$(NSSMAKE) -C $(topsrcdir)/security/coreconf $(DEFAULT_GMAKE_FLAGS) clean
$(NSSMAKE) -C $(topsrcdir)/security/nss/lib $(DEFAULT_GMAKE_FLAGS) clean
ifndef SKIP_CHK
$(MAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) clean
$(MAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
$(NSSMAKE) -C $(topsrcdir)/security/nss/cmd/lib $(DEFAULT_GMAKE_FLAGS) clean
$(NSSMAKE) -C $(topsrcdir)/security/nss/cmd/shlibsign $(DEFAULT_GMAKE_FLAGS) clean
endif
endif