X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=m4%2Fpty.m4;h=d2966bc94a2e5c47aa571d2e5deb099f52082124;hb=00eece306cac8a9d5315e6f0f53ae2c11cd8b553;hp=f795792e18e2d7e28577e3dd25836c5f2b0f7fef;hpb=c811030cf5c9a216a14d5628089346c0565cf456;p=gnulib.git diff --git a/m4/pty.m4 b/m4/pty.m4 index f795792e1..d2966bc94 100644 --- a/m4/pty.m4 +++ b/m4/pty.m4 @@ -1,4 +1,4 @@ -# pty.m4 serial 4 +# pty.m4 serial 9 dnl Copyright (C) 2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -20,12 +20,16 @@ AC_DEFUN([gl_PTY_LIB], AC_SUBST([PTY_LIB]) ]) -AC_DEFUN([gl_FORKPTY], +AC_DEFUN([gl_FUNC_FORKPTY], [ AC_REQUIRE([gl_PTY_LIB]) AC_REQUIRE([gl_PTY_H]) + dnl We assume that forkpty exists (possibly in libc, possibly in libutil) + dnl if and only if it is declared. AC_CHECK_DECLS([forkpty],,, [[ +/* is a prerequisite of on FreeBSD 8.0. */ +#include #if HAVE_PTY_H # include #endif @@ -36,15 +40,15 @@ AC_DEFUN([gl_FORKPTY], # include #endif ]]) - if test $ac_cv_have_decl_forkpty = no; then - AC_MSG_WARN([[Cannot find forkpty, build will likely fail]]) - fi - - dnl Prefer glibc's const-safe prototype, if available. - AC_CACHE_CHECK([for const-safe forkpty signature], - [gl_cv_func_forkpty_const], - [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[ + if test $ac_cv_have_decl_forkpty = yes; then + dnl The system has forkpty. + dnl Prefer glibc's const-safe prototype, if available. + AC_CACHE_CHECK([for const-safe forkpty signature], + [gl_cv_func_forkpty_const], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ +/* is a prerequisite of on FreeBSD 8.0. */ +#include #if HAVE_PTY_H # include #endif @@ -54,18 +58,25 @@ AC_DEFUN([gl_FORKPTY], #if HAVE_LIBUTIL_H # include #endif - ]], [[ - int forkpty (int *, char *, struct termios const *, - struct winsize const *); - ]])], - [gl_cv_func_forkpty_const=yes], [gl_cv_func_forkpty_const=no])]) - if test $gl_cv_func_forkpty_const != yes; then - REPLACE_FORKPTY=1 + ]], [[ + int forkpty (int *, char *, struct termios const *, + struct winsize const *); + ]]) + ], + [gl_cv_func_forkpty_const=yes], [gl_cv_func_forkpty_const=no]) + ]) + if test $gl_cv_func_forkpty_const != yes; then + REPLACE_FORKPTY=1 + AC_LIBOBJ([forkpty]) + fi + else + dnl The system does not have forkpty. + HAVE_FORKPTY=0 AC_LIBOBJ([forkpty]) fi ]) -AC_DEFUN([gl_OPENPTY], +AC_DEFUN([gl_FUNC_OPENPTY], [ AC_REQUIRE([gl_PTY_LIB]) AC_REQUIRE([gl_PTY_H]) @@ -76,6 +87,8 @@ AC_DEFUN([gl_OPENPTY], dnl We assume that openpty exists (possibly in libc, possibly in libutil) dnl if and only if it is declared. AC_CHECK_DECLS([openpty],,, [[ +/* is a prerequisite of on FreeBSD 8.0. */ +#include #if HAVE_PTY_H # include #endif @@ -93,6 +106,8 @@ AC_DEFUN([gl_OPENPTY], [gl_cv_func_openpty_const], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ +/* is a prerequisite of on FreeBSD 8.0. */ +#include #if HAVE_PTY_H # include #endif @@ -112,6 +127,8 @@ AC_DEFUN([gl_OPENPTY], if test $gl_cv_func_openpty_const != yes; then REPLACE_OPENPTY=1 AC_LIBOBJ([openpty]) + AC_DEFINE([HAVE_OPENPTY], [1], + [Define to 1 if the system has the 'openpty' function.]) fi else dnl The system does not have openpty. @@ -125,7 +142,10 @@ AC_DEFUN([gl_FUNC_LOGIN_TTY], [ AC_REQUIRE([gl_PTY_LIB]) - AC_CHECK_FUNCS_ONCE([login_tty]) + gl_saved_libs="$LIBS" + LIBS="$LIBS $PTY_LIB" + AC_CHECK_FUNCS([login_tty]) + LIBS="$gl_saved_LIBS" if test $ac_cv_func_login_tty = no; then AC_LIBOBJ([login_tty]) fi