infcall: refactor 'call_function_by_hand_dummy'
[deliverable/binutils-gdb.git] / readline / examples / rlfe / configure.in
CommitLineData
b585a9fa
EZ
1dnl Process this file with autoconf to produce a configure script.
2
5836a818
PP
3m4_include([../../../config/override.m4])
4
b585a9fa
EZ
5AC_INIT(rlfe.c)
6AC_CONFIG_HEADER(config.h)
7VERSION=0.4
8AC_SUBST(VERSION)
9
10dnl
11dnl Define some useful macros
12dnl
5bb4d8de 13AC_DEFUN([AC_PROGRAM_SOURCE],
b585a9fa
EZ
14[AC_REQUIRE([AC_PROG_CPP])AC_PROVIDE([$0])cat > conftest.c <<EOF
15#include "confdefs.h"
16[$1]
17_CUT_HERE_
18[$2]
19EOF
20eval "$ac_cpp conftest.c 2>&5 | sed -e '1,/_CUT_HERE_/d' -e 's/ //g' > conftest.out"
21. ./conftest.out
22rm -f conftest*
23])dnl
24dnl
25define(AC_NOTE,
26[echo "$1" 1>&AC_FD_MSG
27])dnl
28
29old_CFLAGS="$CFLAGS"
30AC_PROG_CC
31AC_PROG_CPP
32AC_PROG_GCC_TRADITIONAL
33AC_ISC_POSIX
34
35AC_TRY_RUN(main(){exit(0);},,[
36if test $CC != cc ; then
37AC_NOTE(Your $CC failed - restarting with CC=cc)
38AC_NOTE()
39CC=cc
40export CC
41exec $0 $configure_args
42fi
43])
44
45AC_TRY_RUN(main(){exit(0);},,
46exec 5>&2
47eval $ac_link
48AC_NOTE(CC=$CC; CFLAGS=$CFLAGS; LIBS=$LIBS;)
49AC_NOTE($ac_compile)
50AC_MSG_ERROR(Can't run the compiler - sorry))
51
52AC_TRY_RUN([
53main()
54{
55 int __something_strange_();
56 __something_strange_(0);
57}
58],AC_MSG_ERROR(Your compiler does not set the exit status - sorry))
59
60AC_PROG_AWK
61
62if test -f etc/toolcheck; then
63AC_CHECKING(for buggy tools)
64sh etc/toolcheck 1>&AC_FD_MSG
65fi
66
67dnl
68dnl **** special unix variants ****
69dnl
70
71AC_CHECKING(for System V)
72AC_TRY_COMPILE(
73[#include <sys/types.h>
74#include <signal.h>
75#include <fcntl.h>], [int x = SIGCHLD | FNDELAY;], , AC_DEFINE(SYSV))
76
77AC_CHECKING(for Solaris 2.x)
78AC_EGREP_CPP(yes,
79[#if defined(SVR4) && defined(sun)
80 yes
81#endif
82], LIBS="$LIBS -lsocket -lnsl -lkstat")
83
84dnl
85dnl **** select() ****
86dnl
87
88AC_CHECKING(select)
89AC_TRY_LINK(,[select(0, 0, 0, 0, 0);],,
90LIBS="$LIBS -lnet -lnsl"
91AC_CHECKING(select with $LIBS)
92AC_TRY_LINK(,[select(0, 0, 0, 0, 0);],,
93AC_MSG_ERROR(!!! no select - no screen))
94)
95dnl
96dnl **** check the select implementation ****
97dnl
98
99AC_CHECKING(select return value)
100AC_TRY_RUN([
101#include <sys/types.h>
102#include <sys/stat.h>
103#include <fcntl.h>
104
105char *nam = "/tmp/conftest$$";
106
107#ifdef NAMEDPIPE
108
109#ifndef O_NONBLOCK
110#define O_NONBLOCK O_NDELAY
111#endif
112#ifndef S_IFIFO
113#define S_IFIFO 0010000
114#endif
115
116
117main()
118{
119#ifdef FD_SET
120 fd_set f;
121#else
122 int f;
123#endif
124
125#ifdef __FreeBSD__
126/* From Andrew A. Chernov (ache@astral.msk.su):
127 * opening RDWR fifo fails in BSD 4.4, but select return values are
128 * right.
129 */
130 exit(0);
131#endif
132 (void)alarm(5);
133#ifdef POSIX
134 if (mkfifo(nam, 0777))
135#else
136 if (mknod(nam, S_IFIFO|0777, 0))
137#endif
138 exit(1);
139 close(0);
140 if (open(nam, O_RDWR | O_NONBLOCK))
141 exit(1);
142 if (write(0, "TEST", 4) == -1)
143 exit(1);
144
145#else
146
147#include <sys/types.h>
148#include <sys/socket.h>
149#include <sys/un.h>
150
151main()
152{
153 int s1, s2, l;
154 struct sockaddr_un a;
155#ifdef FD_SET
156 fd_set f;
157#else
158 int f;
159#endif
160
161 (void)alarm(5);
162 if ((s1 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
163 exit(1);
164 a.sun_family = AF_UNIX;
165 strcpy(a.sun_path, nam);
166 (void) unlink(nam);
167 if (bind(s1, (struct sockaddr *) &a, strlen(nam)+2) == -1)
168 exit(1);
169 if (listen(s1, 2))
170 exit(1);
171 if (fork() == 0)
172 {
173 if ((s2 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
174 kill(getppid(), 3);
175 (void)connect(s2, (struct sockaddr *)&a, strlen(nam) + 2);
176 if (write(s2, "HELLO", 5) == -1)
177 kill(getppid(), 3);
178 exit(0);
179 }
180 l = sizeof(a);
181 close(0);
182 if (accept(s1, (struct sockaddr *)&a, &l))
183 exit(1);
184#endif
185
186
187#ifdef FD_SET
188 FD_SET(0, &f);
189#else
190 f = 1;
191#endif
192 if (select(1, &f, 0, 0, 0) == -1)
193 exit(1);
194 if (select(1, &f, &f, 0, 0) != 2)
195 exit(1);
196 exit(0);
197}
198],AC_NOTE(- select is ok),
199AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN))
200
201dnl
202dnl **** termcap or terminfo ****
203dnl
204AC_CHECKING(for tgetent)
205AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
206olibs="$LIBS"
207LIBS="-lcurses $olibs"
208AC_CHECKING(libcurses)
209AC_TRY_LINK(,[
210#ifdef __hpux
211__sorry_hpux_libcurses_is_totally_broken_in_10_10();
212#else
213tgetent((char *)0, (char *)0);
214#endif
215],,
216LIBS="-ltermcap $olibs"
217AC_CHECKING(libtermcap)
218AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
219LIBS="-ltermlib $olibs"
220AC_CHECKING(libtermlib)
221AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
222LIBS="-lncurses $olibs"
223AC_CHECKING(libncurses)
224AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
225AC_MSG_ERROR(!!! no tgetent - no screen))))))
226
227AC_TRY_RUN([
775e241e 228extern char *tgoto();
b585a9fa
EZ
229main()
230{
231 exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1);
232}], AC_NOTE(- you use the termcap database),
233AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO))
234AC_CHECKING(ospeed)
235AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED))
236
237dnl
238dnl **** PTY specific things ****
239dnl
240AC_CHECKING(for /dev/ptc)
241if test -r /dev/ptc; then
242AC_DEFINE(HAVE_DEV_PTC)
243fi
244
245AC_CHECKING(for SVR4 ptys)
246sysvr4ptys=
247if test -c /dev/ptmx ; then
248AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE(HAVE_SVR4_PTYS)
249sysvr4ptys=1])
250fi
251
252AC_CHECK_FUNCS(getpt)
253
254dnl check for openpty()
255if test -z "$sysvr4ptys"; then
256AC_CHECK_FUNCS(openpty,,
257[AC_CHECK_LIB(util,openpty, [AC_DEFINE(HAVE_OPENPTY)] [LIBS="$LIBS -lutil"])])
258fi
259
260AC_CHECKING(for ptyranges)
261if test -d /dev/ptym ; then
262pdir='/dev/ptym'
263else
264pdir='/dev'
265fi
266dnl SCO uses ptyp%d
267AC_EGREP_CPP(yes,
268[#ifdef M_UNIX
269 yes;
270#endif
271], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
272dnl if test -c /dev/ptyp19; then
273dnl ptys=`echo /dev/ptyp??`
274dnl else
275dnl ptys=`echo $pdir/pty??`
276dnl fi
277if test "$ptys" != "$pdir/pty??" ; then
278p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
279p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
280AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
281AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
282fi
283
284dnl **** pty mode/group handling ****
285dnl
286dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
287AC_ARG_WITH(pty-mode, [ --with-pty-mode=mode default mode for ptys], [ ptymode="${withval}" ])
288AC_ARG_WITH(pty-group, [ --with-pty-group=group default group for ptys], [ ptygrp="${withval}" ])
289test -n "$ptymode" || ptymode=0620
290if test -n "$ptygrp" ; then
291AC_DEFINE_UNQUOTED(PTYMODE, $ptymode)
292AC_DEFINE_UNQUOTED(PTYGROUP,$ptygrp)
293else
294
295AC_CHECKING(default tty permissions/group)
296rm -f conftest_grp
297AC_TRY_RUN([
298#include <sys/types.h>
299#include <sys/stat.h>
300#include <stdio.h>
301main()
302{
303 struct stat sb;
304 char *x,*ttyname();
305 int om, m;
306 FILE *fp;
307
308 if (!(x = ttyname(0))) exit(1);
309 if (stat(x, &sb)) exit(1);
310 om = sb.st_mode;
311 if (om & 002) exit(0);
312 m = system("mesg y");
313 if (m == -1 || m == 127) exit(1);
314 if (stat(x, &sb)) exit(1);
315 m = sb.st_mode;
316 if (chmod(x, om)) exit(1);
317 if (m & 002) exit(0);
318 if (sb.st_gid == getgid()) exit(1);
319 if (!(fp=fopen("conftest_grp", "w")))
320 exit(1);
321 fprintf(fp, "%d\n", sb.st_gid);
322 fclose(fp);
323 exit(0);
324}
325],[
326 if test -f conftest_grp; then
327 ptygrp=`cat conftest_grp`
328 AC_NOTE([- pty mode: $ptymode, group: $ptygrp])
329 AC_DEFINE_UNQUOTED(PTYMODE, $ptymode)
330 AC_DEFINE_UNQUOTED(PTYGROUP,$ptygrp)
331 else
332 AC_NOTE(- ptys are world accessable)
333 fi
334],[
335 WRITEPATH=''
336 XTERMPATH=''
337 AC_PATH_PROG(WRITEPATH, write)
338 AC_PATH_PROG(XTERMPATH, xterm)
339 found=
340 if test -n "$WRITEPATH$XTERMPATH"; then
341 findfollow=
342 lsfollow=
343 found=`find $WRITEPATH $XTERMPATH -follow -print 2>/dev/null`
344 if test -n "$found"; then
345 findfollow=-follow
346 lsfollow=L
347 fi
348 if test -n "$XTERMPATH"; then
349 ptygrpn=`ls -l$lsfollow $XTERMPATH | sed -n -e 1p | $AWK '{print $4}'`
350 if test tty != "$ptygrpn"; then
351 XTERMPATH=
352 fi
353 fi
354 fi
355 if test -n "$WRITEPATH$XTERMPATH"; then
356 found=`find $WRITEPATH $XTERMPATH $findfollow -perm -2000 -print`
357 if test -n "$found"; then
358 ptygrp=`ls -ln$lsfollow $found | sed -n -e 1p | $AWK '{print $4}'`
359 AC_NOTE([- pty mode: $ptymode, group: $ptygrp])
360 AC_DEFINE_UNQUOTED(PTYMODE, $ptymode)
361 AC_DEFINE_UNQUOTED(PTYGROUP,$ptygrp)
362 else
363 AC_NOTE(- ptys are world accessable)
364 fi
365 else
366 AC_NOTE(- can't determine - assume ptys are world accessable)
367 fi
368 ]
369)
370rm -f conftest_grp
371fi
372
373dnl
374dnl **** signal handling ****
375dnl
376if test -n "$posix" ; then
377
378dnl POSIX has reliable signals with void return type.
379AC_NOTE(assuming posix signal definition)
380AC_DEFINE(SIGVOID)
381
382else
383
384AC_CHECKING(return type of signal handlers)
385AC_TRY_COMPILE(
386[#include <sys/types.h>
387#include <signal.h>
388#ifdef signal
389#undef signal
390#endif
391extern void (*signal ()) ();], [int i;], AC_DEFINE(SIGVOID))
392AC_CHECKING(sigset)
393AC_TRY_LINK([
394#include <sys/types.h>
395#include <signal.h>
396],[
397#ifdef SIGVOID
398sigset(0, (void (*)())0);
399#else
400sigset(0, (int (*)())0);
401#endif
402], AC_DEFINE(USESIGSET))
403AC_CHECKING(signal implementation)
404AC_TRY_RUN([
405#include <sys/types.h>
406#include <signal.h>
407
408#ifndef SIGCLD
409#define SIGCLD SIGCHLD
410#endif
411#ifdef USESIGSET
412#define signal sigset
413#endif
414
415int got;
416
417#ifdef SIGVOID
418void
419#endif
420hand()
421{
422 got++;
423}
424
425main()
426{
427 /* on hpux we use sigvec to get bsd signals */
428#ifdef __hpux
429 (void)signal(SIGCLD, hand);
430 kill(getpid(), SIGCLD);
431 kill(getpid(), SIGCLD);
432 if (got < 2)
433 exit(1);
434#endif
435 exit(0);
436}
437],,AC_DEFINE(SYSVSIGS))
438
439fi
440
775e241e
TT
441AC_CHECK_HEADERS(sys/stropts.h sys/wait.h sgtty.h sys/select.h)
442AC_CHECK_HEADERS(term.h)
cc88a640 443
b585a9fa 444AC_OUTPUT(Makefile)
This page took 0.664052 seconds and 4 git commands to generate.