You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
599 lines
18 KiB
599 lines
18 KiB
--- configure.in~ 2008-11-23 17:43:48.000000000 +0000
|
|
+++ configure.in 2008-11-23 17:43:48.000000000 +0000
|
|
@@ -46,6 +46,7 @@
|
|
AC_PROG_GCC_TRADITIONAL
|
|
AC_ISC_POSIX
|
|
|
|
+AC_MSG_CHECKING([for compiler sanity])
|
|
AC_TRY_RUN(main(){exit(0);},,[
|
|
if test $CC != cc ; then
|
|
AC_NOTE(Your $CC failed - restarting with CC=cc)
|
|
@@ -54,22 +55,17 @@
|
|
export CC
|
|
exec $0 $configure_args
|
|
fi
|
|
-])
|
|
-
|
|
-AC_TRY_RUN(main(){exit(0);},,
|
|
-exec 5>&2
|
|
-eval $ac_link
|
|
-AC_NOTE(CC=$CC; CFLAGS=$CFLAGS; LIBS=$LIBS;)
|
|
-AC_NOTE($ac_compile)
|
|
-AC_MSG_ERROR(Can't run the compiler - sorry))
|
|
+],AC_MSG_WARN([skipping test due to crosscompilation]))
|
|
|
|
+AC_MSG_CHECKING([if compiler sets exit status])
|
|
AC_TRY_RUN([
|
|
main()
|
|
{
|
|
int __something_strange_();
|
|
__something_strange_(0);
|
|
}
|
|
-],AC_MSG_ERROR(Your compiler does not set the exit status - sorry))
|
|
+],AC_MSG_ERROR(Your compiler does not set the exit status - sorry),,
|
|
+AC_MSG_WARN(skipping test due to crosscompilation))
|
|
|
|
AC_PROG_AWK
|
|
|
|
@@ -103,6 +99,7 @@
|
|
dnl
|
|
dnl **** special unix variants ****
|
|
dnl
|
|
+AH_TEMPLATE(ISC,[])
|
|
if test -n "$ISC"; then
|
|
AC_DEFINE(ISC) LIBS="$LIBS -linet"
|
|
fi
|
|
@@ -114,11 +111,13 @@
|
|
dnl fi
|
|
dnl fi
|
|
|
|
+AH_TEMPLATE([sysV68],[])
|
|
if test -f /sysV68 ; then
|
|
AC_DEFINE(sysV68)
|
|
fi
|
|
|
|
AC_CHECKING(for MIPS)
|
|
+AH_TEMPLATE([MIPS],[])
|
|
if test -f /lib/libmld.a || test -f /usr/lib/libmld.a || test -f /usr/lib/cmplrs/cc/libmld.a; then
|
|
oldlibs="$LIBS"
|
|
test -f /bin/mx || LIBS="$LIBS -lmld" # for nlist. But not on alpha.
|
|
@@ -132,6 +131,8 @@
|
|
AC_CHECKING(wait3)
|
|
AC_TRY_LINK(,[wait3();], ,
|
|
AC_CHECKING(wait2)
|
|
+AH_TEMPLATE([USE_WAIT2],[On RISCOS we prefer wait2() over wait3(). rouilj@sni-usa.com])
|
|
+dnl TODO(Hannes) shipped config.h.in wraps the define in #ifdef BSDWAIT
|
|
AC_TRY_LINK(,[wait2();],
|
|
dnl John Rouillard (rouilj@sni-usa.com):
|
|
dnl need -I/usr/include/bsd in RISCOS otherwise sockets are broken, no
|
|
@@ -154,9 +155,11 @@
|
|
oldlibs="$LIBS"
|
|
LIBS="$LIBS -lpyr"
|
|
AC_CHECKING(Pyramid OSX)
|
|
+AH_TEMPLATE([OSX], [Pyramid OSX])
|
|
AC_TRY_LINK(,[open_controlling_pty("")], AC_DEFINE(OSX), LIBS="$oldlibs")
|
|
fi
|
|
|
|
+AH_TEMPLATE([POSIX],[Define POSIX if your system supports IEEE Std 1003.1-1988 (POSIX).])
|
|
dnl ghazi@caip.rutgers.edu (Kaveh R. Ghazi):
|
|
dnl BBN butterfly is not POSIX, but a MACH BSD system.
|
|
dnl Do not define POSIX and TERMIO.
|
|
@@ -183,6 +186,7 @@
|
|
fi
|
|
|
|
AC_CHECKING(for System V)
|
|
+AH_TEMPLATE([SYSV], [Define SYSV if your machine is SYSV complient (Sys V, HPUX, A/UX)])
|
|
AC_TRY_COMPILE(
|
|
[#include <sys/types.h>
|
|
#include <signal.h>
|
|
@@ -226,6 +230,9 @@
|
|
dnl
|
|
|
|
AC_CHECKING(BSD job jontrol)
|
|
+AH_TEMPLATE([BSDJOBS],
|
|
+[Define BSDJOBS if you have BSD-style job control (both process
|
|
+ groups and a tty that deals correctly with them)])
|
|
AC_TRY_LINK(
|
|
[#include <sys/types.h>
|
|
#include <sys/ioctl.h>
|
|
@@ -246,6 +253,10 @@
|
|
dnl **** setreuid(), seteuid() ****
|
|
dnl
|
|
AC_CHECKING(setreuid)
|
|
+AH_TEMPLATE([HAVE_SETREUID],
|
|
+[If your system has the calls setreuid() and setregid(),
|
|
+ define HAVE_SETREUID. Otherwise screen will use a forked process to
|
|
+ safely create output files without retaining any special privileges.])
|
|
AC_TRY_LINK(,[
|
|
#ifdef __hpux
|
|
setresuid(0, 0, 0);
|
|
@@ -260,6 +271,9 @@
|
|
dnl Solaris seteuid doesn't change the saved uid, bad for
|
|
dnl multiuser screen sessions
|
|
AC_CHECKING(seteuid)
|
|
+AH_TEMPLATE([HAVE_SETEUID],
|
|
+[If your system supports BSD4.4's seteuid() and setegid(), define
|
|
+ HAVE_SETEUID.])
|
|
AC_TRY_LINK(,[
|
|
#if defined(linux) || defined(NeXT) || defined(_AUX_SOURCE) || defined(AUX) || defined(ultrix) || (defined(sun) && defined(SVR4)) || defined(ISC) || defined(sony_news)
|
|
seteuid_is_broken(0);
|
|
@@ -284,6 +298,8 @@
|
|
dnl
|
|
|
|
AC_CHECKING(fifos)
|
|
+AC_CACHE_CHECK([usable fifos],
|
|
+ [screen_cv_sys_fifo_usable],
|
|
AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
@@ -348,12 +364,15 @@
|
|
exit(1);
|
|
exit(0);
|
|
}
|
|
-], AC_NOTE(- your fifos are usable) fifo=1,
|
|
-AC_NOTE(- your fifos are not usable))
|
|
+], screen_cv_sys_fifo_usable=yes, screen_cv_sys_fifo_usable=no))
|
|
rm -f /tmp/conftest*
|
|
|
|
-if test -n "$fifo"; then
|
|
-AC_CHECKING(for broken fifo implementation)
|
|
+if test X"$screen_cv_sys_fifo_usable" = Xyes; then
|
|
+AH_TEMPLATE([BROKEN_PIPE],
|
|
+[Define this if your system exits select() immediatly if a pipe is
|
|
+ opened read-only and no writer has opened it.])
|
|
+AC_CACHE_CHECK([broken fifo implementation],
|
|
+ [screen_cv_sys_fifo_broken_impl],
|
|
AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <fcntl.h>
|
|
@@ -398,9 +416,12 @@
|
|
exit(1);
|
|
exit(0);
|
|
}
|
|
-], AC_NOTE(- your implementation is ok),
|
|
-AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1)
|
|
+], screen_cv_sys_fifo_broken_impl=no,
|
|
+screen_cv_sys_fifo_broken_impl=yes))
|
|
+if test X"$screen_cv_sys_fifo_broken_impl" = Xyes; then
|
|
+ AC_DEFINE(BROKEN_PIPE)
|
|
+fi
|
|
rm -f /tmp/conftest*
|
|
fi
|
|
|
|
dnl
|
|
@@ -410,6 +430,8 @@
|
|
dnl
|
|
|
|
AC_CHECKING(sockets)
|
|
+AC_CACHE_CHECK([sockets are usable],
|
|
+ [screen_cv_sys_sockets_usable],
|
|
AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
@@ -460,12 +482,16 @@
|
|
exit(1);
|
|
exit(0);
|
|
}
|
|
-], AC_NOTE(- your sockets are usable) sock=1,
|
|
-AC_NOTE(- your sockets are not usable))
|
|
-rm -f /tmp/conftest*
|
|
+], screen_cv_sys_sockets_usable=yes,
|
|
+screen_cv_sys_sockets_usable=no))
|
|
|
|
-if test -n "$sock"; then
|
|
+if test X"$screen_cv_sys_sockets_usable" = Xyes; then
|
|
AC_CHECKING(socket implementation)
|
|
+AH_TEMPLATE([SOCK_NOT_IN_FS],
|
|
+[Define this if the unix-domain socket implementation doesn't
|
|
+ create a socket in the filesystem.])
|
|
+AC_CACHE_CHECK([if sockets are not stored in the filesystem],
|
|
+ [screen_cv_sys_sockets_nofs],
|
|
AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
@@ -491,22 +517,25 @@
|
|
close(s);
|
|
exit(0);
|
|
}
|
|
-],AC_NOTE(- you are normal),
|
|
-AC_NOTE(- unix domain sockets are not kept in the filesystem)
|
|
-AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1)
|
|
-rm -f /tmp/conftest*
|
|
+], screen_cv_sys_sockets_nofs=no,
|
|
+screen_cv_sys_sockets_nofs=yes))
|
|
+
|
|
+if test X"$screen_cv_sys_sockets_nofs" = Xyes; then
|
|
+ AC_DEFINE(SOCK_NOT_IN_FS)
|
|
+fi
|
|
fi
|
|
|
|
|
|
dnl
|
|
dnl **** choose sockets or fifos ****
|
|
dnl
|
|
-if test -n "$fifo"; then
|
|
- if test -n "$sock"; then
|
|
- if test -n "$nore"; then
|
|
+AH_TEMPLATE([NAMEDPIPE], [Define this if your system supports named pipes.])
|
|
+if test X"$screen_cv_sys_fifo_usable" = Xyes; then
|
|
+ if test X"$screen_cv_sys_sockets_usable" = Xyes; then
|
|
+ if test X"$screen_cv_sys_sockets_nofs" = Xyes; then
|
|
AC_NOTE(- hmmm... better take the fifos)
|
|
AC_DEFINE(NAMEDPIPE)
|
|
- elif test -n "$fifobr"; then
|
|
+ elif test X"$screen_cv_sys_fifo_broken_impl" = Xyes; then
|
|
AC_NOTE(- as your fifos are broken lets use the sockets.)
|
|
else
|
|
AC_NOTE(- both sockets and fifos usable. let's take fifos.)
|
|
@@ -516,7 +545,7 @@
|
|
AC_NOTE(- using named pipes, of course)
|
|
AC_DEFINE(NAMEDPIPE)
|
|
fi
|
|
-elif test -n "$sock"; then
|
|
+elif test X"$screen_cv_sys_sockets_usable" = Xyes; then
|
|
AC_NOTE(- using unix-domain sockets, of course)
|
|
else
|
|
AC_MSG_ERROR(you have neither usable sockets nor usable pipes -> no screen)
|
|
@@ -526,7 +555,11 @@
|
|
dnl **** check the select implementation ****
|
|
dnl
|
|
|
|
-AC_CHECKING(select return value)
|
|
+AH_TEMPLATE([SELECT_BROKEN],
|
|
+[If the select return value doesn't treat a descriptor that is
|
|
+ usable for reading and writing as two hits, define SELECT_BROKEN.])
|
|
+AC_CACHE_CHECK([for broken select return value],
|
|
+ [screen_cv_sys_select_broken_retval],
|
|
AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
@@ -625,17 +658,26 @@
|
|
exit(1);
|
|
exit(0);
|
|
}
|
|
-],AC_NOTE(- select is ok),
|
|
-AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN))
|
|
+], screen_cv_sys_select_broken_retval=no,
|
|
+screen_cv_sys_select_broken_retval=yes))
|
|
+if test X"$screen_cv_sys_select_broken_retval" = Xyes; then
|
|
+ AC_DEFINE(SELECT_BROKEN)
|
|
+fi
|
|
|
|
dnl
|
|
dnl **** termcap or terminfo ****
|
|
dnl
|
|
+AH_TEMPLATE([TERMINFO],
|
|
+[Define TERMINFO if your machine emulates the termcap routines
|
|
+ with the terminfo database.
|
|
+ Thus the .screenrc file is parsed for
|
|
+ the command 'terminfo' and not 'termcap'])
|
|
+
|
|
AC_CHECKING(for tgetent)
|
|
AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
|
|
olibs="$LIBS"
|
|
-LIBS="-lcurses $olibs"
|
|
AC_CHECKING(libcurses)
|
|
+AC_CHECK_LIB(ncursesw,tgetent)
|
|
AC_TRY_LINK(,[
|
|
#ifdef __hpux
|
|
__sorry_hpux_libcurses_is_totally_broken_in_10_10();
|
|
@@ -654,24 +696,39 @@
|
|
AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
|
|
AC_MSG_ERROR(!!! no tgetent - no screen))))))
|
|
|
|
-AC_TRY_RUN([
|
|
+AC_CACHE_CHECK([using terminfo database],[screen_cv_sys_terminfo_used],
|
|
+ AC_TRY_RUN([
|
|
main()
|
|
{
|
|
exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1);
|
|
-}], AC_NOTE(- you use the termcap database),
|
|
-AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO))
|
|
+}
|
|
+ ], screen_cv_sys_terminfo_used=no,
|
|
+ screen_cv_sys_terminfo_used=yes)
|
|
+)
|
|
+
|
|
+if test X"$screen_cv_sys_terminfo_used" = Xyes; then
|
|
+ AC_DEFINE(TERMINFO)
|
|
+fi
|
|
+
|
|
AC_CHECKING(ospeed)
|
|
+AH_TEMPLATE([NEED_OSPEED],[If your library does not define ospeed, define this.])
|
|
AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
|
|
|
|
dnl
|
|
dnl **** PTY specific things ****
|
|
dnl
|
|
+AH_TEMPLATE([HAVE_DEV_PTC],
|
|
+[define HAVE_DEV_PTC if you have a /dev/ptc character special
|
|
+ device.])
|
|
AC_CHECKING(for /dev/ptc)
|
|
if test -r /dev/ptc; then
|
|
AC_DEFINE(HAVE_DEV_PTC)
|
|
fi
|
|
|
|
AC_CHECKING(for SVR4 ptys)
|
|
+AH_TEMPLATE([HAVE_SVR4_PTYS],
|
|
+[define HAVE_SVR4_PTYS if you have a /dev/ptmx character special
|
|
+ device and support the ptsname(), grantpt(), unlockpt() functions.])
|
|
sysvr4ptys=
|
|
if test -c /dev/ptmx ; then
|
|
AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE(HAVE_SVR4_PTYS)
|
|
@@ -687,6 +744,13 @@
|
|
fi
|
|
|
|
AC_CHECKING(for ptyranges)
|
|
+AH_TEMPLATE([PTYRANGE0],
|
|
+[define PTYRANGE0 and or PTYRANGE1 if you want to adapt screen
|
|
+ to unusual environments. E.g. For SunOs the defaults are "qpr" and
|
|
+ "0123456789abcdef". For SunOs 4.1.2
|
|
+ #define PTYRANGE0 "pqrstuvwxyzPQRST"
|
|
+ is recommended by Dan Jacobson.])
|
|
+AH_TEMPLATE([PTYRANGE1],[])
|
|
if test -d /dev/ptym ; then
|
|
pdir='/dev/ptym'
|
|
else
|
|
@@ -850,20 +914,39 @@
|
|
dnl
|
|
dnl **** loadav ****
|
|
dnl
|
|
+
|
|
+AH_TEMPLATE([LOADAV],
|
|
+[If you want the "time" command to display the current load average
|
|
+ define LOADAV. Maybe you must install screen with the needed
|
|
+ privileges to read /dev/kmem.
|
|
+ Note that NLIST_ stuff is only checked, when getloadavg() is not available.
|
|
+])
|
|
+AH_TEMPLATE([LOADAV_NUM])
|
|
+AH_TEMPLATE([LOADAV_TYPE])
|
|
+AH_TEMPLATE([LOADAV_SCALE])
|
|
+AH_TEMPLATE([LOADAV_GETLOADAVG])
|
|
+AH_TEMPLATE([LOADAV_UNIX])
|
|
+AH_TEMPLATE([LOADAV_AVENRUN])
|
|
+AH_TEMPLATE([LOADAV_USE_NLIST64])
|
|
+
|
|
+AH_TEMPLATE([NLIST_DECLARED])
|
|
+AH_TEMPLATE([NLIST_STRUCT])
|
|
+AH_TEMPLATE([NLIST_NAME_UNION])
|
|
+
|
|
AC_CHECKING(for libutil(s))
|
|
-test -f /usr/lib/libutils.a && LIBS="$LIBS -lutils"
|
|
-test -f /usr/lib/libutil.a && LIBS="$LIBS -lutil"
|
|
+dnl I have no idea whether "login" is an appropriate symbol to check for here - Hannes
|
|
+AC_CHECK_LIB(utils,login)
|
|
+AC_CHECK_LIB(util,login)
|
|
|
|
AC_CHECKING(getloadavg)
|
|
AC_TRY_LINK(,[getloadavg((double *)0, 0);],
|
|
AC_DEFINE(LOADAV_GETLOADAVG) load=1,
|
|
-if test -f /usr/lib/libkvm.a ; then
|
|
olibs="$LIBS"
|
|
-LIBS="$LIBS -lkvm"
|
|
+AC_CHECK_LIB(kvm,kvm_open,
|
|
AC_CHECKING(getloadavg with -lkvm)
|
|
AC_TRY_LINK(,[getloadavg((double *)0, 0);],
|
|
AC_DEFINE(LOADAV_GETLOADAVG) load=1, LIBS="$olibs")
|
|
-fi
|
|
+)
|
|
)
|
|
|
|
if test -z "$load" ; then
|
|
@@ -1005,6 +1088,11 @@
|
|
dnl
|
|
dnl **** signal handling ****
|
|
dnl
|
|
+
|
|
+AH_TEMPLATE([SIGVOID],
|
|
+[Define SIGVOID if your signal handlers return void. On older
|
|
+ systems, signal returns int, but on newer ones, it returns void.])
|
|
+
|
|
if test -n "$posix" ; then
|
|
|
|
dnl POSIX has reliable signals with void return type.
|
|
@@ -1014,6 +1102,7 @@
|
|
else
|
|
|
|
AC_CHECKING(return type of signal handlers)
|
|
+AH_TEMPLATE([USESIGSET], [Define USESIGSET if you have sigset for BSD 4.1 reliable signals.])
|
|
AC_TRY_COMPILE(
|
|
[#include <sys/types.h>
|
|
#include <signal.h>
|
|
@@ -1033,6 +1122,9 @@
|
|
#endif
|
|
], AC_DEFINE(USESIGSET))
|
|
AC_CHECKING(signal implementation)
|
|
+AH_TEMPLATE([SYSVSIGS],
|
|
+[Define SYSVSIGS if signal handlers must be reinstalled after
|
|
+ they have been called.])
|
|
AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <signal.h>
|
|
@@ -1075,13 +1167,14 @@
|
|
dnl
|
|
|
|
AC_CHECKING(for crypt and sec libraries)
|
|
-test -f /lib/libcrypt_d.a || test -f /usr/lib/libcrypt_d.a && LIBS="$LIBS -lcrypt_d"
|
|
+dnl I have no idea whether "crypt" is an appropriate symbol to check for here - Hannes
|
|
+AC_CHECK_LIB(crypt_d,crypt)
|
|
oldlibs="$LIBS"
|
|
-LIBS="$LIBS -lcrypt"
|
|
AC_CHECKING(crypt)
|
|
AC_TRY_LINK(,,,LIBS="$oldlibs")
|
|
-test -f /lib/libsec.a || test -f /usr/lib/libsec.a && LIBS="$LIBS -lsec"
|
|
-test -f /lib/libshadow.a || test -f /usr/lib/libshadow.a && LIBS="$LIBS -lshadow"
|
|
+AC_CHECK_LIB(crypt,crypt)
|
|
+AC_CHECK_LIB(sec,crypt)
|
|
+AC_CHECK_LIB(shadow,getspnam)
|
|
oldlibs="$LIBS"
|
|
LIBS="$LIBS -lsun"
|
|
AC_CHECKING(IRIX sun library)
|
|
@@ -1104,6 +1197,13 @@
|
|
dnl **** misc things ****
|
|
dnl
|
|
AC_CHECKING(wait union)
|
|
+AH_TEMPLATE([BSDWAIT],
|
|
+[Define BSDWAIT if your system defines a 'union wait' in <sys/wait.h>
|
|
+
|
|
+ Only allow BSDWAIT i.e. wait3 on nonposix systems, since
|
|
+ posix implies wait(3) and waitpid(3). vdlinden@fwi.uva.nl
|
|
+ TODO(Hannes) shipped config.h.in does that with a #ifdef
|
|
+])
|
|
AC_TRY_COMPILE([#include <sys/types.h>
|
|
#include <sys/wait.h>
|
|
],[
|
|
@@ -1114,6 +1214,13 @@
|
|
#endif
|
|
],AC_DEFINE(BSDWAIT))
|
|
|
|
+AH_TEMPLATE([TERMIO],
|
|
+[Define TERMIO if you have struct termio instead of struct sgttyb.
|
|
+ This is usually the case for SVID systems, where BSD uses sgttyb.
|
|
+ POSIX systems should define this anyway, even though they use
|
|
+ struct termios.])
|
|
+
|
|
+
|
|
if test -z "$butterfly"; then
|
|
AC_CHECKING(for termio or termios)
|
|
AC_TRY_CPP([#include <termio.h>], AC_DEFINE(TERMIO),
|
|
@@ -1123,17 +1230,35 @@
|
|
)
|
|
fi
|
|
|
|
+AH_TEMPLATE([CYTERMIO], [Define CYTERMIO if you have cyrillic termio modes.])
|
|
+
|
|
dnl AC_CHECK_HEADER(shadow.h, AC_DEFINE(SHADOWPW))
|
|
AC_CHECKING(getspnam)
|
|
+AH_TEMPLATE([SHADOWPW],
|
|
+[If the passwords are stored in a shadow file and you want the
|
|
+ builtin lock to work properly, define SHADOWPW.])
|
|
AC_TRY_LINK([#include <shadow.h>], [getspnam("x");],AC_DEFINE(SHADOWPW))
|
|
|
|
AC_CHECKING(getttyent)
|
|
+AH_TEMPLATE([GETTTYENT],
|
|
+[If your system has the new format /etc/ttys (like 4.3 BSD) and the
|
|
+ getttyent(3) library functions, define GETTTYENT.])
|
|
AC_TRY_LINK(,[getttyent();], AC_DEFINE(GETTTYENT))
|
|
|
|
AC_CHECKING(fdwalk)
|
|
+AH_TEMPLATE([HAVE_FDWALK],
|
|
+[Newer versions of Solaris include fdwalk, which can greatly improve
|
|
+ the startup time of screen; otherwise screen spends a lot of time
|
|
+ closing file descriptors.])
|
|
AC_TRY_LINK([#include <stdlib.h>], [fdwalk(NULL, NULL);],AC_DEFINE(HAVE_FDWALK))
|
|
|
|
-AC_CHECKING(whether memcpy/memmove/bcopy handles overlapping arguments)
|
|
+AH_TEMPLATE([USEBCOPY],
|
|
+[Define USEBCOPY if the bcopy/memcpy from your system's C library
|
|
+ supports the overlapping of source and destination blocks. When
|
|
+ undefined, screen uses its own (probably slower) version of bcopy().])
|
|
+
|
|
+AC_CACHE_CHECK([if bcopy handles overlap],
|
|
+ [screen_cv_sys_bcopy_overlap],
|
|
AC_TRY_RUN([
|
|
main() {
|
|
char buf[10];
|
|
@@ -1146,7 +1271,21 @@
|
|
if (strncmp(buf, "cdedef", 6))
|
|
exit(1);
|
|
exit(0); /* libc version works properly. */
|
|
-}], AC_DEFINE(USEBCOPY))
|
|
+}], screen_cv_sys_bcopy_overlap=yes,
|
|
+screen_cv_sys_bcopy_overlap=no))
|
|
+if test X"$screen_cv_sys_bcopy_overlap" = Xyes; then
|
|
+ AC_DEFINE(USEBCOPY)
|
|
+fi
|
|
+
|
|
+AH_TEMPLATE([USEMEMMOVE],
|
|
+[SYSV machines may have a working memcpy() -- Oh, this is
|
|
+ quite unlikely. Tell me if you see one.
|
|
+ "But then, memmove() should work, if at all available" he thought...
|
|
+ Boing, never say "works everywhere" unless you checked SCO UNIX.
|
|
+ Their memove fails the test in the configure script. Sigh. (Juergen)
|
|
+])
|
|
+AC_CACHE_CHECK([if memmove handles overlap],
|
|
+ [screen_cv_sys_memmove_overlap],
|
|
|
|
AC_TRY_RUN([
|
|
#define bcopy(s,d,l) memmove(d,s,l)
|
|
@@ -1161,9 +1300,15 @@
|
|
if (strncmp(buf, "cdedef", 6))
|
|
exit(1);
|
|
exit(0); /* libc version works properly. */
|
|
-}], AC_DEFINE(USEMEMMOVE))
|
|
-
|
|
+}], screen_cv_sys_memmove_overlap=yes,
|
|
+screen_cv_sys_memmove_overlap=no))
|
|
+if test X"$screen_cv_sys_memmove_overlap" = Xyes; then
|
|
+ AC_DEFINE(USEMEMMOVE)
|
|
+fi
|
|
|
|
+AH_TEMPLATE([USEMEMCPY],[])
|
|
+AC_CACHE_CHECK([if memcpy handles overlap],
|
|
+ [screen_cv_sys_memcpy_overlap],
|
|
AC_TRY_RUN([
|
|
#define bcopy(s,d,l) memcpy(d,s,l)
|
|
main() {
|
|
@@ -1177,9 +1322,19 @@
|
|
if (strncmp(buf, "cdedef", 6))
|
|
exit(1);
|
|
exit(0); /* libc version works properly. */
|
|
-}], AC_DEFINE(USEMEMCPY))
|
|
+}], screen_cv_sys_memcpy_overlap=yes,
|
|
+screen_cv_sys_memcpy_overlap=no))
|
|
+if test X"$screen_cv_sys_memcpy_overlap" = Xyes; then
|
|
+ AC_DEFINE(USEMEMCPY)
|
|
+fi
|
|
|
|
AC_MSG_CHECKING(long file names)
|
|
+AH_TEMPLATE([NAME_MAX],
|
|
+[If you are on a SYS V machine that restricts filename length to 14
|
|
+ characters, you may need to enforce that by setting NAME_MAX to 14])
|
|
+dnl TODO(Hannes) shipped config.h.in has
|
|
+dnl #undef NAME_MAX /* KEEP_UNDEF_HERE override system value */
|
|
+dnl ahead of this
|
|
(echo 1 > /tmp/conftest9012345) 2>/dev/null
|
|
(echo 2 > /tmp/conftest9012346) 2>/dev/null
|
|
val=`cat /tmp/conftest9012345 2>/dev/null`
|
|
@@ -1192,6 +1347,10 @@
|
|
rm -f /tmp/conftest*
|
|
|
|
AC_MSG_CHECKING(for vsprintf)
|
|
+AH_TEMPLATE([USEVARARGS],
|
|
+[If your system has vsprintf() and requires the use of the macros in
|
|
+ "varargs.h" to use functions with variable arguments,
|
|
+ define USEVARARGS.])
|
|
AC_TRY_LINK([#include <stdarg.h>],[va_list valist; vsprintf(0,0,valist);],
|
|
[AC_MSG_RESULT(yes);AC_DEFINE(USEVARARGS)],
|
|
[AC_MSG_RESULT(no)])
|
|
@@ -1199,12 +1358,19 @@
|
|
AC_HEADER_DIRENT
|
|
|
|
AC_MSG_CHECKING(for setenv)
|
|
+AH_TEMPLATE([USESETENV], [If your system has setenv() and unsetenv() define USESETENV])
|
|
AC_TRY_LINK(,[setenv((char *)0,(char *)0);unsetenv((char *)0);], AC_MSG_RESULT(yes);AC_DEFINE(USESETENV),
|
|
AC_MSG_RESULT(no)
|
|
AC_MSG_CHECKING(for putenv)
|
|
+AH_TEMPLATE([NEEDPUTENV],
|
|
+[If your system does not come with a setenv()/putenv()/getenv()
|
|
+ functions, you may bring in our own code by defining NEEDPUTENV.])
|
|
AC_TRY_LINK(,[putenv((char *)0);unsetenv((char *)0);], AC_MSG_RESULT(yes) , AC_MSG_RESULT(no);AC_DEFINE(NEEDPUTENV)
|
|
))
|
|
AC_MSG_CHECKING([for nl_langinfo(CODESET)])
|
|
+AH_TEMPLATE([HAVE_NL_LANGINFO],
|
|
+[define HAVE_NL_LANGINFO if your system has the nl_langinfo() call
|
|
+ and <langinfo.h> defines CODESET.])
|
|
AC_TRY_LINK([
|
|
#include <langinfo.h>
|
|
],[nl_langinfo(CODESET);], AC_MSG_RESULT(yes);AC_DEFINE(HAVE_NL_LANGINFO), AC_MSG_RESULT(no))
|
|
@@ -1254,7 +1420,8 @@
|
|
dnl Ptx bug workaround -- insert -lc after -ltermcap
|
|
test -n "$seqptx" && LIBS="-ltermcap -lc -lsocket -linet -lnsl -lsec -lseq"
|
|
|
|
-AC_TRY_RUN(main(){exit(0);},,AC_MSG_ERROR(Can't run the compiler - internal error. Sorry.))
|
|
+AC_MSG_CHECKING(compiler sanity)
|
|
+AC_TRY_RUN(main(){exit(0);},,AC_MSG_ERROR(Can't run the compiler - internal error. Sorry.), AC_MSG_WARN(Skipping test due to crosscompilation))
|
|
|
|
ETCSCREENRC="\"/usr/local/etc/screenrc\""
|
|
if test -n "$prefix"; then
|