1# configure.ac
2
3AC_INIT(tmux, 2.3)
4
5AC_CONFIG_AUX_DIR(etc)
6AM_INIT_AUTOMAKE([foreign subdir-objects])
7
8AC_CANONICAL_HOST
9
10# When CFLAGS isn't set at this stage and gcc is detected by the macro below,
11# autoconf will automatically use CFLAGS="-O2 -g". Prevent that by using an
12# empty default.
13: ${CFLAGS=""}
14
15# Set up the compiler in two different ways and say yes we may want to install.
16AC_PROG_CC
17AM_PROG_CC_C_O
18AC_PROG_CPP
19AC_PROG_EGREP
20AC_PROG_INSTALL
21PKG_PROG_PKG_CONFIG
22
23# Default tmux.conf goes in /etc not ${prefix}/etc.
24test "$sysconfdir" = '${prefix}/etc' && sysconfdir=/etc
25
26# Is this --enable-debug?
27#found_debug=yes
28AC_ARG_ENABLE(
29	debug,
30	AC_HELP_STRING(--enable-debug, enable debug build flags),
31	found_debug=$enable_debug
32)
33AM_CONDITIONAL(IS_DEBUG, test "x$found_debug" = xyes)
34
35# Is this --enable-coverage?
36AC_ARG_ENABLE(
37	coverage,
38	AC_HELP_STRING(--enable-coverage, enable coverage build flags),
39	found_coverage=$enable_coverage
40)
41AM_CONDITIONAL(IS_COVERAGE, test "x$found_coverage" = xyes)
42
43# Is this --enable-profile?
44AC_ARG_ENABLE(
45	profile,
46	AC_HELP_STRING(--enable-profile, enable profile build flags),
47	found_profile=$enable_profile
48)
49AM_CONDITIONAL(IS_PROFILE, test "x$found_profile" = xyes)
50
51# Is this a static build?
52AC_ARG_ENABLE(
53	static,
54	AC_HELP_STRING(--enable-static, create a static build),
55	found_static=$enable_static
56)
57if test "x$found_static" = xyes; then
58	LDFLAGS="$LDFLAGS -static"
59	test "x$PKG_CONFIG" != x && PKG_CONFIG="$PKG_CONFIG --static"
60fi
61
62# Is this gcc?
63AM_CONDITIONAL(IS_GCC, test "x$GCC" = xyes)
64
65# Is this Sun CC?
66AC_EGREP_CPP(
67	yes,
68	[
69		#ifdef __SUNPRO_C
70		yes
71		#endif
72	],
73	found_suncc=yes,
74	found_suncc=no
75)
76AM_CONDITIONAL(IS_SUNCC, test "x$found_suncc" = xyes)
77
78# Is this glibc?
79AC_MSG_CHECKING(for glibc)
80AC_EGREP_CPP(
81	yes,
82	[
83		#include <features.h>
84		#ifdef __GLIBC__
85		yes
86		#endif
87	],
88	found_glibc=yes,
89	found_glibc=no
90)
91AM_CONDITIONAL(IS_GLIBC, test "x$found_glibc" = xyes)
92AC_MSG_RESULT($found_glibc)
93
94# Check for various headers. Alternatives included from compat.h.
95AC_CHECK_HEADERS(
96	[ \
97		bitstring.h \
98		dirent.h \
99		fcntl.h \
100		inttypes.h \
101		libutil.h \
102		ndir.h \
103		paths.h \
104		pty.h \
105		stdint.h \
106		sys/dir.h \
107		sys/ndir.h \
108		sys/tree.h \
109		term.h \
110		util.h \
111	]
112)
113
114# Look for library needed for flock.
115AC_SEARCH_LIBS(flock, bsd)
116
117# Check for some functions that are replaced or omitted.
118AC_CHECK_FUNCS(
119	[ \
120		dirfd \
121		flock \
122		prctl \
123		sysconf \
124		cfmakeraw \
125	]
126)
127
128# Look for clock_gettime. Must come before event_init.
129AC_SEARCH_LIBS(clock_gettime, rt)
130
131# Look for libevent.
132PKG_CHECK_MODULES(
133	LIBEVENT,
134	libevent,
135	[
136		CPPFLAGS="$LIBEVENT_CFLAGS $CPPFLAGS"
137		LIBS="$LIBEVENT_LIBS $LIBS"
138		found_libevent=yes
139	],
140	[
141		AC_SEARCH_LIBS(
142			event_init,
143			[event event-1.4 event2],
144			found_libevent=yes,
145			found_libevent=no
146		)
147	]
148)
149AC_CHECK_HEADER(
150	event.h,
151	,
152	found_libevent=no
153)
154if test "x$found_libevent" = xno; then
155	AC_MSG_ERROR("libevent not found")
156fi
157
158# Look for ncurses.
159PKG_CHECK_MODULES(
160	LIBNCURSES,
161	ncurses,
162	[
163		CPPFLAGS="$LIBNCURSES_CFLAGS $CPPFLAGS"
164		LIBS="$LIBNCURSES_LIBS $LIBS"
165		found_ncurses=yes
166	],
167	found_ncurses=no
168)
169if test "x$found_ncurses" = xno; then
170	# pkg-config didn't work, try ncurses.
171	AC_CHECK_LIB(
172		ncurses,
173		setupterm,
174		found_ncurses=yes,
175		found_ncurses=no
176	)
177	AC_CHECK_HEADER(
178		ncurses.h,
179		,
180		found_ncurses=no)
181fi
182if test "x$found_ncurses" = xyes; then
183	LIBS="$LIBS -lncurses"
184	AC_DEFINE(HAVE_NCURSES_H)
185else
186	# No ncurses, try curses.
187	AC_CHECK_LIB(
188		curses,
189		setupterm,
190		found_curses=yes,
191		found_curses=no
192	)
193	AC_CHECK_HEADER(
194		curses.h,
195		,
196		found_curses=no)
197	if test "x$found_curses" = xyes; then
198		LIBS="$LIBS -lcurses"
199		AC_DEFINE(HAVE_CURSES_H)
200	else
201		AC_MSG_ERROR("curses or ncurses not found")
202	fi
203fi
204
205# Look for utempter.
206AC_ARG_ENABLE(
207	utempter,
208	AC_HELP_STRING(--enable-utempter, use utempter if it is installed),
209	found_utempter=$enable_utempter,
210	found_utempter=yes
211)
212if test "x$found_utempter" = xyes; then
213	AC_CHECK_HEADER(utempter.h, found_utempter=yes, found_utempter=no)
214	if test "x$found_utempter" = xyes; then
215		AC_SEARCH_LIBS(
216			utempter_add_record,
217			utempter,
218			found_utempter=yes,
219			found_utempter=no
220		)
221		if test "x$found_utempter" = xyes; then
222			AC_DEFINE(HAVE_UTEMPTER)
223		fi
224	fi
225fi
226
227# Look for utf8proc.
228AC_ARG_ENABLE(
229	utf8proc,
230	AC_HELP_STRING(--enable-utf8proc, use utf8proc if it is installed),
231	found_utf8proc=$enable_utf8proc,
232	found_utf8proc=no
233)
234if test "x$found_utf8proc" = xyes; then
235	AC_CHECK_HEADER(utf8proc.h, found_utf8proc=yes, found_utf8proc=no)
236	if test "x$found_utf8proc" = xyes; then
237		AC_SEARCH_LIBS(
238			utf8proc_charwidth,
239			utf8proc,
240			found_utf8proc=yes,
241			found_utf8proc=no
242		)
243		if test "x$found_utf8proc" = xyes; then
244			AC_DEFINE(HAVE_UTF8PROC)
245		fi
246	fi
247fi
248AM_CONDITIONAL(HAVE_UTF8PROC, [test "x$found_utf8proc" = xyes])
249
250# Check for b64_ntop.
251AC_MSG_CHECKING(for b64_ntop)
252AC_TRY_LINK(
253	[
254		#include <sys/types.h>
255		#include <netinet/in.h>
256		#include <resolv.h>
257	],
258	[b64_ntop(NULL, 0, NULL, 0);],
259	found_b64_ntop=yes,
260	found_b64_ntop=no
261)
262if test "x$found_b64_ntop" = xno; then
263	AC_MSG_RESULT(no)
264
265	AC_MSG_CHECKING(for b64_ntop with -lresolv)
266	LIBS="$LIBS -lresolv"
267	AC_TRY_LINK(
268		[
269			#include <sys/types.h>
270			#include <netinet/in.h>
271			#include <resolv.h>
272		],
273		[b64_ntop(NULL, 0, NULL, 0);],
274		found_b64_ntop=yes,
275		found_b64_ntop=no
276	)
277	if test "x$found_b64_ntop" = xno; then
278		AC_MSG_RESULT(no)
279	fi
280fi
281if test "x$found_b64_ntop" = xyes; then
282	AC_DEFINE(HAVE_B64_NTOP)
283	AC_MSG_RESULT(yes)
284fi
285AM_CONDITIONAL(NO_B64_NTOP, [test "x$found_b64_ntop" = xno])
286
287# Look for networking libraries.
288AC_SEARCH_LIBS(inet_ntoa, nsl)
289AC_SEARCH_LIBS(socket, socket)
290AC_CHECK_LIB(xnet, socket)
291
292# Check for CMSG_DATA. Some platforms require _XOPEN_SOURCE_EXTENDED (for
293# example see xopen_networking(7) on HP-UX).
294XOPEN_DEFINES=
295AC_MSG_CHECKING(for CMSG_DATA)
296AC_EGREP_CPP(
297	yes,
298	[
299		#include <sys/socket.h>
300		#ifdef CMSG_DATA
301		yes
302		#endif
303	],
304	found_cmsg_data=yes,
305	found_cmsg_data=no
306)
307AC_MSG_RESULT($found_cmsg_data)
308if test "x$found_cmsg_data" = xno; then
309	AC_MSG_CHECKING(if CMSG_DATA needs _XOPEN_SOURCE_EXTENDED)
310	AC_EGREP_CPP(
311		yes,
312		[
313			#define _XOPEN_SOURCE 1
314			#define _XOPEN_SOURCE_EXTENDED 1
315			#include <sys/socket.h>
316			#ifdef CMSG_DATA
317			yes
318			#endif
319		],
320		found_cmsg_data=yes,
321		found_cmsg_data=no
322	)
323	AC_MSG_RESULT($found_cmsg_data)
324	if test "x$found_cmsg_data" = xyes; then
325		XOPEN_DEFINES="-D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED"
326	else
327		AC_MSG_ERROR("CMSG_DATA not found")
328	fi
329fi
330AC_SUBST(XOPEN_DEFINES)
331
332# Look for imsg in libutil. compat/imsg.c is linked by Makefile.am if missing.
333AC_SEARCH_LIBS(imsg_init, util, found_imsg_init=yes, found_imsg_init=no)
334if test "x$found_imsg_init" = xyes; then
335	AC_DEFINE(HAVE_IMSG)
336fi
337AM_CONDITIONAL(NO_IMSG, [test "x$found_imsg_init" = xno])
338
339# Look for forkpty in libutil. compat/forkpty-*.c is linked if not found.
340AC_SEARCH_LIBS(forkpty, util, found_forkpty=yes, found_forkpty=no)
341if test "x$found_forkpty" = xyes; then
342	AC_DEFINE(HAVE_FORKPTY)
343fi
344AM_CONDITIONAL(NO_FORKPTY, [test "x$found_forkpty" = xno])
345
346# Look for closefrom, compat/closefrom.c used if missing.
347AC_CHECK_FUNC(closefrom, found_closefrom=yes, found_closefrom=no)
348if test "x$found_closefrom" = xyes; then
349	AC_DEFINE(HAVE_CLOSEFROM)
350fi
351AM_CONDITIONAL(NO_CLOSEFROM, [test "x$found_closefrom" = xno])
352
353# Look for daemon, compat/daemon.c used if missing.
354AC_CHECK_FUNC(daemon, found_daemon=yes, found_daemon=no)
355if test "x$found_daemon" = xyes; then
356	AC_DEFINE(HAVE_DAEMON)
357fi
358AM_CONDITIONAL(NO_DAEMON, [test "x$found_daemon" = xno])
359
360# Look for getprogname, compat/getprogname.c used if missing.
361AC_CHECK_FUNC(getprogname, found_getprogname=yes, found_getprogname=no)
362if test "x$found_getprogname" = xyes; then
363	AC_DEFINE(HAVE_GETPROGNAME)
364fi
365AM_CONDITIONAL(NO_GETPROGNAME, [test "x$found_getprogname" = xno])
366
367# Look for setproctitle, compat/setproctitle.c used if missing.
368AC_CHECK_FUNC(setproctitle, found_setproctitle=yes, found_setproctitle=no)
369if test "x$found_setproctitle" = xyes; then
370	AC_DEFINE(HAVE_SETPROCTITLE)
371fi
372AM_CONDITIONAL(NO_SETPROCTITLE, [test "x$found_setproctitle" = xno])
373
374# Look for setenv, compat/setenv.c used if missing.
375AC_CHECK_FUNC(setenv, found_setenv=yes, found_setenv=no)
376if test "x$found_setenv" = xyes; then
377	AC_DEFINE(HAVE_SETENV)
378fi
379AM_CONDITIONAL(NO_SETENV, [test "x$found_setenv" = xno])
380
381# Look for strlcpy, compat/strlcpy.c used if missing.
382AC_CHECK_FUNC(strlcpy, found_strlcpy=yes, found_strlcpy=no)
383if test "x$found_strlcpy" = xyes; then
384	AC_DEFINE(HAVE_STRLCPY)
385fi
386AM_CONDITIONAL(NO_STRLCPY, [test "x$found_strlcpy" = xno])
387
388# Look for strlcat, compat/strlcat.c used if missing.
389AC_CHECK_FUNC(strlcat, found_strlcat=yes, found_strlcat=no)
390if test "x$found_strlcat" = xyes; then
391	AC_DEFINE(HAVE_STRLCAT)
392fi
393AM_CONDITIONAL(NO_STRLCAT, [test "x$found_strlcat" = xno])
394
395# Look for asprintf, compat/asprintf.c used if missing.
396AC_CHECK_FUNC(asprintf, found_asprintf=yes, found_asprintf=no)
397if test "x$found_asprintf" = xyes; then
398	AC_DEFINE(HAVE_ASPRINTF)
399fi
400AM_CONDITIONAL(NO_ASPRINTF, [test "x$found_asprintf" = xno])
401
402# Look for fgetln, compat/fgetln.c used if missing.
403AC_CHECK_FUNC(fgetln, found_fgetln=yes, found_fgetln=no)
404if test "x$found_fgetln" = xyes; then
405	AC_DEFINE(HAVE_FGETLN)
406fi
407AM_CONDITIONAL(NO_FGETLN, [test "x$found_fgetln" = xno])
408
409# Look for fparseln, compat/fparseln.c used if missing.
410AC_CHECK_FUNC(fparseln, found_fparseln=yes, found_fparseln=no)
411if test "x$found_fparseln" = xyes; then
412	AC_DEFINE(HAVE_FPARSELN)
413fi
414AM_CONDITIONAL(NO_FPARSELN, [test "x$found_fparseln" = xno])
415
416# Look for strcasestr, compat/strcasestr.c used if missing.
417AC_CHECK_FUNC(strcasestr, found_strcasestr=yes, found_strcasestr=no)
418if test "x$found_strcasestr" = xyes; then
419	AC_DEFINE(HAVE_STRCASESTR)
420fi
421AM_CONDITIONAL(NO_STRCASESTR, [test "x$found_strcasestr" = xno])
422
423# Look for strsep, compat/strsep.c used if missing.
424AC_CHECK_FUNC(strsep, found_strsep=yes, found_strsep=no)
425if test "x$found_strsep" = xyes; then
426	AC_DEFINE(HAVE_STRSEP)
427fi
428AM_CONDITIONAL(NO_STRSEP, [test "x$found_strsep" = xno])
429
430# Look for strtonum, compat/strtonum.c used if missing.
431AC_CHECK_FUNC(strtonum, found_strtonum=yes, found_strtonum=no)
432if test "x$found_strtonum" = xyes; then
433	AC_DEFINE(HAVE_STRTONUM)
434fi
435AM_CONDITIONAL(NO_STRTONUM, [test "x$found_strtonum" = xno])
436
437# Look for stravis, compat/{vis,unvis}.c used if missing.
438AC_CHECK_FUNC(stravis, found_stravis=yes, found_stravis=no)
439if test "x$found_stravis" = xyes; then
440	AC_MSG_CHECKING(if strnvis is broken)
441	AC_EGREP_HEADER([strnvis\(char \*, const char \*, size_t, int\)],
442			vis.h,
443			AC_MSG_RESULT(no),
444			[found_stravis=no])
445	if test "x$found_stravis" = xno; then
446		AC_MSG_RESULT(yes)
447	fi
448fi
449if test "x$found_stravis" = xyes; then
450	AC_DEFINE(HAVE_VIS)
451fi
452AM_CONDITIONAL(NO_VIS, [test "x$found_stravis" = xno])
453
454# Look for cfmakeraw, compat/cfmakeraw.c used if missing.
455AC_CHECK_FUNC(cfmakeraw, found_cfmakeraw=yes, found_cfmakeraw=no)
456if test "x$found_cfmakeraw" = xyes; then
457	AC_DEFINE(HAVE_CFMAKERAW)
458fi
459AM_CONDITIONAL(NO_CFMAKERAW, [test "x$found_cfmakeraw" = xno])
460
461# Look for openat, compat/openat.c used if missing.
462AC_CHECK_FUNC(openat, found_openat=yes, found_openat=no)
463if test "x$found_openat" = xyes; then
464	AC_DEFINE(HAVE_OPENAT)
465fi
466AM_CONDITIONAL(NO_OPENAT, [test "x$found_openat" = xno])
467
468# Look for reallocarray, compat/reallocarray.c used if missing.
469AC_CHECK_FUNC(reallocarray, found_reallocarray=yes, found_reallocarray=no)
470if test "x$found_reallocarray" = xyes; then
471	AC_DEFINE(HAVE_REALLOCARRAY)
472fi
473AM_CONDITIONAL(NO_REALLOCARRAY, [test "x$found_reallocarray" = xno])
474
475# Look for getopt. glibc's getopt does not enforce argument order and the ways
476# of making it do so are stupid, so just use our own instead.
477AC_CHECK_FUNC(getopt, found_getopt=yes, found_getopt=no)
478if test "x$found_getopt" != xno; then
479	AC_CHECK_DECLS(
480		[optarg, optind, optreset],
481		,
482		found_getopt=no,
483		[
484			#include <unistd.h>
485		]
486	)
487	if test "x$found_getopt" != xno; then
488		AC_MSG_CHECKING(if system getopt should be avoided)
489		if test "x$found_glibc" = xyes; then
490			found_getopt=no
491			AC_MSG_RESULT(yes)
492		else
493			AC_MSG_RESULT(no)
494			AC_DEFINE(HAVE_GETOPT)
495		fi
496	fi
497fi
498AM_CONDITIONAL(NO_GETOPT, [test "x$found_getopt" = xno])
499
500# Check for BSD-style integer types.
501AC_MSG_CHECKING(for BSD-style unsigned types)
502AC_COMPILE_IFELSE([AC_LANG_SOURCE(
503	[
504		#include <sys/types.h>
505		#ifdef HAVE_STDINT_H
506		#include <stdint.h>
507		#else
508		#include <inttypes.h>
509		#endif
510		int main(void)
511		{ u_int8_t u8; u_int16_t u16; u_int32_t u32; u_int64_t u64; }
512	])],
513	[AC_DEFINE(HAVE_BSD_TYPES) AC_MSG_RESULT(yes)],
514	AC_MSG_RESULT(no)
515)
516
517# Look for a suitable queue.h.
518AC_CHECK_DECL(
519	TAILQ_PREV,
520	found_queue_h=yes,
521	found_queue_h=no,
522	[#include <sys/queue.h>]
523)
524AC_CHECK_DECL(
525	TAILQ_REPLACE,
526	,
527	found_queue_h=no,
528	[#include <sys/queue.h>]
529)
530if test "x$found_queue_h" = xyes; then
531	AC_DEFINE(HAVE_QUEUE_H)
532fi
533
534# Look for __progname.
535AC_MSG_CHECKING(for __progname)
536AC_LINK_IFELSE([AC_LANG_SOURCE(
537	[
538		#include <stdio.h>
539		#include <stdlib.h>
540		extern char *__progname;
541		int main(void) {
542			const char *cp = __progname;
543			printf("%s\n", cp);
544			exit(0);
545		}
546	])],
547	[AC_DEFINE(HAVE___PROGNAME) AC_MSG_RESULT(yes)],
548	AC_MSG_RESULT(no)
549)
550
551# Look for program_invocation_short_name.
552AC_MSG_CHECKING(for program_invocation_short_name)
553AC_LINK_IFELSE([AC_LANG_SOURCE(
554	[
555		#include <stdio.h>
556		#include <stdlib.h>
557		extern char *program_invocation_short_name;
558		int main(void) {
559			const char *cp = program_invocation_short_name;
560			printf("%s\n", cp);
561			exit(0);
562		}
563	])],
564	[AC_DEFINE(HAVE_PROGRAM_INVOCATION_SHORT_NAME) AC_MSG_RESULT(yes)],
565	AC_MSG_RESULT(no)
566)
567
568# Look for prctl(PR_SET_NAME).
569AC_CHECK_DECL(
570	PR_SET_NAME,
571	AC_DEFINE(HAVE_PR_SET_NAME),
572	,
573	[#include <sys/prctl.h>]
574)
575
576# Look for fcntl(F_CLOSEM).
577AC_CHECK_DECL(
578	F_CLOSEM,
579	AC_DEFINE(HAVE_FCNTL_CLOSEM),
580	,
581	[#include <fcntl.h>]
582)
583
584# Look for /proc/$$.
585AC_MSG_CHECKING(for /proc/\$\$)
586if test -d /proc/$$; then
587	AC_DEFINE(HAVE_PROC_PID)
588	AC_MSG_RESULT(yes)
589else
590	AC_MSG_RESULT(no)
591fi
592
593# Man page defaults to mdoc.
594MANFORMAT=mdoc
595AC_SUBST(MANFORMAT)
596
597# Figure out the platform for osdep-*.c and forkpty-*.c.
598AC_MSG_CHECKING(platform)
599case "$host_os" in
600	*aix*)
601		AC_MSG_RESULT(aix)
602		PLATFORM=aix
603		;;
604	*darwin*)
605		AC_MSG_RESULT(darwin)
606		AC_DEFINE(BROKEN_CMSG_FIRSTHDR)
607		PLATFORM=darwin
608		;;
609	*dragonfly*)
610		AC_MSG_RESULT(dragonfly)
611		PLATFORM=dragonfly
612		;;
613	*linux*)
614		AC_MSG_RESULT(linux)
615		PLATFORM=linux
616		;;
617	*freebsd*)
618		AC_MSG_RESULT(freebsd)
619		PLATFORM=freebsd
620		;;
621	*netbsd*)
622		AC_MSG_RESULT(netbsd)
623		PLATFORM=netbsd
624		;;
625	*openbsd*)
626		AC_MSG_RESULT(openbsd)
627		PLATFORM=openbsd
628		;;
629	*sunos*)
630		AC_MSG_RESULT(sunos)
631		PLATFORM=sunos
632		;;
633	*solaris*)
634		AC_MSG_RESULT(sunos)
635		PLATFORM=sunos
636		MANFORMAT=man
637		;;
638	*hpux*)
639		AC_MSG_RESULT(hpux)
640		PLATFORM=hpux
641		;;
642	*cygwin*)
643		AC_MSG_RESULT(cygwin)
644		PLATFORM=cygwin
645		;;
646	*)
647		AC_MSG_RESULT(unknown)
648		PLATFORM=unknown
649		;;
650esac
651AC_SUBST(PLATFORM)
652AM_CONDITIONAL(IS_AIX, test "x$PLATFORM" = xaix)
653AM_CONDITIONAL(IS_DARWIN, test "x$PLATFORM" = xdarwin)
654AM_CONDITIONAL(IS_DRAGONFLY, test "x$PLATFORM" = xdragonfly)
655AM_CONDITIONAL(IS_LINUX, test "x$PLATFORM" = xlinux)
656AM_CONDITIONAL(IS_FREEBSD, test "x$PLATFORM" = xfreebsd)
657AM_CONDITIONAL(IS_NETBSD, test "x$PLATFORM" = xnetbsd)
658AM_CONDITIONAL(IS_OPENBSD, test "x$PLATFORM" = xopenbsd)
659AM_CONDITIONAL(IS_SUNOS, test "x$PLATFORM" = xsunos)
660AM_CONDITIONAL(IS_HPUX, test "x$PLATFORM" = xhpux)
661AM_CONDITIONAL(IS_UNKNOWN, test "x$PLATFORM" = xunknown)
662
663# autoconf should create a Makefile.
664AC_OUTPUT(Makefile)
665