Require GNU make to build Emacs
Ref: http://debbugs.gnu.org/16717#45 If no-one objects, we can then start getting rid of some of the convoluted Makefile hacks that exist to support non-GNU makes. * configure.ac: Require GNU make. (HAVE_GNU_MAKE): Remove. * INSTALL, etc/NEWS, etc/PROBLEMS: Update for this change. * Makefile.in: Comment.
This commit is contained in:
parent
6730259fea
commit
f6dce6c1d6
6 changed files with 37 additions and 52 deletions
|
@ -1,3 +1,8 @@
|
|||
2014-03-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* configure.ac: Require GNU make.
|
||||
(HAVE_GNU_MAKE): Remove.
|
||||
|
||||
2014-03-26 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Merge from gnulib, incorporating:
|
||||
|
|
12
INSTALL
12
INSTALL
|
@ -24,6 +24,9 @@ find some things, or what options to use.
|
|||
`src/config.h' file containing system-dependent definitions.
|
||||
Running the `make' utility then builds the package for your system.
|
||||
|
||||
Building Emacs requires GNU make, <http://www.gnu.org/software/make/>.
|
||||
On most systems that Emacs supports, this is the default `make' program.
|
||||
|
||||
Here's the procedure to build Emacs using `configure' on systems which
|
||||
are supported by it. In some cases, if the simplified procedure fails,
|
||||
you might need to use various non-default options, and maybe perform
|
||||
|
@ -49,7 +52,6 @@ sections if you need to.
|
|||
SOURCE-DIR/configure
|
||||
|
||||
where SOURCE-DIR is the top-level Emacs source directory.
|
||||
This may not work unless you use GNU make.
|
||||
|
||||
3. When `configure' finishes, it prints several lines of details
|
||||
about the system configuration. Read those details carefully
|
||||
|
@ -435,12 +437,8 @@ SOURCE-DIR refers to the top-level Emacs source directory which is
|
|||
where Emacs's configure script is located. `configure' looks for the
|
||||
Emacs source code in the directory that `configure' is in.
|
||||
|
||||
To build in a separate directory, you must use a version of `make'
|
||||
that supports the `VPATH' variable, such as GNU `make'.
|
||||
|
||||
(Do not try to build in a separate directory by creating many links
|
||||
to the real source directory--there is no need, and installation will
|
||||
fail.)
|
||||
(Do not try to build in a separate directory by creating many links to
|
||||
the real source directory--there is no need, and installation will fail.)
|
||||
|
||||
4) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
|
||||
Lisp code you want Emacs to load before it is dumped out. Use
|
||||
|
|
|
@ -60,8 +60,8 @@
|
|||
|
||||
SHELL = @SHELL@
|
||||
|
||||
# This may not work with certain non-GNU make's. It only matters when
|
||||
# inheriting a CDPATH not starting with the current directory.
|
||||
# This only matters when inheriting a CDPATH not starting with the
|
||||
# current directory.
|
||||
CDPATH=
|
||||
|
||||
# If Make doesn't predefine MAKE, set it here.
|
||||
|
|
44
configure.ac
44
configure.ac
|
@ -441,8 +441,7 @@ AC_SUBST(PROFILING_CFLAGS)
|
|||
AC_ARG_ENABLE(autodepend,
|
||||
[AS_HELP_STRING([--enable-autodepend],
|
||||
[automatically generate dependencies to .h-files.
|
||||
Requires GNU Make and Gcc. Enabled if GNU Make and Gcc is
|
||||
found])],
|
||||
Requires gcc, enabled if found.])],
|
||||
[ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
|
||||
|
||||
AC_ARG_ENABLE(gtk-deprecation-warnings,
|
||||
|
@ -659,6 +658,18 @@ Check `etc/MACHINES' for recognized configuration names.])
|
|||
fi
|
||||
|
||||
|
||||
AC_MSG_CHECKING([whether we are using GNU Make])
|
||||
testval=`${MAKE-make} --version 2>/dev/null | grep 'GNU Make'`
|
||||
if test "x$testval" != x; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([Building Emacs requires GNU make.
|
||||
If you have it installed under a name other than 'make',
|
||||
set the MAKE environment variable, and try again.])
|
||||
fi
|
||||
|
||||
|
||||
#### Choose a compiler.
|
||||
|
||||
dnl Sets GCC=yes if using gcc.
|
||||
|
@ -1526,27 +1537,16 @@ dnl AC_PROG_MAKE_SET is done by Automake.
|
|||
DEPFLAGS=
|
||||
MKDEPDIR=":"
|
||||
deps_frag=deps.mk
|
||||
dnl check for GNU Make if we have GCC and autodepend is on.
|
||||
dnl check if we have GCC and autodepend is on.
|
||||
if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
|
||||
AC_MSG_CHECKING([whether we are using GNU Make])
|
||||
HAVE_GNU_MAKE=no
|
||||
testval=`${MAKE-make} --version 2>/dev/null | grep 'GNU Make'`
|
||||
if test "x$testval" != x; then
|
||||
HAVE_GNU_MAKE=yes
|
||||
else
|
||||
ac_enable_autodepend=no
|
||||
fi
|
||||
AC_MSG_RESULT([$HAVE_GNU_MAKE])
|
||||
if test $HAVE_GNU_MAKE = yes; then
|
||||
AC_MSG_CHECKING([whether gcc understands -MMD -MF])
|
||||
SAVE_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -MMD -MF deps.d -MP"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], , ac_enable_autodepend=no)
|
||||
CFLAGS="$SAVE_CFLAGS"
|
||||
test -f deps.d || ac_enable_autodepend=no
|
||||
rm -rf deps.d
|
||||
AC_MSG_RESULT([$ac_enable_autodepend])
|
||||
fi
|
||||
AC_MSG_CHECKING([whether gcc understands -MMD -MF])
|
||||
SAVE_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -MMD -MF deps.d -MP"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], , ac_enable_autodepend=no)
|
||||
CFLAGS="$SAVE_CFLAGS"
|
||||
test -f deps.d || ac_enable_autodepend=no
|
||||
rm -rf deps.d
|
||||
AC_MSG_RESULT([$ac_enable_autodepend])
|
||||
if test $ac_enable_autodepend = yes; then
|
||||
DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d -MP'
|
||||
## MKDIR_P is documented (see AC_PROG_MKDIR_P) to be parallel-safe.
|
||||
|
|
3
etc/NEWS
3
etc/NEWS
|
@ -24,6 +24,9 @@ otherwise leave it unmarked.
|
|||
|
||||
* Installation Changes in Emacs 24.5
|
||||
|
||||
+++
|
||||
** Building Emacs now requires GNU make.
|
||||
|
||||
|
||||
* Startup Changes in Emacs 24.5
|
||||
|
||||
|
|
21
etc/PROBLEMS
21
etc/PROBLEMS
|
@ -2544,27 +2544,6 @@ occurring with older versions of GCC (e.g. 3.3.5).
|
|||
This is due to a bug in the bcopy implementation in openSUSE 10.3.
|
||||
It is/will be fixed in an openSUSE update.
|
||||
|
||||
** Installation
|
||||
|
||||
*** On Solaris, use GNU Make when installing an out-of-tree build
|
||||
|
||||
The Emacs configuration process allows you to configure the
|
||||
build environment so that you can build emacs in a directory
|
||||
outside of the distribution tree. When installing Emacs from an
|
||||
out-of-tree build directory on Solaris, you may need to use GNU
|
||||
make. The make programs bundled with Solaris support the VPATH
|
||||
macro but use it differently from the way the VPATH macro is
|
||||
used by GNU make. The differences will cause the "make install"
|
||||
step to fail, leaving you with an incomplete emacs
|
||||
installation. GNU make is available in /usr/sfw/bin on Solaris
|
||||
10 and can be installed as /opt/sfw/bin/gmake from the Solaris 9
|
||||
Software Companion CDROM.
|
||||
|
||||
The problems due to the VPATH processing differences affect only
|
||||
out of tree builds so, if you are on a Solaris installation
|
||||
without GNU make, you can install Emacs completely by installing
|
||||
from a build environment using the original emacs distribution tree.
|
||||
|
||||
** First execution
|
||||
|
||||
*** Emacs binary is not in executable format, and cannot be run.
|
||||
|
|
Loading…
Add table
Reference in a new issue