mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-10-31 06:00:54 +01:00 
			
		
		
		
	10565: maximum function depth configure option 10566: patgetglobflags has a second argument now
		
			
				
	
	
		
			1664 lines
		
	
	
	
		
			47 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			1664 lines
		
	
	
	
		
			47 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| dnl
 | |
| dnl  configure.in: Configure template for zsh.
 | |
| dnl  Process this file with autoconf to produce a configure script.
 | |
| dnl
 | |
| dnl  Copyright (c) 1995-1997 Richard Coleman
 | |
| dnl  All rights reserved.
 | |
| dnl
 | |
| dnl  Permission is hereby granted, without written agreement and without
 | |
| dnl  license or royalty fees, to use, copy, modify, and distribute this
 | |
| dnl  software and to distribute modified versions of this software for any
 | |
| dnl  purpose, provided that the above copyright notice and the following
 | |
| dnl  two paragraphs appear in all copies of this software.
 | |
| dnl
 | |
| dnl  In no event shall Richard Coleman or the Zsh Development Group be liable
 | |
| dnl  to any party for direct, indirect, special, incidental, or consequential
 | |
| dnl  damages arising out of the use of this software and its documentation,
 | |
| dnl  even if Richard Coleman and the Zsh Development Group have been advised of
 | |
| dnl  the possibility of such damage.
 | |
| dnl
 | |
| dnl  Richard Coleman and the Zsh Development Group specifically disclaim any
 | |
| dnl  warranties, including, but not limited to, the implied warranties of
 | |
| dnl  merchantability and fitness for a particular purpose.  The software
 | |
| dnl  provided hereunder is on an "as is" basis, and Richard Coleman and the
 | |
| dnl  Zsh Development Group have no obligation to provide maintenance,
 | |
| dnl  support, updates, enhancements, or modifications.
 | |
| dnl
 | |
| 
 | |
| AC_INIT(Src/zsh.h)
 | |
| AC_CONFIG_HEADER(config.h)
 | |
| 
 | |
| dnl What version of zsh are we building ?
 | |
| . ${srcdir}/Config/version.mk
 | |
| echo "configuring for zsh $VERSION"
 | |
| 
 | |
| dnl ----------------------------------------------
 | |
| dnl CHECK FOR MACHINE/VENDOR/OPERATING SYSTEM TYPE
 | |
| dnl ----------------------------------------------
 | |
| dnl Find out machine type, vendor, and operating system
 | |
| dnl What type of host is this?
 | |
| AC_CANONICAL_HOST
 | |
| AC_DEFINE_UNQUOTED(MACHTYPE, "$host_cpu")
 | |
| AC_DEFINE_UNQUOTED(VENDOR,   "$host_vendor")
 | |
| AC_DEFINE_UNQUOTED(OSTYPE,   "$host_os")
 | |
| 
 | |
| dnl -----------------------------
 | |
| dnl CHECKING COMMAND LINE OPTIONS
 | |
| dnl -----------------------------
 | |
| dnl Handle --program-prefix, --program-suffix, etc.
 | |
| zsh_ARG_PROGRAM
 | |
| 
 | |
| dnl Do you want to debug zsh?
 | |
| undefine([zsh-debug])dnl
 | |
| AC_ARG_ENABLE(zsh-debug,
 | |
| [  --enable-zsh-debug         use it if you want to debug zsh],
 | |
| [if test x$enableval = xyes; then
 | |
|   AC_DEFINE(DEBUG)
 | |
| fi])
 | |
| 
 | |
| dnl Do you want zsh memory allocation routines.
 | |
| undefine([zsh-mem])dnl
 | |
| AC_ARG_ENABLE(zsh-mem,
 | |
| [  --enable-zsh-mem           use zsh memory allocation routines],
 | |
| [if test x$enableval = xyes; then
 | |
|   AC_DEFINE(ZSH_MEM)
 | |
| fi])
 | |
| 
 | |
| dnl Do you want to debug zsh memory allocation routines.
 | |
| undefine([zsh-mem-debug])dnl
 | |
| AC_ARG_ENABLE(zsh-mem-debug,
 | |
| [  --enable-zsh-mem-debug     debug zsh memory allocation routines],
 | |
| [if test x$enableval = xyes; then
 | |
|   AC_DEFINE(ZSH_MEM_DEBUG)
 | |
| fi])
 | |
| 
 | |
| dnl Do you want to print warnings when errors in memory allocation.
 | |
| undefine([zsh-mem-warning])dnl
 | |
| AC_ARG_ENABLE(zsh-mem-warning,
 | |
| [  --enable-zsh-mem-warning   print warnings when error in memory allocation],
 | |
| [if test x$enableval = xyes; then
 | |
|   AC_DEFINE(ZSH_MEM_WARNING)
 | |
| fi])
 | |
| 
 | |
| dnl Do you want to turn on error checking for free().
 | |
| undefine([zsh-secure-free])dnl
 | |
| AC_ARG_ENABLE(zsh-secure-free,
 | |
| [  --enable-zsh-secure-free   turn on error checking for free()],
 | |
| [if test x$enableval = xyes; then
 | |
|   AC_DEFINE(ZSH_SECURE_FREE)
 | |
| fi])
 | |
| 
 | |
| dnl Do you want debugging information on internal hash tables.
 | |
| dnl This turns on the `hashinfo' builtin command.
 | |
| undefine([zsh-hash-debug])dnl
 | |
| AC_ARG_ENABLE(zsh-hash-debug,
 | |
| [  --enable-zsh-hash-debug    turn on debugging of internal hash tables],
 | |
| [if test x$enableval = xyes; then
 | |
|   AC_DEFINE(ZSH_HASH_DEBUG)
 | |
| fi])
 | |
| 
 | |
| dnl Do you want large file support, if available?
 | |
| undefine([lfs])dnl
 | |
| AC_ARG_ENABLE(lfs,
 | |
| [  --disable-lfs              turn off support for large files],
 | |
| [lfs="$enableval"], [lfs=yes])
 | |
| 
 | |
| dnl Pathnames for global zsh scripts
 | |
| undefine([etcdir])dnl
 | |
| AC_ARG_ENABLE(etcdir,
 | |
| [  --enable-etcdir=directory  default directory for global zsh scripts],
 | |
| [etcdir="$enableval"], [etcdir=/etc])
 | |
| 
 | |
| undefine([zshenv])dnl
 | |
| AC_ARG_ENABLE(zshenv,
 | |
| [  --enable-zshenv=pathname   the full pathname of the global zshenv script],
 | |
| [zshenv="$enableval"],
 | |
| [if test "x$etcdir" = xno; then
 | |
|   zshenv=no
 | |
| else
 | |
|   zshenv="$etcdir/zshenv"
 | |
| fi])
 | |
| if test "x$zshenv" != xno; then
 | |
|   AC_DEFINE_UNQUOTED(GLOBAL_ZSHENV, "$zshenv")
 | |
| fi
 | |
| 
 | |
| undefine([zshrc])dnl
 | |
| AC_ARG_ENABLE(zshrc,
 | |
| [  --enable-zshrc=pathname    the full pathname of the global zshrc script],
 | |
| [zshrc="$enableval"],
 | |
| [if test "x$etcdir" = xno; then
 | |
|   zshrc=no
 | |
| else
 | |
|   zshrc="$etcdir/zshrc"
 | |
| fi])
 | |
| if test "x$zshrc" != xno; then
 | |
|   AC_DEFINE_UNQUOTED(GLOBAL_ZSHRC, "$zshrc")
 | |
| fi
 | |
| 
 | |
| undefine([zprofile])dnl
 | |
| AC_ARG_ENABLE(zprofile,
 | |
| [  --enable-zprofile=pathname the full pathname of the global zprofile script],
 | |
| [zprofile="$enableval"],
 | |
| [if test "x$etcdir" = xno; then
 | |
|   zprofile=no
 | |
| else
 | |
|   zprofile="$etcdir/zprofile"
 | |
| fi])
 | |
| if test "x$zprofile" != xno; then
 | |
|   AC_DEFINE_UNQUOTED(GLOBAL_ZPROFILE, "$zprofile")
 | |
| fi
 | |
| 
 | |
| undefine([zlogin])dnl
 | |
| AC_ARG_ENABLE(zlogin,
 | |
| [  --enable-zlogin=pathname   the full pathname of the global zlogin script],
 | |
| [zlogin="$enableval"],
 | |
| [if test "x$etcdir" = xno; then
 | |
|   zlogin=no
 | |
| else
 | |
|   zlogin="$etcdir/zlogin"
 | |
| fi])
 | |
| if test "x$zlogin" != xno; then
 | |
|   AC_DEFINE_UNQUOTED(GLOBAL_ZLOGIN, "$zlogin")
 | |
| fi
 | |
| 
 | |
| undefine([zlogout])dnl
 | |
| AC_ARG_ENABLE(zlogout,
 | |
| [  --enable-zlogout=pathname  the full pathname of the global zlogout script],
 | |
| [zlogout="$enableval"],
 | |
| [if test "x$etcdir" = xno; then
 | |
|   zlogout=no
 | |
| else
 | |
|   zlogout="$etcdir/zlogout"
 | |
| fi])
 | |
| if test "x$zlogout" != xno; then
 | |
|   AC_DEFINE_UNQUOTED(GLOBAL_ZLOGOUT, "$zlogout")
 | |
| fi
 | |
| 
 | |
| AC_SUBST(zshenv)dnl
 | |
| AC_SUBST(zshrc)dnl
 | |
| AC_SUBST(zprofile)dnl
 | |
| AC_SUBST(zlogin)dnl
 | |
| AC_SUBST(zlogout)dnl
 | |
| 
 | |
| dnl Do you want dynamically loaded binary modules.
 | |
| undefine([dynamic])dnl
 | |
| AC_ARG_ENABLE(dynamic,
 | |
| [  --disable-dynamic          turn off dynamically loaded binary modules],
 | |
| [dynamic="$enableval"], [dynamic=yes])
 | |
| 
 | |
| dnl Do you want to disable a list of modules?
 | |
| dnl Unfortunately we can't give --disable-* a value, so we'll have
 | |
| dnl to do it as an `--enable-*', rather unnaturally.
 | |
| undefine([OMIT_MODULES])dnl
 | |
| AC_ARG_ENABLE(omit-modules,
 | |
| [  --enable-omit-modules      give comma-separated list of modules to ignore],
 | |
| [OMIT_MODULES="$enableval"], [OMIT_MODULES=])
 | |
| 
 | |
| AC_SUBST(OMIT_MODULES)dnl
 | |
| 
 | |
| dnl Do you want to compile as K&R C.
 | |
| AC_ARG_ENABLE(ansi2knr,
 | |
| [  --enable-ansi2knr          translate source to K&R C before compiling],
 | |
| [ansi2knr="$enableval"], [ansi2knr=default])
 | |
| 
 | |
| dnl Do you want to disable restricted on r* commands
 | |
| undefine([restricted-r])dnl
 | |
| AC_ARG_ENABLE(restricted-r,
 | |
| [  --disable-restricted-r     turn off restricted shell if the invoked command is r*],
 | |
| [if test x$enableval = xyes; then
 | |
|   AC_DEFINE(RESTRICTED_R)
 | |
| fi],
 | |
| AC_DEFINE(RESTRICTED_R)
 | |
| )
 | |
| 
 | |
| dnl Do you want to disable use of locale functions
 | |
| AC_ARG_ENABLE([locale],
 | |
| [  --disable-locale           turn off locale features],
 | |
| [if test x$enableval = xyes; then
 | |
|   AC_DEFINE(CONFIG_LOCALE)
 | |
| fi],
 | |
| AC_DEFINE(CONFIG_LOCALE)
 | |
| )
 | |
| 
 | |
| undefine([fndir])dnl
 | |
| AC_ARG_ENABLE(fndir,
 | |
| [  --enable-fndir=DIR         where functions go],
 | |
| dnl ${VERSION} to be determined at compile time.
 | |
| [if test $enableval = yes; then
 | |
|   fndir=${datadir}/${tzsh_name}/'${VERSION}'/functions
 | |
| else
 | |
|   fndir="$enableval"
 | |
| fi], [fndir=${datadir}/${tzsh_name}/'${VERSION}'/functions])
 | |
| 
 | |
| undefine([sitefndir])dnl
 | |
| AC_ARG_ENABLE(sitefndir,
 | |
| [  --enable-site-fndir=DIR    where site functions (not version specific) go],
 | |
| [if test $enableval = yes; then
 | |
|   sitefndir=${datadir}/${tzsh_name}/site-functions
 | |
| else
 | |
|   sitefndir="$enableval"
 | |
| fi], [sitefndir=${datadir}/${tzsh_name}/site-functions])
 | |
| 
 | |
| undefine([function_subdirs])
 | |
| AC_ARG_ENABLE(function-subdirs,
 | |
| [  --enable-function-subdirs  install functions in subdirectories])
 | |
| 
 | |
| if test "x${FUNCTIONS_INSTALL+set}" != xset; then
 | |
|   FUNCTIONS_INSTALL="Core/* Base/* Builtins/* User/* Commands/* Debian/* Linux/* X/* Zle/* Prompts/* Misc/*"
 | |
|   if test $dynamic != no; then
 | |
|     FUNCTIONS_INSTALL="${FUNCTIONS_INSTALL} Zftp/*"
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| if test "x${enable_function_subdirs}" != x -a \
 | |
|   "x${enable_function_subdirs}" != xno -a \
 | |
|   "x$FUNCTIONS_INSTALL" != x; then
 | |
|   FUNCTIONS_SUBDIRS=yes
 | |
| else
 | |
|   FUNCTIONS_SUBDIRS=no
 | |
| fi
 | |
| 
 | |
| AC_SUBST(fndir)dnl
 | |
| AC_SUBST(sitefndir)dnl
 | |
| AC_SUBST(FUNCTIONS_INSTALL)dnl
 | |
| AC_SUBST(FUNCTIONS_SUBDIRS)dnl
 | |
| 
 | |
| dnl Do you want maildir support?
 | |
| undefine([maildir_support])dnl
 | |
| AC_ARG_ENABLE(maildir-support,
 | |
| [  --enable-maildir-support   Enable maildir support in MAIL and MAILPATH],
 | |
| [if test x$enableval = xyes; then
 | |
|   AC_DEFINE(MAILDIR_SUPPORT)
 | |
| fi])
 | |
| 
 | |
| dnl Do you want to set a maximum function depth?
 | |
| undefine([max_function_depth])dnl
 | |
| AC_ARG_ENABLE(max-function-depth,
 | |
| [  --enable-max-function-depth=MAX   Limit function depth to MAX],
 | |
| [if test x$enableval = xyes; then
 | |
|   AC_DEFINE(MAX_FUNCTION_DEPTH, 4096)
 | |
| else
 | |
|   AC_DEFINE_UNQUOTED(MAX_FUNCTION_DEPTH, $enableval)
 | |
| fi])
 | |
| 
 | |
| dnl ------------------
 | |
| dnl CHECK THE COMPILER
 | |
| dnl ------------------
 | |
| dnl We want these before the checks, so the checks can modify their values.
 | |
| test -z "${CFLAGS+set}"  && CFLAGS=  auto_cflags=1
 | |
| test -z "${LDFLAGS+set}" && LDFLAGS= auto_ldflags=1
 | |
| 
 | |
| AC_PROG_CC
 | |
| 
 | |
| dnl Check for large file support.
 | |
| dnl This needs to be done early to get the stuff into the flags.
 | |
| if test $lfs != no; then
 | |
| zsh_LARGE_FILE_SUPPORT
 | |
| fi
 | |
| 
 | |
| dnl if the user hasn't specified CFLAGS, then
 | |
| dnl   if compiler is gcc, then use -O2 and some warning flags
 | |
| dnl   else use -O
 | |
| if test -n "$auto_cflags"; then
 | |
|   if test "${enable_zsh_debug}" = yes; then
 | |
|     if test -n "$GCC"; then
 | |
|       CFLAGS="$CFLAGS -Wall -Wno-implicit -Wmissing-prototypes -ggdb"
 | |
|     else
 | |
|       CFLAGS="$CFLAGS -g"
 | |
|     fi
 | |
|   else
 | |
|     if test -n "$GCC"; then
 | |
|       CFLAGS="$CFLAGS -Wall -Wno-implicit -Wmissing-prototypes -O2"
 | |
|     else
 | |
|       CFLAGS="$CFLAGS -O"
 | |
|     fi
 | |
|   fi
 | |
| fi
 | |
| if test -n "$auto_ldflags"; then
 | |
|   case "${enable_zsh_debug}$host_os" in
 | |
|     yesaix*|yeshpux*|yesnetbsd*) ;;  # "ld -g" is not valid on these systems
 | |
|     yes*)    LDFLAGS=-g ;;
 | |
|     *)       LDFLAGS=-s ;;
 | |
|   esac
 | |
| fi
 | |
| 
 | |
| dnl ----------
 | |
| dnl SCO KLUDGE
 | |
| dnl ----------
 | |
| dnl Sco doesn't define any useful compiler symbol,
 | |
| dnl so we will check for sco and define __sco if
 | |
| dnl found.
 | |
| case "$host_os" in
 | |
|   sco*) CFLAGS="-D__sco $CFLAGS" ;;
 | |
| esac
 | |
| 
 | |
| sed=':1
 | |
|      s/ -s / /g
 | |
|      t1
 | |
|      s/^ *//
 | |
|      s/ *$//'
 | |
| 
 | |
| case " $LDFLAGS " in
 | |
|   *" -s "*) strip_exeldflags=true strip_libldflags=true
 | |
|     LDFLAGS=`echo " $LDFLAGS " | sed "$sed"` ;;
 | |
|   *) strip_exeldflags=false strip_libldflags=false ;;
 | |
| esac
 | |
| 
 | |
| case " ${EXELDFLAGS+$EXELDFLAGS }" in
 | |
|   " ") ;;
 | |
|   *" -s "*) strip_exeldflags=true
 | |
|     EXELDFLAGS=`echo " $EXELDFLAGS " | sed "$sed"` ;;
 | |
|   *) strip_exeldflags=false ;;
 | |
| esac
 | |
| 
 | |
| case " ${LIBLDFLAGS+$LIBLDFLAGS }" in
 | |
|   " ") ;;
 | |
|   *" -s "*) strip_libldflags=true
 | |
|     LIBLDFLAGS=`echo " $LIBLDFLAGS " | sed "$sed"` ;;
 | |
|   *) strip_libldflags=false ;;
 | |
| esac
 | |
| 
 | |
| AC_SUBST(CFLAGS)dnl
 | |
| AC_SUBST(LDFLAGS)dnl
 | |
| AC_SUBST(EXELDFLAGS)dnl
 | |
| AC_SUBST(LIBLDFLAGS)dnl
 | |
| 
 | |
| AC_PROG_CPP                 dnl Figure out how to run C preprocessor.
 | |
| AC_PROG_GCC_TRADITIONAL     dnl Do we need -traditional flag for gcc.
 | |
| AC_C_CONST                  dnl Does compiler support `const'.
 | |
| 
 | |
| fp_PROG_CC_STDC
 | |
| AC_MSG_CHECKING([whether to use prototypes])
 | |
| if test ."$ansi2knr" = .yes || test ."$ansi2knr" = .no; then
 | |
|   msg="(overridden) "
 | |
| else
 | |
|   msg=
 | |
|   if test ."$fp_cv_prog_cc_stdc" = .no; then
 | |
|     ansi2knr=yes
 | |
|   else
 | |
|     ansi2knr=no
 | |
|   fi
 | |
| fi
 | |
| if test "$ansi2knr" = yes; then
 | |
|   AC_MSG_RESULT(${msg}no)
 | |
|   U=_
 | |
| else
 | |
|   AC_MSG_RESULT(${msg}yes)
 | |
|   AC_DEFINE(PROTOTYPES)
 | |
|   U=
 | |
| fi
 | |
| AC_SUBST(U)
 | |
| 
 | |
| AC_FUNC_ALLOCA              dnl Check how to get `alloca'.
 | |
| 
 | |
| dnl If the compiler supports union initialisation
 | |
| AC_CACHE_CHECK(if the compiler supports union initialisation,
 | |
| zsh_cv_c_have_union_init,
 | |
| [AC_TRY_COMPILE([union{void *p;long l;}u={0};], [u.l=1;],
 | |
|   zsh_cv_c_have_union_init=yes,
 | |
|   zsh_cv_c_have_union_init=no)])
 | |
| if test $zsh_cv_c_have_union_init = yes; then
 | |
|   AC_DEFINE(HAVE_UNION_INIT)
 | |
| fi
 | |
| 
 | |
| dnl  Checking if compiler correctly cast signed to unsigned.
 | |
| AC_CACHE_CHECK(if signed to unsigned casting is broken,
 | |
| zsh_cv_c_broken_signed_to_unsigned_casting,
 | |
| [AC_TRY_RUN([main(){return((int)(unsigned char)((char) -1) == 255);}],
 | |
|   zsh_cv_c_broken_signed_to_unsigned_casting=yes,
 | |
|   zsh_cv_c_broken_signed_to_unsigned_casting=no,
 | |
|   zsh_cv_c_broken_signed_to_unsigned_casting=no)])
 | |
| if test $zsh_cv_c_broken_signed_to_unsigned_casting = yes; then
 | |
|   AC_DEFINE(BROKEN_SIGNED_TO_UNSIGNED_CASTING)
 | |
| fi
 | |
| 
 | |
| dnl Checking if the compiler supports variable-length arrays
 | |
| AC_CACHE_CHECK(if the compiler supports variable-length arrays,
 | |
| zsh_cv_c_variable_length_arrays,
 | |
| [AC_TRY_COMPILE([int foo(), n;], [int i[foo()], a[n+1];],
 | |
|   zsh_cv_c_variable_length_arrays=yes,
 | |
|   zsh_cv_c_variable_length_arrays=no)])
 | |
| if test $zsh_cv_c_variable_length_arrays = yes; then
 | |
|   AC_DEFINE(HAVE_VARIABLE_LENGTH_ARRAYS)
 | |
| fi
 | |
| 
 | |
| dnl ------------------
 | |
| dnl CHECK FOR PROGRAMS
 | |
| dnl ------------------
 | |
| AC_PROG_MAKE_SET            dnl Does make define $MAKE
 | |
| AC_PROG_INSTALL             dnl Check for BSD compatible `install'
 | |
| AC_PROG_AWK                 dnl Check for mawk,gawk,nawk, then awk.
 | |
| AC_PROG_LN                  dnl Check for working ln, for "make install"
 | |
| AC_CHECK_PROGS([YODL], [yodl], [: yodl])
 | |
| 
 | |
| dnl ------------------
 | |
| dnl CHECK HEADER FILES
 | |
| dnl ------------------
 | |
| AC_HEADER_DIRENT
 | |
| AC_HEADER_STDC
 | |
| AC_HEADER_TIME
 | |
| AC_HEADER_STAT
 | |
| AC_HEADER_SYS_WAIT
 | |
| AC_CHECK_HEADERS(sys/time.h sys/times.h sys/select.h termcap.h termio.h \
 | |
| 		 termios.h sys/param.h sys/filio.h string.h memory.h \
 | |
| 		 limits.h fcntl.h libc.h sys/utsname.h sys/resource.h \
 | |
| 		 locale.h errno.h stdlib.h unistd.h sys/capability.h \
 | |
| 		 utmp.h utmpx.h sys/types.h pwd.h grp.h poll.h sys/mman.h)
 | |
| if test $dynamic = yes; then
 | |
|   AC_CHECK_HEADERS(dlfcn.h)
 | |
|   AC_CHECK_HEADERS(dl.h)
 | |
| fi
 | |
| 
 | |
| dnl Some SCO systems cannot include both sys/time.h and sys/select.h
 | |
| if test $ac_cv_header_sys_time_h = yes -a $ac_cv_header_sys_select_h = yes; then
 | |
|   AC_CACHE_CHECK(for conflicts in sys/time.h and sys/select.h,
 | |
|   zsh_cv_header_time_h_select_h_conflicts,
 | |
|   [AC_TRY_COMPILE([#include <sys/time.h>
 | |
| #include <sys/select.h>], [int i;],
 | |
|   zsh_cv_header_time_h_select_h_conflicts=no,
 | |
|   zsh_cv_header_time_h_select_h_conflicts=yes)])
 | |
|   if test $zsh_cv_header_time_h_select_h_conflicts = yes; then
 | |
|     AC_DEFINE(TIME_H_SELECT_H_CONFLICTS)
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| AC_CACHE_CHECK(POSIX termios, zsh_cv_sys_posix_termios,
 | |
| [AC_TRY_LINK([#include <sys/types.h>
 | |
| #include <unistd.h>
 | |
| #include <termios.h>],
 | |
| [/* SunOS 4.0.3 has termios.h but not the library calls.  */
 | |
| tcgetattr(0, 0);],
 | |
|   zsh_cv_sys_posix_termios=yes, zsh_cv_sys_posix_termios=no)])
 | |
| 
 | |
| if test $zsh_cv_sys_posix_termios = yes; then
 | |
|   AC_CACHE_CHECK(TIOCGWINSZ in termios.h,
 | |
|   zsh_cv_header_termios_h_tiocgwinsz,
 | |
|   [AC_TRY_LINK([#include <sys/types.h>
 | |
| #include <termios.h>],
 | |
|   [int x = TIOCGWINSZ;],
 | |
|   zsh_cv_header_termios_h_tiocgwinsz=yes,
 | |
|   zsh_cv_header_termios_h_tiocgwinsz=no)])
 | |
| else
 | |
|   zsh_cv_header_termios_h_tiocgwinsz=no
 | |
| fi
 | |
|  
 | |
| if test $zsh_cv_header_termios_h_tiocgwinsz = no; then
 | |
|   AC_CACHE_CHECK(TIOCGWINSZ in sys/ioctl.h,
 | |
|   zsh_cv_header_sys_ioctl_h_tiocgwinsz,
 | |
|   [AC_TRY_LINK([#include <sys/types.h>
 | |
| #include <sys/ioctl.h>],
 | |
|   [int x = TIOCGWINSZ;],
 | |
|   zsh_cv_header_sys_ioctl_h_tiocgwinsz=yes,
 | |
|   zsh_cv_header_sys_ioctl_h_tiocgwinsz=no)])
 | |
|   if test $zsh_cv_header_sys_ioctl_h_tiocgwinsz = yes; then
 | |
|     AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
 | |
|   fi
 | |
| fi
 | |
|  
 | |
| AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM))
 | |
| 
 | |
| dnl -------------------
 | |
| dnl CHECK FOR LIBRARIES
 | |
| dnl -------------------
 | |
| 
 | |
| dnl On some systems, modules need to be linked against libc explicitly,
 | |
| dnl in case they require objects that exist only in the static version
 | |
| dnl and might not be compiled into the zsh executable.
 | |
| AC_CHECK_LIB(c, printf)
 | |
| 
 | |
| AC_CHECK_LIB(m, pow)
 | |
| 
 | |
| dnl Prefer BSD termcap library to SysV curses library, except on certain
 | |
| dnl versions of AIX and HP-UX.
 | |
| case "$host_os" in
 | |
|   aix*|hpux10.*) termcap_curses_order="curses ncurses termcap" ;;
 | |
|   *)             termcap_curses_order="termcap curses ncurses" ;;
 | |
| esac
 | |
| 
 | |
| for lib in $termcap_curses_order; do
 | |
|   AC_CHECK_LIB(${lib}, tgetent, [LIBS="-l$lib $LIBS"; break])
 | |
| done
 | |
| 
 | |
| dnl Some systems (Solaris 2.x, Linux Redhat 5.x) require
 | |
| dnl libnsl (Network Services Library) to find yp_all
 | |
| AC_CHECK_FUNCS(yp_all)
 | |
| if test $ac_cv_func_yp_all = no; then
 | |
|   AC_CHECK_LIB(nsl, yp_all)
 | |
| fi
 | |
| 
 | |
| dnl I am told that told that unicos reqire these for nis_list
 | |
| if test `echo $host_os | sed 's/^\(unicos\).*/\1/'` = unicos; then
 | |
|   LIBS="-lcraylm -lkrb -lnisdb -lnsl -lrpcsvc $LIBS"
 | |
| fi
 | |
| 
 | |
| if test "x$dynamic" = xyes; then
 | |
|   AC_CHECK_LIB(dl, dlopen)
 | |
| fi
 | |
| 
 | |
| AC_CHECK_LIB(cap, cap_get_proc)
 | |
| 
 | |
| AC_CHECK_LIB(socket, socket)
 | |
| 
 | |
| dnl ---------------------
 | |
| dnl CHECK TERMCAP LIBRARY
 | |
| dnl ---------------------
 | |
| dnl Checks for external variable ospeed in the termcap library.
 | |
| AC_CACHE_CHECK(if an include file defines ospeed,
 | |
| zsh_cv_decl_ospeed_include_defines,
 | |
| [AC_TRY_LINK(
 | |
| [#include <sys/types.h>
 | |
| #if HAVE_TERMIOS_H
 | |
| #include <termios.h>
 | |
| #endif
 | |
| #if HAVE_TERMCAP_H
 | |
| #include <termcap.h>
 | |
| #endif], [ospeed = 0;],
 | |
| zsh_cv_decl_ospeed_include_defines=yes,
 | |
| zsh_cv_decl_ospeed_include_defines=no)])
 | |
| 
 | |
| if test $zsh_cv_decl_ospeed_include_defines = no; then
 | |
|   AC_CACHE_CHECK(if you must define ospeed,
 | |
|   zsh_cv_decl_ospeed_must_define,
 | |
|   [AC_TRY_LINK( ,[extern short ospeed; ospeed = 0;],
 | |
|   zsh_cv_decl_ospeed_must_define=yes,
 | |
|   zsh_cv_decl_ospeed_must_define=no)])
 | |
| fi
 | |
| 
 | |
| if test $zsh_cv_decl_ospeed_include_defines = yes; then
 | |
|   AC_DEFINE(HAVE_OSPEED)
 | |
| elif test $zsh_cv_decl_ospeed_must_define = yes; then
 | |
|   AC_DEFINE(HAVE_OSPEED)
 | |
|   AC_DEFINE(MUST_DEFINE_OSPEED)
 | |
| fi
 | |
| 
 | |
| dnl  Check if tgetent accepts NULL (and will allocate its own termcap buffer)
 | |
| dnl  Some termcaps reportedly accept a zero buffer, but then dump core
 | |
| dnl  in tgetstr().
 | |
| AC_CACHE_CHECK(if tgetent accepts NULL,
 | |
| zsh_cv_func_tgetent_accepts_null,
 | |
| [AC_TRY_RUN([
 | |
| main()
 | |
| {
 | |
|     int i = tgetent((char*)0,"vt100");
 | |
|     if (i > 0) {
 | |
| 	char tbuf[1024], *u;
 | |
|     	u = tbuf;
 | |
|     	tgetstr("cl", &u);
 | |
|     }
 | |
|     exit(!i || i == -1);
 | |
| }
 | |
| ],
 | |
|   zsh_cv_func_tgetent_accepts_null=yes,
 | |
|   zsh_cv_func_tgetent_accepts_null=no,
 | |
|   zsh_cv_func_tgetent_accepts_null=no)])
 | |
| if test $zsh_cv_func_tgetent_accepts_null = yes; then
 | |
|   AC_DEFINE(TGETENT_ACCEPTS_NULL)
 | |
| fi
 | |
| 
 | |
| dnl --------------
 | |
| dnl CHECK TYPEDEFS
 | |
| dnl --------------
 | |
| 
 | |
| AC_TYPE_SIGNAL
 | |
| AC_TYPE_PID_T
 | |
| AC_TYPE_OFF_T
 | |
| AC_CHECK_TYPE(ino_t, unsigned long)
 | |
| AC_TYPE_MODE_T
 | |
| AC_TYPE_UID_T
 | |
| AC_TYPE_SIZE_T
 | |
| 
 | |
| dnl ------------------------------------------------
 | |
| dnl Check size of long and try to find a 64-bit type
 | |
| dnl ------------------------------------------------
 | |
| dnl AC_CHECK_SIZEOF is no good, because we need the result here,
 | |
| dnl and that doesn't seem to define a shell parameter.
 | |
| AC_CACHE_CHECK(if long is 64 bits, zsh_cv_long_is_64_bit,
 | |
| [AC_TRY_RUN([int main() { return sizeof(long) < 8; }],
 | |
| zsh_cv_long_is_64_bit=yes,
 | |
| zsh_cv_long_is_64_bit=no,
 | |
| zsh_cv_long_is_64_bit=no)])
 | |
| 
 | |
| if test $zsh_cv_long_is_64_bit = yes; then
 | |
|   AC_DEFINE(LONG_IS_64_BIT)
 | |
| else
 | |
|   AC_CACHE_CHECK(if off_t is 64 bit, zsh_cv_off_t_is_64_bit,
 | |
|   [AC_TRY_RUN([
 | |
| #include <sys/types.h>
 | |
| 
 | |
| main() { return sizeof(off_t) < 8; }
 | |
| ],
 | |
|   zsh_cv_off_t_is_64_bit=yes,
 | |
|   zsh_cv_off_t_is_64_bit=no,
 | |
|   zsh_cv_off_t_is_64_bit=no)])
 | |
|   if test $zsh_cv_off_t_is_64_bit = yes; then
 | |
|     AC_DEFINE(OFF_T_IS_64_BIT)
 | |
|   fi
 | |
| 
 | |
|   AC_CACHE_CHECK(if ino_t is 64 bit, zsh_cv_ino_t_is_64_bit,
 | |
|   [AC_TRY_RUN([
 | |
| #include <sys/types.h>
 | |
| 
 | |
| main() { return sizeof(ino_t) < 8; }
 | |
| ],
 | |
|   zsh_cv_ino_t_is_64_bit=yes,
 | |
|   zsh_cv_ino_t_is_64_bit=no,
 | |
|   zsh_cv_ino_t_is_64_bit=no)])
 | |
|   if test $zsh_cv_ino_t_is_64_bit = yes; then
 | |
|     AC_DEFINE(INO_T_IS_64_BIT)
 | |
|   fi
 | |
| 
 | |
|   if test $lfs != no -o $zsh_cv_off_t_is_64_bit = yes \
 | |
|   -o $zsh_cv_ino_t_is_64_bit = yes; then
 | |
|     AC_CACHE_CHECK(if compiler has a 64 bit type, zsh_cv_64_bit_type,
 | |
|     [if test $lfs != yes -a $lfs != no; then
 | |
|       zsh_64_BIT_TYPE(${lfs}, zsh_cv_64_bit_type, force)
 | |
|      else
 | |
|        zsh_64_BIT_TYPE(long long, zsh_cv_64_bit_type)
 | |
|        if test "$zsh_cv_64_bit_type" = no; then
 | |
|          zsh_64_BIT_TYPE(quad_t, zsh_cv_64_bit_type)
 | |
|        fi
 | |
|        if test "$zsh_cv_64_bit_type" = no; then
 | |
|          zsh_64_BIT_TYPE(__int64_t, zsh_cv_64_bit_type)
 | |
|        fi
 | |
|        dnl As a last resort, if we know off_t has 64 bits, use that as
 | |
|        dnl the 64-bit integer type.  I don't dare try ino_t since there's
 | |
|        dnl probably nothing to stop that being unsigned.
 | |
|        if test "$zsh_cv_64_bit_type" = no -a \
 | |
|        "$zsh_cv_off_t_is_64_bit" = yes; then
 | |
|          zsh_64_BIT_TYPE(off_t, zsh_cv_64_bit_type)
 | |
|        fi
 | |
|      fi])
 | |
|     if test "$zsh_cv_64_bit_type" != no; then
 | |
|       AC_DEFINE_UNQUOTED(ZSH_64_BIT_TYPE, $zsh_cv_64_bit_type)
 | |
| 
 | |
|       dnl Handle cases where unsigned type cannot be simply
 | |
|       dnl `unsigned ZSH_64_BIT_TYPE'.  More tests may be required.
 | |
|       AC_CACHE_CHECK(for a corresponding unsigned 64 bit type,
 | |
|       zsh_cv_64_bit_utype,
 | |
|       [zsh_64_BIT_TYPE(unsigned $zsh_cv_64_bit_type, zsh_cv_64_bit_utype,
 | |
|        force)
 | |
|        if test "$zsh_cv_64_bit_utype" = no; then
 | |
|          zsh_64_BIT_TYPE(__uint64_t, zsh_cv_64_bit_utype)
 | |
|        fi])
 | |
|       if test "$zsh_cv_64_bit_utype" != no; then
 | |
|         AC_DEFINE_UNQUOTED(ZSH_64_BIT_UTYPE, $zsh_cv_64_bit_utype)
 | |
|       fi
 | |
|     fi
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| dnl Check for sigset_t.  Currently I'm looking in
 | |
| dnl <sys/types.h> and <signal.h>.  Others might need
 | |
| dnl to be added.
 | |
| AC_CACHE_CHECK(for sigset_t, zsh_cv_type_sigset_t,
 | |
| [AC_TRY_COMPILE(
 | |
| [#include <sys/types.h>
 | |
| #include <signal.h>], [sigset_t tempsigset;],
 | |
|   zsh_cv_type_sigset_t=yes, zsh_cv_type_sigset_t=no)])
 | |
| if test $zsh_cv_type_sigset_t = no; then
 | |
|   AC_DEFINE(sigset_t, unsigned int)
 | |
| fi
 | |
| 
 | |
| dnl Check for struct timezone since some old SCO versions do not define it
 | |
| zsh_TYPE_EXISTS([
 | |
| #ifdef HAVE_SYS_TIME_H
 | |
| # include <sys/time.h>
 | |
| #endif
 | |
| ], struct timezone)
 | |
| 
 | |
| dnl Check for utmp structures, for watch
 | |
| zsh_TYPE_EXISTS([
 | |
| #ifdef HAVE_SYS_TYPES_H
 | |
| # include <sys/types.h>
 | |
| #endif
 | |
| #ifdef HAVE_UTMP_H
 | |
| # include <utmp.h>
 | |
| #endif
 | |
| ], struct utmp)
 | |
| zsh_TYPE_EXISTS([
 | |
| #ifdef HAVE_SYS_TYPES_H
 | |
| # include <sys/types.h>
 | |
| #endif
 | |
| #ifdef HAVE_UTMPX_H
 | |
| # include <utmpx.h>
 | |
| #endif
 | |
| ], struct utmpx)
 | |
| 
 | |
| dnl Check contents of utmp structures
 | |
| zsh_STRUCT_MEMBER([
 | |
| #ifdef HAVE_SYS_TYPES_H
 | |
| # include <sys/types.h>
 | |
| #endif
 | |
| #ifdef HAVE_UTMP_H
 | |
| # include <utmp.h>
 | |
| #endif
 | |
| ], struct utmp, ut_host)
 | |
| zsh_STRUCT_MEMBER([
 | |
| #ifdef HAVE_SYS_TYPES_H
 | |
| # include <sys/types.h>
 | |
| #endif
 | |
| #ifdef HAVE_UTMPX_H
 | |
| # include <utmpx.h>
 | |
| #endif
 | |
| ], struct utmpx, ut_host)
 | |
| zsh_STRUCT_MEMBER([
 | |
| #ifdef HAVE_SYS_TYPES_H
 | |
| # include <sys/types.h>
 | |
| #endif
 | |
| #ifdef HAVE_UTMPX_H
 | |
| # include <utmpx.h>
 | |
| #endif
 | |
| ], struct utmpx, ut_xtime)
 | |
| zsh_STRUCT_MEMBER([
 | |
| #ifdef HAVE_SYS_TYPES_H
 | |
| # include <sys/types.h>
 | |
| #endif
 | |
| #ifdef HAVE_UTMPX_H
 | |
| # include <utmpx.h>
 | |
| #endif
 | |
| ], struct utmpx, ut_tv)
 | |
| 
 | |
| dnl Check for inode numbers in directory entry structures
 | |
| zsh_STRUCT_MEMBER([
 | |
| #ifdef HAVE_SYS_TYPES_H
 | |
| # include <sys/types.h>
 | |
| #endif
 | |
| #ifdef HAVE_DIRENT_H
 | |
| # include <dirent.h>
 | |
| #endif
 | |
| ], struct dirent, d_ino)
 | |
| zsh_STRUCT_MEMBER([
 | |
| #ifdef HAVE_SYS_TYPES_H
 | |
| # include <sys/types.h>
 | |
| #endif
 | |
| #ifdef HAVE_DIRENT_H
 | |
| # include <dirent.h>
 | |
| #endif
 | |
| ], struct dirent, d_stat)
 | |
| zsh_STRUCT_MEMBER([
 | |
| #ifdef HAVE_SYS_TYPES_H
 | |
| # include <sys/types.h>
 | |
| #endif
 | |
| #ifdef HAVE_SYS_NDIR_H
 | |
| # include <sys/ndir.h>
 | |
| #endif
 | |
| #ifdef HAVE_SYS_DIR_H
 | |
| # include <sys/dir.h>
 | |
| #endif
 | |
| #ifdef HAVE_NDIR_H
 | |
| # include <ndir.h>
 | |
| #endif
 | |
| ], struct direct, d_ino)
 | |
| zsh_STRUCT_MEMBER([
 | |
| #ifdef HAVE_SYS_TYPES_H
 | |
| # include <sys/types.h>
 | |
| #endif
 | |
| #ifdef HAVE_SYS_NDIR_H
 | |
| # include <sys/ndir.h>
 | |
| #endif
 | |
| #ifdef HAVE_SYS_DIR_H
 | |
| # include <sys/dir.h>
 | |
| #endif
 | |
| #ifdef HAVE_NDIR_H
 | |
| # include <ndir.h>
 | |
| #endif
 | |
| ], struct direct, d_stat)
 | |
| 
 | |
| dnl Check IPv6 socket address structure type
 | |
| zsh_STRUCT_MEMBER([
 | |
| #ifdef HAVE_SYS_TYPES_H
 | |
| # include <sys/types.h>
 | |
| #endif
 | |
| #include <netinet/in.h>
 | |
| ], struct sockaddr_in6, sin6_scope_id)
 | |
| 
 | |
| dnl ---------------
 | |
| dnl CHECK FUNCTIONS
 | |
| dnl ---------------
 | |
| 
 | |
| dnl need to integrate this function
 | |
| dnl AC_FUNC_STRFTIME
 | |
| 
 | |
| AC_CHECK_FUNCS(strftime difftime gettimeofday \
 | |
| 	       select poll \
 | |
| 	       readlink lstat lchown faccessx fchdir ftruncate \
 | |
| 	       fseeko ftello \
 | |
| 	       mkfifo _mktemp \
 | |
| 	       waitpid wait3 \
 | |
| 	       sigaction sigblock sighold sigrelse sigsetmask sigprocmask \
 | |
| 	       killpg setpgid setpgrp tcsetpgrp tcgetattr nice \
 | |
| 	       gethostname gethostbyname2 getipnodebyname \
 | |
| 	       inet_aton inet_pton inet_ntop \
 | |
| 	       getlogin getpwent getpwnam getpwuid getgrgid getgrnam \
 | |
| 	       initgroups nis_list \
 | |
| 	       setuid seteuid setreuid setresuid setsid \
 | |
| 	       memcpy memmove strstr strerror \
 | |
| 	       mmap munmap msync \
 | |
| 	       cap_get_proc \
 | |
| 	       getrlimit \
 | |
| 	       setlocale \
 | |
| 	       uname)
 | |
| AC_FUNC_STRCOLL
 | |
| 
 | |
| if test $ac_cv_func_setpgrp = yes; then
 | |
|   AC_FUNC_GETPGRP
 | |
| else
 | |
|   dnl If there is no setpgrp, the test for getpgrp(void) will fail
 | |
|   dnl because the program will not compile.  However, in that case
 | |
|   dnl we can be reasonably confident we are not dealing with a
 | |
|   dnl Berkeleyesque system, so assume getpgrp does take void.
 | |
|   ac_cv_func_getpgrp_void=yes
 | |
|   AC_DEFINE(GETPGRP_VOID)
 | |
| fi
 | |
| 
 | |
| if test $dynamic = yes; then
 | |
|   AC_CHECK_FUNCS(dlopen dlerror dlsym dlclose load loadquery loadbind unload \
 | |
| 		shl_load shl_unload shl_findsym)
 | |
| fi
 | |
| 
 | |
| 
 | |
| dnl -------------
 | |
| dnl CHECK SIGNALS
 | |
| dnl -------------
 | |
| dnl What style of signal do you have (POSIX, BSD, or SYSV)?
 | |
| AC_MSG_CHECKING(what style of signals to use)
 | |
| if test $ac_cv_func_sigaction = yes -a $ac_cv_func_sigprocmask = yes; then
 | |
|   signals_style=POSIX_SIGNALS
 | |
|   AC_DEFINE(POSIX_SIGNALS)
 | |
| elif test $ac_cv_func_sigblock = yes -a $ac_cv_func_sigsetmask = yes; then
 | |
|   signals_style=BSD_SIGNALS
 | |
|   AC_DEFINE(BSD_SIGNALS)
 | |
| elif test $ac_cv_func_sighold = yes -a $ac_cv_func_sigrelse = yes; then
 | |
|   signals_style=SYSV_SIGNALS
 | |
|   AC_DEFINE(SYSV_SIGNALS)
 | |
| else
 | |
|   signals_style=NO_SIGNAL_BLOCKING
 | |
|   AC_DEFINE(NO_SIGNAL_BLOCKING)
 | |
| fi
 | |
| AC_DEFINE_UNQUOTED($signals_style)
 | |
| AC_MSG_RESULT($signals_style)
 | |
| 
 | |
| dnl Where is <signal.h> located?  Needed as input for signals.awk
 | |
| AC_CACHE_CHECK(where signal.h is located, zsh_cv_path_signal_h,
 | |
| [dnl Look at the output from the preprocessor.
 | |
| dnl We should get lines of the form `# 1 "/usr/include/signal.h"'
 | |
| dnl The following assumes the real definitions are in a file which
 | |
| dnl contains the name `sig'; we could relax this if necessary,
 | |
| dnl but then you can get a rather long list of files to test.
 | |
| dnl The backslash substitution is to persuade cygwin to cough up
 | |
| dnl slashes rather than doubled backslashes in the path.
 | |
| echo "#include <signal.h>" > nametmp.c
 | |
| sigfile_list="`$CPP nametmp.c |
 | |
| sed -n 's/^#[ 	].*\"\(.*\)\"/\1/p' |
 | |
| sed 's/\\\\\\\\/\//g' |
 | |
| $AWK '{ if (\$1 ~ \"sig\") files[[\$1]] = \$1 }
 | |
|   END { for (var in files) print var }'`"
 | |
| rm -f nametmp.c
 | |
| if test -z "$sigfile_list"; then
 | |
|   dnl In case we don't get the stuff from the preprocesor, use the old
 | |
|   dnl list of standard places.
 | |
|   sigfile_list="/usr/include/sys/iso/signal_iso.h
 | |
| /usr/include/bsd/sys/signal.h
 | |
| /usr/include/signum.h
 | |
| /usr/include/asm/signum.h
 | |
| /usr/include/asm/signal.h
 | |
| /usr/include/linux/signal.h
 | |
| /usr/include/sys/signal.h
 | |
| /usr/include/bits/signum.h
 | |
| /dev/null"
 | |
| fi
 | |
| for SIGNAL_H in $sigfile_list
 | |
| do
 | |
|   dnl Try to make sure it doesn't get confused by files that don't
 | |
|   dnl have real signal definitions in, but do #define SIG* by counting
 | |
|   dnl the number of signals.  Maybe we could even check for e.g. SIGHUP?
 | |
|   nsigs=`test -f $SIGNAL_H && \
 | |
|   grep '#[ 	]*define[ 	][ 	]*SIG[0-9A-Z]*[ 	]*[0-9][0-9]*' $SIGNAL_H | \
 | |
|   wc -l | sed 's/[ 	]//g'`
 | |
|   test "x$nsigs" != x && test "$nsigs" -ge 7 && break
 | |
| done
 | |
| if test $SIGNAL_H = "/dev/null"; then
 | |
|   AC_MSG_ERROR(SIGNAL MACROS NOT FOUND:  please report to developers)
 | |
| fi
 | |
| zsh_cv_path_signal_h=$SIGNAL_H
 | |
| ])
 | |
| SIGNAL_H=$zsh_cv_path_signal_h
 | |
| AC_SUBST(SIGNAL_H)dnl
 | |
| 
 | |
| dnl -----------------------------------------------------
 | |
| dnl Look for the file containing the RLIMIT_* definitions
 | |
| dnl -----------------------------------------------------
 | |
| dnl CALL FOR MORE (FEWER?) LOCATIONS:  I've just copied the signal checking.
 | |
| AC_CACHE_CHECK(where the RLIMIT macros are located,zsh_cv_path_rlimit_h,
 | |
| [for RESOURCE_H in /usr/include/bsd/sys/resource.h   dnl
 | |
|                    /usr/include/asm/resource.h	     dnl
 | |
|                    /usr/include/linux/resource.h     dnl
 | |
|                    /usr/include/sys/resource.h       dnl
 | |
|                    /usr/include/bits/resource.h      dnl
 | |
|                    /usr/include/resourcebits.h       dnl
 | |
|                    /dev/null;
 | |
| do
 | |
|   test -f $RESOURCE_H && \
 | |
|   grep '#[ 	]*define[ 	][ 	]*RLIMIT_[A-Z]*[ 	]*[0-9A-Z][0-9]*' $RESOURCE_H > /dev/null && \
 | |
|   break
 | |
| done
 | |
| zsh_cv_path_rlimit_h=$RESOURCE_H
 | |
| if test $RESOURCE_H = "/dev/null" -a $ac_cv_func_getrlimit = yes; then
 | |
|   AC_MSG_WARN(RLIMIT MACROS NOT FOUND:  please report to developers)
 | |
| fi])
 | |
| RLIMITS_INC_H=$zsh_cv_path_rlimit_h
 | |
| dnl rlimits.h only appears in dependencies if we are actually using it.
 | |
| dnl We are using it any time we have getrlimit, though if the macros were
 | |
| dnl not found we simply awk through /dev/null and fail to find them.
 | |
| dnl Thus, limit won't work, but at least the shell will compile.
 | |
| AC_SUBST(RLIMITS_INC_H)dnl
 | |
| 
 | |
| dnl ------------------
 | |
| dnl rlimit type checks
 | |
| dnl ------------------
 | |
| DEFAULT_RLIM_T=long
 | |
| AC_CACHE_CHECK(if rlim_t is longer than a long,
 | |
| zsh_cv_rlim_t_is_longer,
 | |
| [AC_TRY_RUN([
 | |
| #ifdef HAVE_SYS_TIME_H
 | |
| #include <sys/time.h>
 | |
| #endif
 | |
| #include <sys/resource.h>
 | |
| main(){struct rlimit r;exit(sizeof(r.rlim_cur) <= sizeof(long));}],
 | |
| zsh_cv_rlim_t_is_longer=yes,
 | |
| zsh_cv_rlim_t_is_longer=no,
 | |
| zsh_cv_rlim_t_is_longer=yes)])
 | |
| if test $zsh_cv_rlim_t_is_longer = yes; then
 | |
|   AC_CACHE_CHECK(if rlim_t is a quad,
 | |
|   zsh_cv_rlim_t_is_quad_t,
 | |
|   [AC_TRY_RUN([
 | |
| #ifdef HAVE_SYS_TIME_H
 | |
| #include <sys/time.h>
 | |
| #endif
 | |
| #include <stdio.h>
 | |
| #include <sys/resource.h>
 | |
| main() { 
 | |
|   struct rlimit r;
 | |
|   char buf[20];
 | |
|   r.rlim_cur = 0;
 | |
|   sprintf(buf, "%qd", r.rlim_cur);
 | |
|   exit(strcmp(buf, "0"));
 | |
| }],
 | |
|   zsh_cv_rlim_t_is_quad_t=yes,
 | |
|   zsh_cv_rlim_t_is_quad_t=no,
 | |
|   zsh_cv_rlim_t_is_quad_t=no)])
 | |
|   if test $zsh_cv_rlim_t_is_quad_t = yes; then
 | |
|     AC_DEFINE(RLIM_T_IS_QUAD_T)
 | |
|     DEFAULT_RLIM_T=quad_t
 | |
|   else
 | |
|     AC_DEFINE(RLIM_T_IS_LONG_LONG)
 | |
|     DEFAULT_RLIM_T='long long'
 | |
|   fi
 | |
| else
 | |
|   AC_CACHE_CHECK(if the rlim_t is unsigned,
 | |
|   zsh_cv_type_rlim_t_is_unsigned,
 | |
|   [AC_TRY_RUN([
 | |
| #ifdef HAVE_SYS_TIME_H
 | |
| #include <sys/time.h>
 | |
| #endif
 | |
| #include <sys/resource.h>
 | |
|   main(){struct rlimit r;r.rlim_cur=-1;exit(r.rlim_cur<0);}],
 | |
|   zsh_cv_type_rlim_t_is_unsigned=yes,
 | |
|   zsh_cv_type_rlim_t_is_unsigned=no,
 | |
|   zsh_cv_type_rlim_t_is_unsigned=no)])
 | |
|   if test $zsh_cv_type_rlim_t_is_unsigned = yes; then
 | |
|     AC_DEFINE(RLIM_T_IS_UNSIGNED)
 | |
|     DEFAULT_RLIM_T="unsigned $DEFAULT_RLIM_T"
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| AC_CACHE_CHECK(for rlim_t, zsh_cv_type_rlim_t,
 | |
| [AC_TRY_COMPILE([
 | |
| #include <sys/types.h>
 | |
| #ifdef HAVE_SYS_TIME_H
 | |
| #include <sys/time.h>
 | |
| #endif
 | |
| #include <sys/resource.h>],
 | |
| [rlim_t l;],
 | |
| zsh_cv_type_rlim_t=yes,
 | |
| zsh_cv_type_rlim_t=no)])
 | |
| if test $zsh_cv_type_rlim_t = no; then
 | |
|   AC_DEFINE_UNQUOTED(rlim_t, $DEFAULT_RLIM_T)
 | |
| fi
 | |
| 
 | |
| dnl ----------------------------
 | |
| dnl CHECK FOR /dev/fd FILESYSTEM
 | |
| dnl ----------------------------
 | |
| AC_CACHE_CHECK(for /dev/fd filesystem, zsh_cv_sys_path_dev_fd,
 | |
| [for zsh_cv_sys_path_dev_fd in /proc/self/fd /dev/fd no; do
 | |
|    test x`echo ok|cat $zsh_cv_sys_path_dev_fd/0 2>/dev/null` = xok && break
 | |
|  done])
 | |
| if test $zsh_cv_sys_path_dev_fd != no; then
 | |
|   AC_DEFINE_UNQUOTED(PATH_DEV_FD, "$zsh_cv_sys_path_dev_fd")
 | |
| fi
 | |
| 
 | |
| dnl ---------------------------------
 | |
| dnl CHECK FOR RFS SUPERROOT DIRECTORY
 | |
| dnl ---------------------------------
 | |
| AC_CACHE_CHECK(for RFS superroot directory, zsh_cv_sys_superroot,
 | |
| [test -d /../.LOCALROOT && zsh_cv_sys_superroot=yes || zsh_cv_sys_superroot=no])
 | |
| if test $zsh_cv_sys_superroot = yes; then
 | |
|   AC_DEFINE(HAVE_SUPERROOT)
 | |
| fi
 | |
| 
 | |
| dnl CHECK FOR SYSTEMS REQUIRING GETCWD
 | |
| AC_CACHE_CHECK(whether we should use the native getcwd,
 | |
| zsh_cv_use_getcwd,
 | |
| [case "${host_cpu}-${host_vendor}-${host_os}" in
 | |
|     *QNX*) zsh_cv_use_getcwd=yes ;;
 | |
|     *) zsh_cv_use_getcwd=no ;;
 | |
|  esac])
 | |
| if test $zsh_cv_use_getcwd = yes; then
 | |
|   AC_DEFINE(USE_GETCWD)
 | |
| fi
 | |
| 
 | |
| dnl -------------
 | |
| dnl CHECK FOR NIS
 | |
| dnl -------------
 | |
| AC_CACHE_CHECK(for NIS, zsh_cv_sys_nis,
 | |
| [test -f /usr/bin/ypcat && /usr/bin/ypcat passwd.byname > /dev/null 2>&1 && \
 | |
| zsh_cv_sys_nis=yes || zsh_cv_sys_nis=no])
 | |
| if test $zsh_cv_sys_nis = yes; then
 | |
|   AC_DEFINE(HAVE_NIS)
 | |
| fi
 | |
| 
 | |
| dnl -----------------
 | |
| dnl CHECK FOR NISPLUS
 | |
| dnl -----------------
 | |
| AC_CACHE_CHECK(for NIS+, zsh_cv_sys_nis_plus,
 | |
| [test $ac_cv_func_nis_list = yes && test -f /usr/bin/nisls && \
 | |
|  /usr/bin/nisls > /dev/null 2>&1 && \
 | |
| zsh_cv_sys_nis_plus=yes || zsh_cv_sys_nis_plus=no])
 | |
| if test $zsh_cv_sys_nis_plus = yes; then
 | |
|   AC_DEFINE(HAVE_NIS_PLUS)
 | |
| fi
 | |
| 
 | |
| dnl ----------------------------------------
 | |
| dnl CHECK FOR LOCATION OF {U,W}TMP{,X} FILES
 | |
| dnl ----------------------------------------
 | |
| zsh_PATH_UTMP(utmp)
 | |
| zsh_PATH_UTMP(wtmp)
 | |
| zsh_PATH_UTMP(utmpx)
 | |
| zsh_PATH_UTMP(wtmpx)
 | |
| 
 | |
| dnl -------------------
 | |
| dnl brk/sbrk PROTOTYPES
 | |
| dnl -------------------
 | |
| AC_CACHE_CHECK(for brk() prototype in <unistd.h>,
 | |
| zsh_cv_header_unistd_h_brk_proto,
 | |
| [AC_TRY_COMPILE([#include <unistd.h>
 | |
| double brk();], [int i;],
 | |
| zsh_cv_header_unistd_h_brk_proto=no, zsh_cv_header_unistd_h_brk_proto=yes)])
 | |
| if test $zsh_cv_header_unistd_h_brk_proto = yes; then
 | |
|   AC_DEFINE(HAVE_BRK_PROTO)
 | |
| fi
 | |
| 
 | |
| AC_CACHE_CHECK(for sbrk() prototype in <unistd.h>,
 | |
| zsh_cv_header_unistd_h_sbrk_proto,
 | |
| [AC_TRY_COMPILE([#include <unistd.h>
 | |
| double sbrk();], [int i;],
 | |
| zsh_cv_header_unistd_h_sbrk_proto=no, zsh_cv_header_unistd_h_sbrk_proto=yes)])
 | |
| if test $zsh_cv_header_unistd_h_sbrk_proto = yes; then
 | |
|   AC_DEFINE(HAVE_SBRK_PROTO)
 | |
| fi
 | |
| 
 | |
| dnl ----------------------------------
 | |
| dnl ioctl and mknod prototypes for OSF
 | |
| dnl ----------------------------------
 | |
| 
 | |
| if test "$ac_cv_prog_cc_stdc" != no; then
 | |
|   AC_CACHE_CHECK(for ioctl prototype in <sys/ioctl.h>,
 | |
|   zsh_cv_header_sys_ioctl_h_ioctl_proto,
 | |
|   [AC_TRY_COMPILE([#include <sys/ioctl.h>
 | |
|    int ioctl(double x);], [int i;],
 | |
|   zsh_cv_header_sys_ioctl_h_ioctl_proto=no,
 | |
|   zsh_cv_header_sys_ioctl_h_ioctl_proto=yes)])
 | |
|   if test $zsh_cv_header_sys_ioctl_h_ioctl_proto = yes; then
 | |
|     AC_DEFINE(HAVE_IOCTL_PROTO)
 | |
|   fi
 | |
|   AC_CACHE_CHECK(for mknod prototype in <sys/stat.h>,
 | |
|   zsh_cv_header_sys_stat_h_mknod_proto,
 | |
|   [AC_TRY_COMPILE([#include <sys/stat.h>
 | |
|    int mknod(double x);], [int i;],
 | |
|   zsh_cv_header_sys_stat_h_mknod_proto=no,
 | |
|   zsh_cv_header_sys_stat_h_mknod_proto=yes)])
 | |
|   if test $zsh_cv_header_sys_stat_h_mknod_proto = yes; then
 | |
|     AC_DEFINE(HAVE_MKNOD_PROTO)
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| dnl -------------------
 | |
| dnl select() defined in <sys/socket.h>, ie BeOS R4.51
 | |
| dnl -------------------
 | |
| if test $ac_cv_header_sys_select_h != yes; then
 | |
|   AC_CACHE_CHECK(for select() in <sys/socket.h>,
 | |
|   zsh_cv_header_socket_h_select_proto,
 | |
|   [AC_TRY_COMPILE([#include <sys/socket.h>], [fd_set fd;],
 | |
|   zsh_cv_header_socket_h_select_proto=yes, 
 | |
|   zsh_cv_header_socket_h_select_proto=no)])
 | |
|   if test $zsh_cv_header_socket_h_select_proto = yes; then
 | |
|     AC_DEFINE(SELECT_IN_SYS_SOCKET_H)
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| dnl -----------
 | |
| dnl named FIFOs
 | |
| dnl -----------
 | |
| AC_CACHE_CHECK(if named FIFOs work,
 | |
| zsh_cv_sys_fifo,
 | |
| [AC_TRY_RUN([
 | |
| #include <fcntl.h>
 | |
| #include <signal.h>
 | |
| main()
 | |
| {
 | |
|     char c;
 | |
|     int fd;
 | |
|     int pid, ret;
 | |
|     unlink("/tmp/fifo$$");
 | |
| #ifdef HAVE_MKFIFO
 | |
|     if(mkfifo("/tmp/fifo$$", 0600) < 0)
 | |
| #else
 | |
|     if(mknod("/tmp/fifo$$", 0010600, 0) < 0)
 | |
| #endif
 | |
| 	exit(1);
 | |
|     pid = fork();
 | |
|     if(pid < 0)
 | |
| 	exit(1);
 | |
|     if(pid) {
 | |
| 	fd = open("/tmp/fifo$$", O_RDWR);
 | |
| 	exit(fd < 0 || read(fd, &c, 1) != 1 || c != 'x');
 | |
|     }
 | |
|     fd = open("/tmp/fifo$$", O_WRONLY);
 | |
|     ret = (fd < 0 || write(fd, "x", 1) < 1);
 | |
|     unlink("/tmp/fifo$$");
 | |
|     exit(ret);
 | |
| }
 | |
| ],
 | |
|   zsh_cv_sys_fifo=yes,
 | |
|   zsh_cv_sys_fifo=no,
 | |
|   zsh_cv_sys_fifo=yes)])
 | |
| if test $zsh_cv_sys_fifo = yes; then
 | |
|   AC_DEFINE(HAVE_FIFOS)
 | |
| fi
 | |
| dnl ---------------------
 | |
| dnl echo style of /bin/sh
 | |
| dnl ---------------------
 | |
| AC_CACHE_CHECK(if echo in /bin/sh interprets escape sequences,
 | |
| zsh_cv_prog_sh_echo_escape,
 | |
| [if test "`/bin/sh -c \"echo '\\n'\"`" = "\\n"; then
 | |
|   zsh_cv_prog_sh_echo_escape=no
 | |
| else
 | |
|   zsh_cv_prog_sh_echo_escape=yes
 | |
| fi])
 | |
| if test $zsh_cv_prog_sh_echo_escape = no; then
 | |
|   AC_DEFINE(SH_USE_BSD_ECHO)
 | |
| fi
 | |
| 
 | |
| dnl -----------
 | |
| dnl test for whether link() works
 | |
| dnl for instance, BeOS R4.51 doesn't support hard links yet
 | |
| dnl -----------
 | |
| AC_CACHE_CHECK(if link() works,
 | |
| zsh_cv_sys_link,
 | |
| [AC_TRY_RUN([
 | |
| #include <unistd.h>
 | |
| #include <fcntl.h>
 | |
| main()
 | |
| {
 | |
|     int ret;
 | |
|     char *tmpfile, *newfile;
 | |
|     tmpfile="/tmp/zsh.linktest$$";
 | |
|     newfile="/tmp/zsh.linktest2$$";
 | |
|     unlink(tmpfile);
 | |
|     unlink(newfile);
 | |
|     if(creat(tmpfile, 0644) < 0)
 | |
| 	exit(1);
 | |
|     ret = link(tmpfile, newfile);
 | |
|     unlink(tmpfile);
 | |
|     unlink(newfile);
 | |
|     exit(ret<0);
 | |
| }
 | |
| ],
 | |
|   zsh_cv_sys_link=yes,
 | |
|   zsh_cv_sys_link=no,
 | |
|   zsh_cv_sys_link=yes)])
 | |
| if test $zsh_cv_sys_link = yes; then
 | |
|   AC_DEFINE(HAVE_LINK)
 | |
| fi
 | |
| 
 | |
| dnl -----------
 | |
| dnl test for whether kill(pid, 0) where pid doesn't exit
 | |
| dnl should set errno to ESRCH, but some like BeOS R4.51 set to EINVAL
 | |
| dnl -----------
 | |
| AC_CACHE_CHECK(if kill(pid, 0) returns ESRCH correctly,
 | |
| zsh_cv_sys_killesrch,
 | |
| [AC_TRY_RUN([
 | |
| #include <unistd.h>
 | |
| #include <signal.h>
 | |
| #include <errno.h>
 | |
| main()
 | |
| {
 | |
|     int pid, ret;
 | |
|     pid=getpid() + 10000;
 | |
|     ret=kill(pid, 0);
 | |
|     exit(ret<0 && errno!=ESRCH);
 | |
| }
 | |
| ],
 | |
|   zsh_cv_sys_killesrch=yes,
 | |
|   zsh_cv_sys_killesrch=no,
 | |
|   zsh_cv_sys_killesrch=yes)])
 | |
| if test $zsh_cv_sys_killesrch = no; then
 | |
|   AC_DEFINE(BROKEN_KILL_ESRCH)
 | |
| fi
 | |
| 
 | |
| dnl -----------
 | |
| dnl if POSIX, test for working sigsuspend().
 | |
| dnl for instance, BeOS R4.51 is broken.
 | |
| dnl -----------
 | |
| if test $signals_style=POSIX_SIGNALS; then
 | |
|     AC_CACHE_CHECK(if POSIX sigsuspend() works,
 | |
|     zsh_cv_sys_sigsuspend,
 | |
|     [AC_TRY_RUN([
 | |
| #include <signal.h>
 | |
| #include <unistd.h>
 | |
| int child=0;
 | |
| void handler(sig)
 | |
|     int sig;
 | |
| {if(sig==SIGCHLD) child=1;}
 | |
| main() {
 | |
|     struct sigaction act;
 | |
|     sigset_t set;
 | |
|     int pid, ret;
 | |
|     act.sa_handler = &handler;
 | |
|     sigfillset(&act.sa_mask);
 | |
|     act.sa_flags = 0;
 | |
|     sigaction(SIGCHLD, &act, 0);
 | |
|     sigfillset(&set);
 | |
|     sigprocmask(SIG_SETMASK, &set, 0);
 | |
|     pid=fork();
 | |
|     if(pid==0) return 0;
 | |
|     if(pid>0) {
 | |
|     sigemptyset(&set);
 | |
|         ret=sigsuspend(&set);
 | |
|         exit(child==0);
 | |
|     }
 | |
| }
 | |
| ],
 | |
|       zsh_cv_sys_sigsuspend=yes,
 | |
|       zsh_cv_sys_sigsuspend=no,
 | |
|       zsh_cv_sys_sigsuspend=yes)])
 | |
|     if test $zsh_cv_sys_sigsuspend = no; then
 | |
|       AC_DEFINE(BROKEN_POSIX_SIGSUSPEND)
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| dnl -----------
 | |
| dnl if found tcsetpgrp, test to see if it actually works
 | |
| dnl for instance, BeOS R4.51 does not support it yet
 | |
| dnl -----------
 | |
| if test -t 0 -a $ac_cv_func_tcsetpgrp=yes; then
 | |
|     AC_CACHE_CHECK(if tcsetpgrp() actually works,
 | |
|     zsh_cv_sys_tcsetpgrp,
 | |
|     [AC_TRY_RUN([
 | |
| #include <sys/types.h>
 | |
| #include <unistd.h>
 | |
| main() {
 | |
|     int ret;
 | |
|     ret=tcsetpgrp(0, tcgetpgrp(0));
 | |
|     exit(ret<0);
 | |
| }
 | |
| ],
 | |
|       zsh_cv_sys_tcsetpgrp=yes,
 | |
|       zsh_cv_sys_tcsetpgrp=no,
 | |
|       zsh_cv_sys_tcsetpgrp=yes)])
 | |
|     if test $zsh_cv_sys_tcsetpgrp = no; then
 | |
|       AC_DEFINE(BROKEN_TCSETPGRP)
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| dnl -----------
 | |
| dnl test for faked getpwnam() entry, ie a single entry returned for any username
 | |
| dnl for instance, BeOS R4.51 is not multiuser yet, and fakes getpwnam()
 | |
| dnl test by looking up two usernames that shouldn't succeed, and compare entry
 | |
| dnl -----------
 | |
| if test $ac_cv_func_getpwnam=yes; then
 | |
|     AC_CACHE_CHECK(if getpwnam() is faked,
 | |
|     zsh_cv_sys_getpwnam_faked,
 | |
|     [AC_TRY_RUN([
 | |
| #include <pwd.h>
 | |
| main() {
 | |
|     struct passwd *pw1, *pw2;
 | |
|     char buf[1024], name[1024];
 | |
|     sprintf(buf, "%d:%d", getpid(), rand());
 | |
|     pw1=getpwnam(buf);
 | |
|     if (pw1) strcpy(name, pw1->pw_name);
 | |
|     sprintf(buf, "%d:%d", rand(), getpid());
 | |
|     pw2=getpwnam(buf);
 | |
|     exit(pw1!=0 && pw2!=0 && !strcmp(name, pw2->pw_name));
 | |
| }
 | |
| ],
 | |
|       zsh_cv_sys_getpwnam_faked=no,
 | |
|       zsh_cv_sys_getpwnam_faked=yes,
 | |
|       zsh_cv_sys_getpwnam_faked=no)])
 | |
|     if test $zsh_cv_sys_getpwnam_faked = yes; then
 | |
|       AC_DEFINE(GETPWNAM_FAKED)
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| dnl ---------------
 | |
| dnl dynamic loading
 | |
| dnl ---------------
 | |
| L=N
 | |
| aixdynamic=no
 | |
| hpuxdynamic=no
 | |
| if test "$ac_cv_func_dlopen"  != yes ||
 | |
|    test "$ac_cv_func_dlsym"   != yes ||
 | |
|    test "$ac_cv_func_dlerror" != yes; then
 | |
|   if test "$ac_cv_func_load"      != yes ||
 | |
|      test "$ac_cv_func_unload"    != yes ||
 | |
|      test "$ac_cv_func_loadbind"  != yes ||
 | |
|      test "$ac_cv_func_loadquery" != yes; then
 | |
|     if test "$ac_cv_func_shl_load" != yes ||
 | |
|        test "$ac_cv_func_shl_unload" != yes ||
 | |
|        test "$ac_cv_func_shl_findsym" != yes; then
 | |
|       dynamic=no
 | |
|     elif test "x$dynamic" = xyes; then
 | |
|       hpuxdynamic=yes
 | |
|       DL_EXT="${DL_EXT=sl}"
 | |
|       dnl autoheader won't allow us to define anything which isn't
 | |
|       dnl going into a header, and we can't undefine anything, so
 | |
|       dnl just define this anyway and rely on the later tests to
 | |
|       dnl define DYNAMIC or not.
 | |
|       AC_DEFINE(HPUXDYNAMIC)dnl
 | |
|     fi
 | |
|   elif test "x$dynamic" = xyes; then
 | |
|     aixdynamic=yes
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| test -n "$GCC" && LDARG=-Wl,
 | |
| 
 | |
| if test "x$aixdynamic" = xyes; then
 | |
|   DL_EXT="${DL_EXT=so}"
 | |
|   DLLD="${DLLD=$CC}"
 | |
|   zsh_cv_func_dlsym_needs_underscore=no
 | |
|   DLLDFLAGS=${DLLDFLAGS=}
 | |
|   EXTRA_LDFLAGS=${EXTRA_LDFLAGS=}
 | |
|   EXPOPT=${LDARG}-bE:
 | |
|   IMPOPT=${LDARG}-bI:
 | |
|   zsh_cv_sys_dynamic_clash_ok="${zsh_cv_sys_dynamic_clash_ok=yes}"
 | |
|   zsh_cv_sys_dynamic_rtld_global="${zsh_cv_sys_dynamic_rtld_global=yes}"
 | |
|   zsh_cv_sys_dynamic_execsyms="${zsh_cv_sys_dynamic_execsyms=yes}"
 | |
|   zsh_cv_sys_dynamic_strip_exe="${zsh_cv_sys_dynamic_strip_exe=yes}"
 | |
|   zsh_cv_sys_dynamic_strip_lib="${zsh_cv_sys_dynamic_strip_lib=yes}"
 | |
|   zsh_cv_sys_dynamic_broken="${zsh_cv_sys_dynamic_broken=no}"
 | |
| elif test "x$dynamic" = xyes; then
 | |
|   AC_CACHE_CHECK(if your system use ELF binaries,
 | |
|    zsh_cv_sys_elf,
 | |
|    [AC_TRY_RUN([/* Test for whether ELF binaries are produced */
 | |
| #include <fcntl.h>
 | |
| #include <stdlib.h>
 | |
| main(argc, argv)
 | |
| int argc;
 | |
| char *argv[];
 | |
| {
 | |
| 	char b[4];
 | |
| 	int i = open(argv[0],O_RDONLY);
 | |
| 	if(i == -1) 
 | |
| 		exit(1); /* fail */
 | |
| 	if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F')
 | |
| 		exit(0); /* succeed (yes, it's ELF) */
 | |
| 	else
 | |
| 		exit(1); /* fail */
 | |
| }],
 | |
|   zsh_cv_sys_elf=yes,
 | |
|   zsh_cv_sys_elf=no,
 | |
|   zsh_cv_sys_elf=yes)])
 | |
|   DL_EXT="${DL_EXT=so}"
 | |
|   if test $zsh_cv_sys_elf = yes; then
 | |
|     DLLD="${DLLD=$CC}"
 | |
|     DLLDARG="${LDARG}"
 | |
|   else
 | |
|     DLLD="${DLLD=ld}"
 | |
|     DLLDARG=""
 | |
|   fi
 | |
|   if test -n "$GCC"; then
 | |
|     DLCFLAGS="${DLCFLAGS=-fpic}"
 | |
|   else
 | |
|     case "$host_os" in
 | |
|       hpux*)                 DLCFLAGS="${DLCFLAGS=+z}" ;;
 | |
|       sunos*)                DLCFLAGS="${DLCFLAGS=-pic}" ;;
 | |
|       solaris*|sysv4*|esix*) DLCFLAGS="${DLCFLAGS=-Kpic}" ;;
 | |
|     esac
 | |
|   fi
 | |
|   case "$host_os" in
 | |
|     hpux*)        DLLDFLAGS="${DLLDFLAGS=-b}" ;;
 | |
|     freebsd*|linux*|irix*|osf*) DLLDFLAGS="${DLLDFLAGS=-shared}" ;;
 | |
|     sunos*)       DLLDFLAGS="${DLLDFLAGS=-assert nodefinitions}" ;;
 | |
|     sysv4*|esix*) DLLDFLAGS="${DLLDFLAGS=-G $ldflags}" ;;
 | |
|     netbsd*)      DLLDFLAGS="${DLLDFLAGS=${DLLDARG}-x -shared --whole-archive}" ;;
 | |
|     aix*)         DLLDFLAGS="${DLLDFLAGS=-G -bexpall -lc}" ;;
 | |
|     solaris*|sysv4*|esix*) DLLDFLAGS="${DLLDFLAGS=-G}" ;;
 | |
|   esac
 | |
|   case "$host" in
 | |
|     *-hpux*)  EXTRA_LDFLAGS="${EXTRA_LDFLAGS=-Wl,-E}" ;;
 | |
|     *-freebsd3*|*-freebsd4*|*-linux*) EXTRA_LDFLAGS="${EXTRA_LDFLAGS=-rdynamic}" ;;
 | |
|     mips-sni-sysv4)
 | |
|       #
 | |
|       # unfortunately, we have different compilers
 | |
|       # that need different flags
 | |
|       #
 | |
|       sni_cc_version=`$CC -V 2>&1 | head -1`
 | |
|       case "$sni_cc_version" in
 | |
|         *CDS* )
 | |
|          EXTRA_LDFLAGS="${EXTRA_LDFLAGS=-Wl,-Blargedynsym}"
 | |
|        ;;
 | |
|        * )
 | |
|          EXTRA_LDFLAGS="${EXTRA_LDFLAGS=-LD-Blargedynsym}"
 | |
|        ;;
 | |
|       esac
 | |
|     ;;
 | |
|   esac
 | |
|   AC_CACHE_CHECK(if your dlsym() needs a leading underscore,
 | |
|    zsh_cv_func_dlsym_needs_underscore,
 | |
|    [echo failed >conftestval && cat >conftest.c <<EOM
 | |
| fred () { }
 | |
| EOM
 | |
|     $CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest.c 1>&5 2>&5 &&
 | |
|     $DLLD -o conftest.$DL_EXT $LDFLAGS $DLLDFLAGS conftest.o 1>&5 2>&5 &&
 | |
|     AC_TRY_RUN([
 | |
| #include <stdio.h>
 | |
| #ifdef HPUXDYNAMIC
 | |
| #include <dl.h>
 | |
| #define RTLD_LAZY BIND_DEFERRED
 | |
| #define RTLD_GLOBAL DYNAMIC_PATH
 | |
| 
 | |
| char *zsh_gl_sym_addr ;
 | |
| 
 | |
| #define dlopen(file,mode) (void *)shl_load((file), (mode), (long) 0)
 | |
| #define dlclose(handle) shl_unload((shl_t)(handle))
 | |
| #define dlsym(handle,name) (zsh_gl_sym_addr=0,shl_findsym((shl_t *)&(handle),name,TYPE_UNDEFINED,&zsh_gl_sym_addr), (void *)zsh_gl_sym_addr)
 | |
| #define dlerror() 0
 | |
| #else
 | |
| #ifdef HAVE_DLFCN_H
 | |
| #include <dlfcn.h>
 | |
| #else
 | |
| #include <sys/types.h>
 | |
| #include <nlist.h>
 | |
| #include <link.h>
 | |
| #endif
 | |
| #endif
 | |
| #ifndef RTLD_LAZY
 | |
| #define RTLD_LAZY 1
 | |
| #endif
 | |
| 
 | |
| extern int fred() ;
 | |
| 
 | |
| main()
 | |
| {
 | |
|     void * handle ;
 | |
|     void * symbol ;
 | |
|     FILE *f=fopen("conftestval", "w");
 | |
|     if (!f) exit(1);
 | |
|     handle = dlopen("./conftest.$DL_EXT", RTLD_LAZY) ;
 | |
|     if (handle == NULL) {
 | |
|         fprintf (f, "dlopen failed") ;
 | |
|             exit(1);
 | |
|     }
 | |
|     symbol = dlsym(handle, "fred") ;
 | |
|     if (symbol == NULL) {
 | |
|                 /* try putting a leading underscore */
 | |
|         symbol = dlsym(handle, "_fred") ;
 | |
|         if (symbol == NULL) {
 | |
|             fprintf (f, "dlsym failed") ;
 | |
|                 exit(1);
 | |
|                 }
 | |
|         fprintf (f, "yes") ;
 | |
|     }
 | |
|     else
 | |
|         fprintf (f, "no") ;
 | |
|     exit(0);
 | |
| }], zsh_cv_func_dlsym_needs_underscore=`cat conftestval`,
 | |
|     zsh_cv_func_dlsym_needs_underscore=failed
 | |
|     dynamic=no,
 | |
|     zsh_cv_func_dlsym_needs_underscore=no)])
 | |
|   if test "x$zsh_cv_func_dlsym_needs_underscore" = xyes; then
 | |
|     AC_DEFINE(DLSYM_NEEDS_UNDERSCORE)
 | |
|   elif test "x$zsh_cv_func_dlsym_needs_underscore" != xno; then
 | |
|     dnl Do not cache failed value
 | |
|     unset zsh_cv_func_dlsym_needs_underscore
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| if test "x$dynamic" = xyes; then
 | |
|   zsh_SYS_DYNAMIC_BROKEN
 | |
|   test "$zsh_cv_sys_dynamic_broken" = no || dynamic=no
 | |
| fi
 | |
| 
 | |
| if test "x$dynamic" = xyes; then
 | |
|   zsh_SYS_DYNAMIC_CLASH
 | |
|   zsh_SYS_DYNAMIC_GLOBAL
 | |
|   RTLD_GLOBAL_OK=$zsh_cv_sys_dynamic_rtld_global
 | |
|   zsh_SYS_DYNAMIC_EXECSYMS
 | |
|   if test "$zsh_cv_sys_dynamic_execsyms" != yes; then
 | |
|     L=L
 | |
|   fi
 | |
|   zsh_SYS_DYNAMIC_STRIP_EXE
 | |
|   zsh_SYS_DYNAMIC_STRIP_LIB
 | |
|   if $strip_exeldflags && test "$zsh_cv_sys_dynamic_strip_exe" = yes; then
 | |
|     EXELDFLAGS="$EXELDFLAGS -s"
 | |
|   fi
 | |
|   if $strip_libldflags && test "$zsh_cv_sys_dynamic_strip_lib" = yes; then
 | |
|     LIBLDFLAGS="$LIBLDFLAGS -s"
 | |
|   fi
 | |
| else
 | |
|   $strip_exeldflags && EXELDFLAGS="$EXELDFLAGS -s"
 | |
|   $strip_libldflags && LIBLDFLAGS="$LIBLDFLAGS -s"
 | |
|   RTLD_GLOBAL_OK=no
 | |
| fi
 | |
| 
 | |
| if test "x$dynamic" = xyes; then
 | |
|   D=D
 | |
|   AC_DEFINE(DYNAMIC)dnl
 | |
| else
 | |
|   D=N
 | |
| fi
 | |
| 
 | |
| if test "x$aixdynamic" = xyes; then
 | |
|   E=E
 | |
|   AC_DEFINE(AIXDYNAMIC)dnl
 | |
| else
 | |
|   E=N
 | |
| fi
 | |
| 
 | |
| if test "x$zsh_cv_sys_dynamic_clash_ok" = xyes; then
 | |
|   SHORTBOOTNAMES=yes
 | |
| else
 | |
|   SHORTBOOTNAMES=no
 | |
| fi
 | |
| AC_SUBST(SHORTBOOTNAMES)
 | |
| 
 | |
| AC_DEFINE_UNQUOTED(DL_EXT, "$DL_EXT")dnl
 | |
| AC_SUBST(D)dnl
 | |
| AC_SUBST(DL_EXT)dnl
 | |
| AC_SUBST(DLLD)dnl
 | |
| AC_SUBST(DLCFLAGS)dnl
 | |
| AC_SUBST(DLLDFLAGS)dnl
 | |
| AC_SUBST(E)dnl
 | |
| AC_SUBST(EXTRA_LDFLAGS)dnl
 | |
| AC_SUBST(EXPOPT)dnl
 | |
| AC_SUBST(IMPOPT)dnl
 | |
| AC_SUBST(L)dnl
 | |
| AC_SUBST(RTLD_GLOBAL_OK)dnl
 | |
| 
 | |
| CLEAN_MK="${srcdir}/Config/clean.mk"
 | |
| CONFIG_MK="${srcdir}/Config/config.mk"
 | |
| dnl defs.mk is in the build tree, not the source tree
 | |
| DEFS_MK="Config/defs.mk"
 | |
| FUNCINST_MK="${srcdir}/Config/funcinst.mk"
 | |
| VERSION_MK="${srcdir}/Config/version.mk"
 | |
| 
 | |
| AC_SUBST_FILE(CLEAN_MK)dnl
 | |
| AC_SUBST_FILE(CONFIG_MK)dnl
 | |
| AC_SUBST_FILE(DEFS_MK)dnl
 | |
| AC_SUBST_FILE(FUNCINST_MK)dnl
 | |
| AC_SUBST_FILE(VERSION_MK)dnl
 | |
| 
 | |
| real_no_create=$no_create
 | |
| no_create=yes
 | |
| 
 | |
| AC_OUTPUT(Config/defs.mk Makefile Doc/Makefile Etc/Makefile Src/Makefile \
 | |
| Test/Makefile Completion/Makefile Functions/Makefile, \
 | |
| [test -z "$CONFIG_HEADERS" || echo > stamp-h])
 | |
| 
 | |
| dnl The standard config.status is missing some essential features.
 | |
| dnl So add them now.  See the comment at the end of Src/mkmakemod.sh.
 | |
| [rm -f $CONFIG_STATUS.old
 | |
| cp $CONFIG_STATUS $CONFIG_STATUS.old
 | |
| sed '1,$s@^\( *ac_file_inputs=\).*$@\1`echo $ac_file_in | sed -e "s%^%:%" -e "s%:\\([^!]\\)% $ac_given_srcdir/\\1%g" -e "s%:!% %"`@' \
 | |
|  $CONFIG_STATUS.old >$CONFIG_STATUS
 | |
|  rm -f $CONFIG_STATUS.old]
 | |
| 
 | |
| test "$real_no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
 | |
| 
 | |
| eval "zshbin1=${bindir}"
 | |
| eval "zshbin2=${zshbin1}"
 | |
| eval "zshman=${mandir}"
 | |
| eval "zshinfo=${infodir}"
 | |
| eval "zshfndir=${fndir}"
 | |
| 
 | |
| echo "
 | |
| zsh configuration
 | |
| -----------------
 | |
| zsh version               : ${VERSION}
 | |
| host operating system     : ${host_cpu}-${host_vendor}-${host_os}
 | |
| source code location      : ${srcdir}
 | |
| compiler                  : ${CC}
 | |
| preprocessor flags        : ${CPPFLAGS}
 | |
| executable compiler flags : ${CFLAGS}"
 | |
| if test "$dynamic" = yes; then
 | |
|   echo "\
 | |
| module compiler flags     : ${CFLAGS} ${DLCFLAGS}"
 | |
| fi
 | |
| echo "\
 | |
| executable linker flags   : ${LDFLAGS} ${EXELDFLAGS} ${EXTRA_LDFLAGS}"
 | |
| if test "$dynamic" = yes; then
 | |
|   echo "\
 | |
| module linker flags       : ${LDFLAGS} ${LIBLDFLAGS} ${DLLDFLAGS}"
 | |
| fi
 | |
| echo "\
 | |
| library flags             : ${LIBS}
 | |
| installation basename     : ${tzsh_name}
 | |
| binary install path       : ${zshbin2}
 | |
| man page install path     : ${zshman}
 | |
| info install path         : ${zshinfo}"
 | |
| if test "$zshfndir" != no; then
 | |
| echo "functions install path    : ${zshfndir}
 | |
| installed functions       : ${FUNCTIONS_INSTALL}
 | |
| "
 | |
| fi
 |