configure.in 17.6 KB
Newer Older
Bob Halley's avatar
Bob Halley committed
1
dnl Copyright (C) 1998, 1999, 2000  Internet Software Consortium.
Bob Halley's avatar
Bob Halley committed
2
3
4
5
6
7
8
9
10
11
12
13
14
dnl 
dnl Permission to use, copy, modify, and distribute this software for any
dnl purpose with or without fee is hereby granted, provided that the above
dnl copyright notice and this permission notice appear in all copies.
dnl 
dnl THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
dnl ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
dnl OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
dnl CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
dnl DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
dnl PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
dnl ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
dnl SOFTWARE.
Bob Halley's avatar
Bob Halley committed
15

Bob Halley's avatar
Bob Halley committed
16
AC_REVISION($Revision: 1.96 $)
17

Bob Halley's avatar
Bob Halley committed
18
AC_PREREQ(2.13)
Bob Halley's avatar
Bob Halley committed
19
20
21
22
23
24

AC_INIT(lib/dns/name.c)
AC_CONFIG_HEADER(config.h)

AC_CANONICAL_HOST

25
26
27
28
29
30
31
32
33
34
35
AC_PROG_MAKE_SET
AC_PROG_RANLIB
AC_PROG_INSTALL

STD_CINCLUDES=""
STD_CDEFINES=""
STD_CWARNINGS=""
AC_SUBST(STD_CINCLUDES)
AC_SUBST(STD_CDEFINES)
AC_SUBST(STD_CWARNINGS)

David Lawrence's avatar
David Lawrence committed
36
37
38
39
40
AC_PATH_PROG(AR, ar)
ARFLAGS="cruv"
AC_SUBST(AR)
AC_SUBST(ARFLAGS)

41
42
43
44
45
46
47
48
49
50
51
52
53
54
dnl
dnl On these hosts, we really want to use cc, not gcc, even if it is
dnl found.  The gcc that these systems have will not correctly handle
dnl pthreads.
dnl
dnl However, if the user sets $CC to be something, let that override
dnl our change.
dnl
if test "X$CC" = "X" ; then
	case "$host" in
		*-dec-osf*)
			CC="cc"
			;;
		*-sun-solaris*)
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
			IFS="${IFS=	}"; ac_save_ifs="$IFS"; IFS=":"
			for ac_dir in $PATH; do
				test -z "$ac_dir" && ac_dir=.
				case "$ac_dir" in
				/usr/ucb)
					# exclude
					;;
				*)
					if test -f "$ac_dir/cc"; then
						CC="$ac_dir/cc"
						break
					fi
					;;
				esac
			done
			IFS="$ac_save_ifs"
71
72
73
74
75
76
77
78
79
80
			;;
		*-hp-hpux*)
			CC="cc"
			;;
		mips-sgi-irix*)
			CC="cc"
			;;
	esac
fi

81
82
83
84
85
86
87
88
89
90
91
92
dnl
dnl NetBSD has two alternative pthreads implementations.  Make the 
dnl user choose one by saying --with-mit-pthreads or --with-ptl2
dnl if necessary.
dnl

case "$host" in
  *-netbsd*)
	CC="gcc"
	AC_MSG_CHECKING(which thread library to use)

	AC_ARG_WITH(mit-pthreads, 
93
	    [  --with-mit-pthreads	use the mit-pthreads thread library],
94
95
96
	    use_mit_pthreads="$withval", use_mit_pthreads="no")
	
	AC_ARG_WITH(ptl2,
97
	    [  --with-ptl2		use the ptl2 thread library],
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
	    use_ptl2="$withval", use_ptl2="no")

        dnl If user did not choose a thread library explicitly,
        dnl try to choose one automatically.  This will work when
	dnl exactly one library is installed.

	case "$use_mit_pthreads+$use_ptl2" in
		no+no)
			if test -d /usr/pkg/pthreads
			then
				use_mit_pthreads="yes"
			fi
			if test -d /usr/pkg/PTL
			then
				use_ptl2="yes"
			fi
			;;
        esac

	case "$use_mit_pthreads+$use_ptl2" in
		yes+no)
			AC_MSG_RESULT(mit-pthreads)
			pkg="/usr/pkg/pthreads"
			lib1="-L$pkg/lib -Wl,-R$pkg/lib"
			lib2="-lpthread -lm -lgcc -lpthread"
			LIBS="$lib1 $lib2 $LIBS"
Mark Andrews's avatar
Mark Andrews committed
124
			CPPFLAGS="-I$pkg/include $CPPFLAGS"
125
126
127
128
			STD_CINCLUDES="-I$pkg/include"
			;;
		no+yes)
			AC_MSG_RESULT(PTL2)
129
130
131
132
dnl			pkg="/usr/pkg/PTL"
dnl			LIBS="-L/usr/pkg/lib -lPTL $LIBS"
dnl			STD_CINCLUDES="-nostdinc -idirafter $pkg/include"
			CC=ptlgcc
133
134
135
136
137
138
139
140
141
142
143
144
145
146
			;;
		*)
			AC_MSG_ERROR([no thread library.

Please choose a thread library using one of 

   configure --with-mit-pthreads
   configure --with-ptl2
])
			;;
		esac
		;;
esac

Bob Halley's avatar
Bob Halley committed
147
AC_PROG_CC
James Brister's avatar
James Brister committed
148
AC_PROG_YACC
Bob Halley's avatar
Bob Halley committed
149
150

AC_HEADER_STDC
151
AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h sys/sockio.h netinet6/in6.h)
Bob Halley's avatar
Bob Halley committed
152

153
154
155
156
157
158
dnl
dnl HAVE_NETINET6_IN6_H needs to go in platform.h.
dnl
case "$ac_cv_header_netinet6_in6_h" in
yes)
	ISC_PLATFORM_HAVENETINET6IN6H="#define ISC_PLATFORM_HAVENETINET6IN6H 1"
159
	LWRES_PLATFORM_HAVENETINET6IN6H="#define LWRES_PLATFORM_HAVENETINET6IN6H 1"
160
161
162
	;;
no)
	ISC_PLATFORM_HAVENETINET6IN6H="#undef ISC_PLATFORM_HAVENETINET6IN6H"
163
	LWRES_PLATFORM_HAVENETINET6IN6H="#undef LWRES_PLATFORM_HAVENETINET6IN6H"
164
165
166
	;;
esac
AC_SUBST(ISC_PLATFORM_HAVENETINET6IN6H)
167
AC_SUBST(LWRES_PLATFORM_HAVENETINET6IN6H)
168

Bob Halley's avatar
Bob Halley committed
169
170
171
172
173
AC_C_CONST
AC_C_INLINE
AC_TYPE_SIZE_T
AC_HEADER_TIME

Bob Halley's avatar
Bob Halley committed
174
175
AC_CHECK_LIB(pthread, pthread_create,,
             AC_CHECK_LIB(pthread, __pthread_create)
Bob Halley's avatar
Bob Halley committed
176
             AC_CHECK_LIB(pthread, __pthread_create_system)
Bob Halley's avatar
Bob Halley committed
177
)
178

179
180
181
dnl
dnl We'd like to use sigwait() too
dnl
182
AC_CHECK_LIB(c, sigwait,
183
	     AC_DEFINE(HAVE_SIGWAIT),
184
185
186
187
             AC_CHECK_LIB(pthread, sigwait,
			  AC_DEFINE(HAVE_SIGWAIT),
			  AC_CHECK_LIB(pthread, _Psigwait,
				       AC_DEFINE(HAVE_SIGWAIT),))
188
189
)

Bob Halley's avatar
Bob Halley committed
190
191
192
193
194
195
196
197
198
dnl
dnl Additional OS-specific searching for sigwait.
dnl
case "$host" in
	*-freebsd*)
		AC_CHECK_LIB(c_r, sigwait, AC_DEFINE(HAVE_SIGWAIT),)
		;;
esac

199
200
201
202
203
204
205
206
207
dnl
dnl Make sure we get the right sigwait() semantics...
dnl
case "$host" in
	*-sun-solaris*)
		AC_DEFINE(_POSIX_PTHREAD_SEMANTICS)
		;;
esac

Bob Halley's avatar
Bob Halley committed
208
209
210
211
212
dnl
dnl NLS
dnl
AC_CHECK_FUNC(catgets, AC_DEFINE(HAVE_CATGETS),)

Bob Halley's avatar
Bob Halley committed
213
dnl
214
215
dnl BSDI 3.1 through 4.0.1 needs pthread_init() to be called before certain
dnl pthreads calls.  LinuxThreads requires some changes to the way we deal with
Bob Halley's avatar
Bob Halley committed
216
dnl signals.
217
218
dnl
case "$host" in
219
	*-bsdi3.1*|*-bsdi4.0*)
220
221
		AC_DEFINE(NEED_PTHREAD_INIT)
		;;
Bob Halley's avatar
Bob Halley committed
222
223
224
	*-linux*)
		AC_DEFINE(HAVE_LINUXTHREADS)
		;;
225
226
esac

227
dnl
James Brister's avatar
James Brister committed
228

229
dnl -lxnet buys us one big porting headache...  standards, gotta love 'em.
230
dnl
231
232
233
234
dnl AC_CHECK_LIB(xnet, socket, ,
dnl    AC_CHECK_LIB(socket, socket)
dnl    AC_CHECK_LIB(nsl, inet_ntoa)
dnl )
235
dnl
236
237
dnl Use this for now, instead:
dnl
238
239
240
241
242
243
244
245
case "$host" in
	mips-sgi-irix*)
		;;
	*)
		AC_CHECK_LIB(socket, socket)
		AC_CHECK_LIB(nsl, inet_ntoa)
		;;
esac
Michael Graff's avatar
Michael Graff committed
246

Bob Halley's avatar
Bob Halley committed
247
248
MKDEPCC="$CC"
MKDEPCFLAGS="-M"
Bob Halley's avatar
Bob Halley committed
249
if test "X$GCC" = "Xyes"; then
250
	STD_CWARNINGS="$STD_CWARNINGS -W -Wall -Wmissing-prototypes"
251
	case "$host" in
252
253
254
255
		*-freebsd*)
			CC="$CC -pthread"
			STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE"
			;;
256
257
258
		*-openbsd*)
			CC="$CC -pthread"
			;;
259
260
261
262
		*-sun-solaris*)
			LIBS="$LIBS -lthread"
			;;
	esac
Bob Halley's avatar
Bob Halley committed
263
264
else
	case "$host" in
Bob Halley's avatar
Bob Halley committed
265
		*-dec-osf*)
266
			CC="$CC -std -pthread"
Bob Halley's avatar
Bob Halley committed
267
			MKDEPCC="$CC"
Bob Halley's avatar
Bob Halley committed
268
			;;
269
270
		*-sun-solaris*)
			CC="$CC -mt"
Bob Halley's avatar
Bob Halley committed
271
272
			MKDEPCC="$CC"
			MKDEPCFLAGS="-xM"
273
			;;
Bob Halley's avatar
Bob Halley committed
274
		*-hp-hpux*)
Bob Halley's avatar
Bob Halley committed
275
			CC="$CC -Ae -z +w1"
Bob Halley's avatar
Bob Halley committed
276
			MKDEPPROG='cc -Ae -E -Wp,-M >/dev/null 2>>$TMP'
Bob Halley's avatar
Bob Halley committed
277
			;;
Bob Halley's avatar
Bob Halley committed
278
279
	esac
fi
Bob Halley's avatar
Bob Halley committed
280
281
282
AC_SUBST(MKDEPCC)
AC_SUBST(MKDEPCFLAGS)
AC_SUBST(MKDEPPROG)
283
284
285
286

dnl
dnl Networking specifics.
dnl
Bob Halley's avatar
Bob Halley committed
287
case "$host" in
288
	*-dec-osf*)
289
		dnl Turn on 4.4BSD style sa_len support.
290
		AC_DEFINE(_SOCKADDR_LEN)
291
		;;
Bob Halley's avatar
Bob Halley committed
292
esac
Bob Halley's avatar
Bob Halley committed
293

294
dnl
295
dnl Look for a 4.4BSD-style sa_len member in struct sockaddr.
296
dnl
297

298
AC_MSG_CHECKING(for sa_len in struct sockaddr)
299
300
301
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>],
302
[struct sockaddr sa; sa.sa_len = 0; return (0);],
303
	[AC_MSG_RESULT(yes)
304
305
	ISC_PLATFORM_HAVESALEN="#define ISC_PLATFORM_HAVESALEN 1"
	LWRES_PLATFORM_HAVESALEN="#define LWRES_PLATFORM_HAVESALEN 1"],
306
	[AC_MSG_RESULT(no)
307
308
	ISC_PLATFORM_HAVESALEN="#undef ISC_PLATFORM_HAVESALEN"
	LWRES_PLATFORM_HAVESALEN="#undef LWRES_PLATFORM_HAVESALEN"])
309
AC_SUBST(ISC_PLATFORM_HAVESALEN)
310
AC_SUBST(LWRES_PLATFORM_HAVESALEN)
311

312
313
314
315
316
317
318
319
320
321
dnl
dnl Look for a 4.4BSD or 4.3BSD struct msghdr
dnl

AC_MSG_CHECKING(for struct msghdr flavor)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>],
[struct msghdr msg; msg.msg_flags = 0; return (0);],
	[AC_MSG_RESULT(4.4BSD)
322
	ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD44MSGHDR 1"],
323
	[AC_MSG_RESULT(4.3BSD)
324
325
	ISC_PLATFORM_MSGHDRFLAVOR="#define ISC_NET_BSD43MSGHDR 1"])
AC_SUBST(ISC_PLATFORM_MSGHDRFLAVOR)
326

327
328
329
330
331
dnl
dnl Look for in_port_t.
dnl
AC_MSG_CHECKING(for type in_port_t)
AC_TRY_COMPILE([
332
#include <sys/types.h>
333
334
335
#include <netinet/in.h>],
[in_port_t port = 25; return (0);],
	[AC_MSG_RESULT(yes)
336
	ISC_PLATFORM_NEEDPORTT="#undef ISC_PLATFORM_NEEDPORTT"],
337
        [AC_MSG_RESULT(no)
338
339
	ISC_PLATFORM_NEEDPORTT="#define ISC_PLATFORM_NEEDPORTT 1"])
AC_SUBST(ISC_PLATFORM_NEEDPORTT)
340

Mark Andrews's avatar
Mark Andrews committed
341
342
343
344
345
346
347
348
349
350
351
dnl
dnl Check for addrinfo
dnl
AC_MSG_CHECKING(for struct addrinfo)
AC_TRY_COMPILE([
#include <netdb.h>],
[struct addrinfo a; return (0);],
	[AC_MSG_RESULT(yes)
	ISC_LWRES_NEEDADDRINFO="#undef ISC_LWRES_NEEDADDRINFO"],
	[AC_MSG_RESULT(no)
	ISC_LWRES_NEEDADDRINFO="#define ISC_LWRES_NEEDADDRINFO 1"])
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
AC_SUBST(ISC_LWRES_NEEDADDRINFO)

AC_MSG_CHECKING(for int sethostent)
AC_TRY_COMPILE([
#include <netdb.h>],
[int i = sethostent(0); return(0);],
	[AC_MSG_RESULT(yes)
	ISC_LWRES_SETHOSTENTINT="#define ISC_LWRES_SETHOSTENTINT 1"],
	[AC_MSG_RESULT(no)
	ISC_LWRES_SETHOSTENTINT="#undef ISC_LWRES_SETHOSTENTINT"])
AC_SUBST(ISC_LWRES_SETHOSTENTINT)

AC_MSG_CHECKING(for int endhostent)
AC_TRY_COMPILE([
#include <netdb.h>],
Mark Andrews's avatar
Mark Andrews committed
367
[int i = endhostent(); return(0);],
368
369
370
371
372
373
	[AC_MSG_RESULT(yes)
	ISC_LWRES_ENDHOSTENTINT="#define ISC_LWRES_ENDHOSTENTINT 1"],
	[AC_MSG_RESULT(no)
	ISC_LWRES_ENDHOSTENTINT="#undef ISC_LWRES_ENDHOSTENTINT"])
AC_SUBST(ISC_LWRES_ENDHOSTENTINT)

374
375
376
377
378
379
380
381
382
383
384
AC_MSG_CHECKING(for getnetbyaddr(in_addr_t, ...))
AC_TRY_COMPILE([
#include <netdb.h>
struct netent *getnetbyaddr(in_addr_t, int);],
[],
	[AC_MSG_RESULT(yes)
	ISC_LWRES_GETNETBYADDRINADDR="#define ISC_LWRES_GETNETBYADDRINADDR 1"],
	[AC_MSG_RESULT(no)
	ISC_LWRES_GETNETBYADDRINADDR="#undef ISC_LWRES_GETNETBYADDRINADDR"])
AC_SUBST(ISC_LWRES_GETNETBYADDRINADDR)

385
386
387
388
389
390
391
392
AC_MSG_CHECKING(for int setnetent)
AC_TRY_COMPILE([
#include <netdb.h>],
[int i = setnetent(0); return(0);],
	[AC_MSG_RESULT(yes)
	ISC_LWRES_SETNETENTINT="#define ISC_LWRES_SETNETENTINT 1"],
	[AC_MSG_RESULT(no)
	ISC_LWRES_SETNETENTINT="#undef ISC_LWRES_SETNETENTINT"])
393
394
AC_SUBST(ISC_LWRES_SETNETENTINT)

Mark Andrews's avatar
Mark Andrews committed
395
396
397
398
399
400
401
402
AC_MSG_CHECKING(for int endnetent)
AC_TRY_COMPILE([
#include <netdb.h>],
[int i = endnetent(); return(0);],
	[AC_MSG_RESULT(yes)
	ISC_LWRES_ENDNETENTINT="#define ISC_LWRES_ENDNETENTINT 1"],
	[AC_MSG_RESULT(no)
	ISC_LWRES_ENDNETENTINT="#undef ISC_LWRES_ENDNETENTINT"])
403
AC_SUBST(ISC_LWRES_ENDNETENTINT)
Mark Andrews's avatar
Mark Andrews committed
404

Mark Andrews's avatar
Mark Andrews committed
405
AC_MSG_CHECKING(for gethostbyadd(const void *, size_t, ...))
406
407
AC_TRY_COMPILE([
#include <netdb.h>
Mark Andrews's avatar
Mark Andrews committed
408
struct hostent *gethostbyaddr(const void *, size_t, int);],
409
410
411
412
413
[return(0);],
	[AC_MSG_RESULT(yes)
	ISC_LWRES_GETHOSTBYADDRVOID="#define ISC_LWRES_GETHOSTBYADDRVOID 1"],
	[AC_MSG_RESULT(no)
	ISC_LWRES_GETHOSTBYADDRVOID="#undef ISC_LWRES_GETHOSTBYADDRVOID"])
414
415
AC_SUBST(ISC_LWRES_GETHOSTBYADDRVOID)

Mark Andrews's avatar
Mark Andrews committed
416
417
418
419
420
421
422
423
424
425
AC_MSG_CHECKING(for h_errno in netdb.h)
AC_TRY_COMPILE([
#include <netdb.h>],
[h_errno = 1; return(0);],
	[AC_MSG_RESULT(yes)
	ISC_LWRES_NEEDHERRNO="#undef ISC_LWRES_NEEDHERRNO"],
	[AC_MSG_RESULT(no)
	ISC_LWRES_NEEDHERRNO="#define ISC_LWRES_NEEDHERRNO 1"])
AC_SUBST(ISC_LWRES_NEEDHERRNO)

Mark Andrews's avatar
Mark Andrews committed
426
427
428
429
430
431
432
433
434
435
436
437
438
AC_CHECK_FUNC(getipnodebyname,
        [ISC_LWRES_GETIPNODEPROTO="#undef ISC_LWRES_GETIPNODEPROTO"],
        [ISC_LWRES_GETIPNODEPROTO="#define ISC_LWRES_GETIPNODEPROTO 1"])
AC_CHECK_FUNC(getnameinfo,
        [ISC_LWRES_GETNAMEINFOPROTO="#undef ISC_LWRES_GETNAMEINFOPROTO"],
        [ISC_LWRES_GETNAMEINFOPROTO="#define ISC_LWRES_GETNAMEINFOPROTO 1"])
AC_CHECK_FUNC(getaddrinfo,
        [ISC_LWRES_GETADDRINFOPROTO="#undef ISC_LWRES_GETADDRINFOPROTO"],
        [ISC_LWRES_GETADDRINFOPROTO="#define ISC_LWRES_GETADDRINFOPROTO 1"])
AC_SUBST(ISC_LWRES_GETIPNODEPROTO)
AC_SUBST(ISC_LWRES_GETADDRINFOPROTO)
AC_SUBST(ISC_LWRES_GETNAMEINFOPROTO)

439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
dnl
dnl Look for a sysctl call to get the list of network interfaces.
dnl

AC_MSG_CHECKING(for interface list sysctl)
AC_EGREP_CPP(found_rt_iflist, [
#include <sys/param.h>
#include <sys/sysctl.h>
#include <sys/socket.h>
#ifdef NET_RT_IFLIST
found_rt_iflist
#endif
],
	[AC_MSG_RESULT(yes)
	 AC_DEFINE(HAVE_IFLIST_SYSCTL)],
	[AC_MSG_RESULT(no)])

Bob Halley's avatar
Bob Halley committed
456
457
458
459
dnl
dnl GNU libtool support
dnl
AC_ARG_WITH(libtool,
460
	    [  --with-libtool	use GNU libtool],
Bob Halley's avatar
Bob Halley committed
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
	    use_libtool="$withval", use_libtool="no")

case $use_libtool in
	yes)
		AM_PROG_LIBTOOL
		O=lo
		A=la
		;;
	*)
		O=o
		A=a
		LIBTOOL=
		AC_SUBST(LIBTOOL)
		;;
esac
AC_SUBST(O)
AC_SUBST(A)

479
480
481
dnl
dnl IPv6
dnl
482
483
484
485
486
AC_ARG_ENABLE(ipv6,
	[  --enable-ipv6		use IPv6 [default=autodetect]])

dnl
dnl We do the IPv6 compilation checking after libtool so that we can put
487
488
dnl the right suffix on the files.
dnl
489
490
491
492
case "$enable_ipv6" in
	yes|''|autodetect)
		AC_MSG_CHECKING(for IPv6 structures)
		AC_TRY_COMPILE([
493
494
495
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>],
496
497
498
499
500
501
502
503
504
505
506
507
508
		[struct sockaddr_in6 sin6; return (0);],
			[AC_MSG_RESULT(yes)
			 found_ipv6=yes],
			[AC_MSG_RESULT(no)
			 found_ipv6=no])
		;;
	no)
		found_ipv6=no
		;;
esac

case "$found_ipv6" in
	yes)
509
510
		ISC_PLATFORM_HAVEIPV6="#define ISC_PLATFORM_HAVEIPV6 1"
		LWRES_PLATFORM_HAVEIPV6="#define LWRES_PLATFORM_HAVEIPV6 1"
511
512
513
		;;
	no)
		ISC_PLATFORM_HAVEIPV6="#undef ISC_PLATFORM_HAVEIPV6"
514
		LWRES_PLATFORM_HAVEIPV6="#undef LWRES_PLATFORM_HAVEIPV6"
515
516
517
518
519
520
521
		ISC_IPV6_H="ipv6.h"
		ISC_IPV6_O="ipv6.$O"
		ISC_ISCIPV6_O="unix/ipv6.$O"
		ISC_IPV6_C="ipv6.c"
		;;
esac

522
AC_SUBST(ISC_PLATFORM_HAVEIPV6)
523
AC_SUBST(LWRES_PLATFORM_HAVEIPV6)
524
525
526
527
528
AC_SUBST(ISC_IPV6_H)
AC_SUBST(ISC_IPV6_O)
AC_SUBST(ISC_ISCIPV6_O)
AC_SUBST(ISC_IPV6_C)

529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
dnl
dnl IPv6 support provided via Kame
dnl
AC_MSG_CHECKING(for Kame IPv6 support)
AC_ARG_WITH(kame,
	[  --with-kame[=PATH]	use Kame IPv6 [default path /usr/local/v6]],
	use_kame="$withval", use_kame="no")

case "$use_kame" in
	no)
		;;
	yes)
		kame_path=/usr/local/v6
		;;
	*)
		kame_path="$use_kame"
		;;
esac

case "$use_kame" in
	no)
550
		AC_MSG_RESULT(no)
551
552
553
554
		;;
	*)
		if test -f $kame_path/lib/libinet6.a; then
			AC_MSG_RESULT($kame_path/lib/libinet6.a)
555
			LIBS="-L$kame_path/lib -linet6 $LIBS"
556
557
558
559
560
561
562
563
564
565
566
567
		else
			AC_MSG_ERROR([$kame_path/lib/libinet6.a not found.

Please choose the proper path with the following command:

    configure --with-kame=PATH
])
		fi
		;;
esac


Bob Halley's avatar
Bob Halley committed
568
569
570
571
572
dnl
dnl Check for network functions that are often missing.  We do this
dnl after the libtool checking, so we can put the right suffix on
dnl the files.
dnl
573
AC_CHECK_FUNC(inet_ntop,
574
	      [ISC_PLATFORM_NEEDNTOP="#undef ISC_PLATFORM_NEEDNTOP"],
Bob Halley's avatar
Bob Halley committed
575
	      [ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_ntop.$O"
Bob Halley's avatar
Bob Halley committed
576
	       ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_ntop.c"
577
	       ISC_PLATFORM_NEEDNTOP="#define ISC_PLATFORM_NEEDNTOP 1"]
Bob Halley's avatar
Bob Halley committed
578
)
579
AC_CHECK_FUNC(inet_pton,
580
	      [ISC_PLATFORM_NEEDPTON="#undef ISC_PLATFORM_NEEDPTON"],
Bob Halley's avatar
Bob Halley committed
581
	      [ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_pton.$O"
Bob Halley's avatar
Bob Halley committed
582
	       ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_pton.c"
583
	       ISC_PLATFORM_NEEDPTON="#define ISC_PLATFORM_NEEDPTON 1"]
Bob Halley's avatar
Bob Halley committed
584
)
585
AC_CHECK_FUNC(inet_aton,
586
	      [ISC_PLATFORM_NEEDATON="#undef ISC_PLATFORM_NEEDATON"],
Bob Halley's avatar
Bob Halley committed
587
	      [ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS inet_aton.$O"
Bob Halley's avatar
Bob Halley committed
588
	       ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS inet_aton.c"
589
	       ISC_PLATFORM_NEEDATON="#define ISC_PLATFORM_NEEDATON 1"]
Bob Halley's avatar
Bob Halley committed
590
)
Mark Andrews's avatar
Mark Andrews committed
591
592
593
594
595
AC_CHECK_FUNC(strsep,
	[ISC_PLATFORM_NEEDSTRSEP="#undef ISC_PLATFORM_NEEDSTRSEP"],
	[ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS strsep.$O"
	 ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS strsep.c"
	 ISC_PLATFORM_NEEDSTRSEP="#define ISC_PLATFORM_NEEDSTRSEP 1"])
Mark Andrews's avatar
Mark Andrews committed
596
AC_CHECK_FUNC(vsnprintf,
597
	[ISC_PLATFORM_NEEDVSNPRINTF="#undef ISC_PLATFORM_NEEDVSNPRINTF"],
Mark Andrews's avatar
Mark Andrews committed
598
599
	[ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS print.$O"
	 ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS print.c"
600
601
602
603
	 ISC_PLATFORM_NEEDVSNPRINTF="#define ISC_PLATFORM_NEEDVSNPRINTF 1"])
AC_SUBST(ISC_PLATFORM_NEEDNTOP)
AC_SUBST(ISC_PLATFORM_NEEDPTON)
AC_SUBST(ISC_PLATFORM_NEEDATON)
Mark Andrews's avatar
Mark Andrews committed
604
AC_SUBST(ISC_PLATFORM_NEEDSTRSEP)
605
AC_SUBST(ISC_PLATFORM_NEEDVSNPRINTF)
Bob Halley's avatar
Bob Halley committed
606
607
AC_SUBST(ISC_EXTRA_OBJS)
AC_SUBST(ISC_EXTRA_SRCS)
608
609
610
611
612
613
614
615
616
AC_MSG_CHECKING(for sizeof(long long int) == sizeof(long int))
AC_TRY_RUN([main() { exit(!(sizeof(long long int) == sizeof(long int))); }],
	[AC_MSG_RESULT(yes)
	ISC_PLATFORM_LONGLONGEQUALLONG="#define ISC_PLATFORM_LONGLONGEQUALLONG 1"],
	[AC_MSG_RESULT(no)
	ISC_PLATFORM_LONGLONGEQUALLONG="#undef ISC_PLATFORM_LONGLONGEQUALLONG"],
	[AC_MSG_RESULT(default yes)
	ISC_PLATFORM_LONGLONGEQUALLONG="#define ISC_PLATFORM_LONGLONGEQUALLONG 1"])
AC_SUBST(ISC_PLATFORM_LONGLONGEQUALLONG)
617
618
619
620
621
622
623
624
625
626
627
628
629

dnl
dnl Security Stuff
dnl

AC_CHECK_FUNC(chroot, AC_DEFINE(HAVE_CHROOT))
AC_CHECK_HEADERS(linux/capability.h)


dnl
dnl Substitutions
dnl

630
631
632
AC_SUBST(BIND9_TOP_BUILDDIR)
BIND9_TOP_BUILDDIR=`pwd`

633
634
AC_SUBST(BIND9_ISC_BUILDINCLUDE)
AC_SUBST(BIND9_DNS_BUILDINCLUDE)
635
AC_SUBST(BIND9_OMAPI_BUILDINCLUDE)
Michael Graff's avatar
Michael Graff committed
636
AC_SUBST(BIND9_LWRES_BUILDINCLUDE)
637
638
639
if test "X$srcdir" != "X"; then
	BIND9_ISC_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/isc/include"
	BIND9_DNS_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/dns/include"
640
	BIND9_OMAPI_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/omapi/include"
Michael Graff's avatar
Michael Graff committed
641
	BIND9_LWRES_BUILDINCLUDE="-I${BIND9_TOP_BUILDDIR}/lib/lwres/include"
642
643
644
else
	BIND9_ISC_BUILDINCLUDE=""
	BIND9_DNS_BUILDINCLUDE=""
645
	BIND9_OMAPI_BUILDINCLUDE=""
Michael Graff's avatar
Michael Graff committed
646
	BIND9_LWRES_BUILDINCLUDE=""
647
648
649
650
651
fi

AC_SUBST_FILE(BIND9_INCLUDES)
BIND9_INCLUDES=$BIND9_TOP_BUILDDIR/make/includes

Bob Halley's avatar
Bob Halley committed
652
AC_SUBST_FILE(BIND9_MAKE_RULES)
653
BIND9_MAKE_RULES=$BIND9_TOP_BUILDDIR/make/rules
Bob Halley's avatar
Bob Halley committed
654
655
656
657

AC_SUBST_FILE(BIND9_VERSION)
BIND9_VERSION=$srcdir/version

Bob Halley's avatar
Bob Halley committed
658
659
660
661
662
663
AC_SUBST_FILE(LIBISC_API)
LIBISC_API=$srcdir/lib/isc/api

AC_SUBST_FILE(LIBDNS_API)
LIBDNS_API=$srcdir/lib/dns/api

David Lawrence's avatar
David Lawrence committed
664
665
666
AC_SUBST_FILE(LIBOMAPI_API)
LIBOMAPI_API=$srcdir/lib/omapi/api

Bob Halley's avatar
Bob Halley committed
667
AC_OUTPUT(
668
	make/rules
669
	make/includes
Bob Halley's avatar
Bob Halley committed
670
	Makefile
671
	make/Makefile
Bob Halley's avatar
Bob Halley committed
672
	make/mkdep
Bob Halley's avatar
Bob Halley committed
673
674
675
676
	lib/Makefile
	lib/isc/Makefile
	lib/isc/include/Makefile
	lib/isc/include/isc/Makefile
677
	lib/isc/include/isc/platform.h
Bob Halley's avatar
Bob Halley committed
678
679
680
	lib/isc/unix/Makefile
	lib/isc/unix/include/Makefile
	lib/isc/unix/include/isc/Makefile
Bob Halley's avatar
Bob Halley committed
681
	lib/isc/nls/Makefile
Bob Halley's avatar
Bob Halley committed
682
683
684
685
686
687
	lib/isc/pthreads/Makefile
	lib/isc/pthreads/include/Makefile
	lib/isc/pthreads/include/isc/Makefile
	lib/dns/Makefile
	lib/dns/include/Makefile
	lib/dns/include/dns/Makefile
688
689
690
691
692
693
694
695
	lib/dns/sec/Makefile
	lib/dns/sec/openssl/Makefile
	lib/dns/sec/openssl/include/Makefile
	lib/dns/sec/openssl/include/openssl/Makefile
	lib/dns/sec/dnssafe/Makefile
	lib/dns/sec/dst/Makefile
	lib/dns/sec/dst/include/Makefile
	lib/dns/sec/dst/include/dst/Makefile
696
	lib/dns/config/Makefile
Michael Graff's avatar
Michael Graff committed
697
698
699
	lib/lwres/Makefile
	lib/lwres/include/Makefile
	lib/lwres/include/lwres/Makefile
Mark Andrews's avatar
Mark Andrews committed
700
	lib/lwres/include/lwres/netdb.h
701
	lib/lwres/include/lwres/platform.h
David Lawrence's avatar
David Lawrence committed
702
703
704
	lib/omapi/Makefile
	lib/omapi/include/Makefile
	lib/omapi/include/omapi/Makefile
Bob Halley's avatar
Bob Halley committed
705
706
707
	lib/tests/Makefile
	lib/tests/include/Makefile
	lib/tests/include/tests/Makefile
Bob Halley's avatar
Bob Halley committed
708
	bin/Makefile
Michael Graff's avatar
typo    
Michael Graff committed
709
	bin/named/Makefile
Bob Halley's avatar
Bob Halley committed
710
	bin/named/unix/Makefile
711
	bin/lwresd/Makefile
712
	bin/rndc/Makefile
Bob Halley's avatar
Bob Halley committed
713
714
715
716
	bin/tests/Makefile
	bin/tests/names/Makefile
	bin/tests/master/Makefile
	bin/tests/rbt/Makefile
717
718
719
	bin/tests/db/Makefile
	bin/tests/tasks/Makefile
	bin/tests/timers/Makefile
720
	bin/tests/dst/Makefile
721
	bin/tests/mem/Makefile
722
	bin/tests/sockaddr/Makefile
Bob Halley's avatar
Bob Halley committed
723
)