mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-03 19:03:24 +00:00
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>
|
2014-03-26 Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
|
||||||
Merge from gnulib, incorporating:
|
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.
|
`src/config.h' file containing system-dependent definitions.
|
||||||
Running the `make' utility then builds the package for your system.
|
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
|
Here's the procedure to build Emacs using `configure' on systems which
|
||||||
are supported by it. In some cases, if the simplified procedure fails,
|
are supported by it. In some cases, if the simplified procedure fails,
|
||||||
you might need to use various non-default options, and maybe perform
|
you might need to use various non-default options, and maybe perform
|
||||||
|
@ -49,7 +52,6 @@ sections if you need to.
|
||||||
SOURCE-DIR/configure
|
SOURCE-DIR/configure
|
||||||
|
|
||||||
where SOURCE-DIR is the top-level Emacs source directory.
|
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
|
3. When `configure' finishes, it prints several lines of details
|
||||||
about the system configuration. Read those details carefully
|
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
|
where Emacs's configure script is located. `configure' looks for the
|
||||||
Emacs source code in the directory that `configure' is in.
|
Emacs source code in the directory that `configure' is in.
|
||||||
|
|
||||||
To build in a separate directory, you must use a version of `make'
|
(Do not try to build in a separate directory by creating many links to
|
||||||
that supports the `VPATH' variable, such as GNU `make'.
|
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
|
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
|
Lisp code you want Emacs to load before it is dumped out. Use
|
||||||
|
|
|
@ -60,8 +60,8 @@
|
||||||
|
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
|
|
||||||
# This may not work with certain non-GNU make's. It only matters when
|
# This only matters when inheriting a CDPATH not starting with the
|
||||||
# inheriting a CDPATH not starting with the current directory.
|
# current directory.
|
||||||
CDPATH=
|
CDPATH=
|
||||||
|
|
||||||
# If Make doesn't predefine MAKE, set it here.
|
# 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,
|
AC_ARG_ENABLE(autodepend,
|
||||||
[AS_HELP_STRING([--enable-autodepend],
|
[AS_HELP_STRING([--enable-autodepend],
|
||||||
[automatically generate dependencies to .h-files.
|
[automatically generate dependencies to .h-files.
|
||||||
Requires GNU Make and Gcc. Enabled if GNU Make and Gcc is
|
Requires gcc, enabled if found.])],
|
||||||
found])],
|
|
||||||
[ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
|
[ac_enable_autodepend="${enableval}"],[ac_enable_autodepend=yes])
|
||||||
|
|
||||||
AC_ARG_ENABLE(gtk-deprecation-warnings,
|
AC_ARG_ENABLE(gtk-deprecation-warnings,
|
||||||
|
@ -659,6 +658,18 @@ Check `etc/MACHINES' for recognized configuration names.])
|
||||||
fi
|
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.
|
#### Choose a compiler.
|
||||||
|
|
||||||
dnl Sets GCC=yes if using gcc.
|
dnl Sets GCC=yes if using gcc.
|
||||||
|
@ -1526,27 +1537,16 @@ dnl AC_PROG_MAKE_SET is done by Automake.
|
||||||
DEPFLAGS=
|
DEPFLAGS=
|
||||||
MKDEPDIR=":"
|
MKDEPDIR=":"
|
||||||
deps_frag=deps.mk
|
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
|
if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
|
||||||
AC_MSG_CHECKING([whether we are using GNU Make])
|
AC_MSG_CHECKING([whether gcc understands -MMD -MF])
|
||||||
HAVE_GNU_MAKE=no
|
SAVE_CFLAGS="$CFLAGS"
|
||||||
testval=`${MAKE-make} --version 2>/dev/null | grep 'GNU Make'`
|
CFLAGS="$CFLAGS -MMD -MF deps.d -MP"
|
||||||
if test "x$testval" != x; then
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], , ac_enable_autodepend=no)
|
||||||
HAVE_GNU_MAKE=yes
|
CFLAGS="$SAVE_CFLAGS"
|
||||||
else
|
test -f deps.d || ac_enable_autodepend=no
|
||||||
ac_enable_autodepend=no
|
rm -rf deps.d
|
||||||
fi
|
AC_MSG_RESULT([$ac_enable_autodepend])
|
||||||
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
|
|
||||||
if test $ac_enable_autodepend = yes; then
|
if test $ac_enable_autodepend = yes; then
|
||||||
DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d -MP'
|
DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d -MP'
|
||||||
## MKDIR_P is documented (see AC_PROG_MKDIR_P) to be parallel-safe.
|
## 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
|
* Installation Changes in Emacs 24.5
|
||||||
|
|
||||||
|
+++
|
||||||
|
** Building Emacs now requires GNU make.
|
||||||
|
|
||||||
|
|
||||||
* Startup Changes in Emacs 24.5
|
* 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.
|
This is due to a bug in the bcopy implementation in openSUSE 10.3.
|
||||||
It is/will be fixed in an openSUSE update.
|
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
|
** First execution
|
||||||
|
|
||||||
*** Emacs binary is not in executable format, and cannot be run.
|
*** Emacs binary is not in executable format, and cannot be run.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue