X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/cef11da29920a67e534b01241c47ee379926210e..d74f241f381d6749760f0a7f4248dbd337c7ecb8:/configure.in diff --git a/configure.in b/configure.in index 519f826f27..b39a7e8567 100644 --- a/configure.in +++ b/configure.in @@ -3,7 +3,7 @@ dnl To rebuild the `configure' script from this, execute the command dnl autoconf dnl in the directory containing this script. dnl -dnl Copyright (C) 1994, 95, 96, 1999, 2000, 01, 02, 03, 2004 +dnl Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003, 2004, 2005 dnl Free Software Foundation, Inc. dnl dnl This file is part of GNU Emacs. @@ -20,8 +20,8 @@ dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with GNU Emacs; see the file COPYING. If not, write to the -dnl Free Software Foundation, Inc., 59 Temple Place - Suite 330, -dnl Boston, MA 02111-1307, USA. +dnl Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +dnl Boston, MA 02110-1301, USA. AC_PREREQ(2.54)dnl AC_INIT(src/lisp.h) @@ -125,6 +125,11 @@ AC_ARG_ENABLE(carbon-app, specify install directory for Emacs.app on Mac OS X]], [ carbon_appdir_x=${enableval}]) +AC_ARG_ENABLE(asserts, +[ --enable-asserts compile code with asserts enabled], + USE_XASSERTS=$enableval, + USE_XASSERTS=no) + AC_ARG_ENABLE(maintainer-mode, [ --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer], @@ -137,6 +142,16 @@ else fi AC_SUBST(MAINT) +AC_ARG_ENABLE(locallisppath, +[ --enable-locallisppath=PATH + directories Emacs should search for lisp files + specific to this site], +if test "${enableval}" = "no"; then + locallisppath= +elif test "${enableval}" != "yes"; then + locallisppath=${enableval} +fi) + #### Make srcdir absolute, if it isn't already. It's important to #### avoid running the path through pwd unnecessarily, since pwd can #### give you automounter prefixes, which can go away. We do all this @@ -267,6 +282,15 @@ dnl see the `changequote' comment above. esac ;; + ## LynxOS ports + *-*-lynxos* ) + opsys=lynxos + case "${canonical}" in + i[3456]86-*-lynxos*) machine=intel386 ;; + powerpc-*-lynxos*) machine=powerpc ;; + esac + ;; + ## Acorn RISCiX: arm-acorn-riscix1.1* ) machine=acorn opsys=riscix1-1 @@ -332,11 +356,6 @@ dnl see the `changequote' comment above. machine=arm opsys=gnu-linux ;; - ppc-*-linux | \ - powerpc-*-linux* ) - machine=macppc opsys=gnu-linux - ;; - ## Altos 3068 m68*-altos-sysv* ) machine=altos opsys=usg5-2 @@ -1070,7 +1089,9 @@ dnl see the `changequote' comment above. machine=intel386 case "${canonical}" in *-cygwin ) opsys=cygwin ;; - *-lynxos* ) opsys=lynxos ;; + *-darwin* ) opsys=darwin + CPP="${CC-cc} -E -no-cpp-precomp" + ;; *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;; *-isc2.2* ) opsys=isc2-2 ;; *-isc4.0* ) opsys=isc4-0 ;; @@ -1251,6 +1272,8 @@ fi AC_PATH_PROG(INSTALL_INFO, install-info) AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin) AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin) +dnl Don't use GZIP, which is used by gzip for additional parameters. +AC_PATH_PROG(GZIP_PROG, gzip) dnl Add our options to ac_link now, after it is set up. @@ -1277,7 +1300,7 @@ else LDFLAGS="$LDFLAGS -znocombreloc" fi -AC_MSG_CHECKING([For -znocombreloc]) +AC_MSG_CHECKING([for -znocombreloc]) AC_LINK_IFELSE([main(){return 0;}], [AC_MSG_RESULT(yes)], LDFLAGS=$late_LDFLAGS @@ -1449,7 +1472,20 @@ 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 fcntl.h strings.h coff.h pty.h sys/mman.h \ - sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h) + sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \ + sys/utsname.h pwd.h) + +AC_MSG_CHECKING(if personality LINUX32 can be set) +AC_TRY_COMPILE([#include ], [personality (PER_LINUX32)], + emacs_cv_personality_linux32=yes, + emacs_cv_personality_linux32=no) +AC_MSG_RESULT($emacs_cv_personality_linux32) + +if test $emacs_cv_personality_linux32 = yes; then + AC_DEFINE(HAVE_PERSONALITY_LINUX32, 1, + [Define to 1 if personality LINUX32 can be set.]) +fi + dnl On Solaris 8 there's a compilation warning for term.h because dnl it doesn't define `bool'. AC_CHECK_HEADERS(term.h, , , -) @@ -1537,7 +1573,7 @@ AC_CHECK_MEMBER(struct tm.tm_gmtoff, [AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define to 1 if `tm_gmtoff' is member of `struct tm'.])],, [#include ]) -AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr, +AC_CHECK_MEMBERS([struct ifreq.ifr_flags, struct ifreq.ifr_hwaddr, struct ifreq.ifr_netmask, struct ifreq.ifr_broadaddr, struct ifreq.ifr_addr], , , [AC_INCLUDES_DEFAULT @@ -1572,51 +1608,6 @@ AH_TEMPLATE(POINTER_TYPE, [Define as `void' if your compiler accepts `void *'; otherwise define as `char'.])dnl -dnl Test if heap start address is randomized (exec-shield does this). -dnl The test program requires unistd.h and stdlib.h. They are present -dnl on the systems that currently have exec-shield. -AC_MSG_CHECKING(whether heap start address is randomized) -if test x"$ac_cv_header_unistd_h" != x && test x"$ac_cv_header_stdlib_h" != x -then - AC_TRY_RUN([#include -#include -#include -int main (int argc, char *argv[]) -{ - unsigned long old_sbrk = 0; - unsigned long this_sbrk = (unsigned long) sbrk(0); - int nr = 1; - if (argc != 1) { - old_sbrk = strtoul (argv[1], 0, 0); - nr = atoi (argv[2])+1; - } - if (argc == 1 || (old_sbrk == this_sbrk && nr < 3)) - { - char buf1[32], buf2[32]; - sprintf (buf1, "%lu", this_sbrk); - sprintf (buf2, "%d", nr); - execl (argv[0], argv[0], buf1, buf2, 0); - exit (-1); - } - exit (this_sbrk == old_sbrk); -}], emacs_cv_randomheap=yes, emacs_cv_randomheap=no, - emacs_cv_randomheap='assuming no') -else - emacs_cv_randomheap='assuming no' -fi -AC_MSG_RESULT($emacs_cv_randomheap) - -if test "$emacs_cv_randomheap" = yes; then - AC_PATH_PROG(SETARCH, setarch, no) - AC_SUBST(SETARCH) - if test "$SETARCH" != no && test "$machine" = "intel386"; then - AC_DEFINE(HAVE_RANDOM_HEAPSTART, 1, - [Define to 1 if this OS randomizes the start address of the heap.]) - else - dnl We do the warning at the end of the configure run so it is seen. - emacs_cv_randomheap=warn - fi -fi dnl This could be used for targets which can have both byte sexes. @@ -1679,6 +1670,20 @@ else fi fi +HAVE_CARBON=no +if test "${with_carbon}" != no; then + AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes) +fi +if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then + if test "${with_carbon+set}" != set \ + && test "${carbon_appdir_x+set}" != set; then + HAVE_CARBON=no + fi +fi +if test "${HAVE_CARBON}" = yes; then + window_system=mac +fi + case "${window_system}" in x11 ) HAVE_X_WINDOWS=yes @@ -1697,7 +1702,7 @@ dnl make this decision later: use the toolkit if we have X11R5 or newer. * ) USE_X_TOOLKIT=maybe ;; esac ;; - none ) + mac | none ) HAVE_X_WINDOWS=no HAVE_X11=no USE_X_TOOLKIT=none @@ -1792,7 +1797,7 @@ else HAVE_XFREE386=no fi AC_MSG_RESULT($HAVE_XFREE386) - + dnl Check for need for bigtoc support on IBM AIX case ${host_os} in @@ -2000,7 +2005,9 @@ if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then dnl GTK scrollbars resemble toolkit scrollbars a lot, so to avoid dnl a lot if #ifdef:s, say we have toolkit scrollbars. - with_toolkit_scroll_bars=yes + if test "$with_toolkit_scroll_bars" != no; then + with_toolkit_scroll_bars=yes + fi dnl Check if we can use multiple displays with this GTK version. dnl If gdk_display_open exists, assume all others are there also. @@ -2010,6 +2017,36 @@ if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "gtk"; then AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1, [Define to 1 if GTK can handle more than one display.]) fi + dnl Check if we have the old file selection dialog. + dnl If gdk_display_open exists, assume all others are there also. + HAVE_GTK_FILE_SELECTION=no + AC_CHECK_FUNCS(gtk_file_selection_new, HAVE_GTK_FILE_SELECTION=yes) + + dnl Check if we have the new file chooser dialog + dnl If gdk_display_open exists, assume all others are there also. + HAVE_GTK_FILE_CHOOSER=no + AC_CHECK_FUNCS(gtk_file_chooser_dialog_new, HAVE_GTK_FILE_CHOOSER=yes) + + if test "$HAVE_GTK_FILE_SELECTION" = yes \ + && test "$HAVE_GTK_FILE_CHOOSER" = yes; then + AC_DEFINE(HAVE_GTK_FILE_BOTH, 1, + [Define to 1 if GTK has both file selection and chooser dialog.]) + fi + + dnl Check if pthreads are available. Emacs only needs this when using + dnl gtk_file_chooser under Gnome. + if test "$HAVE_GTK_FILE_CHOOSER" = yes; then + HAVE_GTK_AND_PTHREAD=no + AC_CHECK_HEADERS(pthread.h) + if test "$ac_cv_header_pthread_h"; then + AC_CHECK_LIB(pthread, pthread_self, HAVE_GTK_AND_PTHREAD=yes) + fi + if test "$HAVE_GTK_AND_PTHREAD" = yes; then + GTK_LIBS="$GTK_LIBS -lpthread" + AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1, + [Define to 1 if you have GTK and pthread (-lpthread).]) + fi + fi fi dnl Do not put whitespace before the #include statements below. @@ -2075,29 +2112,6 @@ if test "${HAVE_X11}" = "yes"; then fi if test "${USE_X_TOOLKIT}" = "MOTIF"; then - AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif, - # We put this in CFLAGS temporarily to precede other -I options - # that might be in CFLAGS temporarily. - # We put this in CPPFLAGS where it precedes the other -I options. - OLD_CPPFLAGS=$CPPFLAGS - OLD_CFLAGS=$CFLAGS - CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS" - CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS" - [AC_TRY_COMPILE([#include ], - [int x = 5;], - emacs_cv_lesstif=yes, emacs_cv_lesstif=no)]) - if test $emacs_cv_lesstif = yes; then - # Make sure this -I option remains in CPPFLAGS after it is set - # back to REAL_CPPFLAGS. - # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not - # have those other -I options anyway. Ultimately, having this - # directory ultimately in CPPFLAGS will be enough. - REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS" - LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS" - else - CFLAGS=$OLD_CFLAGS - CPPFLAGS=$OLD_CPPFLAGS - fi AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1, [AC_TRY_COMPILE([#include ], [#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1) @@ -2116,6 +2130,30 @@ Motif version prior to 2.1. AC_DEFINE(HAVE_LIBXP, 1, [Define to 1 if you have the Xp library (-lXp).]) fi + else + AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif, + # We put this in CFLAGS temporarily to precede other -I options + # that might be in CFLAGS temporarily. + # We put this in CPPFLAGS where it precedes the other -I options. + OLD_CPPFLAGS=$CPPFLAGS + OLD_CFLAGS=$CFLAGS + CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS" + CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS" + [AC_TRY_COMPILE([#include ], + [int x = 5;], + emacs_cv_lesstif=yes, emacs_cv_lesstif=no)]) + if test $emacs_cv_lesstif = yes; then + # Make sure this -I option remains in CPPFLAGS after it is set + # back to REAL_CPPFLAGS. + # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not + # have those other -I options anyway. Ultimately, having this + # directory ultimately in CPPFLAGS will be enough. + REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS" + LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS" + else + CFLAGS=$OLD_CFLAGS + CPPFLAGS=$OLD_CPPFLAGS + fi fi fi @@ -2154,6 +2192,9 @@ if test "${with_toolkit_scroll_bars}" != "no"; then elif test "${HAVE_GTK}" = "yes"; then AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) USE_TOOLKIT_SCROLL_BARS=yes + elif test "${HAVE_CARBON}" = "yes"; then + AC_DEFINE(USE_TOOLKIT_SCROLL_BARS) + USE_TOOLKIT_SCROLL_BARS=yes fi fi @@ -2172,7 +2213,7 @@ if test "${with_xim}" != "no"; then AC_DEFINE(USE_XIM, 1, [Define to 1 if we should use XIM, if it is available.]) fi - + if test "${HAVE_XIM}" != "no"; then late_CFLAGS=$CFLAGS @@ -2307,18 +2348,12 @@ if test "${HAVE_X11}" = "yes"; then fi fi -### Use Mac OS X Carbon API to implement GUI. -HAVE_CARBON=no -if test "${with_carbon}" != "no"; then - AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes) -fi - dnl Check for malloc/malloc.h on darwin AC_CHECK_HEADER(malloc/malloc.h, AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1 if you have the header file.])) +### Use Mac OS X Carbon API to implement GUI. if test "${HAVE_CARBON}" = "yes"; then AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.]) - window_system=mac ## Specify the install directory carbon_appdir= if test "${carbon_appdir_x}" != ""; then @@ -2329,6 +2364,15 @@ if test "${HAVE_CARBON}" = "yes"; then fi # We also have mouse menus. HAVE_MENUS=yes + + tmp_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -framework Carbon" + AC_CHECK_FUNC(CancelMenuTracking, have_cmt=yes, have_cmt=no) + if test "$have_cmt" = yes; then + AC_DEFINE(HAVE_CANCELMENUTRACKING, 1, + [Define to 1 if CancelMenuTracking is available (Mac OSX).]) + fi + CFLAGS="$tmp_CFLAGS" fi ### Use session management (-lSM -lICE) if available @@ -2386,7 +2430,7 @@ AC_CHECK_FUNCS(touchlock) AC_CHECK_HEADERS(maillock.h) AC_CHECK_FUNCS(gethostname getdomainname dup2 \ -rename closedir mkdir rmdir sysinfo \ +rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \ 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 getwd shutdown getaddrinfo \ @@ -2406,6 +2450,15 @@ AC_FUNC_GETLOADAVG AC_FUNC_FSEEKO +# Configure getopt. +m4_include([m4/getopt.m4]) +gl_GETOPT_IFELSE([ + gl_GETOPT_SUBSTITUTE_HEADER + gl_PREREQ_GETOPT + GETOPTOBJS='getopt.o getopt1.o' +]) +AC_SUBST(GETOPTOBJS) + AC_FUNC_GETPGRP AC_FUNC_STRFTIME @@ -2656,7 +2709,7 @@ dnl The following looks like a useful start. dnl dnl AC_SYS_POSIX_TERMIOS dnl if test $ac_cv_sys_posix_termios = yes; then -dnl AC_DEFINE(HAVE_TERMIOS, 1, [Define to 1 if you have POSIX-style functions +dnl AC_DEFINE(HAVE_TERMIOS, 1, [Define to 1 if you have POSIX-style functions dnl and macros for terminal control.]) dnl AC_DEFINE(HAVE_TCATTR, 1, [Define to 1 if you have tcgetattr and tcsetattr.]) dnl fi @@ -2768,7 +2821,8 @@ if test "${REL_ALLOC}" = "yes" ; then fi AH_TOP([/* GNU Emacs site configuration template file. - Copyright (C) 1988, 93, 94, 99, 2000, 2002 Free Software Foundation, Inc. + Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2004 + Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -2784,8 +2838,8 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. */ /* No code in Emacs #includes config.h twice, but some bits of code @@ -2849,7 +2903,7 @@ AH_BOTTOM([ /* Don't try to switch on inline handling as detected by AC_C_INLINE generally, because even if non-gcc compilers accept `inline', they may reject `extern inline'. */ -#ifdef __GNUC__ +#if defined (__GNUC__) && defined (OPTIMIZE) #define INLINE __inline__ #else #define INLINE @@ -2897,7 +2951,13 @@ AH_BOTTOM([ /* Tell regex.c to use a type compatible with Emacs. */ #define RE_TRANSLATE_TYPE Lisp_Object #define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C) -#define RE_TRANSLATE_P(TBL) (XFASTINT (TBL) != 0) +#ifdef make_number +/* If make_number is a macro, use it. */ +#define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0))) +#else +/* If make_number is a function, avoid it. */ +#define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0)) +#endif #endif /* Avoid link-time collision with system mktime if we will use our own. */ @@ -3089,18 +3149,13 @@ echo " Does Emacs use -lpng? ${HAVE_PNG}" echo " Does Emacs use X toolkit scroll bars? ${USE_TOOLKIT_SCROLL_BARS}" echo -if test "$emacs_cv_randomheap" = warn; then - AC_MSG_WARN([ -********************************************************************** +if test $USE_XASSERTS = yes; then + echo " Compiling with asserts turned on." + CPPFLAGS="$CPPFLAGS -DXASSERTS=1" + echo +fi -Heap start address is randomized and no workaround is known. -Emacs will probably dump core when temacs is run in the build phase. -Maybe exec-shield is turned on. Read about exec-shield in `etc/PROBLEMS' -for further information. -********************************************************************** -]) -fi # Remove any trailing slashes in these variables. [test "${prefix}" != NONE &&