[#### Configuration script for XEmacs. Largely divergent from FSF.
#### Guess values for system-dependent variables and create Makefiles.
#### Generated automatically using autoconf version] AC_ACVERSION [
-#### Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#### Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
#### Copyright (C) 1993-1995 Board of Trustees, University of Illinois.
#### Copyright (C) 1996, 1997 Sun Microsystems, Inc.
#### Copyright (C) 1995, 1996 Ben Wing.
+#### Copyright (C) 2000, 2001 Martin Buchholz.
#### Copyright (C) 1998, 1999 J. Kean Johnston.
### Don't edit this script!
dnl - non-standard options
dnl - suport for extra-verbosity
dnl - ordinary libs are handled separately from X libs (might be a mistake)
-dnl - various random kludges (e.g. -with-dnet=no
+dnl - various random kludges (e.g. -with-dnet=no)
dnl PRINT_VAR(var var ...) prints values of shell variables
define([PRINT_VAR],[for var in patsubst([$1],[[
dnl ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
xe_ldflags='$LDFLAGS $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_x_site $ld_switch_run'
-xe_libs='$ld_call_shared $xe_check_libs $X_EXTRA_LIBS $libs_x $X_PRE_LIBS $LIBS $libs_machine $libs_system $libs_standard'
+xe_libs='$ld_call_shared $xe_check_libs $X_EXTRA_LIBS $libs_x $libs_gtk $X_PRE_LIBS $LIBS $libs_machine $libs_system $libs_standard'
ac_cpp='$CPP '"$xe_cppflags"
ac_compile='${CC-cc} -c $CFLAGS '"$xe_cppflags"' conftest.$ac_ext 1>&AC_FD_CC'
ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&AC_FD_CC'
x_includes=NONE
x_libraries=NONE
-dnl Installation directory options.
-dnl These are left unexpanded so users can "make install exec_prefix=/foo"
-dnl and all the variables that are supposed to be based on exec_prefix
-dnl by default will actually change.
-dnl Use braces instead of parens because sh, perl, etc. also accept them.
-dnl If you change these, you need to synchronize with the settings of the
-dnl various ..._USER_DEFINED variables further down.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${{exec_prefix}}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
dnl Initialize some other variables.
subdirs=
MFLAGS= MAKEFLAGS=
pkgdir='${datadir}/${instvardir}/lisp'
package_path=''
etcdir='${datadir}/${instvardir}/etc'
-lockdir='${statedir}/${inststaticdir}/lock'
archlibdir='${datadir}/${instvardir}/${configuration}'
docdir='${archlibdir}'
+with_netinstall="no"
with_prefix='yes'
with_site_lisp='no'
with_site_modules='yes'
with_dialogs=''
with_file_coding=''
cpp='' cppflags='' libs='' ldflags=''
+extra_includes=''
dynamic=''
with_x11=''
with_msw=''
with_system_malloc='default'
with_dlmalloc='default'
native_sound_lib=''
+dnl These should be set to the empty string when we want gtk / gnome to
+dnl be auto-detected instead of manually specified.
+with_gtk='no'
+with_gnome='no'
dnl use_assertions should be 'yes' by default. Too many people in this
dnl world have core dumps turned off by default or \"cannot find where the
dnl core file went\". At least we should get some useful output ...
with_site_modules | \
with_x | \
with_x11 | \
+ with_gtk | \
+ with_gnome | \
with_msw | \
with_gcc | \
dynamic | \
with_hesiod | \
with_dnet | \
with_infodock | \
+ with_netinstall | \
external_widget | \
verbose | \
extra_verbose | \
done
;;
- dnl Has the user specified a prefered Athena widget set?
+ dnl Has the user specified a preferred Athena widget set?
dnl This bit expands any alias names out for us...
"with_athena" )
case "$val" in
dnl Has the user specified one of the path options?
prefix | exec_prefix | bindir | datadir | statedir | libdir | \
- mandir | infodir | infopath | lispdir | etcdir | lockdir | pkgdir | \
+ mandir | infodir | infopath | lispdir | etcdir | pkgdir | \
archlibdir | docdir | package_path )
dnl If the value was omitted, get it from the next argument.
if test "$valomitted" = "yes"; then
infopath ) AC_DEFINE(INFOPATH_USER_DEFINED) ;;
package_path ) AC_DEFINE(PACKAGE_PATH_USER_DEFINED) ;;
datadir )
- AC_DEFINE(INFODIR_USER_DEFINED)
- AC_DEFINE(LISPDIR_USER_DEFINED)
- AC_DEFINE(MODULEDIR_USER_DEFINED)
- AC_DEFINE(ETCDIR_USER_DEFINED) ;;
- statedir | lockdir ) AC_DEFINE(LOCKDIR_USER_DEFINED) ;;
+ AC_DEFINE(INFODIR_USER_DEFINED)
+ AC_DEFINE(LISPDIR_USER_DEFINED)
+ AC_DEFINE(MODULEDIR_USER_DEFINED)
+ AC_DEFINE(ETCDIR_USER_DEFINED)
+ AC_DEFINE(DOCDIR_USER_DEFINED)
+ AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
docdir ) AC_DEFINE(DOCDIR_USER_DEFINED) ;;
exec_prefix | libdir | archlibdir ) AC_DEFINE(ARCHLIBDIR_USER_DEFINED) ;;
esac
dnl Has the user specified the toolkit(s) to use for GUI elements?
"with_menubars" | \
"with_scrollbars" | \
- "with_dialogs" | \
+ "with_dialogs" | \
"with_widgets" )
case "$val" in
l | lu | luc | luci | lucid ) val=lucid ;;
m | mo | mot | moti | motif ) val=motif ;;
a | at | ath | athe | athen | athena ) val=athena ;;
- n | no | non | none ) val=no ;;
+ n | no | non | none ) val=no ;;
+ y | ye | yes ) val=yes ;;
+ g | gt | gtk ) val=gtk ;;
+ m | ms | msw ) val=msw ;;
* ) USAGE_ERROR(["The \`--$optname' option must have one of these values:
- \`lucid', \`motif', \`athena', or \`no'."]) ;;
+ \`gtk\', \`lucid', \`motif', \`athena', \`yes', or \`no'."]) ;;
esac
eval "$opt=\"$val\""
;;
*-dec-osf1.2 | *-dec-osf1* ) opsys=decosf1-2 ;;
*-dec-osf3.[[2-9]] ) opsys=decosf3-2 ;;
*-dec-osf3* ) opsys=decosf3-1 ;;
- *-dec-osf4* ) opsys=decosf4-0 ;;
+ *-dec-osf[[4-9]]* ) opsys=decosf4-0 ;;
dnl DEC Ultrix
*-*-ultrix[[0-3]].* | *-*-ultrix4.0* ) opsys=bsd4-2 ;;
*-bsdi3* ) opsys=bsdos3 ;;
*-bsdi2.1* ) opsys=bsdos2-1 ;;
*-bsdi2* ) opsys=bsdos2 ;;
- *-sco3.2v5* ) opsys=sco5 ;
- dnl This is a pain. Like the current USL cc, SCO cc -E
- dnl tokenizes as it preprocesses, making configure very
- dnl unhappy. Unfortunately, /lib/cpp does not understand
- dnl flags like "-b elf", so we have to cheat in order to
- dnl pick up the right defines for UNEXEC from the s-file.
- dnl 01/05/95 robertl@dgii.com
- if test "$dynamic" = "yes" ; then
- NON_GNU_CPP="/lib/cpp -D_XOPEN_SOURCE -D_SCO_ELF" ;
- else
- NON_GNU_CPP="/lib/cpp -D_XOPEN_SOURCE" ;
- fi ;;
+ *-sco3.2v5* ) opsys=sco5 ;;
*-sysv5* ) opsys=sco7 ;;
*-386bsd* ) opsys=386bsd ;;
*-freebsd* ) opsys=freebsd ;;
esac
-if test -z "$machine" -o -z "$opsys"; then
- (echo "$progname: XEmacs hasn't been ported to \`$canonical' systems."
- echo "$progname: Check \`etc/MACHINES' for recognized configuration names."
- ) >&2
- exit 1
+dnl Initialize machine and opsys from $canonical if not in our database above.
+test -z "$machine" && machine=`echo $canonical | sed 's/-.*$//'`
+test -z "$opsys" && opsys=`echo $canonical | sed 's/^[^-]*-[^-]*-//'`
+
+dnl Use configure-time autodetection if s&m not available
+if test -r "${srcdir}/src/m/${machine}.h"; then
+ machfile="m/${machine}.h"
+ AC_DEFINE_UNQUOTED(config_machfile, "$machfile")
+else
+ echo "XEmacs has no builtin knowledge of \`$machine' machines."
+ echo "Using configure-time autodetection only."
fi
+if test -r "${srcdir}/src/s/${opsys}.h"; then
+ opsysfile="s/${opsys}.h"
+ AC_DEFINE_UNQUOTED(config_opsysfile, "$opsysfile")
+else
+ echo "XEmacs has no builtin knowledge of \`$opsys' operating systems."
+ echo "Using configure-time autodetection only."
+fi
+
+
if test -z "$dynamic"; then
case "$opsys" in
hpux* | sunos4* ) dynamic=no ;;
stack_trace_eye_catcher=`echo ${PROGNAME}_${version}_${canonical} | sed 'y/.-/__/'`
AC_DEFINE_UNQUOTED(STACK_TRACE_EYE_CATCHER, $stack_trace_eye_catcher)
-machfile="m/${machine}.h"
-opsysfile="s/${opsys}.h"
-
dnl --------------------------------------------------
dnl Determine the compiler, set up for feature testing
dnl --------------------------------------------------
AC_AIX dnl Defines _ALL_SOURCE on AIX.
-dnl Determine which SMART_INCLUDE macro will work for this system
-cat > $srcdir/conffoo.h <<EOF
-#define CONFFOO 1
-EOF
-AC_MSG_CHECKING(for a working inclusion macro)
-AC_TRY_COMPILE(,[
-#define SMART_INCLUDE(path,file) <path/file>
-#define CONFFOO_H_PATH $srcdir
-#define CONFFOO_INCLUDE(file) SMART_INCLUDE (CONFFOO_H_PATH,file)
-#include CONFFOO_INCLUDE(conffoo.h)
-], [ AC_MSG_RESULT(direct); AC_DEFINE(SMART_INCLUDE_INDIRECTIONS,0) ],
-AC_TRY_COMPILE(,[
-#define GLUE_INCLUDE(path,file) <##path##/##file##>
-#define SMART_INCLUDE(path,file) GLUE_INCLUDE(path,file)
-#define CONFFOO_H_PATH $srcdir
-#define CONFFOO_INCLUDE(file) SMART_INCLUDE(CONFFOO_H_PATH,file)
-#include CONFFOO_INCLUDE(conffoo.h)
-], [ AC_MSG_RESULT(simple); AC_DEFINE(SMART_INCLUDE_INDIRECTIONS,1) ],
-AC_TRY_COMPILE(,[
-#define GLUE_INCLUDE_2(path,file) <##path##/##file##>
-#define GLUE_INCLUDE_1(path,file) GLUE_INCLUDE_2(path,file)
-#define SMART_INCLUDE(path,file) GLUE_INCLUDE_1(path,file)
-#define CONFFOO_H_PATH $srcdir
-#define CONFFOO_INCLUDE(file) SMART_INCLUDE (CONFFOO_H_PATH,file)
-#include CONFFOO_INCLUDE(conffoo.h)
-], [ AC_MSG_RESULT(double); AC_DEFINE(SMART_INCLUDE_INDIRECTIONS,2) ],
- AC_MSG_ERROR([Cannot define a proper SMART_INCLUDE macro. Please report.]))))
-rm -f $srcdir/conffoo.h
-
-
-dnl We want feature macros defined here and in config.h.in, so that
+dnl We want feature macros defined here *and* in config.h.in, so that
dnl the compilation environment at configure time and compile time agree.
AC_MSG_CHECKING(for GNU libc)
return 11;
#elif defined __DECC
return 12;
+#elif defined __USLC__ && defined __SCO_VERSION__
+return 13;
#else
return 0;
#endif
[case "$conftest_rc" in
11) echo "You appear to be using the SunPro C compiler."; __SUNPRO_C=yes ;;
12) echo "You appear to be using the DEC C compiler." ; __DECC=yes ;;
+ 13) echo "You appear to be using the SCO C compiler." ; __USLC__=yes ;;
esac])
[#]endif
])dnl CPP_boolean_to_sh
-cat > $tempcname <<EOF
+cat > $tempcname < confdefs.h
+cat >> $tempcname <<EOF
#define NOT_C_CODE
#define C_SWITCH_SITE
#define C_SWITCH_X_SITE
#define LD_SWITCH_X_SITE
#define LD_SWITCH_X_SITE_AUX
#define OS_RELEASE $os_release
+
+#ifdef config_opsysfile
#include "$srcdir/src/$opsysfile"
+#endif
+
+#ifdef config_machfile
#include "$srcdir/src/$machfile"
+#endif
CPP_to_sh(LIBS_MACHINE, libs_machine)
CPP_to_sh(LIBS_SYSTEM, libs_system)
start_files=
libs_standard=
unexec=
- lib_gcc=
+ lib_gcc=
fi
dnl For debugging...
ld lib_gcc ld_text_start_addr start_files ordinary_link
have_terminfo mail_use_flock mail_use_lockf) && echo ""
-dnl Pick up mingw32 include path
-case "$opsys" in mingw*) mingw_include=`eval "gcc -print-file-name=libc.a"` ;
- mingw_include=`eval "dirname $mingw_include"` ;
- mingw_include="-I$mingw_include/../include/mingw32" ;
- XE_APPEND($mingw_include, c_switch_system) ;;
+dnl Pick up mingw include path
+dnl We only cope with headers in mingw, not mingw32: no previous version of
+dnl XEmacs supported mingw and cygnus have made this incompatible change
+dnl so we just go with the flow.
+case "$opsys" in mingw* | cygwin*)
+ cygwin_include=`eval "gcc -print-file-name=libc.a"` ;
+ cygwin_include=`eval "dirname $cygwin_include"` ;
+ cygwin_include="-I$cygwin_include/../include" ;
+ extra_includes="$cygwin_include/mingw $cygwin_include" ;
+ case "$opsys" in mingw*)
+ XE_APPEND($extra_includes, c_switch_system) ;;
+ esac
+ ;;
esac
dnl Non-ordinary link usually requires -lc
test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc"
+dnl -----------------------
dnl Compiler-specific hacks
-dnl DEC C requires -std
-test "$__DECC" = "yes" && XE_APPEND(-std, c_switch_site)
+dnl -----------------------
+
+dnl DEC C `-std1' means ANSI C mode
+test "$__DECC" = "yes" && XE_APPEND(-std1, c_switch_site)
+
+dnl Some versions of SCO native compiler need -Kalloca
+if test "$__USLC__" = yes; then
+ AC_MSG_CHECKING(for whether the -Kalloca compiler flag is needed)
+ need_kalloca=no
+ AC_TRY_LINK([], [void *x = alloca(4);], [:], [
+ xe_save_c_switch_system="$c_switch_system"
+ c_switch_system="$c_switch_system -Kalloca"
+ AC_TRY_LINK([], [void *x = alloca(4);], [ need_kalloca=yes ])
+ c_switch_system="$xe_save_c_switch_system"])
+ AC_MSG_RESULT($need_kalloca)
+ test "$need_kalloca" = "yes" && XE_APPEND(-Kalloca,c_switch_system)
+fi
-dnl Calculalate value of CFLAGS:
+dnl Calculate value of CFLAGS:
dnl Use either command line flag, environment var, or autodetection
if test "$cflags_specified" = "no"; then
dnl Following values of CFLAGS are known to work well.
dnl Should we take debugging options into consideration?
if test "$GCC" = "yes"; then
- CFLAGS="-g -O3 -Wall -Wno-switch -Wpointer-arith -Winline -Wmissing-prototypes -Wshadow"
+ CFLAGS="-g -O3 -Wall -Wno-switch -Winline -Wmissing-prototypes -Wshadow"
+ dnl Yuck, bad compares have been worth at least 3 crashes!
+ CFLAGS="$CFLAGS -Wsign-compare"
+ dnl glibc is intentionally not `-Wpointer-arith'-clean.
+ dnl Ulrich Drepper has rejected patches to fix the glibc header files.
+ test "$have_glibc" != "yes" && CFLAGS="$CFLAGS -Wpointer-arith"
dnl I'm not convinced this is a good idea any more. -sb
dnl test "$opsys $machine" = "linux intel386" && \
dnl CFLAGS="$CFLAGS -fno-strength-reduce -malign-loops=2 -malign-jumps=2 -malign-functions=2"
case "$CFLAGS" in
*-fno-schedule-insns*) ;;
*)
- AC_MSG_RESULT(Yes)
+ AC_MSG_RESULT(yes)
AC_MSG_WARN(Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures)
AC_MSG_WARN(without also using -fno-schedule-insns.)
AC_MSG_ERROR(Aborting due to known problem)
dnl egcs-2.91.57 (egcs-1.1 release)
dnl egcs-2.91.66 (egcs-1.1.2 release)
Linux:alpha:egcs-2.91.*)
- AC_MSG_RESULT(Yes)
+ AC_MSG_RESULT(yes)
AC_MSG_WARN(There have been reports of egcs-1.1 not compiling XEmacs correctly on)
AC_MSG_WARN(Alpha Linux. There have also been reports that egcs-1.0.3a is O.K.)
AC_MSG_ERROR(Aborting due to known problem)
;;
*:i*86*:2.7.2*)
- case "$GCC_VERSION" in
- 2.7.2)
- case "$CFLAGS" in
- *-O2*|*-O3*)
+ case "$CFLAGS" in
+ *-O2*|*-O3*)
+ case "$GCC_VERSION" in
+ 2.7.2)
case "$CFLAGS" in
*-fno-strength-reduce*) ;;
*)
- AC_MSG_RESULT(Yes)
+ AC_MSG_RESULT(yes)
AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
AC_MSG_WARN(-fno-strength-reduce.)
AC_MSG_ERROR(Aborting due to known problem)
esac
;;
esac
+ case "$CFLAGS" in
+ *-fno-caller-saves*) ;;
+ *)
+ AC_MSG_RESULT(yes)
+ AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
+ AC_MSG_WARN(-fno-caller-saves.)
+ AC_MSG_ERROR(Aborting due to known problem)
+ ;;
+ esac
;;
esac
- case "$CFLAGS" in
- *-fno-caller-saves*) ;;
- *)
- AC_MSG_RESULT(Yes)
- AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
- AC_MSG_WARN(-fno-caller-saves.)
- AC_MSG_ERROR(Aborting due to known problem)
- ;;
- esac
;;
esac
+AC_MSG_RESULT(no)
fi
-AC_MSG_RESULT(No)
dnl Inform compiler that certain flags are meant for the linker
dnl XE_PROTECT_LINKER_FLAGS(shell_var)
])dnl
XE_COMPUTE_RUNPATH()
-dnl JKJ REMOVEME
-dnl XE_SHLIB_STUFF
-
dnl -----------------------------------
dnl Do some misc autoconf-special tests
dnl -----------------------------------
doug_lea_malloc=no
fi
after_morecore_hook_exists=yes
-AC_CHECK_FUNC(malloc_get_state, ,doug_lea_malloc=no)
AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
AC_MSG_CHECKING(whether __after_morecore_hook exists)
AC_TRY_LINK([extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0],
- User chose to use Debugging Malloc."
fi
-if test "$doug_lea_malloc" = "yes" ; then
- if test "$GNU_MALLOC" = yes ; then
- GNU_MALLOC_reason="
+if test "$doug_lea_malloc" = "yes" -a "$GNU_MALLOC" = "yes" ; then
+ GNU_MALLOC_reason="
- Using Doug Lea's new malloc from the GNU C Library."
- fi
AC_DEFINE(DOUG_LEA_MALLOC)
if test "$after_morecore_hook_exists" = "no" ; then
GNU_MALLOC_reason="
- Using Doug Lea's new malloc from the Linux C Library."
AC_DEFINE(_NO_MALLOC_WARNING_)
fi
- use_minimal_tagbits=yes
fi
dnl #### mcheck is broken in all versions of Linux libc and glibc.
dnl checks for header files
AC_CHECK_HEADERS(dnl
a.out.h dnl
+ elf.h dnl
cygwin/version.h dnl
fcntl.h dnl
inttypes.h dnl
mach/mach.h dnl
sys/param.h dnl
sys/pstat.h dnl
- sys/stropts.h dnl
sys/time.h dnl
sys/timeb.h dnl
sys/un.h dnl
- kstat.h dnl
ulimit.h dnl
unistd.h dnl
- utime.h dnl
)
AC_HEADER_SYS_WAIT
AC_HEADER_STDC
AC_HEADER_TIME
AC_DECL_SYS_SIGLIST
-dnl Some systems have utime.h but do not declare the struct anyplace.
-AC_MSG_CHECKING(for struct utimbuf)
-AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h>
-#else
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#else
-#include <time.h>
-#endif
-#endif
-#ifdef HAVE_UTIME_H
-#include <utime.h>
-#endif], [static struct utimbuf x; x.actime = x.modtime;],
+
+dnl ----------------------------------------------------------------
+dnl Checking for utime() or utimes().
+dnl We prefer utime, since it is more standard.
+dnl Some systems have utime.h but do not declare the struct anyplace,
+dnl so we use a more sophisticated test for utime than AC_CHECK_FUNCS.
+dnl ----------------------------------------------------------------
+AC_MSG_CHECKING(for utime)
+AC_TRY_COMPILE([#include <sys/types.h>
+#include <utime.h>],
+[struct utimbuf x; x.actime = x.modtime = 0; utime ("/", &x);],
[AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_STRUCT_UTIMBUF)],
- AC_MSG_RESULT(no))
+ AC_DEFINE(HAVE_UTIME)],
+ [AC_MSG_RESULT(no)
+ dnl We don't have utime(); how about utimes()?
+ AC_CHECK_FUNCS(utimes)])
+
dnl checks for typedefs
AC_TYPE_SIGNAL
AC_TYPE_OFF_T
AC_CHECK_TYPE(ssize_t, int)
+dnl check for Unix98 socklen_t
+AC_MSG_CHECKING(for socklen_t)
+AC_TRY_COMPILE([#include <sys/socket.h>
+socklen_t x;
+],[],[AC_MSG_RESULT(yes)],[
+AC_TRY_COMPILE([#include <sys/socket.h>
+int accept (int, struct sockaddr *, size_t *);
+],[],[
+AC_MSG_RESULT(size_t)
+AC_DEFINE(socklen_t,size_t)], [
+AC_MSG_RESULT(int)
+AC_DEFINE(socklen_t,int)])])
+
AC_MSG_CHECKING(for struct timeval)
AC_TRY_COMPILE([#ifdef TIME_WITH_SYS_TIME
#include <sys/time.h>
test -z "$mail_locking" -a "$mail_use_flock" = "yes" && mail_locking=flock
test -z "$mail_locking" -a "$mail_use_lockf" = "yes" && mail_locking=lockf
test -z "$mail_locking" -a "$mail_use_locking" = "yes" && mail_locking=locking
+if test -z "$mail_locking"; then
+ case "$opsys" in cygwin* | mingw*)
+ mail_locking=pop ;;
+ esac
+fi
+
if test "$mail_locking" = "lockf"; then AC_DEFINE(MAIL_LOCK_LOCKF)
elif test "$mail_locking" = "flock"; then AC_DEFINE(MAIL_LOCK_FLOCK)
elif test "$mail_locking" = "locking"; then AC_DEFINE(MAIL_LOCK_LOCKING)
+elif test "$mail_locking" = "pop"; then
+ with_pop=yes
+ mail_locking=
else mail_locking="dot-locking"; AC_DEFINE(MAIL_LOCK_DOT)
fi
test "$mail_locking" = "lockf" -a "$ac_cv_func_lockf" != "yes" && \
AC_CHECKING("for specified window system")
+dnl Autodetection of Gdk libraries and includes
+dnl -------------------------------------------
+dnl On some systems (FreeBSD springs to mind), they use
+dnl versions on the utility routines, so instead of gtk-config
+dnl you must use gtk12-config, etc, etc.
+
+GNOME_CONFIG=no
+GTK_CONFIG=no
+
+if test "$with_gnome" != "no"; then
+ AC_MSG_CHECKING(for GNOME configuration script)
+ for possible in gnome-config
+ do
+ possible_version=`${possible} --version 2> /dev/null`
+ if test "x${possible_version}" != "x"; then
+ GNOME_CONFIG="${possible}"
+ with_gnome=yes
+ with_gtk=yes
+ break
+ fi
+ done
+ AC_MSG_RESULT([${GNOME_CONFIG}])
+fi
+
+if test "${GNOME_CONFIG}" != "no"; then
+ GNOME_LIBS=`${GNOME_CONFIG} --libs gnomeui`
+ GNOME_CFLAGS=`${GNOME_CONFIG} --cflags gnomeui`
+ AC_DEFINE(HAVE_GNOME)
+ XE_APPEND(${GNOME_LIBS}, libs_gtk)
+ XE_APPEND(${GNOME_CFLAGS}, c_switch_gtk)
+fi
+
+if test "$with_gtk" != "no";then
+ AC_MSG_CHECKING(for GTK configuration script)
+ for possible in gtk12-config gtk14-config gtk-config
+ do
+ possible_version=`${possible} --version 2> /dev/null`
+ if test "x${possible_version}" != "x"; then
+ GTK_CONFIG="${possible}"
+ fi
+ case "${possible_version}" in
+ 1.0.*) AC_MSG_WARN([GTK 1.2 is required, please upgrade your version of GTK.]); with_gtk=no;;
+ 1.3.*) AC_MSG_WARN([GTK 1.3 is not supported right now]); with_gtk=no;;
+ 1.2.*)
+ with_gtk=yes
+ break
+ ;;
+ *) AC_MSG_WARN([Found unsupported version of GTK: $possible_version]);;
+ esac
+ done
+ AC_MSG_RESULT([${GTK_CONFIG}])
+fi
+
+if test "${GTK_CONFIG}" != "no"; then
+ AC_MSG_CHECKING(gtk version)
+ GTK_VERSION=`${GTK_CONFIG} --version`
+ AC_MSG_RESULT(${GTK_VERSION})
+
+ AC_MSG_CHECKING(gtk libs)
+ GTK_LIBS=`${GTK_CONFIG} --libs`
+ XE_APPEND(${GTK_LIBS}, libs_gtk)
+ AC_MSG_RESULT(${GTK_LIBS})
+
+ AC_MSG_CHECKING(gtk cflags)
+ GTK_CFLAGS=`${GTK_CONFIG} --cflags`
+ XE_APPEND(${GTK_CFLAGS}, c_switch_gtk)
+ AC_MSG_RESULT(${GTK_CFLAGS})
+
+ AC_CHECK_LIB(gdk_imlib, main, XE_PREPEND(-lgdk_imlib, libs_gtk))
+ AC_CHECK_LIB(Imlib, Imlib_init, XE_APPEND(-lImlib, libs_gtk))
+ AC_CHECK_FUNCS(gdk_imlib_init)
+
+ AC_DEFINE(HAVE_XPM)
+ AC_DEFINE(HAVE_GTK)
+ AC_SUBST(GTK_CONFIG)
+
+ window_system=gtk
+ with_gtk=yes
+ with_x11=no
+
+ test "${with_scrollbars}" != "no" && with_scrollbars=gtk
+ test "${with_toolbars}" != no && with_toolbars=gtk
+ test "${with_menubars}" != "no" && with_menubars=gtk
+ test "${with_dialogs}" != "no" && with_dialogs=gtk
+ test "${with_widgets}" != "no" && with_widgets=gtk
+
+ XE_ADD_OBJS(console-gtk.o device-gtk.o event-gtk.o frame-gtk.o)
+ XE_ADD_OBJS(objects-gtk.o redisplay-gtk.o glyphs-gtk.o)
+ XE_ADD_OBJS(select-gtk.o gccache-gtk.o)
+ XE_ADD_OBJS(gtk-xemacs.o ui-gtk.o)
+
+ dnl Check for libglade support (it rocks)
+ OLD_CFLAGS="${CFLAGS}"
+ OLD_LDFLAGS="${LDFLAGS}"
+ CFLAGS="${GTK_CFLAGS} ${CFLAGS}"
+ LDFLAGS="${LDFLAGS} ${GTK_LIBS}"
+ AC_CHECK_HEADERS(glade/glade.h glade.h)
+ AC_CHECK_LIB(xml, main, XE_PREPEND(-lxml, libs_gtk))
+ AC_CHECK_LIB(glade, main, XE_PREPEND(-lglade, libs_gtk))
+ AC_CHECK_LIB(glade-gnome, main, XE_PREPEND(-lglade-gnome, libs_gtk))
+ AC_EGREP_HEADER([char \*txtdomain;], [glade/glade-xml.h],
+ [AC_MSG_RESULT(yes)
+ AC_DEFINE(LIBGLADE_XML_TXTDOMAIN,1)],
+ [AC_MSG_RESULT(no)])
+ CFLAGS="${OLD_CFLAGS}"
+ LDFLAGS="${OLD_LDFLAGS}"
+fi
+
+dnl We may eventually prefer gtk/gdk over vanilla X11...
+
if test "$with_x11" != "no"; then
dnl User-specified --x-includes or --x-libraries implies --with-x11.
test "$x_includes $x_libraries" != "NONE NONE" && \
fi
fi
-case "$with_x11" in
- yes ) window_system=x11 HAVE_X_WINDOWS=yes ;;
- no ) window_system=none HAVE_X_WINDOWS=no ;;
-esac
+dnl #### wmperry:: !x11 != NONE
+dnl case "$with_x11" in
+dnl yes ) window_system=x11 HAVE_X_WINDOWS=yes ;;
+dnl no ) window_system=none HAVE_X_WINDOWS=no ;;
+dnl esac
if test "$with_x11" = "yes"; then
AC_DEFINE(HAVE_X_WINDOWS)
done
dnl Avoid version mismatch for shared library libXm.so on osf4
- if test "$GCC" = yes -a -d /usr/shlib; then XE_APPEND(-L/usr/shlib, X_LIBS); fi
+ case "$opsys" in
+ decosf*) if test "$GCC" = yes -a -d /usr/shlib; then XE_APPEND(-L/usr/shlib, X_LIBS); fi ;;
+ esac
ld_switch_x_site="$X_LIBS"
cd ..
rm -fr conftestdir
for word in $xmkmf_defines; do
- case "$word" in
- -D*=* ) ;;
- -D* ) word=`echo '' $word | sed -e 's:^ *-D::'`
- AC_DEFINE_UNQUOTED($word) ;;
+ case "$word" in
+ -D__STDC__*) ;;
+ -D* )
+ sym=`echo '' $word | sed -e 's:^ *-D::' -e 's:=.*::'`
+ case "$word" in
+ -D*=* ) val=`echo '' $word | sed -e 's:^.*=::'` ;;
+ * ) val=1 ;;
+ esac
+dnl Avoid re-AC_DEFINE-ing xmkmf symbols we've already defined above.
+ if grep "^#define $sym " confdefs.h >/dev/null; then :; else
+ if test "$val" = "1"
+ then AC_DEFINE_UNQUOTED($sym)
+ else AC_DEFINE_UNQUOTED($sym,$val)
+ fi
+ fi ;;
esac
done
fi
AC_MSG_RESULT(R${x11_release})
AC_DEFINE_UNQUOTED(THIS_IS_X11R${x11_release})
+ if test "${x11_release}" = "4"; then
+ case "$with_widgets" in
+ "" | "no") with_widgets=no ;;
+ *) XE_DIE("Widget support requires X11R5 or greater") ;;
+ esac
+ fi
+
AC_CHECK_FUNCS(XConvertCase)
AC_CHECK_HEADERS(X11/Xlocale.h)
- dnl remove this - we should avoid checking for specific OS
- AC_MSG_CHECKING(for XFree86)
- if test -d "/usr/X386/include" -o \
- -f "/etc/XF86Config" -o \
- -f "/etc/X11/XF86Config" -o \
- -f "/usr/X11R6/lib/X11/XF86Config"; then
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_XFREE386)
- else
- AC_MSG_RESULT(no)
- fi
+ dnl XFree86 has a non-standard prototype for this X11R6 function
+ AC_CHECK_FUNCS(XRegisterIMInstantiateCallback)
+ AC_MSG_CHECKING(for standard XRegisterIMInstantiateCallback prototype)
+ AC_TRY_COMPILE([
+#define NeedFunctionPrototypes 1
+#include <X11/Xlib.h>
+extern Bool XRegisterIMInstantiateCallback(
+ Display*, struct _XrmHashBucketRec*, char*, char*, XIMProc, XPointer*);
+], [],
+ [AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)
+ AC_DEFINE(XREGISTERIMINSTANTIATECALLBACK_NONSTANDARD_PROTOTYPE)])
dnl autodetect -lXmu
test -z "$with_xmu" && { AC_CHECK_LIB(Xmu, XmuReadBitmapDataFromFile,
AC_CHECK_LIB(gdi32,main,with_msw=yes)
if test "$with_msw" = "yes"; then
AC_DEFINE(HAVE_MS_WINDOWS)
+
+ dnl The net installer only works with MS-Windows currently
+ if test "$with_netinstall" = "yes"; then
+ XE_APPEND(netinstall, MAKE_SUBDIR)
+ XE_APPEND(netinstall, SRC_SUBDIR_DEPS)
+ XE_APPEND(netinstall, INSTALL_ARCH_DEP_SUBDIR)
+ fi
+
install_pp="$blddir/lib-src/installexe.sh"
- XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomctl32 -lwinspool, libs_system)
+ XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lwinspool, libs_system)
test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto)
if test "$window_system" != x11; then
window_system=msw
done
fi
+dnl Balloon Help requires the Shape extension, not available everywhere,
+dnl for example not on AIX 4.3.
+if test "$with_x11" = "yes"; then
+ AC_CHECK_HEADER(X11/extensions/shape.h, [
+ AC_DEFINE(HAVE_BALLOON_HELP)
+ XE_ADD_OBJS(balloon_help.o balloon-x.o)])
+fi
+
dnl FSF 19.29 has some bitmapdir stuff here.
bitmapdir=
case "$window_system" in
x11 ) HAVE_X_WINDOWS=yes; echo " Using X11." ;;
msw ) HAVE_X_WINDOWS=no ; echo " Using MS-Windows." ;;
+ gtk )
+ HAVE_X_WINDOWS=no
+ test "$with_gnome" = "yes" && echo " Using GNOME."
+ test "$with_gnome" = "no" && echo " Using GTK."
+ ;;
none ) HAVE_X_WINDOWS=no ; echo " Using no window system." ;;
esac
test -z "$with_xauth" && with_xauth=yes
if test "$with_xauth" = "yes"; then
AC_DEFINE(HAVE_XAUTH)
- XE_SPACE(libs_xauth, $X_EXTRA_LIBS -lXau $libs_x $X_PRE_LIBS)
+ XE_SPACE(libs_xauth, $GTK_LIBS $X_EXTRA_LIBS -lXau $libs_x $X_PRE_LIBS)
fi
AC_SUBST(libs_xauth)
XE_APPEND(offix.o, dnd_objs)
XE_APPEND(OffiX, dragndrop_proto)
fi
+if test "$with_gtk" = "yes"; then
+ XE_APPEND(GTK, dragndrop_proto)
+fi
dnl Autodetect Drag'n'Drop support
dnl always included if CDE, Offix, or MSWindows are defined
-AC_MSG_CHECKING(if drag and drop API is needed)
if test "$with_dragndrop" != "no" ; then
+ AC_MSG_CHECKING(if drag and drop API is needed)
if test -n "$dragndrop_proto" ; then
with_dragndrop=yes
AC_MSG_RESULT([yes (${dragndrop_proto} )])
fi
dnl Autodetect PostgreSQL
-dnl The default installation location (non-Linux) is /usr/local/pgsql;
-dnl a different prefix can be selected at build/install time. If PostgreSQL
-dnl is installed into a different prefix, that prefix must be specified in
-dnl in the --site-prefixes flag.
-dnl The default RPM-based Linux installation location is /usr.
-AC_CHECKING(for PostgreSQL)
-postgres_h_path=""
-postgres_includes_found=no
-save_c_switch_site="$c_switch_site"
-
-dnl First, test standard location and site prefixes only:
+dnl On many Linux systems, PostgreSQL is packaged to be installed in /usr;
+dnl in this case, configure will easily detect it there.
+dnl
+dnl If PostgreSQL is installed into a different prefix,
+dnl (such as the default /usr/local/pgsql when building from source),
+dnl that prefix must be specified using the --site-prefixes flag.
if test "$with_postgresql" != "no"; then
- AC_CHECK_HEADER(libpq-fe.h,postgres_includes_found=yes)
-fi
+ AC_CHECKING(for PostgreSQL)
-dnl Otherwise, test different known headers locations on linux:
-if test "$postgres_includes_found" = "no" -a "$with_postgresql" != "no" -a \
- -d "/usr/local/pgsql/include"; then
- c_switch_site="$c_switch_site -I/usr/local/pgsql/include"
- AC_CHECK_HEADER(libpq-fe.h,postgres_includes_found=yes)
- if test "$postgres_includes_found" != "yes"; then
- postgres_h_path="/usr/local/pgsql/include"
- fi
- c_switch_site="$save_c_switch_site"
-fi
-if test "$postgres_includes_found" = "no" -a "$with_postgresql" != "no" -a \
- -d "/usr/include/pgsql"; then
- c_switch_site="$c_switch_site -I/usr/include/pgsql"
- AC_CHECK_HEADER(libpq-fe.h,postgres_includes_found=yes)
- if test "$postgres_includes_found" = "yes"; then
- postgres_h_path="pgsql"
- fi
- c_switch_site="$save_c_switch_site"
- fi
-if test "$postgres_includes_found" = "no" -a "$with_postgresql" != "no" -a \
- -d "/usr/include/postgresql"; then
- c_switch_site="$c_switch_site -I/usr/include/postgresql"
- AC_CHECK_HEADER(libpq-fe.h,postgres_includes_found=yes)
- if test "$postgres_includes_found" = "yes"; then
- postgres_h_path="postgresql"
-fi
- c_switch_site="$save_c_switch_site"
-fi
+dnl Look for these standard header file locations, known to be used on Linux
+ for header_dir in "" "pgsql/" "postgresql/"; do
+ AC_CHECK_HEADER(${header_dir}libpq-fe.h,
+ libpq_fe_h_file=${header_dir}libpq-fe.h; break)
+ done
-dnl Finally, check if we can link with libpq:
-if test "$postgres_includes_found" = "yes"; then
- AC_CHECK_LIB(pq,PQconnectdb,with_postgresql=yes,with_postgresql=no)
-fi
-if test "$with_postgresql" = "yes"; then
- AC_CHECK_LIB(pq,PQconnectStart,with_postgresqlv7=yes,with_postgresqlv7=no)
-fi
-if test "$with_postgresql" = "yes"; then
- if test -n "$postgres_h_path"; then
- AC_DEFINE_UNQUOTED(POSTGRES_H_PATH, $postgres_h_path)
- fi
- AC_DEFINE(HAVE_POSTGRESQL)
- if test "$with_postgresqlv7" = "yes"; then
- AC_DEFINE(HAVE_POSTGRESQLV7)
- fi
- XE_PREPEND(-lpq, LIBS)
- XE_ADD_OBJS(postgresql.o)
+ test -n "$libpq_fe_h_file" && { AC_CHECK_LIB(pq,PQconnectdb,have_libpq=yes) }
+
+ if test -n "$libpq_fe_h_file" -a "$have_libpq" = "yes"; then
+ with_postgresql=yes
+ AC_DEFINE(HAVE_POSTGRESQL)
+ AC_CHECK_LIB(pq,PQconnectStart, [
+ with_postgresqlv7=yes;
+ AC_DEFINE(HAVE_POSTGRESQLV7)])
+ AC_DEFINE_UNQUOTED(LIBPQ_FE_H_FILE, "$libpq_fe_h_file")
+ XE_PREPEND(-lpq, LIBS)
+ XE_ADD_OBJS(postgresql.o)
+ elif test "$with_postgresql" = "yes"; then
+ XE_DIE("Required PostgreSQL support cannot be provided. Check --site-prefixes.")
+ fi
fi
dnl ----------------------
AC_MSG_RESULT($with_xpm)
fi
if test "$with_xpm" = "yes"; then
+ dnl #### This code assumes that if AC_CHECK_LIB fails,
+ dnl #### then it will succeed if FOR_MSW is defined,
+ dnl #### but doesn't actually verify this assumption.
AC_DEFINE(HAVE_XPM)
XE_PREPEND(-lXpm, libs_x)
AC_MSG_CHECKING(for \"FOR_MSW\" xpm)
fi
dnl ----------------------
+dnl GTK-Specific Graphics libraries
+dnl ----------------------
+
+if test "$with_gtk" = "yes"; then
+ dnl Autodetect XFACE
+ test -z "$with_xface" && { AC_CHECK_HEADER(compface.h, ,with_xface=no) }
+ test -z "$with_xface" && { AC_CHECK_LIB(compface, UnGenFace,[:] ,with_xface=no) }
+ test -z "$with_xface" && with_xface=yes
+ if test "$with_xface" = "yes"; then
+ AC_DEFINE(HAVE_XFACE)
+ XE_PREPEND(-lcompface, libs_gtk)
+ fi
+fi
+
+
+dnl ----------------------
dnl X-Specific Graphics libraries
dnl ----------------------
dnl Add the Athena widget library we located earlier
XE_PREPEND(-l$athena_lib, libs_x)
- dnl Export the path for lwlib, used to build and include the headers
- dnl from the right place later on.
- AC_DEFINE_UNQUOTED(ATHENA_H_PATH, $athena_h_path)
+ dnl Tell lwlib where to find the Athena header files.
+ dnl Many people have tried to create a `smart' way of doing this,
+ dnl but all have failed. Before changing the following ugly definitions,
+ dnl consult the veterans of many a battle.
+ AC_DEFINE_UNQUOTED(ATHENA_Scrollbar_h_,"$athena_h_path/Scrollbar.h")
+ AC_DEFINE_UNQUOTED(ATHENA_Dialog_h_,"$athena_h_path/Dialog.h")
+ AC_DEFINE_UNQUOTED(ATHENA_Form_h_,"$athena_h_path/Form.h")
+ AC_DEFINE_UNQUOTED(ATHENA_Command_h_,"$athena_h_path/Command.h")
+ AC_DEFINE_UNQUOTED(ATHENA_Label_h_,"$athena_h_path/Label.h")
+ AC_DEFINE_UNQUOTED(ATHENA_LabelP_h_,"$athena_h_path/LabelP.h")
+ AC_DEFINE_UNQUOTED(ATHENA_Toggle_h_,"$athena_h_path/Toggle.h")
+ AC_DEFINE_UNQUOTED(ATHENA_ToggleP_h_,"$athena_h_path/ToggleP.h")
+ AC_DEFINE_UNQUOTED(ATHENA_AsciiText_h_,"$athena_h_path/AsciiText.h")
+ AC_DEFINE_UNQUOTED(ATHENA_XawInit_h_,"$athena_h_path/XawInit.h")
AC_DEFINE(LWLIB_USES_ATHENA)
AC_DEFINE(NEED_ATHENA)
+ need_athena="yes"
if test "$athena_3d" = "yes"; then
AC_DEFINE(HAVE_ATHENA_3D)
test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog.o)
test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar.o)
+if test "$with_gtk" = "yes"; then
+ test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-gtk.o)
+ test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-gtk.o)
+ test "$with_dialogs" != "no" && XE_ADD_OBJS(dialog-gtk.o)
+ test "$with_toolbars" != "no" && XE_ADD_OBJS(toolbar-gtk.o)
+ test "$all_widgets" != "no no no no no" && XE_ADD_OBJS(gui-gtk.o)
+fi
+
if test "$with_x11" = "yes"; then
test "$with_menubars" != "no" && XE_ADD_OBJS(menubar-x.o)
test "$with_scrollbars" != "no" && XE_ADD_OBJS(scrollbar-x.o)
if test "$with_xfs" = "yes" && test "$with_menubars" = "lucid"; then
AC_DEFINE(USE_XFONTSET)
if test "$with_xim" = "no" ; then
- XE_ADD_OBJS(input-method-xfs.o)
+ XE_ADD_OBJS(input-method-xlib.o)
fi
fi
fi dnl with_xfs
dnl Autodetect WNN
test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/jllib.h, ,with_wnn=no) }
+ dnl gcc 2.97 fixincludes breaks inclusion of wnn/commonhd.h
+ test -z "$with_wnn" && { AC_CHECK_HEADER(wnn/commonhd.h, ,with_wnn=no) }
dnl Detour to find crypt
if test "$with_wnn" != "no"; then
AC_CHECK_FUNCS(crypt)
XE_COMPUTE_RUNPATH()
fi
-AC_CHECK_FUNCS(cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getpt getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf fsync ftruncate umask)
+AC_CHECK_FUNCS(cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strerror tzset ulimit usleep waitpid vsnprintf fsync ftruncate umask)
+
+dnl ----------------------------------------------------------------
+dnl Check for PTY support functions.
+dnl ----------------------------------------------------------------
+
+dnl There is no "standard" pty allocation method. Every system is different.
+dnl getpt() is the preferred pty allocation method on glibc systems.
+dnl _getpty() is the preferred pty allocation method on SGI systems.
+dnl grantpt(), unlockpt(), ptsname() are defined by Unix98.
+AC_CHECK_FUNCS(getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp)
+
+dnl openpty() is the preferred pty allocation method on BSD and Tru64 systems.
+dnl openpty() might be declared in:
+dnl - pty.h (Tru64 or Linux)
+dnl - libutil.h (FreeBSD)
+dnl - util.h (NetBSD)
+AC_CHECK_FUNC(openpty, have_openpty=yes, [
+ AC_CHECK_LIB(util, openpty, have_openpty=yes need_libutil=yes)])
+if test "$have_openpty" = "yes"; then
+ AC_DEFINE(HAVE_OPENPTY)
+ AC_CHECK_HEADERS(pty.h libutil.h util.h, break)
+ test "$need_libutil" = "yes" && XE_APPEND(-lutil, libs_system)
+fi
+
+dnl Check for STREAM support functions.
+dnl Confusingly, "str" means both "string" and "SysV Streams".
+AC_CHECK_HEADERS(stropts.h)
+if test "$ac_cv_header_stropts_h" = "yes"; then
+ AC_CHECK_FUNCS(isastream)
+ AC_CHECK_HEADERS(strtio.h) dnl TIOCSIGNAL
+fi
dnl Use our own realpath always.
XE_ADD_OBJS(realpath.o)
-dnl Check whether the system provides getloadavg (Solaris 7 has it)
+dnl Check whether the system provides getloadavg().
AC_CHECK_FUNCS(getloadavg)
-if test "$ac_cv_func_getloadavg" != "yes"
-then
+if test "$ac_cv_func_getloadavg" = "yes"; then
+ dnl Solaris 8 declares getloadavg() in <sys/loadavg.h>.
+ dnl glibc 2.2 declares getloadavg() in <stdlib.h>...
+ dnl ...if we #define _GNU_SOURCE, which we do.
+ AC_CHECK_HEADERS(sys/loadavg.h)
+else
+ dnl We define our own getloadavg() using lower level functions.
XE_ADD_OBJS(getloadavg.o)
dnl Used by getloadavg() - does not require root priveleges
AC_CHECK_LIB(kstat, kstat_open)
+ AC_CHECK_HEADERS(kstat.h)
dnl Another way to get the load average
AC_CHECK_LIB(kvm, kvm_read)
dnl AC_CHECK_FUNC(alloca, [:], [AC_CHECK_LIB(PW, alloca)])
dnl esac
-AC_FUNC_ALLOCA
-test -n "$ALLOCA" && XE_ADD_OBJS($ALLOCA)
+dnl AC_FUNC_ALLOCA doesn't know about DEC C's #pragma intrinsic(alloca)
+if test "$__DECC" != "yes"; then
+ AC_FUNC_ALLOCA
+ test -n "$ALLOCA" && XE_ADD_OBJS($ALLOCA)
+fi
dnl Check whether vfork exists and works correctly. (This does more
dnl than just check for its existence.) If so, it defines HAVE_VFORK_H.
AC_MSG_RESULT($have_mmap)
test "$have_mmap" = "yes" && AC_DEFINE(HAVE_MMAP)
+dnl By default we switch off rel-alloc on cygwin as it generally causes us grief
+case "$opsys" in cygwin*)
+ test "$rel_alloc" = "default" && rel_alloc=no ;;
+esac
dnl rel_alloc requires either GNU malloc or system malloc with mmap
dnl We only turn rel_alloc on by default if mmap is available.
test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && rel_alloc=no
done
fi
+ dnl Win32 Native uses native sound
+ if test -z "$sound_found"; then
+ if test "$with_msw" = "yes"; then
+ sound_found=yes
+ native_sound_lib=
+ fi
+ fi
+
test "$sound_found" = "yes" && with_native_sound=yes
fi
#if DB_VERSION_MAJOR > 1
yes
#endif
-], [AC_MSG_RESULT(2); dbfunc=db_open], [AC_MSG_RESULT(1); dbfunc=dbopen])
+], [AC_EGREP_CPP(yes,
+[#include <$db_h_file>
+#if DB_VERSION_MAJOR > 2
+yes
+#endif
+], [AC_MSG_RESULT(3); dbfunc=db_create],[
+ AC_MSG_RESULT(2); dbfunc=db_open])],[
+ AC_MSG_RESULT(1); dbfunc=dbopen])
AC_CHECK_FUNC($dbfunc, with_database_berkdb=yes need_libdb=no, [
AC_CHECK_LIB(db, $dbfunc, with_database_berkdb=yes need_libdb=yes)])
fi
if test "$with_modules" != "no"; then
AC_CHECKING(for module support)
- dnl Find headers and libraries
- AC_CHECK_HEADER(dlfcn.h, [
- AC_CHECK_LIB(dl, dlopen, [ have_dl=yes libdl=dl], [
- AC_CHECK_LIB(c, dlopen, [ have_dl=yes ])])])
- if test -n "$have_dl"; then
- AC_DEFINE(HAVE_DLOPEN)
+ dnl Check for MS-Windows
+ if test "$with_msw" = "yes"; then
+ have_dl=yes;
else
- AC_CHECK_LIB(dld, shl_load, [
- libdl=dld have_dl=yes;
- AC_DEFINE(HAVE_SHL_LOAD)], [
- AC_CHECK_LIB(dld, dld_init, [
- libdl=dld have_dl=yes;
- AC_DEFINE(HAVE_DLD_INIT)])])
- fi
+ dnl Find headers and libraries
+ AC_CHECK_HEADER(dlfcn.h, [
+ AC_MSG_CHECKING([for dlopen in -lc])
+ AC_TRY_LINK([#include <dlfcn.h>],dnl
+ [dlopen ("", 0);], [ have_dl=yes ], [
+ AC_MSG_CHECKING([for dlopen in -ldl])
+ ac_save_LIBS="$LIBS"
+ LIBS="-ldl $LIBS"
+ AC_TRY_LINK([#include <dlfcn.h>],dnl
+ [dlopen ("", 0);], [ have_dl=yes ],
+ [LIBS="$ac_save_LIBS"])
+ ac_save_LIBS=])])
+ if test -n "$have_dl"; then
+ AC_DEFINE(HAVE_DLOPEN)
+ else
+ AC_CHECK_LIB(dld, shl_load, [
+ libdl=dld have_dl=yes;
+ AC_DEFINE(HAVE_SHL_LOAD)], [
+ AC_CHECK_LIB(dld, dld_init, [
+ libdl=dld have_dl=yes;
+ AC_DEFINE(HAVE_DLD_INIT)])])
+ fi
+ fi dnl end !MS-Windows
if test -n "$have_dl"; then
dnl XE_SHLIB_STUFF (in aclocal.m4) defines $can_build_shared
XE_SPACE(CFLAGS, $CFLAGS)
XE_SPACE(extra_objs, $extra_objs)
XE_SPACE(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system)
-XE_SPACE(c_switch_window_system, $c_switch_x_site $X_CFLAGS)
+XE_SPACE(c_switch_window_system, $c_switch_x_site $c_switch_gtk $X_CFLAGS)
XE_SPACE(c_switch_all, $c_switch_general $c_switch_window_system)
XE_SPACE(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run)
XE_SPACE(ld_switch_window_system, $ld_switch_x_site)
XE_SPACE(ld_switch_all, $ld_switch_general $ld_switch_window_system)
XE_SPACE(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard)
-XE_SPACE(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $X_PRE_LIBS)
+XE_SPACE(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $libs_gtk $X_PRE_LIBS)
XE_SPACE(ld_libs_all, $ld_libs_window_system $ld_libs_general)
dnl Compute lists of Makefiles and subdirs
AC_SUBST(statedir)
AC_SUBST(libdir)
AC_SUBST(mandir)
+AC_SUBST(extra_includes)
AC_SUBST(prefix)
AC_SUBST(PREFIX_USER_DEFINED)
done
AC_SUBST(ETCDIR)
-AC_SUBST(lockdir)
-AC_SUBST(LOCKDIR_USER_DEFINED)
-LOCKDIR=$lockdir
-while true; do
- case "$LOCKDIR" in
- *\$* ) eval "LOCKDIR=$LOCKDIR" ;;
- *) break ;;
- esac
-done
-AC_SUBST(LOCKDIR)
-
AC_SUBST(docdir)
AC_SUBST(DOCDIR_USER_DEFINED)
DOCDIR=$docdir
XE_SPACE(ac_configure_args, $ac_configure_args)
AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION, "$configuration")
AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "$ac_configure_args")
-AC_DEFINE_UNQUOTED(config_machfile, "$machfile")
-AC_DEFINE_UNQUOTED(config_opsysfile, "$opsysfile")
dnl Following are deprecated
if test -n "$runpath"; then
echo " Runtime library search path: $runpath"
fi
-echo " Operating system description file: \`$opsysfile'"
-echo " Machine description file: \`$machfile'"
+
+if test -n "$opsysfile"
+then echo " Operating system description file: \`$opsysfile'"
+else echo " Not using any operating system description file"
+fi
+if test -n "$machfile"
+then echo " Machine description file: \`$machfile'"
+else echo " Not using any machine description file"
+fi
+
echo " Compiler: $CC $CFLAGS"
echo " Relocating allocator for buffers: $rel_alloc"
echo " GNU version of malloc: ${GNU_MALLOC}${GNU_MALLOC_reason}"
echo " - Handling WM_COMMAND properly."
fi
fi
-if test "$have_xaw" = "yes"; then
+if test "$need_athena" = "yes"; then
echo " Compiling in support for the Athena widget set:"
echo " - Athena headers location: $athena_h_path"
echo " - Athena library to link: $athena_lib"
fi
case "$with_menubars" in
+ gtk ) echo " Using GTK menubars." ;;
lucid ) echo " Using Lucid menubars." ;;
motif ) echo " Using Motif menubars."
echo " *WARNING* The Motif menubar implementation is currently buggy."
msw ) echo " Using MS-Windows menubars." ;;
esac
case "$with_scrollbars" in
+ gtk ) echo " Using GTK scrollbars." ;;
lucid ) echo " Using Lucid scrollbars." ;;
motif ) echo " Using Motif scrollbars." ;;
athena ) echo " Using Athena scrollbars." ;;
msw ) echo " Using MS-Windows scrollbars." ;;
esac
case "$with_dialogs" in
+ gtk ) echo " Using GTK dialog boxes." ;;
motif ) echo " Using Motif dialog boxes."
if test "$unexec" = "unexaix.o"; then if test "`uname -v`" = 4 -a "`uname -r`" -ge 3; then
echo " *WARNING* The Motif dialog boxes cause problems on AIX 4.3 and higher."
msw ) echo " Using MS-Windows dialog boxes." ;;
esac
case "$with_widgets" in
+ gtk ) echo " Using GTK native widgets." ;;
motif ) echo " Using Motif native widgets." ;;
athena ) echo " Using Athena native widgets." ;;
msw ) echo " Using MS-Windows native widgets." ;;
test "$with_ldap" = yes && echo " Compiling in support for LDAP."
if test "$with_postgresql" = yes; then
echo " Compiling in support for PostgreSQL."
- if test "$with_postgresqlv7" = yes; then
- echo " - Using PostgreSQL V7 bindings."
- fi
- if test -n "$postgres_h_path"; then
- echo " - PostgreSQL headers location: $postgres_h_path"
- fi
+ echo " - Using PostgreSQL header file: $libpq_fe_h_file"
+ test "$with_postgresqlv7" = yes && echo " - Using PostgreSQL V7 bindings."
fi
echo "
test "$with_pop" = yes && echo " Compiling in support for POP mail retrieval."
test "$with_kerberos" = yes && echo " Compiling in support for Kerberos POP authentication."
test "$with_hesiod" = yes && echo " Compiling in support for Hesiod POP server access."
-echo " Compiling in support for \"$mail_locking\" mail spool file locking method."
+test -n "$mail_locking" && echo " Compiling in support for \"$mail_locking\" mail spool file locking method."
echo "
Other Features:"
test "$with_socks" = yes && echo " Compiling in support for SOCKS."
test "$with_dnet" = yes && echo " Compiling in support for DNET."
test "$with_modules" = "yes" && echo " Compiling in support for dynamic shared object modules."
-test "$with_clash_detection" != "no" && \
- echo " Clash detection will use \"$lockdir\" for locking files."
test "$use_union_type" = yes && echo " Using the union type for Lisp_Objects."
test "$pdump" = yes && echo " Using the new portable dumper."
test "$debug" = yes && echo " Compiling in support for extra debugging code."
-e 's/^[ TAB][ TAB]*$//'\
-e 's/^ /TAB/' \
dnl Delete blank lines
- | sed -n -e '/^..*$/p' \
+ -e '/^[ \f]*$/d' \
dnl Restore lines quoted above to original contents.
- | sed '/^\"/ {
+ -e '/^\"/ {
s/\\\([\"]\)/\1/g
s/^[ TAB]*\"//
s/\"[ TAB]*$//