X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/63c59d1ef8fe1a3acfac5557b0838e712cc88f28..78a629d2f5d3d907703b78c6a9a331c3596d7c2b:/configure.in diff --git a/configure.in b/configure.in index 48006e89b2..4176730673 100644 --- a/configure.in +++ b/configure.in @@ -94,7 +94,9 @@ AC_ARG_WITH(png, [ --with-png use -lpng for displaying PNG images]) AC_ARG_WITH(toolkit-scroll-bars, [ --without-toolkit-scroll-bars - don't use Motif or Xaw3d scroll bars]) + don't use Motif or Xaw3d scroll bars]) +AC_ARG_WITH(xim, +[ --without-xim don't use X11 XIM]) #### Make srcdir absolute, if it isn't already. It's important to #### avoid running the path through pwd unnecessary, since pwd can @@ -260,7 +262,8 @@ case "${canonical}" in # This is necessary on 5.0 to avoid mangling src/Makefile. # Separated out in case it causes problems on earlier versions. alpha*-dec-osf[5-9]*) - NON_GNU_CPP='cc -E -std0' ;; + opsys=osf5-0 + NON_GNU_CPP='cpp' ;; esac ;; @@ -443,7 +446,8 @@ case "${canonical}" in machine=ns16000 opsys=umax ;; - ## The GEC 93 - apparently, this port isn't really finished yet. + ## The GEC 63 - apparently, this port isn't really finished yet. + # I'm sure we finished off the last of the machines, though. -- fx ## Gould Power Node and NP1 pn-gould-bsd4.2* ) @@ -976,10 +980,16 @@ case "${canonical}" in machine=wicat opsys=usg5-2 ;; + ## IA-64 + ia64*-*-linux* ) + machine=ia64 opsys=gnu-linux + ;; + ## Intel 386 machines where we don't care about the manufacturer i[3456]86-*-* ) machine=intel386 case "${canonical}" in + *-lynxos* ) opsys=lynxos ;; *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;; *-isc2.2* ) opsys=isc2-2 ;; *-isc4.0* ) opsys=isc4-0 ;; @@ -1151,16 +1161,161 @@ fi dnl checks for Unix variants AC_AIX +#### Extract some information from the operating system and machine files. + +AC_CHECKING([the machine- and system-dependent files to find out + - which libraries the lib-src programs will want, and + - whether the GNU malloc routines are usable]) + +### First figure out CFLAGS (which we use for running the compiler here) +### and REAL_CFLAGS (which we use for real compilation). +### The two are the same except on a few systems, where they are made +### different to work around various lossages. For example, +### GCC 2.5 on GNU/Linux needs them to be different because it treats -g +### as implying static linking. + +### If the CFLAGS env var is specified, we use that value +### instead of the default. + +### It's not important that this name contain the PID; you can't run +### two configures in the same directory and have anything work +### anyway. +tempcname="conftest.c" + +echo ' +#include "'${srcdir}'/src/'${opsysfile}'" +#include "'${srcdir}'/src/'${machfile}'" +#ifndef LIBS_MACHINE +#define LIBS_MACHINE +#endif +#ifndef LIBS_SYSTEM +#define LIBS_SYSTEM +#endif +#ifndef C_SWITCH_SYSTEM +#define C_SWITCH_SYSTEM +#endif +#ifndef C_SWITCH_MACHINE +#define C_SWITCH_MACHINE +#endif +configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM +configure___ c_switch_system=C_SWITCH_SYSTEM +configure___ c_switch_machine=C_SWITCH_MACHINE + +#ifndef LIB_X11_LIB +#define LIB_X11_LIB -lX11 +#endif + +#ifndef LIBX11_MACHINE +#define LIBX11_MACHINE +#endif + +#ifndef LIBX11_SYSTEM +#define LIBX11_SYSTEM +#endif +configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM + +#ifdef UNEXEC +configure___ unexec=UNEXEC +#else +configure___ unexec=unexec.o +#endif + +#ifdef SYSTEM_MALLOC +configure___ system_malloc=yes +#else +configure___ system_malloc=no +#endif + +#ifndef C_DEBUG_SWITCH +#define C_DEBUG_SWITCH -g +#endif + +#ifndef C_OPTIMIZE_SWITCH +#ifdef __GNUC__ +#define C_OPTIMIZE_SWITCH -O2 +#else +#define C_OPTIMIZE_SWITCH -O +#endif +#endif + +#ifndef LD_SWITCH_MACHINE +#define LD_SWITCH_MACHINE +#endif + +#ifndef LD_SWITCH_SYSTEM +#define LD_SWITCH_SYSTEM +#endif + +#ifndef LD_SWITCH_X_SITE_AUX +#define LD_SWITCH_X_SITE_AUX +#endif + +configure___ ld_switch_system=LD_SWITCH_SYSTEM +configure___ ld_switch_machine=LD_SWITCH_MACHINE + +#ifdef THIS_IS_CONFIGURE + +/* Get the CFLAGS for tests in configure. */ +#ifdef __GNUC__ +configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}' +#else +configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' +#endif + +#else /* not THIS_IS_CONFIGURE */ + +/* Get the CFLAGS for real compilation. */ +#ifdef __GNUC__ +configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}' +#else +configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' +#endif + +#endif /* not THIS_IS_CONFIGURE */ +' > ${tempcname} + +# The value of CPP is a quoted variable reference, so we need to do this +# to get its actual value... +CPP=`eval "echo $CPP"` +changequote(, )dnl +eval `${CPP} -Isrc ${tempcname} \ + | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` +if test "x$SPECIFIED_CFLAGS" = x; then + eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \ + | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` +else + REAL_CFLAGS="$CFLAGS" +fi +changequote([, ])dnl +rm ${tempcname} + +ac_link="$ac_link $ld_switch_machine $ld_switch_system" + +### Make sure subsequent tests use flags consistent with the build flags. + +if test x"${OVERRIDE_CPPFLAGS}" != x; then + CPPFLAGS="${OVERRIDE_CPPFLAGS}" +else + CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS" +fi + +dnl Do this early because it can frob feature test macros for Unix-98 &c. +AC_SYS_LARGEFILE + # Sound support for GNU/Linux and the free BSDs. -AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h) +AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h) +# Emulation library used on NetBSD. +AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=) +AC_SUBST(LIBSOUND) dnl checks for header files AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \ linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \ - termcap.h stdio_ext.h) + termcap.h stdio_ext.h fcntl.h term.h) AC_HEADER_STDC AC_HEADER_TIME AC_DECL_SYS_SIGLIST +AC_HEADER_SYS_WAIT dnl Some systems have utime.h but don't declare the struct anyplace. AC_CACHE_CHECK(for struct utimbuf, emacs_cv_struct_utimbuf, @@ -1347,136 +1502,6 @@ if test "${opsys}" = "hpux9shr"; then esac fi -#### Extract some information from the operating system and machine files. - -AC_CHECKING([the machine- and system-dependent files to find out - - which libraries the lib-src programs will want, and - - whether the GNU malloc routines are usable]) - -### First figure out CFLAGS (which we use for running the compiler here) -### and REAL_CFLAGS (which we use for real compilation). -### The two are the same except on a few systems, where they are made -### different to work around various lossages. For example, -### GCC 2.5 on GNU/Linux needs them to be different because it treats -g -### as implying static linking. - -### If the CFLAGS env var is specified, we use that value -### instead of the default. - -### It's not important that this name contain the PID; you can't run -### two configures in the same directory and have anything work -### anyway. -tempcname="conftest.c" - -echo ' -#include "'${srcdir}'/src/'${opsysfile}'" -#include "'${srcdir}'/src/'${machfile}'" -#ifndef LIBS_MACHINE -#define LIBS_MACHINE -#endif -#ifndef LIBS_SYSTEM -#define LIBS_SYSTEM -#endif -#ifndef C_SWITCH_SYSTEM -#define C_SWITCH_SYSTEM -#endif -#ifndef C_SWITCH_MACHINE -#define C_SWITCH_MACHINE -#endif -configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM -configure___ c_switch_system=C_SWITCH_SYSTEM -configure___ c_switch_machine=C_SWITCH_MACHINE - -#ifndef LIB_X11_LIB -#define LIB_X11_LIB -lX11 -#endif - -#ifndef LIBX11_MACHINE -#define LIBX11_MACHINE -#endif - -#ifndef LIBX11_SYSTEM -#define LIBX11_SYSTEM -#endif -configure___ LIBX=LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM - -#ifdef UNEXEC -configure___ unexec=UNEXEC -#else -configure___ unexec=unexec.o -#endif - -#ifdef SYSTEM_MALLOC -configure___ system_malloc=yes -#else -configure___ system_malloc=no -#endif - -#ifndef C_DEBUG_SWITCH -#define C_DEBUG_SWITCH -g -#endif - -#ifndef C_OPTIMIZE_SWITCH -#ifdef __GNUC__ -#define C_OPTIMIZE_SWITCH -O2 -#else -#define C_OPTIMIZE_SWITCH -O -#endif -#endif - -#ifndef LD_SWITCH_MACHINE -#define LD_SWITCH_MACHINE -#endif - -#ifndef LD_SWITCH_SYSTEM -#define LD_SWITCH_SYSTEM -#endif - -#ifndef LD_SWITCH_X_SITE_AUX -#define LD_SWITCH_X_SITE_AUX -#endif - -configure___ ld_switch_system=LD_SWITCH_SYSTEM -configure___ ld_switch_machine=LD_SWITCH_MACHINE - -#ifdef THIS_IS_CONFIGURE - -/* Get the CFLAGS for tests in configure. */ -#ifdef __GNUC__ -configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}' -#else -configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' -#endif - -#else /* not THIS_IS_CONFIGURE */ - -/* Get the CFLAGS for real compilation. */ -#ifdef __GNUC__ -configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}' -#else -configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}' -#endif - -#endif /* not THIS_IS_CONFIGURE */ -' > ${tempcname} - -# The value of CPP is a quoted variable reference, so we need to do this -# to get its actual value... -CPP=`eval "echo $CPP"` -changequote(, )dnl -eval `${CPP} -Isrc ${tempcname} \ - | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` -if test "x$SPECIFIED_CFLAGS" = x; then - eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \ - | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'` -else - REAL_CFLAGS="$CFLAGS" -fi -changequote([, ])dnl -rm ${tempcname} - -ac_link="$ac_link $ld_switch_machine $ld_switch_system" - ### Compute the unexec source name from the object name. UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`" @@ -1511,14 +1536,6 @@ if test x"${REL_ALLOC}" = x; then REL_ALLOC=${GNU_MALLOC} fi -#### Add the libraries to LIBS and check for some functions. - -if test x"${OVERRIDE_CPPFLAGS}" != x; then - CPPFLAGS="${OVERRIDE_CPPFLAGS}" -else - CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS" -fi - LIBS="$libsrc_libs $LIBS" dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks, @@ -1545,11 +1562,14 @@ AC_MSG_RESULT($HAVE_XFREE386) # Change CFLAGS temporarily so that C_SWITCH_X_SITE gets used # for the tests that follow. We set it back to REAL_CFLAGS later on. +REAL_CPPFLAGS="$CPPFLAGS" + if test "${HAVE_X11}" = "yes"; then DEFS="$C_SWITCH_X_SITE $DEFS" LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE" LIBS="$LIBX $LIBS" CFLAGS="$C_SWITCH_X_SITE $CFLAGS" + CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS" # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests. # This is handled by LD_SWITCH_X_SITE_AUX during the real build, @@ -1699,7 +1719,10 @@ Motif version prior to 2.1. HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1 if test $emacs_cv_motif_version_2_1 = yes; then AC_DEFINE(HAVE_MOTIF_2_1) - AC_CHECK_LIB(Xp, XpCreateContext) + AC_CHECK_LIB(Xp, XpCreateContext, HAVE_LIBXP=yes, , -lXext) + if test ${HAVE_LIBXP} = yes; then + AC_DEFINE(HAVE_LIBXP) + fi fi fi @@ -1737,6 +1760,13 @@ if test "${with_toolkit_scroll_bars}" != "no"; then fi fi +dnl Don't use X11 input methods if user specifies he doesn't want it +dnl with `--with-xim=no'. + +if test "${with_xim}" != "no"; then + AC_DEFINE(USE_XIM) +fi + ### Use -lXpm if available, unless `--with-xpm=no'. HAVE_XPM=no if test "${HAVE_X11}" = "yes"; then @@ -1745,6 +1775,14 @@ if test "${HAVE_X11}" = "yes"; then CFLAGS="${LD_SWITCH_X_SITE}" AC_CHECK_HEADER(X11/xpm.h, AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)) + if test "${HAVE_XPM}" = "yes"; then + AC_EGREP_CPP(no_return_alloc_pixels, + [#include "X11/xpm.h" +#ifndef XpmReturnAllocPixels +no_return_alloc_pixels +#endif + ], HAVE_XPM=no, HAVE_XPM=yes) + fi CFLAGS="${old_c_flags}" fi @@ -1862,19 +1900,20 @@ fi AC_CHECK_FUNCS(touchlock) AC_CHECK_HEADERS(maillock.h) -AC_CHECK_FUNCS(gettimeofday gethostname getdomainname dup2 \ +AC_CHECK_FUNCS(gethostname getdomainname dup2 \ rename closedir mkdir rmdir sysinfo \ random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \ strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \ -utimes setrlimit setpgid getcwd shutdown strftime getaddrinfo \ -__fpending getloadavg mblen mbrlen strsignal setitimer ualarm) +utimes setrlimit setpgid getcwd getwd shutdown strftime getaddrinfo \ +__fpending mblen mbrlen strsignal setitimer ualarm) AC_FUNC_MKTIME if test "$ac_cv_func_working_mktime" = no; then AC_DEFINE(BROKEN_MKTIME) fi -AC_SYS_LARGEFILE +AC_FUNC_GETLOADAVG + AC_CHECK_FUNCS(ftello) # UNIX98 PTYs. AC_SYS_LARGEFILE should have defined _XOPEN_SOURCE @@ -1965,9 +2004,10 @@ if test $emacs_cv_localtime_cache = yes; then fi if test "x$HAVE_TIMEVAL" = xyes; then -AC_CACHE_CHECK(whether gettimeofday can accept two arguments, - emacs_cv_gettimeofday_two_arguments, -AC_TRY_LINK([ + AC_CHECK_FUNCS(gettimeofday) + AC_CACHE_CHECK(whether gettimeofday can accept two arguments, + emacs_cv_gettimeofday_two_arguments, + AC_TRY_COMPILE([ #ifdef TIME_WITH_SYS_TIME #include #include @@ -1977,20 +2017,45 @@ AC_TRY_LINK([ #else #include #endif -#endif - ], - [ - struct timeval time; - struct timezone dummy; - gettimeofday (&time, &dummy); -], - emacs_cv_gettimeofday_two_arguments=yes, - emacs_cv_gettimeofday_two_arguments=no)) +#endif], + [struct timeval time; + gettimeofday (&time, 0);], + emacs_cv_gettimeofday_two_arguments=yes, + emacs_cv_gettimeofday_two_arguments=no)) if test $emacs_cv_gettimeofday_two_arguments = no; then AC_DEFINE(GETTIMEOFDAY_ONE_ARGUMENT) fi fi +dnl Note that AC_STRUCT_TIMEZONE doesn't do what you might expect. +if test "$ac_cv_func_gettimeofday" = yes; then + AC_CACHE_CHECK([for struct timezone], emacs_cv_struct_timezone, + [AC_TRY_COMPILE([#include ], + [struct timezone tz;], + dnl It may be that we can't call gettimeofday with a non-null pointer, + dnl even though we have struct timezone (e.g. HPUX). In that case + dnl we'll lie about struct timezone. + [AC_TRY_RUN([ +#ifdef TIME_WITH_SYS_TIME +#include +#include +#else +#ifdef HAVE_SYS_TIME_H +#include +#else +#include +#endif +#endif +main () { + struct timeval time; + struct timezone dummy; + exit (gettimeofday (&time, &dummy)); +}], + emacs_cv_struct_timezone=yes, + emacs_cv_struct_timezone=no, emacs_cv_struct_timezone=yes)], + emacs_cv_struct_timezone=no)]) +fi + ok_so_far=yes AC_CHECK_FUNC(socket, , ok_so_far=no) if test $ok_so_far = yes; then @@ -2017,8 +2082,12 @@ fi AC_FUNC_VFORK +# Fixme: This should be replaced when we have autoconf 2.14. +AC_SIZE_T + # Set up the CFLAGS for real compilation, so we can substitute it. CFLAGS="$REAL_CFLAGS" +CPPFLAGS="$REAL_CPPFLAGS" changequote(, )dnl #### Find out which version of Emacs this is. @@ -2060,6 +2129,7 @@ AC_SUBST(CFLAGS) AC_SUBST(X_TOOLKIT_TYPE) AC_SUBST(machfile) AC_SUBST(opsysfile) +AC_SUBST(GETLOADAVG_LIBS) AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "${canonical}") AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}") @@ -2135,7 +2205,7 @@ changequote([, ])dnl AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \ man/Makefile lwlib/Makefile src/Makefile.c:src/Makefile.in \ - leim/Makefile, [ + lisp/Makefile leim/Makefile, [ ### Make the necessary directories, if they don't exist. for dir in etc lisp ; do