X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/df5b49306e8e82e2f18ed3243700c11ca7835750..c6c2058404759c6133950a4adb2827ab7d2cad3e:/configure.ac diff --git a/configure.ac b/configure.ac index cb97564cad..ea76baf8f8 100644 --- a/configure.ac +++ b/configure.ac @@ -24,6 +24,21 @@ dnl along with GNU Emacs. If not, see . AC_PREREQ(2.65) AC_INIT(emacs, 24.3.50) +if test "x$MSYSTEM" = "xMINGW32" +then + . $srcdir/nt/mingw-cfg.site + + case $srcdir in + /* | ?:*) + # srcdir is an absolute path. In this case, force the format + # "/c/foo/bar", to simplify later conversions to native Windows + # format ("c:/foo/bar") + srcdir=`cd "${srcdir}" && pwd -W` + srcdir="/${srcdir:0:1}${srcdir:2}" + ;; + esac +fi + dnl Set emacs_config_options to the options of 'configure', quoted for the shell, dnl and then quoted again for a C string. Separate options with spaces. dnl Add some environment variables, if they were passed via the environment @@ -63,7 +78,7 @@ for opt in ${1+"$@"} CFLAGS CPPFLAGS LDFLAGS; do optsep=' ' done -AC_CONFIG_HEADER(src/config.h:src/config.in) +AC_CONFIG_HEADERS(src/config.h:src/config.in) AC_CONFIG_SRCDIR(src/lisp.h) AC_CONFIG_AUX_DIR(build-aux) dnl Fairly arbitrary, older versions might work too. @@ -78,8 +93,7 @@ dnl hence the single quotes. This is per the GNU coding standards, see dnl (autoconf) Installation Directory Variables dnl See also epaths.h below. lispdir='${datadir}/emacs/${version}/lisp' -leimdir='${datadir}/emacs/${version}/leim' -standardlisppath='${lispdir}:${leimdir}' +standardlisppath='${lispdir}' locallisppath='${datadir}/emacs/${version}/site-lisp:'\ '${datadir}/emacs/site-lisp' lisppath='${locallisppath}:${standardlisppath}' @@ -93,8 +107,8 @@ AC_ARG_WITH(all, [AS_HELP_STRING([--without-all], [omit almost all features and build small executable with minimal dependencies])], - with_features=$withval, - with_features=yes) + [with_features=$withval], + [with_features=yes]) dnl OPTION_DEFAULT_OFF(NAME, HELP-STRING) dnl Create a new --with option that defaults to being disabled. @@ -419,17 +433,6 @@ AC_ARG_ENABLE(gtk-deprecation-warnings, [Show Gtk+/Gdk deprecation warnings for Gtk+ >= 3.0])], [ac_enable_gtk_deprecation_warnings="${enableval}"],[]) -#### When building with MinGW inside the MSYS tree, 'pwd' produces -#### directories relative to the root of the MSYS tree, -#### e.g. '/home/user/foo' instead of '/d/MSYS/home/user/foo'. When -#### such a value of srcdir is written to the top-level Makefile, it -#### gets propagated to src/epaths.h, and that causes temacs to fail, -#### because, being a MinGW program that knows nothing of MSYS root -#### substitution, it cannot find the data directory. "pwd -W" -#### produces Windows-style 'd:/foo/bar' absolute directory names, so -#### we use it here to countermand that lossage. -test "$MSYSTEM" = "MINGW32" && abs_srcdir=`(cd "$abs_srcdir"; pwd -W | sed -e 's,^\([[A-Za-z]]\):,/\1,')` - ### Canonicalize the configuration name. AC_CANONICAL_HOST @@ -649,6 +652,8 @@ dnl alternative to lib/gnulib.mk, so as to avoid generating header files dnl that clash with MinGW. AM_CONDITIONAL([BUILDING_FOR_WINDOWSNT], [test "x$opsys" = "xmingw32"]) +# Avoid gnulib's tests for -lcrypto, so that there's no static dependency on it. +AC_DEFUN([gl_CRYPTO_CHECK]) # Avoid gnulib's tests for HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW, # as we don't use them. AC_DEFUN([gl_FCNTL_O_FLAGS]) @@ -1692,7 +1697,6 @@ if test "${HAVE_NS}" = yes; then infodir="\${ns_appresdir}/info" mandir="\${ns_appresdir}/man" lispdir="\${ns_appresdir}/lisp" - leimdir="\${ns_appresdir}/leim" INSTALL_ARCH_INDEP_EXTRA= fi @@ -1877,9 +1881,6 @@ to configure.]) fi fi -### We always support menus. -HAVE_MENUS=yes - # Does the opsystem file prohibit the use of the GNU malloc? # Assume not, until told otherwise. GNU_MALLOC=yes @@ -1906,12 +1907,14 @@ case "$opsys" in darwin|sol2-10) system_malloc=yes ;; esac +GMALLOC_OBJ= if test "${system_malloc}" = "yes"; then - AC_DEFINE(SYSTEM_MALLOC, 1, [Define to use system malloc.]) + AC_DEFINE([SYSTEM_MALLOC], 1, + [Define to 1 to use the system memory allocator, even if it is not + Doug Lea style.]) GNU_MALLOC=no GNU_MALLOC_reason=" (The GNU allocators don't work with this system configuration.)" - GMALLOC_OBJ= VMLIMIT_OBJ= else test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o @@ -1940,7 +1943,8 @@ if test "$doug_lea_malloc" = "yes" ; then (Using Doug Lea's new malloc from the GNU C Library.)" fi AC_DEFINE(DOUG_LEA_MALLOC, 1, - [Define to 1 if you are using the GNU C Library.]) + [Define to 1 if the system memory allocator is Doug Lea style, + with malloc hooks and malloc_set_state.]) ## Use mmap directly for allocating larger buffers. ## FIXME this comes from src/s/{gnu,gnu-linux}.h: @@ -2146,6 +2150,10 @@ if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes" || test "${opsys}" = if test $HAVE_RSVG = yes; then AC_DEFINE(HAVE_RSVG, 1, [Define to 1 if using librsvg.]) CFLAGS="$CFLAGS $RSVG_CFLAGS" + # Windows loads librsvg dynamically + if test "${opsys}" = "mingw32"; then + RSVG_LIBS= + fi LIBS="$RSVG_LIBS $LIBS" fi fi @@ -2195,8 +2203,10 @@ if test "${opsys}" != "mingw32"; then gtk_term_header=gtkutil.h USE_GTK_TOOLKIT="GTK3" if test "x$ac_enable_gtk_deprecation_warnings" = x; then - GTK_CFLAGS="$GTK_CFLAGS -DGDK_DISABLE_DEPRECATION_WARNINGS" - GTK_CFLAGS="$GTK_CFLAGS -DGLIB_DISABLE_DEPRECATION_WARNINGS" + AC_DEFINE([GDK_DISABLE_DEPRECATION_WARNINGS], [1], + [Define to 1 to disable GTK+/GDK deprecation warnings.]) + AC_DEFINE([GLIB_DISABLE_DEPRECATION_WARNINGS], [1], + [Define to 1 to disable Glib deprecation warnings.]) fi else check_gtk2=yes @@ -2222,7 +2232,6 @@ fi if test x"$pkg_check_gtk" = xyes; then - AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS" CFLAGS="$CFLAGS $GTK_CFLAGS" @@ -3383,11 +3392,18 @@ getrlimit setrlimit shutdown getaddrinfo \ strsignal setitimer \ sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \ gai_strerror getline getdelim sync \ -difftime posix_memalign \ +difftime \ getpwent endpwent getgrent endgrent \ touchlock \ cfmakeraw cfsetspeed copysign __executable_start log2) +dnl No need to check for aligned_alloc and posix_memalign if using +dnl gmalloc.o, as it supplies them. Don't use these functions on +dnl Darwin as they are incompatible with unexmacosx.c. +if test -z "$GMALLOC_OBJ" && test "$opsys" != darwin; then + AC_CHECK_FUNCS([aligned_alloc posix_memalign], [break]) +fi + ## Eric Backus says, HP-UX 9.x on HP 700 machines ## has a broken `rint' in some library versions including math library ## version number A.09.05. @@ -3836,12 +3852,22 @@ else AC_DEFINE(NULL_DEVICE, ["/dev/null"]) fi -AH_TEMPLATE(SEPCHAR, [Character that separates PATH elements.]) if test "${opsys}" = "mingw32"; then - AC_DEFINE(SEPCHAR, [';']) + SEPCHAR=';' else - AC_DEFINE(SEPCHAR, [':']) -fi + SEPCHAR=':' +fi +AC_DEFINE_UNQUOTED(SEPCHAR, ['$SEPCHAR'], [Character that separates PATH elements.]) +dnl This is for MinGW, and is used in test/automated/Makefile.in. +dnl The MSYS Bash has heuristics for replacing ':' with ';' when it +dnl decides that a command-line argument to be passed to a MinGW program +dnl is a PATH-style list of directories. But that heuristics plays it +dnl safe, and only does the replacement when it is _absolutely_ sure it +dnl sees a colon-separated list of file names; e.g. ":." is left alone, +dnl which breaks in-tree builds. So we do this manually instead. +dnl Note that we cannot rely on PATH_SEPARATOR, as that one will always +dnl be computed as ':' in MSYS Bash. +AC_SUBST(SEPCHAR) dnl Everybody supports this, except MS-DOS. AC_DEFINE(subprocesses, 1, [Define to enable asynchronous subprocesses.]) @@ -4045,7 +4071,7 @@ case $opsys in cygwin ) AC_DEFINE(PTY_ITERATION, [int i; for (i = 0; i < 1; i++)]) dnl multi-line AC_DEFINEs are hard. :( - AC_DEFINE(PTY_OPEN, [ do { int dummy; sigset_t blocked, procmask; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, &procmask); if (-1 == openpty (&fd, &dummy, pty_name, 0, 0)) fd = -1; pthread_sigmask (SIG_SETMASK, &procmask, 0); if (fd >= 0) emacs_close (dummy); } while (0)]) + AC_DEFINE(PTY_OPEN, [ do { int dummy; sigset_t blocked, procmask; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, &procmask); if (-1 == openpty (&fd, &dummy, pty_name, 0, 0)) fd = -1; pthread_sigmask (SIG_SETMASK, &procmask, 0); if (fd >= 0) emacs_close (dummy); } while (false)]) AC_DEFINE(PTY_NAME_SPRINTF, []) AC_DEFINE(PTY_TTY_NAME_SPRINTF, []) ;; @@ -4058,7 +4084,7 @@ case $opsys in dnl Note that openpty may fork via grantpt on Mac OS X 10.4/Darwin 8. dnl But we don't have to block SIGCHLD because it is blocked in the dnl implementation of grantpt. - AC_DEFINE(PTY_OPEN, [ do { int slave; if (openpty (&fd, &slave, pty_name, NULL, NULL) == -1) fd = -1; else emacs_close (slave); } while (0)]) + AC_DEFINE(PTY_OPEN, [ do { int slave; if (openpty (&fd, &slave, pty_name, NULL, NULL) == -1) fd = -1; else emacs_close (slave); } while (false)]) AC_DEFINE(PTY_NAME_SPRINTF, []) AC_DEFINE(PTY_TTY_NAME_SPRINTF, []) ;; @@ -4077,7 +4103,7 @@ case $opsys in AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptyname = 0; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); if (grantpt (fd) != -1 && unlockpt (fd) != -1) ptyname = ptsname(fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (!ptyname) { emacs_close (fd); return -1; } snprintf (pty_name, PTY_NAME_SIZE, "%s", ptyname); }]) dnl if HAVE_POSIX_OPENPT if test "x$ac_cv_func_posix_openpt" = xyes; then - AC_DEFINE(PTY_OPEN, [do { fd = posix_openpt (O_RDWR | O_CLOEXEC | O_NOCTTY); if (fd < 0 && errno == EINVAL) fd = posix_openpt (O_RDWR | O_NOCTTY); } while (0)]) + AC_DEFINE(PTY_OPEN, [do { fd = posix_openpt (O_RDWR | O_CLOEXEC | O_NOCTTY); if (fd < 0 && errno == EINVAL) fd = posix_openpt (O_RDWR | O_NOCTTY); } while (false)]) AC_DEFINE(PTY_NAME_SPRINTF, []) dnl if HAVE_GETPT elif test "x$ac_cv_func_getpt" = xyes; then @@ -4210,7 +4236,7 @@ case $opsys in # error "not ia64" #endif ]], [[]])], AC_DEFINE(GC_MARK_SECONDARY_STACK(), - [do { extern void *__libc_ia64_register_backing_store_base; __builtin_ia64_flushrs (); mark_memory (__libc_ia64_register_backing_store_base, __builtin_ia64_bsp ());} while (0)], + [do { extern void *__libc_ia64_register_backing_store_base; __builtin_ia64_flushrs (); mark_memory (__libc_ia64_register_backing_store_base, __builtin_ia64_bsp ());} while (false)], [Mark a secondary stack, like the register stack on the ia64.]), []) ;; @@ -4489,7 +4515,6 @@ AC_SUBST(libexecdir) AC_SUBST(mandir) AC_SUBST(infodir) AC_SUBST(lispdir) -AC_SUBST(leimdir) AC_SUBST(standardlisppath) AC_SUBST(locallisppath) AC_SUBST(lisppath) @@ -4597,61 +4622,29 @@ AC_SUBST(TOOLKIT_LIBW) if test "${opsys}" != "mingw32"; then if test "$USE_X_TOOLKIT" = "none"; then LIBXT_OTHER="\$(LIBXSM)" - OLDXMENU_TARGET="really-oldXMenu" else LIBXT_OTHER="\$(LIBXMU) -lXt \$(LIBXTR6) -lXext" - OLDXMENU_TARGET="really-lwlib" fi fi AC_SUBST(LIBXT_OTHER) -## The X Menu stuff is present in the X10 distribution, but missing -## from X11. If we have X10, just use the installed library; -## otherwise, use our own copy. if test "${HAVE_X11}" = "yes" ; then AC_DEFINE(HAVE_X11, 1, - [Define to 1 if you want to use version 11 of X windows. - Otherwise, Emacs expects to use version 10.]) - - if test "$USE_X_TOOLKIT" = "none"; then - OLDXMENU="\${oldXMenudir}/libXMenu11.a" - else - OLDXMENU="\${lwlibdir}/liblw.a" - fi - LIBXMENU="\$(OLDXMENU)" + [Define to 1 if you want to use version 11 of X windows.]) LIBX_OTHER="\$(LIBXT) \$(LIBX_EXTRA)" - OLDXMENU_DEPS="\${OLDXMENU} ../src/\${OLDXMENU}" else - ## For a syntactically valid Makefile; not actually used for anything. - ## See comments in src/Makefile.in. - OLDXMENU=nothing - ## FIXME This case (!HAVE_X11 && HAVE_X_WINDOWS) is no longer possible(?). - if test "${HAVE_X_WINDOWS}" = "yes"; then - LIBXMENU="-lXMenu" - else - LIBXMENU= - fi LIBX_OTHER= - OLDXMENU_DEPS= fi +AC_SUBST(LIBX_OTHER) -if test "$HAVE_GTK" = "yes" || test "$HAVE_MENUS" != "yes"; then - OLDXMENU_TARGET= - OLDXMENU=nothing +if test "$HAVE_GTK" = yes || test "$HAVE_X11" != yes; then LIBXMENU= - OLDXMENU_DEPS= +elif test "$USE_X_TOOLKIT" = none; then + LIBXMENU='$(oldXMenudir)/libXMenu11.a' +else + LIBXMENU='$(lwlibdir)/liblw.a' fi - -AC_SUBST(OLDXMENU_TARGET) -AC_SUBST(OLDXMENU) AC_SUBST(LIBXMENU) -AC_SUBST(LIBX_OTHER) -AC_SUBST(OLDXMENU_DEPS) - -if test "${HAVE_MENUS}" = "yes" ; then - AC_DEFINE(HAVE_MENUS, 1, - [Define to 1 if you have mouse menus. (This is supported in all configurations, but the option to specify it remains.)]) -fi if test "${GNU_MALLOC}" = "yes" ; then AC_DEFINE(GNU_MALLOC, 1, @@ -4719,8 +4712,6 @@ LIBS="$LIB_PTHREAD $pre_PKG_CONFIG_LIBS" gl_ASSERT_NO_GNULIB_POSIXCHECK gl_ASSERT_NO_GNULIB_TESTS gl_INIT -gl_STDINT_BITSIZEOF([size_t], [[#include ]]) -AC_CHECK_SIZEOF([size_t]) CFLAGS=$SAVE_CFLAGS LIBS=$SAVE_LIBS @@ -5000,13 +4991,12 @@ if test -f "$srcdir/$opt_makefile.in"; then fi -dnl admin/ may or may not be present. -opt_makefile=admin/unidata/Makefile - -if test -f "$srcdir/$opt_makefile.in"; then - SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile" +dnl The admin/ directory used to be excluded from tarfiles. +if test -d $srcdir/admin; then + SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES admin/unidata/Makefile admin/grammars/Makefile" AC_CONFIG_FILES([admin/unidata/Makefile]) -fi + AC_CONFIG_FILES([admin/grammars/Makefile]) +fi dnl -d admin SUBDIR_MAKEFILES_IN=`echo " ${SUBDIR_MAKEFILES}" | sed -e 's| | $(srcdir)/|g' -e 's|Makefile|Makefile.in|g'`