--- screen-4.0.1/configure.in~configure +++ screen-4.0.1/configure.in @@ -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 @@ -292,7 +288,8 @@ dnl **** FIFO tests **** dnl -AC_CHECKING(fifos) +AC_CACHE_CHECK([usable fifos], + [screen_cv_sys_fifo_usable], AC_TRY_RUN([ #include #include @@ -357,12 +354,11 @@ exit(1); exit(0); } -], AC_NOTE(- your fifos are usable) fifo=1, -AC_NOTE(- your fifos are not usable)) -rm -f /tmp/conftest* +], screen_cv_sys_fifo_usable=yes, screen_cv_sys_fifo_usable=no)) -if test -n "$fifo"; then -AC_CHECKING(for broken fifo implementation) +if test X"$screen_cv_sys_fifo_usable" = Xyes; then +AC_CACHE_CHECK([broken fifo implementation], + [screen_cv_sys_fifo_broken_impl], AC_TRY_RUN([ #include #include @@ -407,9 +403,11 @@ exit(1); exit(0); } -], AC_NOTE(- your implementation is ok), -AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1) -rm -f /tmp/conftest* +], 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 fi dnl @@ -418,7 +416,8 @@ dnl may need LIBS="$LIBS -lsocket" here dnl -AC_CHECKING(sockets) +AC_CACHE_CHECK([sockets are usable], + [screen_cv_sys_sockets_usable], AC_TRY_RUN([ #include #include @@ -469,12 +468,13 @@ 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) +AC_CACHE_CHECK([if sockets are not stored in the filesystem], + [screen_cv_sys_sockets_nofs], AC_TRY_RUN([ #include #include @@ -500,22 +500,24 @@ 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 +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.) @@ -525,7 +527,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) @@ -535,7 +537,8 @@ dnl **** check the select implementation **** dnl -AC_CHECKING(select return value) +AC_CACHE_CHECK([for broken select return value], + [screen_cv_sys_select_broken_retval], AC_TRY_RUN([ #include #include @@ -634,8 +637,11 @@ 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 **** @@ -663,12 +669,20 @@ 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) AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED)) @@ -856,7 +870,7 @@ #endif ],[struct utmp u; u.ut_host[0] = 0;], AC_DEFINE(UTHOST)) AC_CHECK_HEADER(utempter.h, have_utempter=yes, have_utempter=no) -if test "$have_utempter" = yes; then +if test X"$have_utempter" = Xyes; then AC_DEFINE(HAVE_UTEMPTER) LIBS="$LIBS -lutempter" fi @@ -1147,7 +1161,8 @@ AC_CHECKING(fdwalk) AC_TRY_LINK([#include ], [fdwalk(NULL, NULL);],AC_DEFINE(HAVE_FDWALK)) -AC_CHECKING(whether memcpy/memmove/bcopy handles overlapping arguments) +AC_CACHE_CHECK([if bcopy handles overlap], + [screen_cv_sys_bcopy_overlap], AC_TRY_RUN([ main() { char buf[10]; @@ -1160,8 +1175,14 @@ 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 +AC_CACHE_CHECK([if memmove handles overlap], + [screen_cv_sys_memmove_overlap], AC_TRY_RUN([ #define bcopy(s,d,l) memmove(d,s,l) main() { @@ -1175,9 +1196,14 @@ 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 +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() { @@ -1191,7 +1217,11 @@ 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) (echo 1 > /tmp/conftest9012345) 2>/dev/null @@ -1266,7 +1296,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