])dnl
dnl OPTION_DEFAULT_ON(NAME, HELP-STRING)
-dnl Create a new --with option that defaults to $enable_features.
+dnl Create a new --with option that defaults to $with_features.
dnl NAME is the base name of the option. The shell variable with_NAME
dnl will be set either to 'no' (for a plain --without-NAME) or to
dnl 'yes' (if the option is not specified). Note that the shell
[string giving default POP mail host])],
AC_DEFINE_UNQUOTED(MAILHOST, ["$withval"], [String giving fallback POP mail host.]))
-OPTION_DEFAULT_ON([sound],[don't compile with sound support])
+AC_ARG_WITH([sound],[AS_HELP_STRING([--with-sound=VALUE],
+ [compile with sound support (VALUE one of: yes, ossaudio, alsa, no;
+default yes). Only for GNU/Linux, FreeBSD, NetBSD, MinGW.])],
+ [ case "${withval}" in
+ yes|no|ossaudio|alsa) val=$withval ;;
+ *) AC_MSG_ERROR([`--with-sound=$withval' is invalid;
+this option's value should be `yes', `no', `ossaudio', or `alsa'.])
+ ;;
+ esac
+ with_sound=$val
+ ],
+ [with_sound=$with_features])
dnl FIXME currently it is not the last.
dnl This should be the last --with option, because --with-x is
OPTION_DEFAULT_ON([xaw3d],[don't use Xaw3d])
OPTION_DEFAULT_ON([xim],[don't use X11 XIM])
OPTION_DEFAULT_OFF([ns],[use NeXTstep (Cocoa or GNUstep) windowing system])
-OPTION_DEFAULT_OFF([w32], [use native MS Windows GUI])
+OPTION_DEFAULT_OFF([w32], [use native MS Windows GUI in a Cygwin build])
OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console])
OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support])
OPTION_DEFAULT_ON([gconf],[don't compile with GConf support])
OPTION_DEFAULT_ON([gsettings],[don't compile with GSettings support])
OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support])
-OPTION_DEFAULT_ON([acl],[don't compile with ACL support])
OPTION_DEFAULT_ON([gnutls],[don't use -lgnutls for SSL/TLS support])
-OPTION_DEFAULT_ON([inotify],[don't compile with inotify (file-watch) support])
+
+AC_ARG_WITH([file-notification],[AS_HELP_STRING([--with-file-notification=LIB],
+ [use a file notification library (LIB one of: yes, gfile, inotify, w32, no)])],
+ [ case "${withval}" in
+ y | ye | yes ) val=yes ;;
+ n | no ) val=no ;;
+ g | gf | gfi | gfil | gfile ) val=gfile ;;
+ i | in | ino | inot | inoti | inotif | inotify ) val=inotify ;;
+ w | w3 | w32 ) val=w32 ;;
+ * ) AC_MSG_ERROR([`--with-file-notification=$withval' is invalid;
+this option's value should be `yes', `no', `gfile', `inotify' or `w32'.
+`yes' is a synonym for `w32' on MS-Windows, for `no' on Nextstep,
+otherwise for the first of `gfile' or `inotify' that is usable.])
+ ;;
+ esac
+ with_file_notification=$val
+ ],
+ [with_file_notification=$with_features])
## For the times when you want to build Emacs but don't have
## a suitable makeinfo, and can live without the manuals.
fi
fi
-CRT_DIR=
-AC_ARG_WITH([crt-dir],dnl
-[AS_HELP_STRING([--with-crt-dir=DIR],[directory containing crtn.o etc.
-The default is /usr/lib, or /usr/lib64 on some platforms.])])
-CRT_DIR="${with_crt_dir}"
-
AC_ARG_WITH(gameuser,dnl
[AS_HELP_STRING([--with-gameuser=USER],[user for shared game score files])])
test "X${with_gameuser}" != X && test "${with_gameuser}" != yes \
## Make sure CDPATH doesn't affect cd (in case PWD is relative).
unset CDPATH
case "${srcdir}" in
- /* ) ;;
+ [[\\/]]* | ?:[[\\/]]*) ;;
. )
## We may be able to use the $PWD environment variable to make this
## absolute. But sometimes PWD is inaccurate.
opsys=freebsd
;;
+ ## DragonFly ports
+ *-*-dragonfly* )
+ opsys=dragonfly
+ ;;
+
## FreeBSD kernel + glibc based userland
*-*-kfreebsd*gnu* )
opsys=gnu-kfreebsd
## fi
;;
+ ## Cygwin ports
+ *-*-cygwin )
+ opsys=cygwin
+ ;;
+
## HP 9000 series 700 and 800, running HP/UX
hppa*-hp-hpux10.2* )
opsys=hpux10-20
## Intel 386 machines where we don't care about the manufacturer.
i[3456]86-*-* )
case "${canonical}" in
- *-cygwin ) opsys=cygwin ;;
*-darwin* ) opsys=darwin ;;
+ *-mingw32 )
+ opsys=mingw32
+ # MinGW overrides and adds some system headers in nt/inc.
+ GCC_TEST_OPTIONS="-I $srcdir/nt/inc"
+ ;;
*-sysv4.2uw* ) opsys=unixware ;;
*-sysv5uw* ) opsys=unixware ;;
*-sysv5OpenUNIX* ) opsys=unixware ;;
test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
fi
-# Avoid gnulib's tests for O_NOATIME and O_NOFOLLOW, as we don't use them.
+dnl This is used in lib/Makefile.am to use nt/gnulib.mk, the
+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 HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW,
+# as we don't use them.
AC_DEFUN([gl_FCNTL_O_FLAGS])
# Avoid gnulib's threadlib module, as we do threads our own way.
AC_DEFUN([gl_THREADLIB])
dnl Amongst other things, this sets AR and ARFLAGS.
gl_EARLY
-# It's helpful to have C macros available to GDB, so prefer -g3 to -g
-# if -g3 works and the user does not specify CFLAGS.
-# This test must follow gl_EARLY; otherwise AC_LINK_IFELSE complains.
if test "$ac_test_CFLAGS" != set; then
+ # It's helpful to have C macros available to GDB, so prefer -g3 to -g
+ # if -g3 works and the user does not specify CFLAGS.
+ # This test must follow gl_EARLY; otherwise AC_LINK_IFELSE complains.
case $CFLAGS in
'-g')
emacs_g3_CFLAGS='-g3';;
[emacs_cv_prog_cc_g3],
[AC_LINK_IFELSE([AC_LANG_PROGRAM()],
[emacs_cv_prog_cc_g3=yes],
- [emacs_cv_prog_cc_g3=no])])
- if test $emacs_cv_prog_cc_g3 = yes; then
- CFLAGS=$emacs_g3_CFLAGS
- else
+ [emacs_cv_prog_cc_g3=no])])
+ if test $emacs_cv_prog_cc_g3 != yes; then
CFLAGS=$emacs_save_CFLAGS
fi
+ if test $opsys = mingw32; then
+ CFLAGS="$CFLAGS -gdwarf-2"
+ fi
fi
+
+ case $CFLAGS in
+ *-O*) ;;
+ *)
+ # No optimization flag was inferred for this non-GCC compiler.
+ # Try -O. This is needed for xlc on AIX; see Bug#14258.
+ emacs_save_CFLAGS=$CFLAGS
+ test -z "$CFLAGS" || CFLAGS="$CFLAGS "
+ CFLAGS=${CFLAGS}-O
+ AC_CACHE_CHECK([whether $CC accepts -O],
+ [emacs_cv_prog_cc_o],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM()],
+ [emacs_cv_prog_cc_o=yes],
+ [emacs_cv_prog_cc_o=no])])
+ if test $emacs_cv_prog_cc_o != yes; then
+ CFLAGS=$emacs_save_CFLAGS
+ fi ;;
+ esac
fi
AC_ARG_ENABLE([gcc-warnings],
esac
AC_SUBST([WERROR_CFLAGS])
- nw="$nw -Waggregate-return" # anachronistic
- nw="$nw -Wlong-long" # C90 is anachronistic
- nw="$nw -Wc++-compat" # We don't care about C++ compilers
- nw="$nw -Wundef" # Warns on '#if GNULIB_FOO' etc in gnulib
- nw="$nw -Wtraditional" # Warns on #elif which we use often
- nw="$nw -Wcast-qual" # Too many warnings for now
- nw="$nw -Wconversion" # Too many warnings for now
nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings
- nw="$nw -Wsign-conversion" # Too many warnings for now
nw="$nw -Woverlength-strings" # Not a problem these days
- nw="$nw -Wtraditional-conversion" # Too many warnings for now
- nw="$nw -Wunreachable-code" # so buggy that it's now silently ignored
- nw="$nw -Wpadded" # Our structs are not padded
- nw="$nw -Wredundant-decls" # we regularly (re)declare functions
nw="$nw -Wlogical-op" # any use of fwrite provokes this
nw="$nw -Wformat-nonliteral" # we do this a lot
nw="$nw -Wvla" # warnings in gettext.h
nw="$nw -Wnested-externs" # use of XARGMATCH/verify_function__
- nw="$nw -Wswitch-enum" # Too many warnings for now
nw="$nw -Wswitch-default" # Too many warnings for now
- nw="$nw -Wfloat-equal" # warns about high-quality code
nw="$nw -Winline" # OK to ignore 'inline'
nw="$nw -Wjump-misses-init" # We sometimes safely jump over init.
nw="$nw -Wstrict-overflow" # OK to optimize assuming that
# signed overflow has undefined behavior
nw="$nw -Wsync-nand" # irrelevant here, and provokes ObjC warning
nw="$nw -Wunsafe-loop-optimizations" # OK to suppress unsafe optimizations
+ nw="$nw -Wbad-function-cast" # These casts are no worse than others.
# Emacs doesn't care about shadowing; see
# <http://lists.gnu.org/archive/html/emacs-diffs/2011-11/msg00265.html>.
# The following line should be removable at some point.
nw="$nw -Wsuggest-attribute=pure"
+ # clang is unduly picky about some things.
+ AC_CACHE_CHECK([whether the compiler is clang], [emacs_cv_clang],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[
+ #ifndef __clang__
+ #error "not clang"
+ #endif
+ ]])],
+ [emacs_cv_clang=yes],
+ [emacs_cv_clang=no])])
+ if test $emacs_cv_clang = yes; then
+ nw="$nw -Wcast-align"
+ fi
+
gl_MANYWARN_ALL_GCC([ws])
gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
for w in $ws; do
# gcc 4.5.0 20090517.
gl_WARN_ADD([-Wno-logical-op])
+ # More things that clang is unduly picky about.
+ if test $emacs_cv_clang = yes; then
+ gl_WARN_ADD([-Wno-format-extra-args])
+ gl_WARN_ADD([-Wno-tautological-constant-out-of-range-compare])
+ gl_WARN_ADD([-Wno-unused-command-line-argument])
+ gl_WARN_ADD([-Wno-unused-value])
+ fi
+
gl_WARN_ADD([-fdiagnostics-show-option])
gl_WARN_ADD([-funit-at-a-time])
dnl if test "x$RANLIB" = x; then
dnl AC_PROG_RANLIB
dnl fi
-AC_PROG_LN_S
+
+
+dnl Sadly, AC_PROG_LN_S is too restrictive. It also tests whether links
+dnl can be made to directories. This is not relevant for our usage, and
+dnl excludes some cases that work fine for us. Eg MS Windows or files
+dnl hosted on AFS, both examples where simple links work, but links to
+dnl directories fail. We use a cut-down version instead.
+dnl AC_PROG_LN_S
+
+AC_MSG_CHECKING([whether ln -s works for files in the same directory])
+rm -f conf$$ conf$$.file
+
+LN_S_FILEONLY='cp -p'
+
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ LN_S_FILEONLY='ln -s'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ LN_S_FILEONLY=ln
+ fi
+fi
+
+rm -f conf$$ conf$$.file
+
+if test "$LN_S_FILEONLY" = "ln -s"; then
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_RESULT([no, using $LN_S_FILEONLY])
+fi
+
+AC_SUBST(LN_S_FILEONLY)
+
+
+dnl AC_PROG_LN_S sets LN_S to 'cp -pR' for MinGW, on the premise that 'ln'
+dnl doesn't support links to directories, as in "ln file dir". But that
+dnl use is non-portable, and OTOH MinGW wants to use hard links for Emacs
+dnl executables at "make install" time.
+dnl See http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00475.html
+dnl for more details.
+if test "$opsys" = "mingw32"; then
+ LN_S="ln"
+fi
AC_PATH_PROG(INSTALL_INFO, install-info, :,
$PATH$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin)
UNEXEC_OBJ=unexelf.o
case "$opsys" in
# MSDOS uses unexcoff.o
- # MSWindows uses unexw32.o
aix4-2)
UNEXEC_OBJ=unexaix.o
;;
hpux10-20 | hpux11)
UNEXEC_OBJ=unexhp9k800.o
;;
+ mingw32)
+ UNEXEC_OBJ=unexw32.o
+ ;;
sol2-10)
# Use the Solaris dldump() function, called from unexsol.c, to dump
# emacs, instead of the generic ELF dump code found in unexelf.c.
LD_SWITCH_SYSTEM=
case "$opsys" in
- freebsd)
+ freebsd|dragonfly)
## Let `ld' find image libs and similar things in /usr/local/lib.
## The system compiler, GCC, has apparently been modified to not
## look there, contrary to what a stock GCC would do.
;;
openbsd)
- ## Han Boetes <han@mijncomputer.nl> says this is necessary,
+ ## Han Boetes <han@boetes.org> says this is necessary,
## otherwise Emacs dumps core on elf systems.
LD_SWITCH_SYSTEM="-Z"
;;
## additional optimization. --nils@exp-math.uni-essen.de
test "$opsys" = "aix4.2" && test "x$GCC" != "xyes" && \
C_SWITCH_SYSTEM="-ma -qmaxmem=4000"
+test "$opsys" = "mingw32" && C_SWITCH_SYSTEM="-mtune=pentium4"
## gnu-linux might need -D_BSD_SOURCE on old libc5 systems.
## It is redundant in glibc2, since we define _GNU_SOURCE.
AC_SUBST(C_SWITCH_SYSTEM)
## IBM's X11R5 uses -lIM and -liconv in AIX 3.2.2.
aix4-2) LIBS_SYSTEM="-lrts -lIM -liconv" ;;
- freebsd) LIBS_SYSTEM="-lutil" ;;
+ freebsd|dragonfly) LIBS_SYSTEM="-lutil" ;;
hpux*) LIBS_SYSTEM="-l:libdld.sl" ;;
## Motif needs -lgen.
unixware) LIBS_SYSTEM="-lsocket -lnsl -lelf -lgen" ;;
esac
-AC_SUBST(LIBS_SYSTEM)
+AC_SUBST(LIBS_SYSTEM)
### Make sure subsequent tests use flags consistent with the build flags.
LIB_MATH=-lm
-LIB_STANDARD=
-START_FILES=
dnl Current possibilities handled by sed (aix4-2 -> aix,
dnl gnu-linux -> gnu/linux, etc.):
dnl gnu, gnu/linux, gnu/kfreebsd, aix, cygwin, darwin, hpux, irix.
dnl And special cases: berkeley-unix, usg-unix-v, ms-dos, windows-nt.
SYSTEM_TYPE=`echo $opsys | sed -e 's/[[0-9]].*//' -e 's|-|/|'`
-dnl NB do not use CRT_DIR unquoted here, since it might not be set yet.
case $opsys in
cygwin )
LIB_MATH=
- START_FILES='pre-crt0.o'
;;
darwin )
## Adding -lm confuses the dynamic linker, so omit it.
LIB_MATH=
- START_FILES='pre-crt0.o'
;;
- freebsd )
- LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtn.o'
- START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o'
+ freebsd | dragonfly )
SYSTEM_TYPE=berkeley-unix
;;
gnu-linux | gnu-kfreebsd )
- LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtn.o'
- START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o'
;;
hpux10-20 | hpux11 )
- LIB_STANDARD=-lc
- START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o'
+ ;;
+ mingw32 )
+ LIB_MATH=
+ SYSTEM_TYPE=windows-nt
;;
dnl NB this may be adjusted below.
netbsd | openbsd )
- LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o'
- START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crtbegin.o'
SYSTEM_TYPE=berkeley-unix
;;
esac
AC_SUBST(LIB_MATH)
-AC_SUBST(START_FILES)
AC_DEFINE_UNQUOTED(SYSTEM_TYPE, "$SYSTEM_TYPE",
[The type of system you are compiling for; sets `system-type'.])
-dnl Not all platforms use crtn.o files. Check if the current one does.
-crt_files=
-
-for file in x $LIB_STANDARD $START_FILES; do
- case "$file" in
- *CRT_DIR*) crt_files="$crt_files `echo $file | sed -e 's|.*/||'`" ;;
- esac
-done
-
-if test "x$crt_files" != x; then
-
- ## If user specified a crt-dir, use that unconditionally.
- crt_gcc=no
-
- if test "X$CRT_DIR" = "X"; then
-
- CRT_DIR=/usr/lib # default
-
- case "$canonical" in
- x86_64-*-linux-gnu* | s390x-*-linux-gnu*)
- ## On x86-64 and s390x GNU/Linux distributions, the standard library
- ## can be in a variety of places. We only try /usr/lib64 and /usr/lib.
- ## For anything else (eg /usr/lib32), it is up the user to specify
- ## the location (bug#5655).
- ## Test for crtn.o, not just the directory, because sometimes the
- ## directory exists but does not have the relevant files (bug#1287).
- ## FIXME better to test for binary compatibility somehow.
- test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64
- ;;
-
- powerpc64-*-linux-gnu* | sparc64-*-linux-gnu*) CRT_DIR=/usr/lib64 ;;
- esac
-
- case "$opsys" in
- hpux10-20) CRT_DIR=/lib ;;
- esac
-
- test "x${GCC}" = xyes && crt_gcc=yes
-
- fi # CRT_DIR = ""
-
- crt_missing=
-
- for file in $crt_files; do
-
- ## If we're using gcc, try to determine it automatically by asking
- ## gcc. [If this doesn't work, CRT_DIR will remain at the
- ## system-dependent default from above.]
- if test $crt_gcc = yes && test ! -e $CRT_DIR/$file; then
-
- crt_file=`$CC --print-file-name=$file 2>/dev/null`
- case "$crt_file" in
- */*)
- CRT_DIR=`AS_DIRNAME(["$crt_file"])`
- ;;
- esac
- fi
-
- dnl We expect all the files to be in a single directory, so after the
- dnl first there is no point asking gcc.
- crt_gcc=no
-
- test -e $CRT_DIR/$file || crt_missing="$crt_missing $file"
- done # $crt_files
-
- test "x$crt_missing" = x || \
- AC_MSG_ERROR([Required file(s) not found:$crt_missing
-Try using the --with-crt-dir option.])
-
-fi # crt_files != ""
-
-AC_SUBST(CRT_DIR)
-
-case $opsys in
- netbsd | openbsd )
- if test -f $CRT_DIR/crti.o; then
-
- test -f $CRT_DIR/crtn.o || \
- AC_MSG_ERROR([Required file not found: crtn.o])
-
- LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
- START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
- fi
- ;;
-esac
-
pre_PKG_CONFIG_CFLAGS=$CFLAGS
pre_PKG_CONFIG_LIBS=$LIBS
fi
])
-
+HAVE_SOUND=no
if test "${with_sound}" != "no"; then
- # Sound support for GNU/Linux and the free BSDs.
- AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h,
- have_sound_header=yes)
- # Emulation library used on NetBSD.
- AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=)
+ # Sound support for GNU/Linux, the free BSDs, and MinGW.
+ AC_CHECK_HEADERS([machine/soundcard.h sys/soundcard.h soundcard.h],
+ have_sound_header=yes, [], [
+ #ifdef __MINGW32__
+ #define WIN32_LEAN_AND_MEAN
+ #include <windows.h>
+ #endif
+ ])
+ if test "${with_sound}" = "ossaudio" || test "${with_sound}" = "yes"; then
+ # Emulation library used on NetBSD.
+ AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=)
+ test "${with_sound}" = "ossaudio" && test -z "$LIBSOUND" && \
+ AC_MSG_ERROR([ossaudio sound support requested but not found.])
+ dnl FIXME? If we did find ossaudio, should we set with_sound=ossaudio?
+ dnl Traditionally, we go on to check for alsa too. Does that make sense?
+ fi
AC_SUBST(LIBSOUND)
- ALSA_REQUIRED=1.0.0
- ALSA_MODULES="alsa >= $ALSA_REQUIRED"
- PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no)
- if test $HAVE_ALSA = yes; then
- SAVE_CFLAGS="$CFLAGS"
- SAVE_LIBS="$LIBS"
- CFLAGS="$ALSA_CFLAGS $CFLAGS"
- LIBS="$ALSA_LIBS $LIBS"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <asoundlib.h>]], [[snd_lib_error_set_handler (0);]])],
- emacs_alsa_normal=yes,
- emacs_alsa_normal=no)
- if test "$emacs_alsa_normal" != yes; then
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <alsa/asoundlib.h>]],
- [[snd_lib_error_set_handler (0);]])],
- emacs_alsa_subdir=yes,
- emacs_alsa_subdir=no)
- if test "$emacs_alsa_subdir" != yes; then
- AC_MSG_ERROR([pkg-config found alsa, but it does not compile. See config.log for error messages.])
+ if test "${with_sound}" = "alsa" || test "${with_sound}" = "yes"; then
+ ALSA_REQUIRED=1.0.0
+ ALSA_MODULES="alsa >= $ALSA_REQUIRED"
+ PKG_CHECK_MODULES(ALSA, $ALSA_MODULES, HAVE_ALSA=yes, HAVE_ALSA=no)
+ if test $HAVE_ALSA = yes; then
+ SAVE_CFLAGS="$CFLAGS"
+ SAVE_LIBS="$LIBS"
+ CFLAGS="$ALSA_CFLAGS $CFLAGS"
+ LIBS="$ALSA_LIBS $LIBS"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <asoundlib.h>]], [[snd_lib_error_set_handler (0);]])],
+ emacs_alsa_normal=yes,
+ emacs_alsa_normal=no)
+ if test "$emacs_alsa_normal" != yes; then
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <alsa/asoundlib.h>]],
+ [[snd_lib_error_set_handler (0);]])],
+ emacs_alsa_subdir=yes,
+ emacs_alsa_subdir=no)
+ if test "$emacs_alsa_subdir" != yes; then
+ AC_MSG_ERROR([pkg-config found alsa, but it does not compile. See config.log for error messages.])
+ fi
+ ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
fi
- ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
- fi
- CFLAGS="$SAVE_CFLAGS"
- LIBS="$SAVE_LIBS"
- LIBSOUND="$LIBSOUND $ALSA_LIBS"
- CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
- AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.])
- fi
+ CFLAGS="$SAVE_CFLAGS"
+ LIBS="$SAVE_LIBS"
+ LIBSOUND="$LIBSOUND $ALSA_LIBS"
+ CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
+ AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.])
+ elif test "${with_sound}" = "alsa"; then
+ AC_MSG_ERROR([ALSA sound support requested but not found.])
+ fi
+ fi dnl with_sound = alsa|yes
dnl Define HAVE_SOUND if we have sound support. We know it works and
dnl compiles only on the specified platforms. For others, it
dnl probably doesn't make sense to try.
+ dnl FIXME So surely we should bypass this whole section if not using
+ dnl one of these platforms?
if test x$have_sound_header = xyes || test $HAVE_ALSA = yes; then
case "$opsys" in
dnl defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
- gnu-linux|freebsd|netbsd)
+ dnl Adjust the --with-sound help text if you change this.
+ gnu-linux|freebsd|netbsd|mingw32)
AC_DEFINE(HAVE_SOUND, 1, [Define to 1 if you have sound support.])
+ HAVE_SOUND=yes
;;
esac
fi
dnl checks for header files
AC_CHECK_HEADERS_ONCE(
- linux/version.h sys/systeminfo.h
+ sys/systeminfo.h
coff.h pty.h
- sys/vlimit.h sys/resource.h
+ sys/resource.h
sys/utsname.h pwd.h utmp.h util.h)
AC_MSG_CHECKING(if personality LINUX32 can be set)
# For Tru64, at least:
AC_CHECK_DECLS([__sys_siglist], [], [], [[#include <signal.h>
]])
- if test $ac_cv_have_decl___sys_siglist = yes; then
- AC_DEFINE(sys_siglist, __sys_siglist,
- [Define to any substitute for sys_siglist.])
- fi
fi
AC_HEADER_SYS_WAIT
-dnl Check for speed_t typedef.
-AC_CACHE_CHECK(for speed_t, emacs_cv_speed_t,
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <termios.h>]], [[speed_t x = 1;]])],
- emacs_cv_speed_t=yes, emacs_cv_speed_t=no)])
-if test $emacs_cv_speed_t = yes; then
- AC_DEFINE(HAVE_SPEED_T, 1,
- [Define to 1 if `speed_t' is declared by <termios.h>.])
-fi
-
AC_CHECK_HEADERS_ONCE(sys/socket.h)
AC_CHECK_HEADERS(net/if.h, , , [AC_INCLUDES_DEFAULT
#if HAVE_SYS_SOCKET_H
CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES}"
LIBS_GNUSTEP="-lgnustep-gui -lgnustep-base -lobjc -lpthread"
- LIB_STANDARD=
- START_FILES=
dnl GNUstep defines BASE_NATIVE_OBJC_EXCEPTIONS to 0 or 1.
dnl If they had chosen to either define it or not, we could have
dnl just used AC_CHECK_DECL here.
AC_SUBST(ns_self_contained)
AC_SUBST(NS_OBJ)
AC_SUBST(NS_OBJC_OBJ)
-AC_SUBST(LIB_STANDARD)
HAVE_W32=no
W32_OBJ=
W32_LIBS=
-W32_RES=
+EMACSRES=
+CLIENTRES=
+CLIENTW=
W32_RES_LINK=
+EMACS_MANIFEST=
+UPDATE_MANIFEST=
if test "${with_w32}" != no; then
- if test "${opsys}" != "cygwin"; then
- AC_MSG_ERROR([Using w32 with an autotools build is only supported for Cygwin.])
+ case "${opsys}" in
+ cygwin)
+ AC_CHECK_HEADER([windows.h], [HAVE_W32=yes],
+ [AC_MSG_ERROR([`--with-w32' was specified, but windows.h
+ cannot be found.])])
+ ;;
+ mingw32)
+ ## Using --with-w32 with MinGW is a no-op, but we allow it.
+ ;;
+ *)
+ AC_MSG_ERROR([Using w32 with an autotools build is only supported for Cygwin and MinGW32.])
+ ;;
+ esac
+fi
+
+if test "${opsys}" = "mingw32"; then
+ AC_MSG_CHECKING([whether Windows API headers are recent enough])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include <windows.h>
+ #include <usp10.h>]],
+ [[PIMAGE_NT_HEADERS pHeader;
+ PIMAGE_SECTION_HEADER pSection = IMAGE_FIRST_SECTION(pHeader)]])],
+ [emacs_cv_w32api=yes
+ HAVE_W32=yes],
+ emacs_cv_w32api=no)
+ AC_MSG_RESULT($emacs_cv_w32api)
+ if test "${emacs_cv_w32api}" = "no"; then
+ AC_MSG_ERROR([the Windows API headers are too old to support this build.])
fi
- AC_CHECK_HEADER([windows.h], [HAVE_W32=yes],
- [AC_MSG_ERROR([`--with-w32' was specified, but windows.h
- cannot be found.])])
+fi
+
+FIRSTFILE_OBJ=
+NTDIR=
+LIBS_ECLIENT=
+LIB_WSOCK32=
+NTLIB=
+CM_OBJ="cm.o"
+XARGS_LIMIT=
+if test "${HAVE_W32}" = "yes"; then
AC_DEFINE(HAVE_NTGUI, 1, [Define to use native MS Windows GUI.])
AC_CHECK_TOOL(WINDRES, [windres],
[AC_MSG_ERROR([No resource compiler found.])])
W32_OBJ="w32fns.o w32menu.o w32reg.o w32font.o w32term.o"
W32_OBJ="$W32_OBJ w32xfns.o w32select.o w32uniscribe.o"
- W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32"
- W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool"
- W32_RES="emacs.res"
- # Tell the linker that emacs.res is an object (which we compile from
- # the rc file), not a linker script.
- W32_RES_LINK="-Wl,-bpe-i386 -Wl,emacs.res"
+ EMACSRES="emacs.res"
+ case "$canonical" in
+ x86_64-*-*) EMACS_MANIFEST="emacs-x64.manifest" ;;
+ *) EMACS_MANIFEST="emacs-x86.manifest" ;;
+ esac
+ UPDATE_MANIFEST=update-game-score.exe.manifest
+ if test "${opsys}" = "cygwin"; then
+ W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32"
+ W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool"
+ # Tell the linker that emacs.res is an object (which we compile from
+ # the rc file), not a linker script.
+ W32_RES_LINK="-Wl,emacs.res"
+ else
+ W32_OBJ="$W32_OBJ w32.o w32console.o w32heap.o w32inevt.o w32proc.o"
+ W32_LIBS="$W32_LIBS -lwinmm -lgdi32 -lcomdlg32"
+ W32_LIBS="$W32_LIBS -lmpr -lwinspool -lole32 -lcomctl32 -lusp10"
+ W32_RES_LINK="\$(EMACSRES)"
+ CLIENTRES="emacsclient.res"
+ CLIENTW="emacsclientw\$(EXEEXT)"
+ FIRSTFILE_OBJ=firstfile.o
+ NTDIR=nt
+ CM_OBJ=
+ LIBS_ECLIENT="-lcomctl32"
+ LIB_WSOCK32="-lwsock32"
+ NTLIB="ntlib.$ac_objext"
+ XARGS_LIMIT="-s 10000"
+ fi
fi
AC_SUBST(W32_OBJ)
AC_SUBST(W32_LIBS)
-AC_SUBST(W32_RES)
+AC_SUBST(EMACSRES)
+AC_SUBST(EMACS_MANIFEST)
+AC_SUBST(UPDATE_MANIFEST)
+AC_SUBST(CLIENTRES)
+AC_SUBST(CLIENTW)
AC_SUBST(W32_RES_LINK)
+AC_SUBST(FIRSTFILE_OBJ)
+AC_SUBST(NTDIR)
+AC_SUBST(CM_OBJ)
+AC_SUBST(LIBS_ECLIENT)
+AC_SUBST(LIB_WSOCK32)
+AC_SUBST(NTLIB)
+AC_SUBST(XARGS_LIMIT)
if test "${HAVE_W32}" = "yes"; then
window_system=w32
;;
esac
-if test -n "${term_header}"; then
- AC_DEFINE_UNQUOTED(TERM_HEADER, "${term_header}",
- [Define to the header for the built-in window system.])
-fi
-
if test "$window_system" = none && test "X$with_x" != "Xno"; then
AC_CHECK_PROG(HAVE_XSERVER, X, true, false)
if test "$HAVE_XSERVER" = true ||
else
test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o
VMLIMIT_OBJ=vm-limit.o
+
+ AC_CHECK_HEADERS([sys/vlimit.h])
+ AC_CACHE_CHECK([for data_start], [emacs_cv_data_start],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[extern char data_start[]; char ch;]],
+ [[return data_start < &ch;]])],
+ [emacs_cv_data_start=yes],
+ [emacs_cv_data_start=no])])
+ if test $emacs_cv_data_start = yes; then
+ AC_DEFINE([HAVE_DATA_START], 1,
+ [Define to 1 if data_start is the address of the start
+ of the main data segment.])
+ fi
fi
AC_SUBST(GMALLOC_OBJ)
AC_SUBST(VMLIMIT_OBJ)
LIBS="$LIBS_SYSTEM $LIBS"
-dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
-dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
+dnl If found, this adds -ldnet to LIBS, which Autoconf uses for checks.
AC_CHECK_LIB(dnet, dnet_ntoa)
dnl This causes -lresolv to get used in subsequent tests,
dnl which causes failures on some systems such as HPUX 9.
emacs_xkb=yes, emacs_xkb=no)
AC_MSG_RESULT($emacs_xkb)
if test $emacs_xkb = yes; then
- AC_DEFINE(HAVE_XKBGETKEYBOARD, 1, [Define to 1 if you have the XkbGetKeyboard function.])
+ AC_DEFINE(HAVE_XKB, 1, [Define to 1 if you have the Xkb extension.])
fi
AC_CHECK_FUNCS(XrmSetDatabase XScreenResourceString \
### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
HAVE_RSVG=no
-if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes"; then
+if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes" || test "${opsys}" = "mingw32"; then
if test "${with_rsvg}" != "no"; then
RSVG_REQUIRED=2.11.0
RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
fi
HAVE_IMAGEMAGICK=no
-if test "${HAVE_X11}" = "yes"; then
+if test "${HAVE_X11}" = "yes" || test "${HAVE_NS}" = "yes"; then
if test "${with_imagemagick}" != "no"; then
## 6.2.8 is the earliest version known to work, but earlier versions
## might work - let us know if you find one.
## 6.0.7 does not work. See bug#7955.
- IMAGEMAGICK_MODULE="Wand >= 6.2.8"
+ ## 6.8.2 makes Emacs crash; see Bug#13867.
+ IMAGEMAGICK_MODULE="Wand >= 6.2.8 Wand != 6.8.2"
PKG_CHECK_MODULES(IMAGEMAGICK, $IMAGEMAGICK_MODULE, HAVE_IMAGEMAGICK=yes, :)
AC_SUBST(IMAGEMAGICK_CFLAGS)
AC_SUBST(IMAGEMAGICK_LIBS)
HAVE_GTK=no
GTK_OBJ=
+gtk_term_header=$term_header
check_gtk2=no
gtk3_pkg_errors=
-if test "${with_gtk3}" = "yes" || test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
- GLIB_REQUIRED=2.28
- GTK_REQUIRED=3.0
- GTK_MODULES="gtk+-3.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
-
- dnl Checks for libraries.
- PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
- if test "$pkg_check_gtk" = "no" && test "$with_gtk3" = "yes"; then
- AC_MSG_ERROR($GTK_PKG_ERRORS)
- fi
- if test "$pkg_check_gtk" = "yes"; then
- AC_DEFINE(HAVE_GTK3, 1, [Define to 1 if using GTK 3 or later.])
- GTK_OBJ=emacsgtkfixed.o
- 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"
- fi
- else
- check_gtk2=yes
- gtk3_pkg_errors="$GTK_PKG_ERRORS "
+if test "${opsys}" != "mingw32"; then
+ if test "${with_gtk3}" = "yes" || test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
+ GLIB_REQUIRED=2.28
+ GTK_REQUIRED=3.0
+ GTK_MODULES="gtk+-3.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
+
+ dnl Checks for libraries.
+ PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
+ if test "$pkg_check_gtk" = "no" && test "$with_gtk3" = "yes"; then
+ AC_MSG_ERROR($GTK_PKG_ERRORS)
+ fi
+ if test "$pkg_check_gtk" = "yes"; then
+ AC_DEFINE(HAVE_GTK3, 1, [Define to 1 if using GTK 3 or later.])
+ GTK_OBJ=emacsgtkfixed.o
+ 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"
+ fi
+ else
+ check_gtk2=yes
+ gtk3_pkg_errors="$GTK_PKG_ERRORS "
+ fi
fi
-fi
-if test "${with_gtk2}" = "yes" || test "$check_gtk2" = "yes"; then
- GLIB_REQUIRED=2.10
- GTK_REQUIRED=2.10
- GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
+ if test "${with_gtk2}" = "yes" || test "$check_gtk2" = "yes"; then
+ GLIB_REQUIRED=2.10
+ GTK_REQUIRED=2.10
+ GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
- dnl Checks for libraries.
- PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
- if test "$pkg_check_gtk" = "no" &&
- { test "$with_gtk" = yes || test "$with_gtk2" = "yes"; }
- then
- AC_MSG_ERROR($gtk3_pkg_errors$GTK_PKG_ERRORS)
+ dnl Checks for libraries.
+ PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
+ if test "$pkg_check_gtk" = "no" &&
+ { test "$with_gtk" = yes || test "$with_gtk2" = "yes"; }
+ then
+ AC_MSG_ERROR($gtk3_pkg_errors$GTK_PKG_ERRORS)
+ fi
+ test "$pkg_check_gtk" = "yes" && USE_GTK_TOOLKIT="GTK2"
fi
- test "$pkg_check_gtk" = "yes" && USE_GTK_TOOLKIT="GTK2"
fi
if test x"$pkg_check_gtk" = xyes; then
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$GTK_LIBS $LIBS"
dnl Try to compile a simple GTK program.
+ AC_MSG_CHECKING([whether GTK compiles])
GTK_COMPILES=no
- AC_CHECK_FUNCS(gtk_main, GTK_COMPILES=yes)
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[/* Check the Gtk and Glib APIs. */
+ #include <gtk/gtk.h>
+ #include <glib-object.h>
+ static void
+ callback (GObject *go, GParamSpec *spec, gpointer user_data)
+ {}
+ ]],
+ [[
+ GtkSettings *gs = 0;
+ /* Use G_CALLBACK to make sure function pointers can be cast to void *;
+ strict C prohibits this. Use gtk_main_iteration to test that the
+ libraries are there. */
+ if (g_signal_handler_find (G_OBJECT (gs), G_SIGNAL_MATCH_FUNC,
+ 0, 0, 0, G_CALLBACK (callback), 0))
+ gtk_main_iteration ();
+ ]])],
+ [GTK_COMPILES=yes])
+ AC_MSG_RESULT([$GTK_COMPILES])
if test "${GTK_COMPILES}" != "yes"; then
+ GTK_OBJ=
if test "$USE_X_TOOLKIT" != "maybe"; then
AC_MSG_ERROR([Gtk+ wanted, but it does not compile, see config.log. Maybe some x11-devel files missing?]);
fi
HAVE_GTK=yes
AC_DEFINE(USE_GTK, 1, [Define to 1 if using GTK.])
GTK_OBJ="gtkutil.o $GTK_OBJ"
+ term_header=$gtk_term_header
USE_X_TOOLKIT=none
if "$PKG_CONFIG" --atleast-version=2.10 gtk+-2.0; then
:
AC_SUBST(LIBSELINUX_LIBS)
HAVE_GNUTLS=no
-HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY=no
if test "${with_gnutls}" = "yes" ; then
PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.6.6], HAVE_GNUTLS=yes, HAVE_GNUTLS=no)
if test "${HAVE_GNUTLS}" = "yes"; then
AC_DEFINE(HAVE_GNUTLS, 1, [Define if using GnuTLS.])
fi
- CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS"
- LIBS="$LIBGNUTLS_LIBS $LIBS"
- AC_CHECK_FUNCS(gnutls_certificate_set_verify_function, HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY=yes)
-
- if test "${HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY}" = "yes"; then
- AC_DEFINE(HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY, 1, [Define if using GnuTLS certificate verification callbacks.])
+ # Windows loads GnuTLS dynamically
+ if test "${opsys}" = "mingw32"; then
+ LIBGNUTLS_LIBS=
+ else
+ CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS"
+ LIBS="$LIBGNUTLS_LIBS $LIBS"
fi
fi
AC_SUBST(LIBGNUTLS_LIBS)
AC_SUBST(LIBGNUTLS_CFLAGS)
-dnl inotify is only available on GNU/Linux.
-if test "${with_inotify}" = "yes"; then
- AC_CHECK_HEADERS(sys/inotify.h)
- if test "$ac_cv_header_sys_inotify_h" = yes ; then
- AC_CHECK_FUNC(inotify_init1)
- fi
-fi
-if test "$ac_cv_func_inotify_init1" = yes; then
- AC_DEFINE(HAVE_INOTIFY, 1, [Define to 1 to use inotify.])
+NOTIFY_OBJ=
+NOTIFY_SUMMARY=no
+
+dnl FIXME? Don't auto-detect on NS, but do allow someone to specify
+dnl a particular library. This doesn't make much sense?
+if test "${with_ns}" = yes && test ${with_file_notification} = yes; then
+ with_file_notification=no
fi
-dnl POSIX ACL support: provided by libacl on GNU/Linux, by libc on FreeBSD.
-HAVE_POSIX_ACL=no
-LIBACL_LIBS=
-if test "${with_acl}" = "yes"; then
- AC_CHECK_LIB([acl], [acl_set_file], HAVE_POSIX_ACL=yes, HAVE_POSIX_ACL=no)
- if test "$HAVE_POSIX_ACL" = yes; then
- AC_DEFINE(HAVE_POSIX_ACL, 1, [Define to 1 if using POSIX ACL support.])
- LIBACL_LIBS=-lacl
- else
- AC_CHECK_FUNC(acl_set_file, HAVE_POSIX_ACL=yes, HAVE_POSIX_ACL=no)
- if test "$HAVE_POSIX_ACL" = yes; then
- AC_DEFINE(HAVE_POSIX_ACL, 1, [Define to 1 if using POSIX ACL support.])
- fi
- fi
+dnl MS Windows native file monitor is available for mingw32 only.
+case $with_file_notification,$opsys in
+ w32,* | yes,mingw32)
+ AC_CHECK_HEADER(windows.h)
+ if test "$ac_cv_header_windows_h" = yes ; then
+ AC_DEFINE(HAVE_W32NOTIFY, 1, [Define to 1 to use w32notify.])
+ NOTIFY_OBJ=w32notify.o
+ NOTIFY_SUMMARY="yes (w32)"
+ fi ;;
+esac
+
+dnl g_file_monitor exists since glib 2.18. G_FILE_MONITOR_EVENT_MOVED
+dnl has been added in glib 2.24. It has been tested under
+dnl GNU/Linux only. We take precedence over inotify, but this makes
+dnl only sense when glib has been compiled with inotify support. How
+dnl to check?
+case $with_file_notification,$NOTIFY_OBJ in
+ gfile, | yes,)
+ PKG_CHECK_MODULES(GFILENOTIFY, gio-2.0 >= 2.24, HAVE_GFILENOTIFY=yes, HAVE_GFILENOTIFY=no)
+ if test "$HAVE_GFILENOTIFY" = "yes"; then
+ AC_DEFINE(HAVE_GFILENOTIFY, 1, [Define to 1 if using GFile.])
+ NOTIFY_OBJ=gfilenotify.o
+ NOTIFY_SUMMARY="yes -lgio (gfile)"
+ fi ;;
+esac
+
+dnl inotify is only available on GNU/Linux.
+case $with_file_notification,$NOTIFY_OBJ in
+ inotify, | yes,)
+ AC_CHECK_HEADER(sys/inotify.h)
+ if test "$ac_cv_header_sys_inotify_h" = yes ; then
+ AC_CHECK_FUNC(inotify_init1)
+ if test "$ac_cv_func_inotify_init1" = yes; then
+ AC_DEFINE(HAVE_INOTIFY, 1, [Define to 1 to use inotify.])
+ NOTIFY_OBJ=inotify.o
+ NOTIFY_SUMMARY="yes -lglibc (inotify)"
+ fi
+ fi ;;
+esac
+
+case $with_file_notification,$NOTIFY_OBJ in
+ yes,* | no,* | *,?*) ;;
+ *) AC_MSG_ERROR([File notification `$with_file_notification' requested but requirements not found.]) ;;
+esac
+
+if test -n "$NOTIFY_OBJ"; then
+ AC_DEFINE(USE_FILE_NOTIFY, 1, [Define to 1 if using file notifications.])
fi
-AC_SUBST(LIBACL_LIBS)
+AC_SUBST(NOTIFY_OBJ)
+AC_SUBST(GFILENOTIFY_CFLAGS)
+AC_SUBST(GFILENOTIFY_LIBS)
dnl Do not put whitespace before the #include statements below.
dnl Older compilers (eg sunos4 cc) choke on it.
hpux* | aix4-2 )
test "X$ac_cv_lib_Xmu_XmuConvertStandardSelection" != "Xyes" && LIBXMU=
;;
+ mingw32 )
+ LIBXMU=
+ ;;
esac
AC_SUBST(LIBXMU)
XFT_LIBS="-lXrender $XFT_LIBS"
LIBS="$XFT_LIBS $LIBS"
AC_CHECK_HEADER(X11/Xft/Xft.h,
- AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS))
+ AC_CHECK_LIB(Xft, XftFontOpen, HAVE_XFT=yes, , $XFT_LIBS) , ,
+ [[#include <X11/X.h>]])
if test "${HAVE_XFT}" = "yes"; then
AC_DEFINE(HAVE_XFT, 1, [Define to 1 if you have the Xft library.])
AC_SUBST(M17N_FLT_LIBS)
### Use -lXpm if available, unless `--with-xpm=no'.
+### mingw32 doesn't use -lXpm, since it loads the library dynamically.
HAVE_XPM=no
LIBXPM=
-
-if test "${HAVE_W32}" = "yes"; then
+if test "${HAVE_W32}" = "yes" && test "${opsys}" = "cygwin"; then
if test "${with_xpm}" != "no"; then
SAVE_CPPFLAGS="$CPPFLAGS"
SAVE_LDFLAGS="$LDFLAGS"
fi
fi
+### FIXME: Perhaps regroup to minimize code duplication due to MinGW's
+### slightly different requirements wrt image libraries (it doesn't
+### use -lXpm because it loads the xpm shared library dynamically at
+### run time).
+if test "${opsys}" = "mingw32"; then
+ if test "${with_xpm}" != "no"; then
+ AC_CHECK_HEADER(X11/xpm.h, HAVE_XPM=yes, HAVE_XPM=no, [
+#define FOR_MSW 1])
+ fi
+
+ if test "${HAVE_XPM}" = "yes"; then
+ AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm library (-lXpm).])
+ fi
+fi
+
AC_SUBST(LIBXPM)
### Use -ljpeg if available, unless `--with-jpeg=no'.
+### mingw32 doesn't use -ljpeg, since it loads the library dynamically.
HAVE_JPEG=no
LIBJPEG=
-if test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
+if test "${opsys}" = "mingw32"; then
if test "${with_jpeg}" != "no"; then
dnl Checking for jpeglib.h can lose because of a redefinition of
- dnl HAVE_STDLIB_H.
- AC_CHECK_HEADER(jerror.h,
- [AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)])
+ dnl HAVE_STDLIB_H.
+ AC_CHECK_HEADER(jerror.h, HAVE_JPEG=yes, HAVE_JPEG=no)
fi
-
AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
if test "${HAVE_JPEG}" = "yes"; then
AC_DEFINE(HAVE_JPEG)
[AC_MSG_WARN([libjpeg found, but not version 6b or later])
HAVE_JPEG=no])
fi
+elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
+ if test "${with_jpeg}" != "no"; then
+ dnl Checking for jpeglib.h can lose because of a redefinition of
+ dnl HAVE_STDLIB_H.
+ AC_CHECK_HEADER(jerror.h,
+ [AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)])
+ fi
+
+ AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
+ if test "${HAVE_JPEG}" = "yes"; then
+ AC_DEFINE(HAVE_JPEG)
+ AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
+ [#include <jpeglib.h>
+ version=JPEG_LIB_VERSION
+],
+ [AC_DEFINE(HAVE_JPEG)],
+ [AC_MSG_WARN([libjpeg found, but not version 6b or later])
+ HAVE_JPEG=no])
+ fi
if test "${HAVE_JPEG}" = "yes"; then
LIBJPEG=-ljpeg
fi
AC_SUBST(LIBJPEG)
### Use -lpng if available, unless `--with-png=no'.
+### mingw32 doesn't use -lpng, since it loads the library dynamically.
HAVE_PNG=no
LIBPNG=
-if test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
+if test "${opsys}" = "mingw32"; then
+ if test "${with_png}" != "no"; then
+ AC_CHECK_HEADER(png.h, HAVE_PNG=yes, HAVE_PNG=no)
+ fi
+ if test "${HAVE_PNG}" = "yes"; then
+ AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
+
+ AC_CHECK_DECL(png_longjmp,
+ [],
+ [AC_DEFINE(PNG_DEPSTRUCT, [],
+ [Define to empty to suppress deprecation warnings when building
+ with --enable-gcc-warnings and with libpng versions before 1.5,
+ which lack png_longjmp.])],
+ [[#ifdef HAVE_LIBPNG_PNG_H
+ # include <libpng/png.h>
+ #else
+ # include <png.h>
+ #endif
+ ]])
+ fi
+elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
if test "${with_png}" != "no"; then
# Debian unstable as of July 2003 has multiple libpngs, and puts png.h
# in /usr/include/libpng.
AC_SUBST(LIBPNG)
### Use -ltiff if available, unless `--with-tiff=no'.
+### mingw32 doesn't use -ltiff, since it loads the library dynamically.
HAVE_TIFF=no
LIBTIFF=
-if test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
+if test "${opsys}" = "mingw32"; then
+ if test "${with_tiff}" != "no"; then
+ AC_CHECK_HEADER(tiffio.h, HAVE_TIFF=yes, HAVE_TIFF=no)
+ fi
+ if test "${HAVE_TIFF}" = "yes"; then
+ AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
+ fi
+elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
if test "${with_tiff}" != "no"; then
AC_CHECK_HEADER(tiffio.h,
[tifflibs="-lz -lm"
AC_SUBST(LIBTIFF)
### Use -lgif or -lungif if available, unless `--with-gif=no'.
+### mingw32 doesn't use -lgif/-lungif, since it loads the library dynamically.
HAVE_GIF=no
LIBGIF=
-if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no" \
+if test "${opsys}" = "mingw32"; then
+ if test "${with_gif}" != "no"; then
+ AC_CHECK_HEADER(gif_lib.h, HAVE_GIF=yes, HAVE_GIF=no)
+ fi
+ if test "${HAVE_GIF}" = "yes"; then
+ AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif (or ungif) library.])
+ fi
+elif test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no" \
|| test "${HAVE_W32}" = "yes"; then
AC_CHECK_HEADER(gif_lib.h,
# EGifPutExtensionLast only exists from version libungif-4.1.0b1.
fi
AC_SUBST(LIBXSM)
+### Use XRandr (-lXrandr) if available
+HAVE_XRANDR=no
+if test "${HAVE_X11}" = "yes"; then
+ XRANDR_REQUIRED=1.2.2
+ XRANDR_MODULES="xrandr >= $XRANDR_REQUIRED"
+ PKG_CHECK_MODULES(XRANDR, $XRANDR_MODULES, HAVE_XRANDR=yes, HAVE_XRANDR=no)
+ if test $HAVE_XRANDR = no; then
+ # Test old way in case pkg-config doesn't have it (older machines).
+ AC_CHECK_HEADER(X11/extensions/Xrandr.h,
+ [AC_CHECK_LIB(Xrandr, XRRGetScreenResources, HAVE_XRANDR=yes)])
+ if test $HAVE_XRANDR = yes; then
+ XRANDR_LIBS=-lXrandr
+ AC_SUBST(XRANDR_LIBS)
+ fi
+ fi
+ if test $HAVE_XRANDR = yes; then
+ SAVE_CFLAGS="$CFLAGS"
+ SAVE_LIBS="$LIBS"
+ CFLAGS="$XRANDR_CFLAGS $CFLAGS"
+ LIBS="$XRANDR_LIBS $LIBS"
+ AC_CHECK_FUNCS(XRRGetOutputPrimary XRRGetScreenResourcesCurrent)
+ CFLAGS="$SAVE_CFLAGS"
+ LIBS="$SAVE_LIBS"
+
+ AC_DEFINE(HAVE_XRANDR, 1, [Define to 1 if you have the XRandr extension.])
+ fi
+fi
+
+### Use Xinerama (-lXinerama) if available
+HAVE_XINERAMA=no
+if test "${HAVE_X11}" = "yes"; then
+ XINERAMA_REQUIRED=1.0.2
+ XINERAMA_MODULES="xinerama >= $XINERAMA_REQUIRED"
+ PKG_CHECK_MODULES(XINERAMA, $XINERAMA_MODULES, HAVE_XINERAMA=yes,
+ HAVE_XINERAMA=no)
+ if test $HAVE_XINERAMA = no; then
+ # Test old way in case pkg-config doesn't have it (older machines).
+ AC_CHECK_HEADER(X11/extensions/Xinerama.h,
+ [AC_CHECK_LIB(Xinerama, XineramaQueryExtension, HAVE_XINERAMA=yes)])
+ if test $HAVE_XINERAMA = yes; then
+ XINERAMA_LIBS=-lXinerama
+ AC_SUBST(XINERAMA_LIBS)
+ fi
+ fi
+ if test $HAVE_XINERAMA = yes; then
+ AC_DEFINE(HAVE_XINERAMA, 1, [Define to 1 if you have the Xinerama extension.])
+ fi
+fi
+
+
### Use libxml (-lxml2) if available
+### mingw32 doesn't use -lxml2, since it loads the library dynamically.
HAVE_LIBXML2=no
if test "${with_xml2}" != "no"; then
### I'm not sure what the version number should be, so I just guessed.
PKG_CHECK_MODULES(LIBXML2, libxml-2.0 > 2.6.17, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
+ # Built-in libxml2 on OS X 10.8 lacks libxml-2.0.pc.
+ if test "${HAVE_LIBXML2}" != "yes" -a "$opsys" = "darwin"; then
+ SAVE_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
+ AC_CHECK_HEADER(libxml/HTMLparser.h,
+ [AC_CHECK_DECL(HTML_PARSE_RECOVER, HAVE_LIBXML2=yes, ,
+ [#include <libxml/HTMLparser.h>])])
+ CPPFLAGS="$SAVE_CPPFLAGS"
+ if test "${HAVE_LIBXML2}" = "yes"; then
+ LIBXML2_LIBS="-lxml2"
+ LIBXML2_CFLAGS="-I/usr/include/libxml2"
+ fi
+ fi
if test "${HAVE_LIBXML2}" = "yes"; then
- LIBS="$LIBXML2_LIBS $LIBS"
- AC_CHECK_LIB(xml2, htmlReadMemory, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
+ if test "${opsys}" != "mingw32"; then
+ LIBS="$LIBXML2_LIBS $LIBS"
+ AC_CHECK_LIB(xml2, htmlReadMemory, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
+ else
+ LIBXML2_LIBS=""
+ fi
if test "${HAVE_LIBXML2}" = "yes"; then
AC_DEFINE(HAVE_LIBXML2, 1, [Define to 1 if you have the libxml library (-lxml2).])
else
AC_SUBST(LIBXML2_CFLAGS)
# If netdb.h doesn't declare h_errno, we must declare it by hand.
+# On MinGW, that is provided by nt/inc/sys/socket.h and w32.c.
+if test "${opsys}" = "mingw32"; then
+ emacs_cv_netdb_declares_h_errno=yes
+fi
AC_CACHE_CHECK(whether netdb declares h_errno,
emacs_cv_netdb_declares_h_errno,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]],
fi
# sqrt and other floating-point functions such as fmod and frexp
-# are found in -lm on most systems.
-AC_CHECK_LIB(m, sqrt)
+# are found in -lm on most systems, but mingw32 doesn't use -lm.
+if test "${opsys}" != "mingw32"; then
+ AC_CHECK_LIB(m, sqrt)
+fi
# Check for mail-locking functions in a "mail" library. Probably this should
# have the same check as for liblockfile below.
case "$opsys" in
aix4-2) mail_lock="lockf" ;;
- gnu|freebsd|netbsd|openbsd|darwin|irix6-5) mail_lock="flock" ;;
+ gnu|freebsd|dragonfly|netbsd|openbsd|darwin|irix6-5) mail_lock="flock" ;;
## On GNU/Linux systems, both methods are used by various mail programs.
## I assume most people are using newer mailers that have heard of flock.
test $ac_cv_header_maillock_h = yes && mail_lock=no
fi
;;
+
+ mingw32)
+ mail_lock="none-needed" ;;
esac
BLESSMAIL_TARGET=
lockf) AC_DEFINE(MAIL_USE_LOCKF, 1, [Define if the mailer uses lockf to interlock the mail spool.]) ;;
+ none-needed) ;;
+
*) BLESSMAIL_TARGET="need-blessmail" ;;
esac
AC_SUBST(BLESSMAIL_TARGET)
-AC_CHECK_FUNCS(gethostname \
+AC_CHECK_FUNCS(accept4 gethostname \
getrusage get_current_dir_name \
lrand48 \
select getpagesize setlocale \
-utimes getrlimit setrlimit shutdown getaddrinfo \
+getrlimit setrlimit shutdown getaddrinfo \
strsignal setitimer \
sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \
-gai_strerror mkstemp getline getdelim fsync sync \
+gai_strerror getline getdelim sync \
difftime posix_memalign \
getpwent endpwent getgrent endgrent \
touchlock \
-cfmakeraw cfsetspeed copysign __executable_start)
+cfmakeraw cfsetspeed copysign __executable_start log2)
## Eric Backus <ericb@lsid.hp.com> says, HP-UX 9.x on HP 700 machines
## has a broken `rint' in some library versions including math library
return 0;
}]])
])
-# Maybe curses should be tried earlier?
-# See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9736#35
-for tputs_library in '' tinfo ncurses terminfo termcap curses; do
- OLIBS=$LIBS
- if test -z "$tputs_library"; then
- LIBS_TERMCAP=
- msg='none required'
- else
- LIBS_TERMCAP=-l$tputs_library
- msg=$LIBS_TERMCAP
- LIBS="$LIBS_TERMCAP $LIBS"
- fi
- AC_RUN_IFELSE([tputs_link_source], [], [msg=no],
- [AC_LINK_IFELSE([tputs_link_source], [], [msg=no])])
- LIBS=$OLIBS
- if test "X$msg" != Xno; then
- break
- fi
-done
+if test "${opsys}" = "mingw32"; then
+ msg='none required'
+else
+ # Maybe curses should be tried earlier?
+ # See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9736#35
+ for tputs_library in '' tinfo ncurses terminfo termcap curses; do
+ OLIBS=$LIBS
+ if test -z "$tputs_library"; then
+ LIBS_TERMCAP=
+ msg='none required'
+ else
+ LIBS_TERMCAP=-l$tputs_library
+ msg=$LIBS_TERMCAP
+ LIBS="$LIBS_TERMCAP $LIBS"
+ fi
+ AC_RUN_IFELSE([tputs_link_source], [], [msg=no],
+ [AC_LINK_IFELSE([tputs_link_source], [], [msg=no])])
+ LIBS=$OLIBS
+ if test "X$msg" != Xno; then
+ break
+ fi
+ done
+fi
AC_MSG_RESULT([$msg])
if test "X$msg" = Xno; then
AC_MSG_ERROR([The required function `tputs' was not found in any library.
fi
;;
+ mingw32)
+ TERMINFO=no
+ LIBS_TERMCAP=
+ ;;
+
netbsd)
if test "x$LIBS_TERMCAP" != "x-lterminfo"; then
TERMINFO=no
fi
;;
- openbsd) LIBS_TERMCAP="-lncurses" ;;
+ openbsd | dragonfly) LIBS_TERMCAP="-lncurses" ;;
## hpux: Make sure we get select from libc rather than from libcurses
## because libcurses on HPUX 10.10 has a broken version of select.
AC_DEFINE(TERMINFO, 1, [Define to 1 if you use terminfo instead of termcap.])
TERMCAP_OBJ=terminfo.o
fi
+if test "X$LIBS_TERMCAP" = "X-lncurses"; then
+ AC_DEFINE(USE_NCURSES, 1, [Define to 1 if you use ncurses.])
+fi
AC_SUBST(LIBS_TERMCAP)
AC_SUBST(TERMCAP_OBJ)
hesiod=yes, :, $RESOLVLIB)])
if test x"$hesiod" = xyes; then
- AC_DEFINE(HAVE_LIBHESIOD, 1,
- [Define to 1 if you have the hesiod library (-lhesiod).])
LIBHESIOD=-lhesiod
fi
fi
# Do we need libresolv (due to res_init or Hesiod)?
if test "$resolv" = yes && test $opsys != darwin; then
- AC_DEFINE(HAVE_LIBRESOLV, 1,
- [Define to 1 if you have the resolv library (-lresolv).])
LIBRESOLV=-lresolv
else
LIBRESOLV=
if test $have_com_err = yes; then
COM_ERRLIB=-lcom_err
LIBS="$COM_ERRLIB $LIBS"
- AC_DEFINE(HAVE_LIBCOM_ERR, 1, [Define to 1 if you have the `com_err' library (-lcom_err).])
fi
AC_CHECK_LIB(crypto, mit_des_cbc_encrypt, have_crypto=yes, have_crypto=no)
if test $have_crypto = yes; then
CRYPTOLIB=-lcrypto
LIBS="$CRYPTOLIB $LIBS"
- AC_DEFINE(HAVE_LIBCRYPTO, 1, [Define to 1 if you have the `crypto' library (-lcrypto).])
fi
AC_CHECK_LIB(k5crypto, mit_des_cbc_encrypt, have_k5crypto=yes, have_k5crypto=no)
if test $have_k5crypto = yes; then
CRYPTOLIB=-lk5crypto
LIBS="$CRYPTOLIB $LIBS"
- AC_DEFINE(HAVE_LIBK5CRYPTO, 1, [Define to 1 if you have the `k5crypto' library (-lk5crypto).])
fi
AC_CHECK_LIB(krb5, krb5_init_context, have_krb5=yes, have_krb5=no)
if test $have_krb5=yes; then
KRB5LIB=-lkrb5
LIBS="$KRB5LIB $LIBS"
- AC_DEFINE(HAVE_LIBKRB5, 1, [Define to 1 if you have the `krb5' library (-lkrb5).])
fi
dnl FIXME Simplify. Does not match 22 logic, thanks to default_off?
if test "${with_kerberos5}" = no; then
if test $have_des425 = yes; then
DESLIB=-ldes425
LIBS="$DESLIB $LIBS"
- AC_DEFINE(HAVE_LIBDES425, 1, [Define to 1 if you have the `des425' library (-ldes425).])
else
AC_CHECK_LIB(des, des_cbc_encrypt, have_des=yes, have_des=no)
if test $have_des = yes; then
DESLIB=-ldes
LIBS="$DESLIB $LIBS"
- AC_DEFINE(HAVE_LIBDES, 1, [Define to 1 if you have the `des' library (-ldes).])
fi
fi
AC_CHECK_LIB(krb4, krb_get_cred, have_krb4=yes, have_krb4=no)
if test $have_krb4 = yes; then
KRB4LIB=-lkrb4
LIBS="$KRB4LIB $LIBS"
- AC_DEFINE(HAVE_LIBKRB4, 1, [Define to 1 if you have the `krb4' library (-lkrb4).])
else
AC_CHECK_LIB(krb, krb_get_cred, have_krb=yes, have_krb=no)
if test $have_krb = yes; then
KRB4LIB=-lkrb
LIBS="$KRB4LIB $LIBS"
- AC_DEFINE(HAVE_LIBKRB, 1, [Define to 1 if you have the `krb' library (-lkrb).])
fi
fi
fi
[AC_CHECK_MEMBERS([krb5_error.text, krb5_error.e_text],,,
[#include <krb5.h>])])
else
- AC_CHECK_HEADERS(des.h,,
- [AC_CHECK_HEADERS(kerberosIV/des.h,,
- [AC_CHECK_HEADERS(kerberos/des.h)])])
AC_CHECK_HEADERS(krb.h,,
[AC_CHECK_HEADERS(kerberosIV/krb.h,,
[AC_CHECK_HEADERS(kerberos/krb.h)])])
[Define to 1 if you have inet sockets.])
fi
-if test -f /usr/lpp/X11/bin/smt.exp; then
- AC_DEFINE(HAVE_AIX_SMT_EXP, 1,
- [Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists.])
-fi
-
-AC_MSG_CHECKING(whether system supports dynamic ptys)
-if test -d /dev/pts && ls -d /dev/ptmx > /dev/null 2>&1 ; then
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_DEV_PTMX, 1, [Define to 1 if dynamic ptys are supported.])
-else
- AC_MSG_RESULT(no)
-fi
-
dnl Check for a Solaris 2.4 vfork bug that Autoconf misses (through 2.69).
dnl This can be removed once we assume Autoconf 2.70.
case $canonical in
AC_CHECK_FUNCS(snprintf)
+dnl Check this late. It depends on what other libraries (lrsvg, Gtk+ etc)
+dnl Emacs uses.
+XGSELOBJ=
+AC_MSG_CHECKING([whether GLib is linked in])
+AC_LINK_IFELSE([AC_LANG_PROGRAM(
+ [[#include <glib.h>
+ ]],
+ [[g_print ("Hello world");]])],
+ [links_glib=yes],
+ [links_glib=no])
+AC_MSG_RESULT([$links_glib])
+if test "${links_glib}" = "yes"; then
+ AC_DEFINE(HAVE_GLIB, 1, [Define to 1 if GLib is linked in.])
+ if test "$HAVE_NS" = no;then
+ XGSELOBJ=xgselect.o
+ fi
+fi
+AC_SUBST(XGSELOBJ)
+
dnl Adapted from Haible's version.
AC_CACHE_CHECK([for nl_langinfo and CODESET], emacs_cv_langinfo_codeset,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]],
dnl fi
dnl Turned on June 1996 supposing nobody will mind it.
-AC_DEFINE(AMPERSAND_FULL_NAME, 1, [Define to use the convention that &
- in the full name stands for the login id.])
+dnl MinGW emulates passwd database, so this feature doesn't make sense there.
+if test "${opsys}" != "mingw32"; then
+ AC_DEFINE(AMPERSAND_FULL_NAME, 1, [Define to use the convention that &
+ in the full name stands for the login id.])
+fi
-dnl Every platform that uses configure (ie every non-MS platform)
-dnl supports this. There is a create-lockfiles option you can
+dnl Every platform that uses configure supports this.
+dnl There is a create-lockfiles option you can
dnl customize if you do not want the lock files to be written.
dnl So it is not clear that this #define still needs to exist.
AC_DEFINE(CLASH_DETECTION, 1, [Define if you want lock files to be written,
dnl Everybody supports this, except MS.
dnl Seems like the kind of thing we should be testing for, though.
## Note: PTYs are broken on darwin <6. Use at your own risk.
-AC_DEFINE(HAVE_PTYS, 1, [Define if the system supports pty devices.])
+if test "${opsys}" != "mingw32"; then
+ AC_DEFINE(HAVE_PTYS, 1, [Define if the system supports pty devices.])
+fi
dnl Everybody supports this, except MS-DOS.
dnl Seems like the kind of thing we should be testing for, though.
AH_TEMPLATE(INTERNAL_TERMINAL, [This is substituted when $TERM is "internal".])
-AC_DEFINE(NULL_DEVICE, ["/dev/null"], [Name of the file to open to get
+AH_TEMPLATE(NULL_DEVICE, [Name of the file to open to get
a null file, or a data sink.])
+if test "${opsys}" = "mingw32"; then
+ AC_DEFINE(NULL_DEVICE, ["NUL:"])
+else
+ AC_DEFINE(NULL_DEVICE, ["/dev/null"])
+fi
-AC_DEFINE(SEPCHAR, [':'], [Character that separates PATH elements.])
+AH_TEMPLATE(SEPCHAR, [Character that separates PATH elements.])
+if test "${opsys}" = "mingw32"; then
+ AC_DEFINE(SEPCHAR, [';'])
+else
+ AC_DEFINE(SEPCHAR, [':'])
+fi
dnl Everybody supports this, except MS-DOS.
AC_DEFINE(subprocesses, 1, [Define to enable asynchronous subprocesses.])
AC_DEFINE(DIRECTORY_SEP, ['/'],
[Character that separates directories in a file name.])
-dnl Only used on MS platforms.
-AH_TEMPLATE(DEVICE_SEP, [Character that separates a device in a file name.])
+if test "${opsys}" = "mingw32"; then
+ AC_DEFINE(IS_DEVICE_SEP(_c_), [((_c_) == ':')],
+ [Returns true if character is a device separator.])
-AC_DEFINE(IS_DEVICE_SEP(_c_), 0,
- [Returns true if character is a device separator.])
+ AC_DEFINE(IS_DIRECTORY_SEP(_c_), [((_c_) == '/' || (_c_) == '\\')],
+ [Returns true if character is a directory separator.])
-AC_DEFINE(IS_DIRECTORY_SEP(_c_), [((_c_) == DIRECTORY_SEP)],
- [Returns true if character is a directory separator.])
+ AC_DEFINE(IS_ANY_SEP(_c_), [(IS_DIRECTORY_SEP (_c_) || IS_DEVICE_SEP(_c_))],
+ [Returns true if character is any form of separator.])
+else
+ AC_DEFINE(IS_DEVICE_SEP(_c_), 0,
+ [Returns true if character is a device separator.])
-dnl On MS, this also accepts IS_DEVICE_SEP.
-AC_DEFINE(IS_ANY_SEP(_c_), [(IS_DIRECTORY_SEP (_c_))],
- [Returns true if character is any form of separator.])
+ AC_DEFINE(IS_DIRECTORY_SEP(_c_), [((_c_) == DIRECTORY_SEP)],
+ [Returns true if character is a directory separator.])
+ AC_DEFINE(IS_ANY_SEP(_c_), [(IS_DIRECTORY_SEP (_c_))],
+ [Returns true if character is any form of separator.])
+fi
AH_TEMPLATE(NO_EDITRES, [Define if XEditRes should not be used.])
case $opsys in
dnl SIGIO exists, but the feature doesn't work in the way Emacs needs.
dnl See eg <http://article.gmane.org/gmane.os.openbsd.ports/46831>.
- hpux* | irix6-5 | openbsd | sol2* | unixware )
+ hpux* | irix6-5 | openbsd | sol2* | unixware | gnu-kfreebsd )
emacs_broken_SIGIO=yes
;;
esac
case $opsys in
- darwin | freebsd | netbsd | openbsd )
+ darwin | dragonfly | freebsd | netbsd | openbsd )
AC_DEFINE(DONT_REOPEN_PTY, 1, [Define if process.c does not need to
close a pty to make it a controlling terminal (it is already a
controlling terminal of the subprocess, because we did ioctl TIOCSCTTY).])
AC_DEFINE(FIRST_PTY_LETTER, ['p'])
;;
- gnu-linux | gnu-kfreebsd | freebsd | netbsd )
+ gnu-linux | gnu-kfreebsd | dragonfly | freebsd | netbsd )
dnl if HAVE_GRANTPT
if test "x$ac_cv_func_grantpt" = xyes; then
AC_DEFINE(UNIX98_PTYS, 1, [Define if the system has Unix98 PTYs.])
AC_DEFINE(PTY_ITERATION, [int i; for (i = 0; i < 1; i++)])
dnl Note that grantpt and unlockpt may fork. We must block SIGCHLD
dnl to prevent sigchld_handler from intercepting the child's death.
- 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) { close (fd); return -1; } snprintf (pty_name, sizeof pty_name, "%s", ptyname); }])
+ 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, [fd = posix_openpt (O_RDWR | O_NOCTTY)])
+ AC_DEFINE(PTY_OPEN, [fd = posix_openpt (O_RDWR | O_CLOEXEC | O_NOCTTY)])
AC_DEFINE(PTY_NAME_SPRINTF, [])
dnl if HAVE_GETPT
elif test "x$ac_cv_func_getpt" = xyes; then
dnl On SysVr4, grantpt(3) forks a subprocess, so keep sigchld_handler()
dnl from intercepting that death. If any child but grantpt's should die
dnl within, it should be caught after sigrelse(2).
- AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, sizeof pty_name, "%s", ptyname); }])
+ AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1 || unlockpt (fd) == -1 || !(ptyname = ptsname (fd))) { emacs_close (fd); return -1; } snprintf (pty_name, PTY_NAME_SIZE, "%s", ptyname); }])
;;
unixware )
dnl Comments are as per sol2*.
- AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal("could not grant slave pty"); if (unlockpt(fd) == -1) fatal("could not unlock slave pty"); if (!(ptyname = ptsname(fd))) fatal ("could not enable slave pty"); snprintf (pty_name, sizeof pty_name, "%s", ptyname); }])
+ AC_DEFINE(PTY_TTY_NAME_SPRINTF, [{ char *ptsname (int), *ptyname; int grantpt_result; sigset_t blocked; sigemptyset (&blocked); sigaddset (&blocked, SIGCHLD); pthread_sigmask (SIG_BLOCK, &blocked, 0); grantpt_result = grantpt (fd); pthread_sigmask (SIG_UNBLOCK, &blocked, 0); if (grantpt_result == -1) fatal("could not grant slave pty"); if (unlockpt(fd) == -1) fatal("could not unlock slave pty"); if (!(ptyname = ptsname(fd))) fatal ("could not enable slave pty"); snprintf (pty_name, PTY_NAME_SIZE, "%s", ptyname); }])
;;
esac
case $opsys in
dnl Perry Smith <pedz@ddivt1.austin.ibm.com> says this is correct for AIX.
dnl thomas@mathematik.uni-bremen.de says this is needed for IRIX.
- aix4-2 | cygwin | gnu | irix6-5 | freebsd | netbsd | openbsd | darwin )
+ aix4-2 | cygwin | gnu | irix6-5 | dragonfly | freebsd | netbsd | openbsd | darwin )
AC_DEFINE(SIGNALS_VIA_CHARACTERS, 1)
;;
esac
-dnl Used in vm-limit.c
-AH_TEMPLATE(DATA_START, [Address of the start of the data segment.])
-dnl Used in lisp.h, emacs.c, mem-limits.h
+dnl Used in lisp.h, emacs.c, vm-limit.c
dnl NEWS.18 describes this as "a number which contains
dnl the high bits to be inclusive or'ed with pointers that are unpacked."
AH_TEMPLATE(DATA_SEG_BITS, [Extra bits to be or'd in with any pointers
dnl if Emacs uses fewer than 32 bits for the value field of a LISP_OBJECT.
case $opsys in
- gnu)
- dnl libc defines data_start.
- AC_DEFINE(DATA_START, [({ extern int data_start; (char *) &data_start; })])
- ;;
-
aix*)
dnl This works with 32-bit executables; Emacs doesn't support 64-bit.
- AC_DEFINE(DATA_START, [0x20000000])
AC_DEFINE(DATA_SEG_BITS, [0x20000000])
;;
hpux*)
dnl The data segment on this machine always starts at address 0x40000000.
- AC_DEFINE(DATA_START, [0x40000000])
AC_DEFINE(DATA_SEG_BITS, [0x40000000])
;;
irix6-5)
- AC_DEFINE(DATA_START, [0x10000000])
AC_DEFINE(DATA_SEG_BITS, [0x10000000])
;;
esac
case $opsys in
darwin) AC_DEFINE(TAB3, OXTABS) ;;
- gnu | freebsd | netbsd | openbsd )
+ gnu | dragonfly | freebsd | netbsd | openbsd )
AC_DEFINE(TABDLY, OXTABS, [Undocumented.])
AC_DEFINE(TAB3, OXTABS)
;;
else
case $opsys in
dnl irix: Tested on Irix 6.5. SCM worked on earlier versions.
- freebsd | netbsd | openbsd | irix6-5 | sol2* )
+ dragonfly | freebsd | netbsd | openbsd | irix6-5 | sol2* )
AC_DEFINE(GC_SETJMP_WORKS, 1)
;;
esac
fi dnl GCC?
+dnl In a weird quirk, MS runtime uses _setjmp and longjmp.
AC_CACHE_CHECK([for _setjmp], [emacs_cv_func__setjmp],
[AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include <setjmp.h>
+ #ifdef __MINGW32__
+ # define _longjmp longjmp
+ #endif
]],
[[jmp_buf j;
if (! _setjmp (j))
dnl Define symbols to identify the version of Unix this is.
dnl Define all the symbols that apply correctly.
-AH_TEMPLATE(BSD_SYSTEM, [Define if the system is compatible with BSD 4.2.])
AH_TEMPLATE(DOS_NT, [Define if the system is MS DOS or MS Windows.])
AH_TEMPLATE(MSDOS, [Define if the system is MS DOS.])
AH_TEMPLATE(USG, [Define if the system is compatible with System III.])
-AH_TEMPLATE(USG5, [Define if the system is compatible with System V.])
AH_TEMPLATE(USG5_4, [Define if the system is compatible with System V Release 4.])
case $opsys in
aix4-2)
AC_DEFINE(USG, [])
- AC_DEFINE(USG5, [])
dnl This symbol should be defined on AIX Version 3 ???????
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
#ifndef _AIX
;;
darwin)
- dnl BSD4_3 and BSD4_4 are already defined in sys/param.h.
- AC_DEFINE(BSD_SYSTEM, [])
- dnl More specific than the above two. We cannot use __APPLE__ as this
- dnl may not be defined on non-OSX Darwin, and we cannot define DARWIN
- dnl here because Panther and lower CoreFoundation.h uses DARWIN to
+ dnl Not __APPLE__, as this may not be defined on non-OSX Darwin.
+ dnl Not DARWIN, because Panther and lower CoreFoundation.h use DARWIN to
dnl distinguish OS X from pure Darwin.
AC_DEFINE(DARWIN_OS, [], [Define if the system is Darwin.])
;;
- freebsd)
- dnl Hack to avoid calling AC_PREPROC_IFELSE multiple times.
- dnl Would not be needed with autoconf >= 2.67, where the
- dnl preprocessed output is accessible in "conftest.i".
- AC_DEFINE(BSD_SYSTEM_AHB, 1, [Define if AH_BOTTOM should change BSD_SYSTEM.])
- ;;
-
- gnu | netbsd | openbsd )
- AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
-#ifndef BSD_SYSTEM
-# error "BSD_SYSTEM not defined"
-#endif
- ]], [[]])], [], AC_DEFINE(BSD_SYSTEM, 43) )
- ;;
-
gnu-linux | gnu-kfreebsd )
AC_DEFINE(USG, [])
AC_DEFINE(GNU_LINUX, [], [Define if ths system is compatible with GNU/Linux.])
hpux*)
AC_DEFINE(USG, [])
- AC_DEFINE(USG5, [])
AC_DEFINE(HPUX, [], [Define if the system is HPUX.])
;;
irix6-5)
AC_DEFINE(USG, [])
- AC_DEFINE(USG5, [])
AC_DEFINE(USG5_4, [])
AC_DEFINE(IRIX6_5, [], [Define if the system is IRIX.])
;;
+ mingw32)
+ AC_DEFINE(DOS_NT, [])
+ AC_DEFINE(WINDOWSNT, 1, [Define if compiling for native MS Windows.])
+ if test "x$ac_enable_checking" != "x" ; then
+ AC_DEFINE(EMACSDEBUG, 1, [Define to 1 to enable w32 debug facilities.])
+ fi
+ ;;
+
sol2*)
AC_DEFINE(USG, [])
- AC_DEFINE(USG5, [])
AC_DEFINE(USG5_4, [])
AC_DEFINE(SOLARIS2, [], [Define if the system is Solaris.])
;;
unixware)
AC_DEFINE(USG, [])
- AC_DEFINE(USG5, [])
AC_DEFINE(USG5_4, [])
;;
esac
emacs_cv_usable_FIONREAD=no
;;
+ mingw32)
+ emacs_cv_usable_FIONREAD=yes
+ ;;
+
*)
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[#include <sys/types.h>
AH_TEMPLATE(config_opsysfile, [Some platforms that do not use configure
define this to include extra configuration information.])
+case $opsys in
+ mingw32)
+ AC_DEFINE(config_opsysfile, <ms-w32.h>, [])
+ ;;
+esac
+
XMENU_OBJ=
XOBJ=
FONT_OBJ=
AC_DEFINE(HAVE_X_WINDOWS, 1,
[Define to 1 if you want to use the X window system.])
XMENU_OBJ=xmenu.o
- XOBJ="xterm.o xfns.o xselect.o xrdb.o xsmfns.o xsettings.o xgselect.o"
+ XOBJ="xterm.o xfns.o xselect.o xrdb.o xsmfns.o xsettings.o"
FONT_OBJ=xfont.o
if test "$HAVE_XFT" = "yes"; then
FONT_OBJ="$FONT_OBJ ftfont.o xftfont.o ftxfont.o"
esac
AC_SUBST(TOOLKIT_LIBW)
-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"
+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)
## Cygwin differs because of its unexec().
PRE_ALLOC_OBJ=
POST_ALLOC_OBJ=lastfile.o
+elif test "$opsys" = "mingw32"; then
+ CYGWIN_OBJ=
+ PRE_ALLOC_OBJ=
+ POST_ALLOC_OBJ=lastfile.o
else
CYGWIN_OBJ=
PRE_ALLOC_OBJ=lastfile.o
CFLAGS=$SAVE_CFLAGS
LIBS=$SAVE_LIBS
+if test "${opsys}" = "mingw32"; then
+ CPPFLAGS="$CPPFLAGS -DUSE_CRT_DLL=1 -I $srcdir/nt/inc"
+ # Remove unneeded switches from the value of CC that goes to Makefiles
+ CC=`echo $CC | sed -e "s,$GCC_TEST_OPTIONS,,"`
+fi
+
case "$opsys" in
aix4-2) LD_SWITCH_SYSTEM_TEMACS="-Wl,-bnodelcsect" ;;
## each); under Cocoa 31 commands are required.
if test "$HAVE_NS" = "yes"; then
libs_nsgui="-framework AppKit"
+ if test "$NS_IMPL_COCOA" = "yes"; then
+ libs_nsgui="$libs_nsgui -framework IOKit"
+ fi
headerpad_extra=6C8
else
libs_nsgui=
LD_SWITCH_SYSTEM_TEMACS="-fno-pie -prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra"
## This is here because src/Makefile.in did some extra fiddling around
- ## with LD_SWITCH_SYSTEM. The cpp logic was:
- ## #ifndef LD_SWITCH_SYSTEM
- ## #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
- ## Since all the *bsds define LD_SWITCH_SYSTEM, this simplifies to:
- ## not using gcc, darwin.
- ## Because this was done in src/Makefile.in, the resulting part of
- ## LD_SWITCH_SYSTEM was not used in configure (ie, in ac_link).
- ## It therefore seems cleaner to put this in LD_SWITCH_SYSTEM_TEMACS,
- ## rather than LD_SWITCH_SYSTEM.
+ ## with LD_SWITCH_SYSTEM. It seems cleaner to put this in
+ ## LD_SWITCH_SYSTEM_TEMACS instead,
test "x$LD_SWITCH_SYSTEM" = "x" && test "x$GCC" != "xyes" && \
LD_SWITCH_SYSTEM_TEMACS="-X $LD_SWITCH_SYSTEM_TEMACS"
;;
## It seems clearer therefore to put this piece in LD_SWITCH_SYSTEM_TEMACS.
gnu*) LD_SWITCH_SYSTEM_TEMACS="\$(LD_SWITCH_X_SITE_RPATH)" ;;
- *) LD_SWITCH_SYSTEM_TEMACS= ;;
-esac
-
-AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
+ mingw32)
+ ## MinGW64 does not prepend an underscore to symbols, so we must
+ ## pass a different -entry switch to linker. FIXME: It is better
+ ## to make the entry points the same by changing unexw32.c.
+ case "$canonical" in
+ x86_64-*-*) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 -Wl,-entry,_start -Wl,-Map,./temacs.map" ;;
+ *) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000 -Wl,-heap,0x00100000 -Wl,-image-base,0x01000000 -Wl,-entry,__start -Wl,-Map,./temacs.map" ;;
+ esac
+ ;;
+ openbsd) LD_SWITCH_SYSTEM_TEMACS='-nopie' ;;
-LD_FIRSTFLAG=
-ORDINARY_LINK=
-case "$opsys" in
- ## gnu: GNU needs its own crt0.
- aix4-2|cygwin|darwin|gnu|hpux*|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;;
-
- ## On post 1.3 releases of NetBSD, gcc -nostdlib also clears the
- ## library search parth, i.e. it won't search /usr/lib for libc and
- ## friends. Using -nostartfiles instead avoids this problem, and
- ## will also work on earlier NetBSD releases.
- netbsd|openbsd) LD_FIRSTFLAG="-nostartfiles" ;;
-
- ## powerpc*: NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp> says
- ## MkLinux/LinuxPPC needs this.
- ## s390x-* only supports opsys = gnu-linux so it can be added here.
- gnu-*)
- case "$canonical" in
- powerpc*|s390x-*) LD_FIRSTFLAG="-nostdlib" ;;
- esac
- ;;
+ *) LD_SWITCH_SYSTEM_TEMACS= ;;
esac
-
-if test "x$ORDINARY_LINK" = "xyes"; then
-
- LD_FIRSTFLAG=""
- AC_DEFINE(ORDINARY_LINK, 1, [Define if the C compiler is the linker.])
-
-## The system files defining neither ORDINARY_LINK nor LD_FIRSTFLAG are:
-## freebsd, gnu-* not on powerpc*|s390x*.
-elif test "x$GCC" = "xyes" && test "x$LD_FIRSTFLAG" = "x"; then
-
- ## Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
- ## places that are difficult to figure out at make time. Fortunately,
- ## these same versions allow you to pass arbitrary flags on to the
- ## linker, so there is no reason not to use it as a linker.
- ##
- ## Well, it is not quite perfect. The "-nostdlib" keeps GCC from
- ## searching for libraries in its internal directories, so we have to
- ## ask GCC explicitly where to find libgcc.a (LIB_GCC below).
- LD_FIRSTFLAG="-nostdlib"
+if test x$ac_enable_profiling != x ; then
+ case $opsys in
+ *freebsd | gnu-linux) ;;
+ *) LD_SWITCH_SYSTEM_TEMACS="$LD_SWITCH_SYSTEM_TEMACS -pg" ;;
+ esac
fi
-## FIXME? What setting of EDIT_LDFLAGS should this have?
-test "$NS_IMPL_GNUSTEP" = "yes" && LD_FIRSTFLAG="-rdynamic"
-
-AC_SUBST(LD_FIRSTFLAG)
-
-
-## FIXME? The logic here is not precisely the same as that above.
-## There is no check here for a pre-defined LD_FIRSTFLAG.
-## Should we only be setting LIB_GCC if LD ~ -nostdlib?
-LIB_GCC=
-if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then
-
- case "$opsys" in
- freebsd|netbsd|openbsd) LIB_GCC= ;;
-
- gnu-*)
- ## armin76@gentoo.org reported that the lgcc_s flag is necessary to
- ## build on ARM EABI under GNU/Linux. (Bug#5518)
- case $host_cpu in
- arm*)
- LIB_GCC="-lgcc_s"
- ;;
- *)
- ## FIXME? s/gnu-linux.h used to define LIB_GCC as below, then
- ## immediately undefine it again and redefine it to empty.
- ## Was the C_SWITCH_X_SITE part really necessary?
-## LIB_GCC=`$CC $C_SWITCH_X_SITE -print-libgcc-file-name`
- LIB_GCC=
- ;;
- esac
- ;;
+AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
- ## Ask GCC where to find libgcc.a.
- *) LIB_GCC=`$CC -print-libgcc-file-name 2> /dev/null` ;;
+## MinGW-specific post-link processing of temacs.
+TEMACS_POST_LINK=":"
+ADDSECTION=
+EMACS_HEAPSIZE=
+if test "${opsys}" = "mingw32"; then
+ TEMACS_POST_LINK="\$(MINGW_TEMACS_POST_LINK)"
+ ADDSECTION="../nt/addsection\$(EXEEXT)"
+ ## Preload heap size of temacs.exe in MB.
+ case "$canonical" in
+ x86_64-*-*) EMACS_HEAPSIZE=42 ;;
+ *) EMACS_HEAPSIZE=27 ;;
esac
-fi dnl if $GCC
-AC_SUBST(LIB_GCC)
+fi
+
+AC_SUBST(ADDSECTION)
+AC_SUBST(TEMACS_POST_LINK)
+AC_SUBST(EMACS_HEAPSIZE)
## Common for all window systems
if test "$window_system" != "none"; then
USE_X_TOOLKIT="$USE_GTK_TOOLKIT"
fi
+if test $USE_ACL -ne 0; then
+ acl_summary="yes $LIB_ACL"
+else
+ acl_summary=no
+fi
+
echo "
Configured for \`${canonical}'.
echo " Does Emacs use -lrsvg-2? ${HAVE_RSVG}"
echo " Does Emacs use imagemagick? ${HAVE_IMAGEMAGICK}"
+echo " Does Emacs support sound? ${HAVE_SOUND}"
+
echo " Does Emacs use -lgpm? ${HAVE_GPM}"
echo " Does Emacs use -ldbus? ${HAVE_DBUS}"
echo " Does Emacs use -lgconf? ${HAVE_GCONF}"
echo " Does Emacs use GSettings? ${HAVE_GSETTINGS}"
+echo " Does Emacs use a file notification library? ${NOTIFY_SUMMARY}"
+echo " Does Emacs use access control lists? ${acl_summary}"
echo " Does Emacs use -lselinux? ${HAVE_LIBSELINUX}"
echo " Does Emacs use -lgnutls? ${HAVE_GNUTLS}"
echo " Does Emacs use -lxml2? ${HAVE_LIBXML2}"
dnl (see http://lists.gnu.org/archive/html/bug-autoconf/2008-08/msg00028.html).
dnl That doesn't have any obvious consequences for Emacs, but on the whole
dnl it seems better to just live with the duplication.
-SUBDIR_MAKEFILES="lib/Makefile lib-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile leim/Makefile nextstep/Makefile"
+SUBDIR_MAKEFILES="lib/Makefile lib-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile leim/Makefile nextstep/Makefile nt/Makefile"
AC_CONFIG_FILES([Makefile lib/Makefile lib-src/Makefile oldXMenu/Makefile \
doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile \
- leim/Makefile nextstep/Makefile])
+ leim/Makefile nextstep/Makefile nt/Makefile])
dnl test/ is not present in release tarfiles.
opt_makefile=test/automated/Makefile
AC_SUBST(SUBDIR_MAKEFILES_IN)
-dnl Make the necessary directories, if they don't exist.
-AC_CONFIG_COMMANDS([mkdirs], [
-for dir in etc lisp ; do
- test -d ${dir} || mkdir ${dir}
-done
-])
-
dnl You might wonder (I did) why epaths.h is generated by running make,
dnl rather than just letting configure generate it from epaths.in.
dnl One reason is that the various paths are not fully expanded (see above);
dnl to run `make prefix=/some/where/else' and override the values set
dnl by configure. This also explains the `move-if-change' test and
dnl the use of force in the `epaths-force' rule in Makefile.in.
-AC_CONFIG_COMMANDS([epaths], [
-echo creating src/epaths.h
-${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force
-], [GCC="$GCC" CPPFLAGS="$CPPFLAGS"])
+AC_CONFIG_COMMANDS([src/epaths.h], [
+if test "${opsys}" = "mingw32"; then
+ ${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force-w32
+else
+ ${MAKE-make} MAKEFILE_NAME=do-not-make-Makefile epaths-force
+fi
+], [GCC="$GCC" CPPFLAGS="$CPPFLAGS" opsys="$opsys"])
-AC_CONFIG_COMMANDS([gdbinit], [
+AC_CONFIG_COMMANDS([src/.gdbinit], [
if test ! -f src/.gdbinit && test -f "$srcdir/src/.gdbinit"; then
- echo creating src/.gdbinit
echo "source $srcdir/src/.gdbinit" > src/.gdbinit
fi
])