2 dnl Copyright (C) 2010-2020 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
9 # Define automake variable PTY_LIB to the library needed (if any).
10 AC_DEFUN([gl_PTY_LIB],
12 # Check for the library required for forkpty.
15 AC_SEARCH_LIBS([forkpty], [util],
16 [if test "$ac_cv_search_forkpty" != "none required"; then
17 PTY_LIB="$ac_cv_search_forkpty"
23 AC_DEFUN([gl_FUNC_FORKPTY],
25 AC_REQUIRE([gl_PTY_LIB])
26 AC_REQUIRE([gl_PTY_H])
28 dnl We assume that forkpty exists (possibly in libc, possibly in libutil)
29 dnl if and only if it is declared.
30 AC_CHECK_DECLS([forkpty],,, [[
31 /* <sys/types.h> is a prerequisite of <libutil.h> on FreeBSD 8.0. */
32 #include <sys/types.h>
46 if test $ac_cv_have_decl_forkpty = yes; then
47 dnl The system has forkpty.
48 dnl Prefer glibc's const-safe prototype, if available.
49 AC_CACHE_CHECK([for const-safe forkpty signature],
50 [gl_cv_func_forkpty_const],
53 /* <sys/types.h> is a prerequisite of <libutil.h> on FreeBSD 8.0. */
54 #include <sys/types.h>
68 int forkpty (int *, char *, struct termios const *,
69 struct winsize const *);
72 [gl_cv_func_forkpty_const=yes], [gl_cv_func_forkpty_const=no])
74 if test $gl_cv_func_forkpty_const != yes; then
78 dnl The system does not have forkpty.
81 AC_DEFINE_UNQUOTED([HAVE_FORKPTY], [$HAVE_FORKPTY],
82 [Define to 1 if the system has the 'forkpty' function.])
85 AC_DEFUN([gl_FUNC_OPENPTY],
87 AC_REQUIRE([gl_PTY_LIB])
88 AC_REQUIRE([gl_PTY_H])
90 dnl Persuade Solaris <stdlib.h> to declare posix_openpt().
91 AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
93 dnl We assume that openpty exists (possibly in libc, possibly in libutil)
94 dnl if and only if it is declared.
95 AC_CHECK_DECLS([openpty],,, [[
96 /* <sys/types.h> is a prerequisite of <libutil.h> on FreeBSD 8.0. */
97 #include <sys/types.h>
105 # include <libutil.h>
108 # include <termios.h>
111 if test $ac_cv_have_decl_openpty = yes; then
112 AC_DEFINE([HAVE_OPENPTY], [1],
113 [Define to 1 if the system has the 'openpty' function.])
114 dnl The system has openpty.
115 dnl Prefer glibc's const-safe prototype, if available.
116 AC_CACHE_CHECK([for const-safe openpty signature],
117 [gl_cv_func_openpty_const],
120 /* <sys/types.h> is a prerequisite of <libutil.h> on FreeBSD 8.0. */
121 #include <sys/types.h>
129 # include <libutil.h>
132 # include <termios.h>
135 int openpty (int *, int *, char *, struct termios const *,
136 struct winsize const *);
139 [gl_cv_func_openpty_const=yes], [gl_cv_func_openpty_const=no])
141 if test $gl_cv_func_openpty_const != yes; then
145 dnl The system does not have openpty.
147 dnl Prerequisites of lib/openpty.c in this case.
148 AC_CHECK_FUNCS([_getpty posix_openpt])
152 AC_DEFUN([gl_FUNC_LOGIN_TTY],
154 AC_REQUIRE([gl_PTY_LIB])
156 gl_saved_libs="$LIBS"
157 LIBS="$LIBS $PTY_LIB"
158 AC_CHECK_FUNCS([login_tty])
159 LIBS="$gl_saved_LIBS"