1#                                               -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3m4_include([../version.m4])
4AC_PREREQ(2.61)
5AC_INIT([sntp], [VERSION_NUMBER])
6AC_CONFIG_MACRO_DIR([../m4])
7AC_CONFIG_AUX_DIR([.])
8
9# Increment sntp_configure_cache_version by one for each change to
10# configure.ac or .m4 files which invalidates cached values from
11# previous versions.
12#
13# If the change affects cache variables used only by the main NTP
14# configure.ac, then only its version number should be bumped, while
15# the subdir configure.ac version numbers should be unchanged.  The
16# same is true for a test/variable that is used only by one subdir
17# being changed incompatibly; only that subdir's cache version needs
18# bumping.
19#
20# If a change affects variables shared by all NTP configure scripts,
21# please bump the version numbers of all three.  If you are not sure,
22# the safe choice is to bump all three on any cache-invalidating change.
23#
24# In order to avoid the risk of version stamp collision between -stable
25# and -dev branches, do not simply increment the version, instead use
26# the date YYYYMMDD optionally with -HHMM if there is more than one
27# bump in a day.
28
29sntp_configure_cache_version=20091117
30
31# When the version of config.cache and configure do not
32# match, NTP_CACHEVERSION will flush the cache.
33
34NTP_CACHEVERSION([sntp], [$sntp_configure_cache_version])
35
36AM_INIT_AUTOMAKE
37AC_CANONICAL_BUILD
38AC_CANONICAL_HOST
39dnl the 'build' machine is where we run configure and compile
40dnl the 'host' machine is where the resulting stuff runs.
41AC_DEFINE_UNQUOTED([STR_SYSTEM], "$host", [canonical system (cpu-vendor-os) of where we should run])
42AC_CONFIG_HEADER([config.h])
43dnl AC_ARG_PROGRAM
44AC_PREREQ([2.53])
45
46# Checks for programs.
47AC_PROG_CC
48
49# AC_PROG_CC_STDC has two functions.  It attempts to find a compiler
50# capable of C99, or failing that, for C89.  CC is set afterward with
51# the selected invocation, such as "gcc --std=gnu99".  Also, the
52# ac_cv_prog_cc_stdc variable is no if the compiler selected for CC
53# does not accept C89.
54
55AC_PROG_CC_STDC
56
57case "$ac_cv_prog_cc_stdc" in
58 no)
59    AC_MSG_WARN([ANSI C89/ISO C90 is the minimum to compile SNTP ]
60		[version 4.2.5 and higher.])
61esac
62
63case "$GCC" in
64 yes)
65    SAVED_CFLAGS_AC="$CFLAGS"
66    CFLAGS="$CFLAGS -Wstrict-overflow"
67    AC_CACHE_CHECK(
68	[if $CC can handle -Wstrict-overflow], 
69	ac_cv_gcc_Wstrict_overflow, 
70	[
71	    AC_COMPILE_IFELSE(
72		[AC_LANG_PROGRAM([], [])],
73		[ac_cv_gcc_Wstrict_overflow=yes],
74		[ac_cv_gcc_Wstrict_overflow=no]
75	    )
76	]
77    )
78    CFLAGS="$SAVED_CFLAGS_AC"
79    SAVED_CFLAGS_AC=
80
81    CFLAGS="$CFLAGS -Wall"
82    # CFLAGS="$CFLAGS -Wcast-align"
83    CFLAGS="$CFLAGS -Wcast-qual"
84    # CFLAGS="$CFLAGS -Wconversion"
85    # CFLAGS="$CFLAGS -Werror"
86    # CFLAGS="$CFLAGS -Wextra"
87    # CFLAGS="$CFLAGS -Wfloat-equal"
88    CFLAGS="$CFLAGS -Wmissing-prototypes"
89    CFLAGS="$CFLAGS -Wpointer-arith"
90    CFLAGS="$CFLAGS -Wshadow"
91    CFLAGS="$CFLAGS -Wstrict-prototypes"
92    # CFLAGS="$CFLAGS -Wtraditional"
93    # CFLAGS="$CFLAGS -Wwrite-strings"
94    case "$ac_cv_gcc_Wstrict_overflow" in
95     yes)
96	CFLAGS="$CFLAGS -Wstrict-overflow"
97    esac
98esac
99
100# HMS: These need to be moved to AM_CPPFLAGS and/or AM_CFLAGS
101case "$host" in
102 *-*-solaris*)
103    # see "man standards".
104    # -D_XOPEN_SOURCE=500 is probably OK for c89 and before
105    # -D_XOPEN_SOURCE=600 seems OK for c99
106    #CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500 -D__EXTENSIONS__"
107    CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
108    libxnet=-lxnet
109    ;;
110esac
111
112AC_DISABLE_SHARED
113
114# NTP has (so far) been relying on leading-edge autogen.
115# Therefore, by default:
116# - use the version we ship with
117# - do not install it
118# - build a static copy (AC_DISABLE_SHARED - done earlier)
119case "${enable_local_libopts+set}" in
120 set) ;;
121 *) enable_local_libopts=yes ;;
122esac
123case "${enable_libopts_install+set}" in
124 set) ;;
125 *) enable_libopts_install=no ;;
126esac
127LIBOPTS_CHECK([libopts])
128
129m4_defun([_LT_AC_LANG_CXX_CONFIG], [:])
130m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
131
132AC_PROG_LIBTOOL
133NTP_DIR_SEP
134
135# Checks for libraries.
136
137AC_CHECK_FUNC([gethostent], ,
138	[AC_SEARCH_LIBS([gethostent], [nsl], , , [$libxnet -lsocket])])
139AC_CHECK_FUNC([openlog], , 
140	[AC_SEARCH_LIBS([openlog], [gen], , 
141		[AC_SEARCH_LIBS([openlog], [syslog], , , [$libxnet -lsocket])])])
142
143AC_SEARCH_LIBS([setsockopt], [socket xnet])
144
145# Checks for header files.
146AC_HEADER_STDC
147AC_CHECK_HEADERS([netdb.h netinet/in.h stdlib.h string.h strings.h syslog.h])
148AC_CHECK_HEADERS([sys/socket.h sys/time.h])
149AC_HEADER_TIME
150
151# Checks for typedefs, structures, and compiler characteristics.
152AC_HEADER_STDBOOL
153AC_C_CONST
154AC_TYPE_SIZE_T
155
156AC_C_INLINE
157
158case "$ac_cv_c_inline" in
159 '')
160    ;;
161 *)
162    AC_DEFINE(HAVE_INLINE,1,[inline keyword or macro available])
163    AC_SUBST(HAVE_INLINE)
164esac
165
166AC_C_CHAR_UNSIGNED		dnl CROSS_COMPILE?
167AC_CHECK_SIZEOF([signed char])
168AC_CHECK_SIZEOF([int])
169AC_CHECK_SIZEOF([long])
170
171AC_CHECK_TYPES([s_char])
172case "$ac_cv_c_char_unsigned$ac_cv_sizeof_signed_char$ac_cv_type_s_char" in
173 *yes)
174    # We have a typedef for s_char.  Might as well believe it...
175    ;;
176 no0no)
177    # We have signed chars, can't say 'signed char', no s_char typedef.
178    AC_DEFINE([NEED_S_CHAR_TYPEDEF], 1, [Do we need an s_char typedef?])
179    ;;
180 no1no)
181    # We have signed chars, can say 'signed char', no s_char typedef.
182    AC_DEFINE([NEED_S_CHAR_TYPEDEF])
183    ;;
184 yes0no)
185    # We have unsigned chars, can't say 'signed char', no s_char typedef.
186    AC_MSG_ERROR([No way to specify a signed character!])
187    ;;
188 yes1no)
189    # We have unsigned chars, can say 'signed char', no s_char typedef.
190    AC_DEFINE([NEED_S_CHAR_TYPEDEF])
191    ;;
192esac
193AC_TYPE_UID_T
194
195AC_MSG_CHECKING([type of socklen arg for getsockname()])
196AC_CACHE_VAL(ac_cv_func_getsockname_arg2,dnl
197[AC_CACHE_VAL(ac_cv_func_getsockname_socklen_type,dnl
198 [for ac_cv_func_getsockname_arg2 in 'struct sockaddr *' 'void *'; do
199  for ac_cv_func_getsockname_socklen_type in 'socklen_t' 'size_t' 'unsigned int' 'int'; do
200   AC_TRY_COMPILE(dnl
201[#ifdef HAVE_SYS_TYPES_H
202#include <sys/types.h>
203#endif
204#ifdef HAVE_SYS_SOCKET_H
205#include <sys/socket.h>
206#endif
207extern getsockname (int, $ac_cv_func_getsockname_arg2, $ac_cv_func_getsockname_socklen_type *);],,dnl
208    [ac_not_found=no ; break 2], ac_not_found=yes)
209   done
210  done
211 ])dnl AC_CACHE_VAL
212])dnl AC_CACHE_VAL
213if test "$ac_not_found" = yes; then
214 ac_cv_func_getsockname_socklen_type='socklen_t'
215fi
216AC_MSG_RESULT([$ac_cv_func_getsockname_socklen_type])
217AC_DEFINE_UNQUOTED([GETSOCKNAME_SOCKLEN_TYPE],
218		   $ac_cv_func_getsockname_socklen_type,
219		   [What is getsockname()'s socklen type?])
220
221AC_CACHE_CHECK(
222    [for struct sockaddr_storage],
223    ntp_cv_sockaddr_storage,
224    [
225	AC_TRY_COMPILE(
226	    [
227		#ifdef HAVE_SYS_TYPES_H
228		# include <sys/types.h>
229		#endif
230		#ifdef HAVE_SYS_SOCKET_H
231		# include <sys/socket.h>
232		#endif
233		#ifdef HAVE_NETINET_IN_H
234		# include <netinet/in.h>
235		#endif
236	    ],
237	    [
238		struct sockaddr_storage n;
239	    ],
240	    [ntp_cv_sockaddr_storage="yes"],
241	    [ntp_cv_sockaddr_storage="no"]
242	)
243    ]
244)
245case "$ntp_cv_sockaddr_storage" in
246 yes)
247    AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, [Does a system header define struct sockaddr_storage?])
248esac
249
250AC_CACHE_CHECK(
251    [for sockaddr_storage.ss_family],
252    ntp_cv_have_ss_family,
253    [
254	AC_TRY_COMPILE(
255	    [
256		#ifdef HAVE_SYS_TYPES_H
257		# include <sys/types.h>
258		#endif
259		#ifdef HAVE_SYS_SOCKET_H
260		# include <sys/socket.h>
261		#endif
262		#ifdef HAVE_NETINET_IN_H
263		# include <netinet/in.h>
264		#endif
265	    ],
266	    [
267		struct sockaddr_storage s;
268		s.ss_family = 1;
269	    ],
270	    [ntp_cv_have_ss_family="yes"],
271	    [ntp_cv_have_ss_family="no"]
272	)
273    ]
274)
275
276case "$ntp_cv_have_ss_family" in
277 no)
278    AC_CACHE_CHECK(
279	[for sockaddr_storage.__ss_family],
280	ntp_cv_have___ss_family,
281	[
282	    AC_TRY_COMPILE(
283		[
284		    #ifdef HAVE_SYS_TYPES_H
285		    # include <sys/types.h>
286		    #endif
287		    #ifdef HAVE_SYS_SOCKET_H
288		    # include <sys/socket.h>
289		    #endif
290		    #ifdef HAVE_NETINET_IN_H
291		    # include <netinet/in.h>
292		    #endif
293		],
294		[
295		    struct sockaddr_storage s;
296		    s.__ss_family = 1;
297		],
298		[ntp_cv_have___ss_family="yes"],
299		[ntp_cv_have___ss_family="no"]
300	    )
301	]
302    )
303    case "$ntp_cv_have___ss_family" in
304     yes)
305	AC_DEFINE(HAVE___SS_FAMILY_IN_SS, 1, [Does struct sockaddr_storage have __ss_family?])
306    esac
307esac
308
309AH_VERBATIM(
310    [HAVE___SS_FAMILY_IN_SS_VERBATIM],
311    [
312	/* Handle sockaddr_storage.__ss_family */
313	#ifdef HAVE___SS_FAMILY_IN_SS
314	# define ss_family __ss_family
315	#endif /* HAVE___SS_FAMILY_IN_SS */
316    ]
317)
318
319AC_CACHE_CHECK(
320    [for sockaddr_storage.ss_len],
321    ntp_cv_have_ss_len,
322    [
323	AC_TRY_COMPILE(
324	    [
325		#ifdef HAVE_SYS_TYPES_H
326		# include <sys/types.h>
327		#endif
328		#ifdef HAVE_SYS_SOCKET_H
329		# include <sys/socket.h>
330		#endif
331		#ifdef HAVE_NETINET_IN_H
332		# include <netinet/in.h>
333		#endif
334	    ],
335	    [
336		struct sockaddr_storage s;
337		s.ss_len = 1;
338	    ],
339	    [ntp_cv_have_ss_len="yes"],
340	    [ntp_cv_have_ss_len="no"]
341	)
342    ]
343)
344
345case "$ntp_cv_have_ss_len" in
346 no)
347    AC_CACHE_CHECK(
348	[for sockaddr_storage.__ss_len],
349	ntp_cv_have___ss_len,
350	[
351	    AC_TRY_COMPILE(
352		[
353		    #ifdef HAVE_SYS_TYPES_H
354		    # include <sys/types.h>
355		    #endif
356		    #ifdef HAVE_SYS_SOCKET_H
357		    # include <sys/socket.h>
358		    #endif
359		    #ifdef HAVE_NETINET_IN_H
360		    # include <netinet/in.h>
361		    #endif
362		],
363		[
364		    struct sockaddr_storage s;
365		    s.__ss_len = 1;
366		],
367		[ntp_cv_have___ss_len="yes"],
368		[ntp_cv_have___ss_len="no"]
369	    )
370	]
371    )
372    case "$ntp_cv_have___ss_len" in
373     yes)
374	AC_DEFINE(HAVE___SS_LEN_IN_SS, 1, [Does struct sockaddr_storage have __ss_len?])
375    esac
376esac
377
378AH_VERBATIM(
379    [HAVE___SS_LEN_IN_SS_VERBATIM],
380    [
381	/* Handle sockaddr_storage.__ss_len */
382	#ifdef HAVE___SS_LEN_IN_SS
383	# define ss_len __ss_len
384	#endif /* HAVE___SS_LEN_IN_SS */
385    ]
386)
387
388#
389# Look for in_port_t.
390#
391AC_CACHE_CHECK(
392    [for in_port_t],
393    isc_cv_have_in_port_t,
394    [
395	AC_TRY_COMPILE(
396	    [
397		#include <sys/types.h>
398		#include <netinet/in.h>
399	    ],
400	    [
401		in_port_t port = 25; 
402		return (0);
403	    ],
404	    [isc_cv_have_in_port_t=yes],
405	    [isc_cv_have_in_port_t=no]
406	)
407    ]
408)
409case "$isc_cv_have_in_port_t" in
410 no)
411	AC_DEFINE(ISC_PLATFORM_NEEDPORTT, 1, [Declare in_port_t?])
412esac
413
414AC_SEARCH_LIBS([inet_ntop], [resolv], , , [-lsocket -lnsl])
415AC_CHECK_FUNC(inet_ntop, [], [AC_DEFINE(ISC_PLATFORM_NEEDNTOP, 1, [ISC: provide inet_ntop()])])
416AC_CHECK_FUNC(inet_pton, [], [AC_DEFINE(ISC_PLATFORM_NEEDPTON, 1, [ISC: provide inet_pton()])])
417
418AC_ARG_ENABLE([ipv6], [AC_HELP_STRING([--enable-ipv6], [s use IPv6?])])
419
420case "$enable_ipv6" in
421 yes|''|autodetect)
422    case "$host" in
423     powerpc-ibm-aix4*) ;;
424     *)
425	AC_DEFINE([WANT_IPV6], ,[ISC: Want IPv6?])
426	;;
427    esac
428    ;;
429 no)
430    ;;
431esac
432
433AC_CACHE_CHECK(
434    [for IPv6 structures],
435    ac_cv_isc_found_ipv6,
436    [
437	AC_COMPILE_IFELSE(
438	    [
439		AC_LANG_PROGRAM(
440		    [
441			#include <sys/types.h>
442			#include <sys/socket.h>
443			#include <netinet/in.h>
444		    ],
445		    [
446			struct sockaddr_in6 sin6;
447		    ]
448		)
449	    ],
450	    [ac_cv_isc_found_ipv6=yes],
451	    [ac_cv_isc_found_ipv6=no]
452	)
453    ]
454)
455
456#
457# See whether IPv6 support is provided via a Kame add-on.
458# This is done before other IPv6 linking tests so LIBS is properly set.
459#
460AC_MSG_CHECKING([for Kame IPv6 support])
461AC_ARG_WITH(kame,
462	[AC_HELP_STRING([--with-kame], [- =/usr/local/v6])],
463	use_kame="$withval", use_kame="no")
464
465case "$use_kame" in
466 no)
467    ;;
468 yes)
469    kame_path=/usr/local/v6
470    ;;
471 *)
472    kame_path="$use_kame"
473    ;;
474esac
475
476case "$use_kame" in
477 no)
478    AC_MSG_RESULT(no)
479    ;;
480 *)
481    if test -f $kame_path/lib/libinet6.a; then
482	AC_MSG_RESULT($kame_path/lib/libinet6.a)
483	LIBS="-L$kame_path/lib -linet6 $LIBS"
484    else
485	AC_MSG_ERROR([$kame_path/lib/libinet6.a not found.
486
487Please choose the proper path with the following command:
488
489    configure --with-kame=PATH
490])
491    fi
492    ;;
493esac
494
495#
496# Whether netinet6/in6.h is needed has to be defined in isc/platform.h.
497# Including it on Kame-using platforms is very bad, though, because
498# Kame uses #error against direct inclusion.   So include it on only
499# the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1.
500# This is done before the in6_pktinfo check because that's what
501# netinet6/in6.h is needed for.
502#
503case "$host" in
504 *-bsdi4.[[01]]*)
505    AC_DEFINE(ISC_PLATFORM_NEEDNETINET6IN6H, 1, [Do we need netinet6/in6.h?])
506    # does anything use LWRES_PLATFORM_NEEDNETINET6IN6H?  Can't it use above?
507    AC_DEFINE(LWRES_PLATFORM_NEEDNETINET6IN6H, 1, [Do we need netinet6/in6.h?])
508    isc_netinet6in6_hack="#include <netinet6/in6.h>"
509    ;;
510 *)
511    isc_netinet6in6_hack=""
512esac
513
514#
515# This is similar to the netinet6/in6.h issue.
516#
517case "$host" in
518 *-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
519    AC_DEFINE(ISC_PLATFORM_FIXIN6ISADDR, 1,[Do we need to fix in6isaddr?])
520    isc_netinetin6_hack="#include <netinet/in6.h>"
521    ;;
522 *)
523    isc_netinetin6_hack=""
524esac
525
526
527case "$ac_cv_isc_found_ipv6" in
528 yes)
529    AC_DEFINE(ISC_PLATFORM_HAVEIPV6, ,[have IPv6?])
530
531    AC_CACHE_CHECK(
532	[for in6_pktinfo],
533	ac_cv_have_in6_pktinfo,
534	[
535	    AC_COMPILE_IFELSE(
536		[
537		    AC_LANG_PROGRAM(
538			[
539			    #include <sys/types.h>
540			    #include <sys/socket.h>
541			    #include <netinet/in.h>
542			    $isc_netinetin6_hack
543			    $isc_netinet6in6_hack
544			],
545			[
546			    struct in6_pktinfo xyzzy;
547			]
548		    )
549		],
550		[ac_cv_have_in6_pktinfo=yes],
551		[ac_cv_have_in6_pktinfo=no]
552	    )
553	]
554    )
555
556    case "$ac_cv_have_in6_pktinfo" in
557     yes)
558	AC_DEFINE(ISC_PLATFORM_HAVEIN6PKTINFO, , [have struct in6_pktinfo?])
559    esac
560
561
562    # HMS: Use HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID instead?
563    AC_CACHE_CHECK(
564	[for sockaddr_in6.sin6_scope_id],
565	ac_cv_have_sin6_scope_id,
566	[
567	    AC_COMPILE_IFELSE(
568		[
569		    AC_LANG_PROGRAM(
570			[
571			    #include <sys/types.h>
572			    #include <sys/socket.h>
573			    #include <netinet/in.h>
574			    $isc_netinetin6_hack
575			    $isc_netinet6in6_hack
576			],
577			[
578			    struct sockaddr_in6 xyzzy;
579			    xyzzy.sin6_scope_id = 0;
580			]
581		    )
582		],
583		[ac_cv_have_sin6_scope_id=yes],
584		[ac_cv_have_sin6_scope_id=no]
585	    )
586	]
587    )
588
589    case "$ac_cv_have_sin6_scope_id" in
590     yes)
591	AC_DEFINE(ISC_PLATFORM_HAVESCOPEID, , [have sin6_scope_id?])
592    esac
593esac
594
595
596# We need this check run even without ac_cv_isc_found_ipv6=yes
597
598AC_CACHE_CHECK(
599    [for in6addr_any],
600    isc_cv_have_in6addr_any,
601    [
602	AC_LINK_IFELSE(
603	    [
604		AC_LANG_PROGRAM(
605		    [
606			#include <sys/types.h>
607			#include <sys/socket.h>
608			#include <netinet/in.h>
609			$isc_netinetin6_hack
610			$isc_netinet6in6_hack
611		    ],
612		    [
613			struct in6_addr in6; 
614			in6 = in6addr_any;
615		    ]
616		)
617	    ],
618	    [isc_cv_have_in6addr_any=yes],
619	    [isc_cv_have_in6addr_any=no]
620	)
621    ]
622)
623
624case "$isc_cv_have_in6addr_any" in
625 no)
626    AC_DEFINE(ISC_PLATFORM_NEEDIN6ADDRANY, , [missing in6addr_any?])
627esac
628
629
630AC_CACHE_CHECK(
631    [for struct if_laddrconf],
632    ac_cv_isc_struct_if_laddrconf,
633    [
634        AC_COMPILE_IFELSE(
635	    [
636		AC_LANG_PROGRAM(
637		    [
638			#include <sys/types.h>
639			#include <net/if6.h>
640		    ],
641		    [
642			struct if_laddrconf a;
643		    ]
644		)
645	    ],
646	    [ac_cv_isc_struct_if_laddrconf=yes],
647	    [ac_cv_isc_struct_if_laddrconf=no]
648	)
649    ]
650)
651
652case "$ac_cv_isc_struct_if_laddrconf" in
653 yes)
654    AC_DEFINE(ISC_PLATFORM_HAVEIF_LADDRCONF, , [have struct if_laddrconf?])
655esac
656
657AC_CACHE_CHECK(
658    [for struct if_laddrreq],
659    ac_cv_isc_struct_if_laddrreq,
660    [
661        AC_COMPILE_IFELSE(
662	    [
663		AC_LANG_PROGRAM(
664		    [
665			#include <sys/types.h>
666			#include <net/if6.h>
667		    ],
668		    [
669			struct if_laddrreq a;
670		    ]
671		)
672	    ],
673	    [ac_cv_isc_struct_if_laddrreq=yes],
674	    [ac_cv_isc_struct_if_laddrreq=no]
675	)
676    ]
677)
678
679case "$ac_cv_isc_struct_if_laddrreq" in
680 yes)
681    AC_DEFINE(ISC_PLATFORM_HAVEIF_LADDRREQ, , [have struct if_laddrreq?])
682esac
683
684
685###
686
687# Hacks
688AC_DEFINE(HAVE_NO_NICE, 1, [sntp does not care about 'nice'])
689AC_DEFINE(HAVE_TERMIOS, 1, [sntp does not care about TTY stuff])
690
691# Checks for library functions.
692AC_CHECK_FUNCS([atexit memset socket])
693
694AC_MSG_CHECKING(for bin subdirectory)
695AC_ARG_WITH(binsubdir,
696	[AC_HELP_STRING([--with-binsubdir], [bin ={bin,sbin}])],
697	use_binsubdir="$withval", use_binsubdir="bin")
698
699case "$use_binsubdir" in
700 bin)
701    ;;
702 sbin)
703    ;;
704 *)
705    AC_MSG_ERROR([<$use_binsubdir> is illegal - must be "bin" or "sbin"])
706    ;;
707esac
708AC_MSG_RESULT($use_binsubdir)
709BINSUBDIR=$use_binsubdir
710AC_SUBST(BINSUBDIR)
711
712AC_CONFIG_FILES([Makefile])
713AC_OUTPUT
714