make fetch_block_size uint64_t
[arla.git] / configure.in
blob5ab378e6fede244d3de66145951d3d1950410788
1 AC_REVISION($Revision$)dnl
2 AC_PREREQ(2.59)
3 AC_INIT(arla, 0.43pre, [arla-drinkers@stacken.kth.se])
4 arla_CANONICAL
5 arla_OPENSSL_COMPAT
6 AM_INIT_AUTOMAKE([foreign no-dependencies 1.9])
7 AM_MAINTAINER_MODE
8 AM_CONFIG_HEADER(include/config.h)
9 AC_CONFIG_SRCDIR([arlad/arla.c])
11 dnl
12 dnl definitions
13 dnl
15 CFLAGS="-g ${CFLAGS}"
17 if test "$AS" = ""; then
18   AS=as
20 AC_SUBST(AS)dnl
22 AC_PROG_CC
23 AC_PROG_CC_FLAGS
24 AC_PROG_CPP
26 # This may be overridden using --prefix=/usr to configure
27 AC_PREFIX_DEFAULT(/usr/arla)
29 CANONICAL_HOST=$host
30 AC_SUBST(CANONICAL_HOST)
32 dnl
33 dnl this is needed to run the configure tests against glibc
34 dnl
35 AC_DEFINE([_GNU_SOURCE], 1,
36         [Define to enable extensions on glibc-based systems such as Linux.])
38 AC_OBJEXT
39 AC_EXEEXT
41 AM_PROG_LEX
42 AC_PROG_MAKE_SET
43 AC_PROG_INSTALL
44 AC_PROG_LN_S
45 AC_PROG_YACC
46 dnl remove ifdef when we use 2.54
47 m4_ifdef([AC_PROG_EGREP], [AC_PROG_EGREP],)
49 AC_CHECK_PROGS(SYMORDER, symorder, :)
50 AC_CHECK_PROGS(MAKEINFO, makeinfo, :)
51 AC_CHECK_PROGS(DVI2PS, dvi2ps, :)
52 AC_CHECK_PROGS(TEXI2DVI, texi2dvi, :)
53 AC_CHECK_PROGS(TEXI2PDF, texi2pdf, :)
54 AC_CHECK_PROGS(TEXI2HTML, texi2html, :)
55 AC_CHECK_PROGS(DVIPS, dvips, :)
56 AC_CHECK_PROGS(chmod, chmod, :)
57 AC_PATH_PROGS(GUILE_GTK, guile-gtk, /bin/false)
59 case $target_os in
60     linux*)
61         force_large_file=yes ;;
62     *)
63         force_large_file=no ;;
64 esac
66 if test "${force_large_file}" = "yes" ; then
67     AC_DEFINE(_LARGEFILE_SOURCE, 1,
68         [Define if you have largefile support])
69     AC_DEFINE(_LARGEFILE64_SOURCE, 1,
70         [Define if you have largefile support])
71     AC_DEFINE(_FILE_OFFSET_BITS, 64,
72         [Define how big file offset is in your OS. 32/64 are valid values.])
76 dnl 
77 dnl See if there is any X11 present
78 dnl
79 KRB_CHECK_X
80 AM_CONDITIONAL(X11, test X"$no_x" != X"yes")
82 AC_FUNC_NTOHL
84 AC_ARG_ENABLE(smp,
85 [  --enable-smp            compile for SMP (for Linux, FreeBSD, and NetBSD)],
86 [if test "$enableval" = "yes"; then
87   smp="-DSMP -DCONFIG_SMP"
88 else
89   smp="no"
93 AC_ARG_ENABLE(kld,
94 [  --enable-kld            build kld modules (only FreeBSD 3.0)],
95 [if test "$enableval" = "yes"; then
96   kld="yes"
97 else
98   kld="no"
102 # what kind of lwp
104 LWP_PROCESS="process.o"
105 LWP_C="lwp_asm.c"
106 LWP_O="lwp_asm.o"
107 LWP_H="lwp_asm.h"
108 PLWP_LIB_FLAGS=""
109 PLWP_INC_FLAGS=""
111 AC_ARG_WITH(pthreads,
112 [  --with-pthreads=dir       compile liblwp as pthreads wrapper using pthreads in dir],
113 [if test "$with_pthreads" = "windows"; then
114   with_pthreads=win
115 elif test "$with_pthreads" != "no"; then
116   LWP_PROCESS=""
117   LWP_C="plwp.c"
118   LWP_O="plwp.o"
119   LWP_H="plwp.h"
120   PLWP_INC_FLAGS="-DPTHREADS_LWP"
121   if test "$with_pthreads" != "yes"; then
122     AC_FIND_FUNC_NO_LIBS(pthread_create, pthread,,,[-L${with_pthreads}/lib])
123     PLWP_LIB_FLAGS="-L${with_pthreads}/lib $LIB_pthread_create"
124     PLWP_INC_FLAGS="-I${with_pthreads}/include -DPTHREADS_LWP"
125   else
126     AC_FIND_FUNC_NO_LIBS(pthread_create, pthread)
127     PLWP_LIB_FLAGS="$LIB_pthread_create"
128     PLWP_INC_FLAGS="-DPTHREADS_LWP"
129   fi
130   AC_FIND_FUNC_NO_LIBS(sched_yield, pthread,,,[${PLWP_LIB_FLAGS}])
131 fi],[with_pthreads=no])
133 # where the source tree is located
135 case "$target_os" in
136     linux*)
137     if test -d /lib/modules/`uname -r`/build; then
138         default_sys=/lib/modules/`uname -r`/build
139     else
140         default_sys=/usr/src/linux
141     fi
142     ;;
143     *)
144     default_sys=${SYSDIR:-/usr/src/sys}
145     ;;
146 esac
148 AC_ARG_WITH(sys,
149 [  --with-sys=dir          use dir as your kernel source code directory
150                           default $default_sys],
151 [SYS=$withval],
152 [SYS="$default_sys"])
153 AC_SUBST(SYS)
155 AC_ARG_WITH(kernel-obj,
156 [  --with-kernel-obj=dir   use dir as your kernel build directory (used on
157                           FreeBSD to find your actual kernel parameters)],
158 [FBSDKERNBUILDDIR=KERNBUILDDIR\=$withval],
160 AC_SUBST(FBSDKERNBUILDDIR)
162 AC_ARG_WITH(bsd-make,
163 [  --with-bsd-make=prog    when using a bsd and cross compiling we need 
164                           to know your make, default /usr/bin/make],
165 [BSDMAKE=$withval],
166 [BSDMAKE="/usr/bin/make"])
167 AC_SUBST(BSDMAKE)
170 nnpfs_target="$target_os"
171 AC_ARG_ENABLE(nnpfs,
172 [  --disable-nnpfs         build arla w/o nnpfs],
173 [if test "$enableval" = "no" ; then
174   nnpfs_target="without_nnpfs";
175 fi])
177 AC_MSG_CHECKING(for kernel stuff)
178 case "$nnpfs_target" in
179 sunos4.1*) 
180   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/sunos
181   KERNEL_SRCS='sunos-subr.c'
182   KERNEL_HDRS=''
183   NNPFS_SUBDIR=sunos
184   KERNEL=/vmunix
185   AC_MSG_RESULT(SunOS 4.1.x)
186   ;;
187 solaris*)
188   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/solaris
189   KERNEL_SRCS='solaris-subr.c'
190   KERNEL_HDRS=''
191   NNPFS_SUBDIR=solaris
192   KERNEL=/dev/ksyms
193   KERNEL_CPPFLAGS="${KERNEL_CPPFLAGS} -D_KERNEL"
194   AC_MSG_RESULT(Solaris)
195   case "$target_cpu" in
196   sparc64) AC_DEFINE(NEED_VICEIOCTL32, 1,
197         [define if you need 32 bit compat pioctl])
198            KERNEL_CPPFLAGS="${KERNEL_CPPFLAGS} -D_SYSCALL32 -D_SYSCALL32_IMPL"
199            ;;
200   esac
201   ;;
202 irix*)
203   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/irix
204   KERNEL_SRCS='irix-subr.c'
205   KERNEL_HDRS=''
206   ip=`hinv -c processor | awk '$4 ~ /IP/ { print $4}'`
207   cpu=`hinv -t cpu | awk '{print $3}'`
208   KERNEL_CPPFLAGS="${KERNEL_CPPFLAGS} -D$ip -D$cpu -DR4000"
209   NNPFS_SUBDIR=irix
210   KERNEL=/unix
211   case "$target_os" in
212   irix6.[[4-9]])
213     AC_DEFINE(IRIX_64, 1, [define this if on Irix6.4 or higher]) ;;
214   esac
215   AC_MSG_RESULT(Irix)
216   ;;
217 hpux*)
218   KERNEL_SRCS='hpux-subr.c'
219   AC_MSG_RESULT(hp-ux)
220   KERNEL=/hp-ux
221   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/unknown
222   AC_MSG_WARN(No kernel support for $target_os, compiling only user-level stuff)
223   ;;
224 aix*)
225   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/aix
226   KERNEL_SRCS='aix-subr.c'
227   KERNEL_HDRS=''
228   NNPFS_SUBDIR=aix
229   AC_MSG_RESULT(AIX)
230   ;;  
231 openbsd*)
232   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/bsd
233   KERNEL_SRCS='bsd-subr.c'
234   KERNEL_HDRS=''
235   AC_WERROR(BSD_WERROR)
236   MODULE=nnpfs_mod.o
237   cat > conftest.mk << END
238 .include <bsd.lkm.mk>
239 .if defined(UVM) && (\${UVM} != "no")
240 CFLAGS+=-DUVM
241 .endif
242 .if PMAP_NEW
243 CFLAGS+=-DPMAP_NEW
244 .endif
245 echo:
246         @echo \$(CFLAGS) \$(CPPFLAGS)
248   ac_out=`$BSDMAKE S=$SYS -f conftest.mk echo 2> /dev/null`
249   incl=-I$SYS
250   defs= flags=
251   for i in $ac_out; do
252         case "$i" in
253                 -I*)    if test "$i" != -I. -a "$i" != "-I`pwd`"; then
254                                 incl="$incl${incl:+ }$i"
255                         fi
256                         ;;
257                 -D*)    defs="$defs${defs:+ }$i" ;;
258                 -m*)    flags="$flags${flags:+ }$i" ;;
259                 -f*)    flags="$flags${flags:+ }$i" ;;
260                 *)      ;;
261         esac
262   done
263 ## -DKERNEL -DLKM -DACTUALLY_LKM_NOT_KERNEL ??
264   # make sure we compile with -mno-fp-regs on alpha
265   if test `uname -m` = alpha -a `expr "$flags" : ".*-mno-fp-regs"` -eq 0
266   then
267         flags="$flags${flags:+ }-mno-fp-regs"
268   fi
269   if test `uname -m` = pmax
270   then
271         KERNEL_CFLAGS="${KERNEL_CFLAGS} -G 0 -mno-abicalls -mno-half-pic"
272         KERNEL_LDFLAGS="${KERNEL_LDFLAGS} -G 0 -Ttext 0x80030000 -T ${SYS}/arch/mips/conf/kern.ldscript"
273   fi
274   KERNEL_CPPFLAGS="${KERNEL_CPPFLAGS} -D_LKM"
275   KERNEL_CPPFLAGS="${KERNEL_CPPFLAGS} $defs${defs:+ }$flags${flags:+ }$incl"
276   test_KERNEL_CFLAGS="${KERNEL_CFLAGS}"
277   KERNEL_LD='ld'
278   if test `uname -m` = pmax
279   then
280       ac_kernel_ld='${KERNEL_LD} ${KERNEL_LDFLAGS} -o conftest $LDFLAGS -R $KERNEL conftest.o -e _foo 1>&5'
281   fi
283   NNPFS_SRCS='nnpfs_wrap-bsd.c nnpfs_common-bsd.c nnpfs_dev-common.c nnpfs_dev-bsd.c nnpfs_dev-openbsd.c nnpfs_syscalls-common.c nnpfs_syscalls-wrap-bsd.c nnpfs_node-bsd.c nnpfs_vfsops-common.c nnpfs_vfsops-bsd.c nnpfs_vfsops-openbsd.c nnpfs_vnodeops-common.c nnpfs_vnodeops-bsd.c'
284   NNPFS_SUBDIR=bsd
285   KERNEL=/bsd
286   MODLOAD=modload
287   MODUNLOAD=modunload
288   AC_MSG_RESULT(OpenBSD)
289   ;;
290 netbsd* | netbsdelf*)
291   AC_WERROR(BSD_WERROR)
292   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/bsd
293   KERNEL_SRCS='bsd-subr.c'
294   KERNEL_HDRS=''
295   MODULE=nnpfs_mod.o
296   cat > conftest.mk << END
297 .include <bsd.kmod.mk>
298 .if UVM
299 CFLAGS+=-DUVM
300 .endif
301 .if PMAP_NEW
302 CFLAGS+=-DPMAP_NEW
303 .endif
304 echo:
305         @echo \$(CFLAGS) \$(CPPFLAGS)
307   ac_out=`$BSDMAKE S=$SYS -f conftest.mk echo 2> /dev/null`
308   incl=-I$SYS
309   defs= flags=
310   set X $ac_out ; shift
311   while test $# != 0; do
312         case "$1" in
313                 -I*|-nostdinc)
314                         if test "$1" != -I. -a "$1" != "-I`pwd`"; then
315                                 incl="$incl${incl:+ }$1"
316                         fi
317                         ;;
318                 -isystem)
319                         shift
320                         if test "$1" != -I. -a "$1" != "-I`pwd`"; then
321                                 incl="$incl${incl:+ }-isystem $1"
322                         fi
323                         ;;
325                 -D*)    defs="$defs${defs:+ }$1" ;;
326                 -m*)    flags="$flags${flags:+ }$1" ;;
327                 -f*)    flags="$flags${flags:+ }$1" ;;
328                 *)      ;;
329         esac
330         shift
331   done
332 ## -DKERNEL -DLKM -DACTUALLY_LKM_NOT_KERNEL ??
333   # make sure we compile with -mno-fp-regs on alpha
334   if test `uname -m` = alpha -a `expr "$flags" : ".*-mno-fp-regs"` -eq 0
335   then
336         flags="$flags${flags:+ }-mno-fp-regs"
337   fi
338   KERNEL_CPPFLAGS="${KERNEL_CPPFLAGS} $defs${defs:+ }$flags${flags:+ }$incl"
339   test_KERNEL_CFLAGS="${KERNEL_CFLAGS}"
340   KERNEL_LD='ld'
341   NNPFS_SRCS='nnpfs_wrap-bsd.c nnpfs_common-bsd.c nnpfs_dev-common.c nnpfs_dev-bsd.c nnpfs_dev-netbsd.c nnpfs_syscalls-common.c nnpfs_syscalls-wrap-bsd.c nnpfs_node-bsd.c nnpfs_vfsops-common.c nnpfs_vfsops-bsd.c nnpfs_vfsops-netbsd.c nnpfs_vnodeops-common.c nnpfs_vnodeops-bsd.c nnpfs_vnodeops-netbsd.c'
342   NNPFS_SUBDIR=bsd
343   KERNEL=/netbsd
344   MODLOAD=modload
345   MODUNLOAD=modunload
347   dnl
348   dnl Ok, lets build the symlinks the lkm needs
349   dnl  First make sure the directory and file exists
350   dnl  Then run make depend to create the symlinks
351   dnl  And a last thing in this ugly hack, add a -I to that directory
353   test -d include/netbsd-lkm || \
354        "$srcdir"/mkinstalldirs include/netbsd-lkm > /dev/null 2>/dev/null
356   kakasrcdir=`cd $srcdir && pwd`
358   (cd include/netbsd-lkm &&  \
359    $BSDMAKE S="$SYS" foosrc=$kakasrcdir/include/netbsd-lkm \
360         -f "$kakasrcdir"/include/netbsd-lkm/Makefile depend>/dev/null)
362   KERNEL_CPPFLAGS="$KERNEL_CPPFLAGS -I`pwd`/include/netbsd-lkm"
364   if test "X$smp" != "Xno" -a "X$smp" != "X"; then
365         KERNEL_CPPFLAGS="$KERNEL_CPPFLAGS -DMULTIPROCESSOR"
366   fi
368   AC_MSG_RESULT(NetBSD)
369   ;;
370 dragonfly*)
371   AC_WERROR(BSD_WERROR)
372   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/bsd
373   KERNEL_SRCS='bsd-subr.c'
374   KERNEL_HDRS=''
375   KERNEL=/kernel
376   MODULE=nnpfs.ko
378   if test "X$smp" != "Xno" -a "X$xmp" != "X"; then
379         smp="-DAPIC_IO $smp"
380   else
381         smp=""
382   fi
384   KERNEL_CFLAGS="${KERNEL_CFLAGS}${KERNEL_CFLAGS:+ }-O"
385   KERNEL_CPPFLAGS="${KERNEL_CPPFLAGS} $smp -DKERNEL -D_KERNEL -DVFS_KLD -DKLD_MODULE -I$SYS/arch -I$SYS -I."
386   KERNEL_LD='ld'
388   NNPFS_SUBDIR=bsd
389   NNPFS_SRCS='nnpfs_wrap-bsd.c nnpfs_common-bsd.c nnpfs_dev-common.c nnpfs_dev-bsd.c nnpfs_syscalls-common.c nnpfs_syscalls-wrap-dragonfly.c nnpfs_node-bsd.c nnpfs_vfsops-common.c nnpfs_vfsops-bsd.c nnpfs_vfsops-freebsd.c nnpfs_vnodeops-common.c nnpfs_vnodeops-bsd.c'
390   MODLOAD=modload
391   MODUNLOAD=modunload
392   AC_MSG_RESULT(DragonFly)
393   ;;
394 freebsd[[56789]]* | freebsdelf[[56789]]*)
395   AC_MSG_RESULT([FreeBSD [[56789]].x])
396   KERNEL=`sysctl -n kern.bootfile`
397   AC_WERROR(BSD_WERROR)
398   NNPFS_SUBDIR=freebsd
399   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/bsd
400   KERNEL_SRCS='bsd-subr.c'
402   KERNEL=`sysctl -n kern.bootfile`
404   cat > conftest.mk << END
405 KMOD= nonesuch
406 SRCS= nonesuch.c
407 .include <bsd.kmod.mk>
408 echo:
409         @echo \$(CFLAGS) \$(CPPFLAGS)
411   ac_out=`$BSDMAKE SYSDIR=$SYS -f conftest.mk echo 2> /dev/null`
412   incl=-I$SYS
413   defs= flags=
414   set X $ac_out ; shift
415   while test $# != 0; do
416         case "$1" in
417                 -I*|-nostdinc)
418                         if test "$1" != -I. -a "$1" != "-I`pwd`"; then
419                                 incl="$incl${incl:+ }$1"
420                         fi
421                         ;;
422                 -isystem)
423                         shift
424                         if test "$1" != -I. -a "$1" != "-I`pwd`"; then
425                                 incl="$incl${incl:+ }-isystem $1"
426                         fi
427                         ;;
429                 -D*)    defs="$defs${defs:+ }$1" ;;
430                 -m*)    flags="$flags${flags:+ }$1" ;;
431                 -f*)    flags="$flags${flags:+ }$1" ;;
432                 *)      ;;
433         esac
434         shift
435   done
436   KERNEL_CPPFLAGS="${KERNEL_CPPFLAGS} -I. $defs${defs:+ }$flags${flags:+ }$incl"
437   test_KERNEL_CFLAGS="${KERNEL_CFLAGS}"
438   KERNEL_LD='ld'
440   ;;
442 freebsd[[34]]* | freebsdelf[[34]]*)
443   AC_MSG_RESULT([FreeBSD [[34]].x])
444   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/bsd
445   KERNEL_SRCS='bsd-subr.c'
446   KERNEL_HDRS=''
447   KERNEL=`sysctl -n kern.bootfile`
448   AC_WERROR(BSD_WERROR)
449   AC_MSG_CHECKING(for kernel object format)
450   kernobjformat=aout
451   case `file $KERNEL 2>/dev/null` in
452   *ELF*)  kernobjformat=elf ;;
453   esac
454   AC_MSG_RESULT($kernobjformat)
456   AC_MSG_CHECKING(for kld)
457   dnl Default to kld if freebsd4.0
458   case "$target_os" in
459         freebsd4*)
460         if test "X$kld" = "X"; then
461                 kld="yes";
462         fi
463         if test "X$smp" != "Xno" -a "X$xmp" != "X"; then
464                 smp="-DAPIC_IO $smp"
465         else
466                 smp=""
467         fi
468         ;;
469   esac
470   AC_SUBST(FREEBSD_GENSETDEFS)
472   dnl Or if the kernel is ELF
473   case "$kernobjformat" in
474         elf*)
475         if test "X$kld" = "X"; then
476                 kld=yes;
477         fi
478         ;;
479   esac
480   KERNEL_CFLAGS="${KERNEL_CFLAGS}${KERNEL_CFLAGS:+ }-O"
481   if test `uname -m` = alpha -a `expr X"$KERNEL_CFLAGS" : ".*-mno-fp-regs"` -eq 0
482   then
483         KERNEL_CFLAGS="${KERNEL_CFLAGS}${KERNEL_CFLAGS:+ }-mno-fp-regs"
484   fi
485   if test "$kld" = "yes"; then
486     KERNEL_CPPFLAGS="${KERNEL_CPPFLAGS} $smp -DKERNEL -D_KERNEL -DVFS_KLD -DKLD_MODULE -I$SYS/arch -I$SYS -I."
487     test_KERNEL_CFLAGS="-$kernobjformat ${KERNEL_CFLAGS}"
488     KERNEL_LD='ld'
489     case "$kernobjformat" in
490     aout) extra_LDFLAGS="-A" ;;
491     elf)  extra_LDFLAGS="-R" ;;
492     *) AC_MSG_ERROR([Unknown object format $kernobjformat])
493     esac
494     ac_kernel_ld='${LD-ld} -$kernobjformat -o conftest $LDFLAGS $extra_LDFLAGS $KERNEL conftest.o -e _foo 1>&AC_FD_CC'
495     MODULE=nnpfs.ko
496     AC_MSG_RESULT(yes)
497   else
498     if test "$kernobjformat" != "aout"; then
499       AC_MSG_WARN([You cannot build LKMs against $kernobjformat kernels])
500     fi
501     KERNEL_CPPFLAGS="${KERNEL_CPPFLAGS} $smp -DKERNEL -D_KERNEL -DLKM -D_LKM -DVFS_LKM -DACTUALLY_LKM_NOT_KERNEL -I$SYS/arch -I$SYS -I."
502     test_KERNEL_CFLAGS="-aout ${KERNEL_CFLAGS}"
503     KERNEL_LD='ld -aout'
504     ac_kernel_ld='${LD-ld} -aout -o conftest $LDFLAGS -A $KERNEL conftest.o -e _foo 1>&AC_FD_CC'
505     MODULE=nnpfs_mod.o
506     AC_MSG_RESULT(no)
507   fi
509   NNPFS_SUBDIR=bsd
510   NNPFS_SRCS='nnpfs_wrap-bsd.c nnpfs_common-bsd.c nnpfs_dev-common.c nnpfs_dev-bsd.c nnpfs_dev-freebsd.c nnpfs_syscalls-common.c nnpfs_syscalls-wrap-freebsd.c nnpfs_node-bsd.c nnpfs_vfsops-common.c nnpfs_vfsops-bsd.c nnpfs_vfsops-freebsd.c nnpfs_vnodeops-common.c nnpfs_vnodeops-bsd.c'
511   MODLOAD=modload
512   MODUNLOAD=modunload
514   ;;
515 darwin*)
516   AC_MSG_RESULT(MacOS)
517   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/bsd
518   KERNEL_SRCS='bsd-subr.c'
519   KERNEL_HDRS=''
520   KERNEL=/mach
521   case "$nnpfs_target" in
522     darwin6.*) COM_APPLE_KERNEL_BSD="6.0" ;;
523     darwin7.*) COM_APPLE_KERNEL_BSD="6.0" ;;
524     darwin8.*) COM_APPLE_KERNEL_BSD="6.0" ;;
525     darwin*)  COM_APPLE_KERNEL_BSD="1.1" ;;
526     *) AC_MSG_ERROR([Unknown kernel version])
527   esac
528   AC_CONFIG_FILES([nnpfs/bsd/Info.plist])
530   AC_SUBST(COM_APPLE_KERNEL_BSD)
532   ac_cv_func_mmap_fixed_mapped=no               dnl disable mmap for darwin
534   KERNEL_CPPFLAGS="${KERNEL_CPPFLAGS} -DKERNEL -D_KERNEL -I/System/Library/Frameworks/Kernel.framework/Headers -static -DDIAGNOSTIC -DUSE_SELECT -DMACH_USER_API"
535   case "$nnpfs_target" in
536     darwin[[789]].*)
537           ;;
538     *) 
539           KERNEL_CPPFLAGS="${KERNEL_CPPFLAGS} -traditional-cpp"
540           CPPFLAGS="${KERNEL_CPPFLAGS} -traditional-cpp"
541           CFLAGS="${KERNEL_CPPFLAGS} -traditional-cpp"
542           ;;
543   esac
545   YDR_CPPFLAGS="-traditional-cpp"
547   LDFLAGS="${LDFLAGS} -flat_namespace"
548   KERNEL_CFLAGS="${KERNEL_CFLAGS} -fno-common -Wno-format -pipe -finline -fno-keep-inline-functions -force_cpusubtype_ALL -msoft-float -mlong-branch -fno-builtin"
549   test_KERNEL_CFLAGS="${KERNEL_CFLAGS}"
550   KERNEL_LD='ld'
551   MODULE=nnpfs_mod.o
553   MODLOAD=kmodload
554   MODUNLOAD=kmodunload
556   NNPFS_SUBDIR=bsd
557   NNPFS_SRCS='nnpfs_wrap-bsd.c nnpfs_common-bsd.c nnpfs_dev-common.c nnpfs_dev-bsd.c nnpfs_dev-macos.c nnpfs_syscalls-common.c nnpfs_syscalls-wrap-macos.c nnpfs_node-bsd.c nnpfs_vfsops-common.c nnpfs_vfsops-bsd.c nnpfs_vfsops-macos.c nnpfs_vnodeops-common.c nnpfs_vnodeops-macos.c nnpfs_info.c'
559   AC_DEFINE([BIND_8_COMPAT], 1,
560         [Define to pull in bind8 glue for darwin.])
562   ;;
563 linux*)
564   AC_MSG_RESULT(Linux)
565   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/linux
566   KERNEL_SRCS='bsd-subr.c'
567   KERNEL_HDRS=''
569   if test "X$smp" = "Xno"; then
570     smp=
571   fi
573   KERNEL_CPPFLAGS="-I$SYS/include -DMODULE -D__KERNEL__ $smp ${KERNEL_CPPFLAGS} "
574   case "$target_cpu" in
575   alpha*)
576     KERNEL_CC=${KERNEL_CC:-$CC}
577     KERNEL_CFLAGS="${KERNEL_CFLAGS} -mno-fp-regs -ffixed-8" ;;
578   sparc64*)
579     KERNEL_CFLAGS="${KERNEL_CFLAGS} -mno-fpu -ffixed-g4 -fcall-used-g5 -fcall-used-g7"
580     KERNEL_LD_FLAGS="-m elf64_sparc"
581     KERNEL_CC=${KERNEL_CC:-sparc64-linux-gcc}
582     AC_DEFINE(NEED_VICEIOCTL32, 1,
583         [define if you need 32 bit compat pioctl]) ;;
584   ia64*)
585     LINUX_IA64=yes
586     KERNEL_CC=${KERNEL_CC:-$CC} ;;
587   *)
588     KERNEL_CC=${KERNEL_CC:-$CC} ;;
589   esac
590   test_KERNEL_CFLAGS="${KERNEL_CFLAGS}"
591   NNPFS_SUBDIR=linux
592   KERNEL=/dev/null
593   ;;
594 mingw32*)
595   AC_MSG_RESULT(mingw32)
596   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/unknown
597   KERNEL_SRCS=unknown-subr.c
598   KERNEL_HDRS=
599   KERNEL=/dev/null
600   NNPFS_SUBDIR=
601   ;;
602 cygwin*)
603   AC_MSG_RESULT(cygwin/VC)
604   AC_MSG_WARN([No kernel support for NT])
605   if test "$with_pthreads" = "windows"; then
606     AC_MSG_WARN([Using LWP on windows native threads])
607     LWP_PROCESS=""
608     LWP_C="plwp.c"
609     LWP_O="plwp.o"
610     LWP_H="plwp.h"
611     PLWP_INC_FLAGS="-DWINDOWS_THREADS_LWP"
612   else
613     AC_MSG_WARN([Using LWP on asm threads or pthreads])
614   fi
615   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/unknown
616   KERNEL_SRCS=unknown-subr.c
617   KERNEL_HDRS=
618   KERNEL=/dev/null
619   NNPFS_SUBDIR=
620   ;;
622   AC_MSG_RESULT(none)
623   if test "$nnpfs_target" != "without_nnpfs"; then
624     AC_MSG_WARN([No kernel support for $target_os, compiling only user-level stuff])
625   fi
626   KERNEL_INCLUDE=-I`(cd $srcdir; pwd)`/nnpfs/unknown
627   KERNEL_SRCS=unknown-subr.c
628   KERNEL_HDRS=
629   KERNEL=/dev/null
630   NNPFS_SUBDIR=
631   ;;
632 esac
634 dnl ydr need special flags
635 AC_SUBST(YDR_CPPFLAGS)
637 dnl are we dragonfly
638 AM_CONDITIONAL(DFLY, expr "$target_os" : "dragonfly.*" >/dev/null 2>&1)
640 dnl are we freebsd5
641 AM_CONDITIONAL(FBSD5, test X"$FREEBSD5" = Xyes)
643 dnl are we linux-ia64
644 AM_CONDITIONAL(LINUX_IA64, test X"$LINUX_IA64" = Xyes)
646 dnl support for native readdir
647 AM_CONDITIONAL(NNPFS_AFS_READDIR, false)
649 AC_SUBST(BSD_WERROR)
651 AM_CONDITIONAL(DCE, false)
652 AM_CONDITIONAL(MACOSX, test `expr "$nnpfs_target" : darwin` != 0)
654 AC_ARG_WITH(lwp-redzone,
655 [  --without-lwp-redzone   don't use redzone for (asm)lwp],
656 [lwpredzone=$withval],
657 [lwpredzone=yes])
659 AM_CONDITIONAL(LWP_REDZONE, test X$lwpredzone != Xno)
661 # Check where to put the cache
663 AC_ARG_WITH(arlacachedir,
664 [  --with-arlacachedir=dir use dir as cachedir instead of \$prefix/cache],
665 [ARLACACHEDIR=$withval],
666 [ARLACACHEDIR='${prefix}/cache'])
668 # Check where to find the configuration
670 AC_ARG_WITH(arlaconffile,
671 [  --with-arlaconffile=file use file for configuration instead of \$prefix/etc/arla.conf],
672 [ARLACONFFILE=$withval],
673 [ARLACONFFILE='${sysconfdir}/arla.conf'])
675 # Check where to store partitions
677 AC_ARG_WITH(milkopart,
678 [  --with-milkopart=dir    location of milko partitions (default /)],
679 [MILKO_ROOT='-DMILKO_ROOT=\"$withval\"'],
680 [MILKO_ROOT='-DMILKO_ROOT=\"/\"'])
682 # Do we want knfs ?
684 ARLA_KNFS=""
685 AC_ARG_ENABLE(knfs,
686 [  --enable-knfs           make afs nfs-mountable],
687 [ARLA_KNFS="-DARLA_KNFS"])
688 AC_SUBST(ARLA_KNFS)
692 dnl If we want to use pthreads
695 AC_SUBST(LWP_PROCESS)
696 AC_SUBST(PLWP_LIB_FLAGS)
697 AC_SUBST(PLWP_INC_FLAGS)
698 AC_SUBST(LWP_C)
699 AC_SUBST(LWP_O)
700 AC_SUBST(LWP_H)
702 AC_TYPE_MSGHDR
703 AC_TYPE_IOVEC
705 dnl AC_TYPE_MODE_T
706 dnl AC_CHECK_TYPE(nlink_t, int)
709 dnl Tests for readline/editline
712 rk_TEST_PACKAGE(readline,
713 [#include <stdio.h>
714  #include <readline.h>],-lreadline,,, READLINE)
716 if test "$with_readline" = "no"; then
717         AC_FIND_FUNC_NO_LIBS(tgetent, termcap ncurses curses)
718         if test "$ac_cv_funclib_tgetent" = "no"; then
719                 AC_MSG_ERROR([Could not find tgetent, needed by edit/editline])
720         fi
721         AC_FIND_FUNC_NO_LIBS(readline, editline edit readline, [], [], [$LIB_tgetent])
722         if test "$ac_cv_func_readline" = "no"; then
723                 AC_FIND_FUNC_NO_LIBS(el_init, edit, [], [], [$LIB_tgetent])
724                 if test "$ac_cv_func_el_init" = yes; then
725                         editline_OBJS=edit_compat.o
726                         LIB_readline='-L'`pwd`'/lib/editline -leditline '"$LIB_el_init";
727                         INCLUDE_readline='-I'`pwd`'/lib/editline -I$(top_srcdir)/lib/editline'
728                 else
729                         editline_OBJS="editline.o complete.o sysunix.o"
730                         LIB_readline='-L'`pwd`'/lib/editline -leditline'
731                         INCLUDE_readline='-I'`pwd`'/lib/editline -I$(top_srcdir)/lib/editline'
732                 fi
733         fi
735 AC_DEFINE(HAVE_READLINE, 1, [define if you have a function readline])
737 LIB_readline_ac="$LIB_readline $LIB_tgetent"
738 LIB_readline="$LIB_readline \$(LIB_tgetent)"
744 AC_ARG_ENABLE(mmap,
745 [  --disable-mmap          don't use mmap],
746 [if test "$enableval" = "no"; then
747   ac_cv_func_mmap_fixed_mapped=no
748  fi])
750 aix_dynamic_afs=yes
751 AC_ARG_ENABLE(dynamic-afs,
752 [  --disable-dynamic-afs   don't use loaded AFS library with AIX],[
753 if test "$enableval" = "no"; then
754         aix_dynamic_afs=no
758 syscallhack=yes
759 AC_ARG_ENABLE(linux-syscall,
760         AC_HELP_STRING([--disable-linux-syscall],[don't modify the syscall table on linux]),
761 [if test "$enableval" = "no" ; then
762         syscallhack=no
763 fi])
764 if test "$syscallhack" = "yes"; then
765         AC_DEFINE(SYSCALLHACK, 1, [define to enable syscall table modification on linux])
768 grouppags=yes
769 AC_ARG_ENABLE(linux-group-pags,
770         AC_HELP_STRING([--disable-linux-group-pags],[don't use groups for pags on linux]),
771 [if test "$enableval" = "no" ; then
772         grouppags=no
773 fi])
774 if test "$grouppags" = "yes"; then
775         AC_DEFINE(GROUPPAGS, 1, [define to enable groups-based pags on linux])
778 AC_CHECK_LFS
779 AC_CHECK_GLIBC
781 AC_SUBST(LIB_readline)
782 AC_SUBST(INCLUDE_readline)
783 AC_SUBST(editline_OBJS)dnl
784 if test "$editline_OBJS" != ""; then
785   editline_dir=editline
787 AC_SUBST(editline_dir)
789 AC_SUBST(GCC)
790 AC_SUBST(CFLAGS)
791 AC_SUBST(LDFLAGS)
792 AC_SUBST(KERNEL_INCLUDE)
793 AC_SUBST(KERNEL_SRCS)
794 AC_SUBST(KERNEL_HDRS)
795 AC_SUBST(KERNEL_CPPFLAGS)
796 AC_SUBST(KERNEL_CFLAGS)
797 AC_SUBST(KERNEL_LD_FLAGS)
798 AC_SUBST(KERNEL_CC)
799 AC_SUBST(KERNEL_LD)
800 AC_SUBST(MODLOAD)
801 AC_SUBST(MODUNLOAD)
802 AC_SUBST(MODULE)
803 AC_SUBST(NNPFS_SUBDIR)
804 AC_SUBST(NNPFS_SRCS)
805 AC_SUBST(RXKAD_LIBS)
806 AC_SUBST(ARLACACHEDIR)
807 AC_SUBST(ARLACONFFILE)
808 AC_SUBST(MILKO_ROOT)
809 AC_FUNC_MMAP
812 dnl Various checks for headers and their contents
815 AC_HEADER_STDC
816 AC_HEADER_TIME
818 AC_CHECK_HEADERS([                              \
819                 arpa/inet.h                     \
820                 arpa/nameser.h                  \
821                 dbm.h                           \
822                 db.h                            \
823                 dirent.h                        \
824                 err.h                           \
825                 errno.h                         \
826                 elflib/nlist.h                  \
827                 fcntl.h                         \
828                 fnmatch.h                       \
829                 gdbm/ndbm.h                     \
830                 glob.h                          \
831                 ifaddrs.h                       \
832                 libelf/nlist.h                  \
833                 limits.h                        \
834                 machine/asm.h                   \
835                 machine/regdef.h                \
836                 mach/alpha/asm.h                \
837                 ndbm.h                          \
838                 netdb.h                         \
839                 net/if_dl.h                     \
840                 net/if_types.h                  \
841                 netinet/in6.h                   \
842                 netinet/in6_machtypes.h         \
843                 netinet/in.h                    \
844                 nlist.h                         \
845                 openssl/ui.h                    \
846                 pwd.h                           \
847                 regdef.h                        \
848                 rpcsvc/dbm.h                    \
849                 shadow.h                        \
850                 stdint.h                        \
851                 sys/attr.h                      \
852                 sys/bitypes.h                   \
853                 sys/cdefs.h                     \
854                 sys/dir.h                       \
855                 sys/exec.h                      \
856                 sys/file.h                      \
857                 sys/ioccom.h                    \
858                 sys/ioctl.h                     \
859                 sys/inttypes.h                  \
860                 sys/libkern.h                   \
861                 sys/lkm.h                       \
862                 sys/lock.h                      \
863                 sys/mkdev.h                     \
864                 sys/mman.h                      \
865                 sys/module.h                    \
866                 sys/mutex.h                     \
867                 sys/param.h                     \
868                 sys/prctl.h                     \
869                 sys/poll.h                      \
870                 sys/pool.h                      \
871                 sys/queue.h                     \
872                 sys/resource.h                  \
873                 sys/sa.h                        \
874                 sys/select.h                    \
875                 sys/selinfo.h                   \
876                 sys/socket.h                    \
877                 sys/sockio.h                    \
878                 sys/stat.h                      \
879                 sys/statvfs.h                   \
880                 sys/statfs.h                    \
881                 sys/stdint.h                    \
882                 sys/sysent.h                    \
883                 sys/sysproto.h                  \
884                 sys/systm.h                     \
885                 sys/time.h                      \
886                 sys/types.h                     \
887                 sys/ubc.h                       \
888                 sys/utsname.h                   \
889                 sys/vfs.h                       \
890                 sys/vfs_proto.h                 \
891                 sys/vnode.h                     \
892                 sys/wait.h                      \
893                 vis.h                           \
894                 unistd.h                        \
895                 winsock.h                       \
898 AC_CHECK_HEADERS([net/if.h], , , [AC_INCLUDES_DEFAULT
899 #if HAVE_SYS_SOCKET_H
900 #include <sys/socket.h>
901 #endif])
903 AC_CHECK_HEADERS(netinet6/in6_var.h, , , [AC_INCLUDES_DEFAULT
904 #ifdef HAVE_NETINET6_IN6_H
905 #include <netinet6/in6.h>
906 #endif
909 AC_CHECK_HEADERS([                      \
910                 sys/proc.h              \
911                 sys/mount.h             \
912                 sys/signalvar.h         \
913                 sys/user.h              \
914 ], , , [AC_INCLUDES_DEFAULT
915 #ifdef HAVE_SYS_PARAM_H
916 #include <sys/param.h>
917 #endif
920 AC_CHECK_HEADERS([                      \
921                 sys/syscallargs.h       \
922 ], , , [AC_INCLUDES_DEFAULT
923 #ifdef HAVE_SYS_PARAM_H
924 #include <sys/param.h>
925 #endif
926 #ifdef HAVE_SYS_MOUNT_H
927 #include <sys/mount.h>
928 #endif
929 #ifdef HAVE_SYS_SA_H
930 #include <sys/sa.h>
931 #endif
934 AC_CHECK_HEADERS([resolv.h], , , [AC_INCLUDES_DEFAULT
935 #ifdef HAVE_SYS_TYPES_H
936 #include <sys/types.h>
937 #endif
938 #ifdef HAVE_NETINET_IN_H
939 #include <netinet/in.h>
940 #endif
941 #ifdef HAVE_ARPA_NAMESER_H
942 #include <arpa/nameser.h>
943 #endif
946 AC__EXTENSIONS__
949 dnl These need to before roken checks
952 AM_CONDITIONAL(have_err_h, test "$ac_cv_header_err_h" = yes)
953 AM_CONDITIONAL(have_fnmatch_h, test "$ac_cv_header_fnmatch_h" = yes)
954 AM_CONDITIONAL(have_ifaddrs_h, test "$ac_cv_header_ifaddrs_h" = yes)
955 AM_CONDITIONAL(have_vis_h, test "$ac_cv_header_vis_h" = yes)
956 AM_CONDITIONAL(have_glob_h, test "$ac_cv_header_glob_h" = yes)
957 AM_CONDITIONAL(do_roken_rename, true)
960 dnl and this is for kernel header files
963 save_CPPFLAGS="${CPPFLAGS}"
964 CPPFLAGS="${KERNEL_CPPFLAGS}"
966 AC_CHECK_HEADERS([                              \
967                 miscfs/genfs/genfs.h            \
968                 miscfs/syncfs/syncfs.h          \
969                 uvm/uvm_extern.h                \
970                 vm/vm.h                         \
971                 vm/vm_extern.h                  \
972                 vm/vm_object.h                  \
973                 vm/vm_pager.h                   \
974                 vm/vm_zone.h                    \
975                 vm/vnode_pager.h                \
976                 vm/uma.h                        \
977 ], , , -)
979 CPPFLAGS="${save_CPPFLAGS}"
983 dnl Check for endian-ness
985 KRB_C_BIGENDIAN
988 dnl check for const
991 AC_C_CONST
994 dnl Check for inline
997 AC_C_INLINE
1000 dnl Check for __FUNCTION__
1003 AC_C___FUNCTION__
1006 dnl Check for __attribute__
1009 AC_C___ATTRIBUTE__
1012 dnl roken stuff
1015 AC_ENABLE_SHARED(no)
1016 AC_PROG_LIBTOOL
1018 rk_DB
1021 # It is said that the kerberos junk needs to be after ac_check_roken,
1022 # but I didn't notice that, so we include some to have a good place
1023 # to check for existing roken in 
1026 AC_CHECK_KERBEROS(54auto)
1027 AC_CHECK_KAFS
1028 #end krb, continue roken stuff
1030 AC_CHECK_ROKEN()
1032 # oh, and put sl here, too
1033 AC_CHECK_SL
1034 # done!
1036 if test "X$ac_cv_arla_with_roken" = "Xyes" ; then
1037    rk_ROKEN(lib/roken)
1038    #LIB_roken="\$(top_builddir)/lib/vers/libvers.la $LIB_roken"
1039 else
1040   dnl inlined parts of rk_ROKEN, seems to be needed by sl and rx sometimes.
1041   AC_BROKEN([                                   \
1042         err                                     \
1043         errx                                    \
1044         strdup                                  \
1045         strtok_r                                \
1046         strupr                                  \
1047         warn                                    \
1048         warnx                                   \
1049   ])
1051 AM_CONDITIONAL(ARLA_LOCAL_ROKEN, test X$ac_cv_arla_with_roken = Xyes)
1053 rk_CHECK_MAN
1055 if test "X$ac_cv_found_krb5" = "Xyes" ; then
1056   RXKAD_LIBS_extra="$RXKAD_LIBS_extra $KRB5_LIB_FLAGS"
1059 if test "X$RXKAD_LIBS_extra" != "X" ; then
1060   RXKAD_LIBS="\$(top_builddir)/rxkad/librxkad.la $RXKAD_LIBS_extra"
1062 AM_CONDITIONAL(RXKAD, test "X$RXKAD_LIBS_extra" != "X")
1064 dnl AC_TYPE_KRB_PRINCIPAL
1065 dnl AC_FUNC_KRB_GET_ERR_TEXT
1066 dnl AC_FUNC_KRB_GET_DEFAULT_TKT_ROOT
1067 dnl AC_FUNC_KRB_GET_DEFAULT_PRINCIPAL
1068 dnl AC_FUNC_KRB_KDCTIMEOFDAY
1069 AC_FUNC_KAFS_SETTOKEN_RXKAD
1072 # check for tf_util
1075 dnl AC_FIND_FUNC_NO_LIBS2(tf_init, "", , , [$KRB4_LIB_FLAGS])
1076 dnl 
1077 dnl if test "$ac_cv_func_tf_init" = yes; then
1078 dnl     APPL_SUBDIRS="$APPL_SUBDIRS kalog"
1079 dnl fi
1080 dnl 
1083 dnl Check for strange operating systems that you need to handle differently
1086 AC_KRB_SYS_AIX
1088 if test "$krb_cv_sys_aix" = yes ;then
1089         if test "$aix_dynamic_afs" = yes; then
1090                 AFS_EXTRA_OBJS='$(srcdir)/afsl.exp dlfcn.o'
1091                 AFS_EXTRA_LIBS=afslib.so
1092                 # this works differently in AIX <=3 and 4
1093                 if test `uname -v` = 4 ; then
1094                         AFS_EXTRA_LD="-bnoentry"
1095                 else
1096                         AFS_EXTRA_LD="-e _nostart"
1097                 fi
1098                 AFS_EXTRA_DEFS=
1099                 AIX_EXTRA_KAFS="-lld"
1100         else
1101                 AFS_EXTRA_OBJS='$(srcdir)/afsl.exp afslib.o'
1102                 AFS_EXTRA_LIBS=
1103                 AFS_EXTRA_DEFS='-DSTATIC_AFS_SYSCALLS'
1104                 AIX_EXTRA_KAFS=
1105         fi
1106         AC_SUBST(AFS_EXTRA_OBJS)dnl
1107         AC_SUBST(AFS_EXTRA_LIBS)dnl
1108         AC_SUBST(AFS_EXTRA_LD)dnl
1109         AC_SUBST(AFS_EXTRA_DEFS)dnl
1110         AC_SUBST(AIX_EXTRA_KAFS)dnl
1114 dnl Check for struct winsize
1117 AC_KRB_STRUCT_WINSIZE
1120 dnl Various checks for libraries and their contents
1123 AC_FIND_FUNC(syslog, syslog)
1126 dnl System V is have misplaced the socket routines, should really be in libc
1129 AC_FIND_FUNC(socket, socket)
1130 AC_FIND_FUNC(gethostbyname, nsl)
1131 AC_FIND_FUNC(gethostbyname2, inet6 ip6)
1133 dnl we don't actually use v6 functions in this code, but some generic
1134 dnl functions such as getnameinfo et al can reside in libraries that are
1135 dnl found by this macro
1137 AC_KRB_IPV6
1139 AC_FIND_FUNC(res_search, resolv,
1141 #include <stdio.h>
1142 #ifdef HAVE_SYS_TYPES_H
1143 #include <sys/types.h>
1144 #endif
1145 #ifdef HAVE_NETINET_IN_H
1146 #include <netinet/in.h>
1147 #endif
1148 #ifdef HAVE_ARPA_NAMESER_H
1149 #include <arpa/nameser.h>
1150 #endif
1151 #ifdef HAVE_RESOLV_H
1152 #include <resolv.h>
1153 #endif
1155 [0,0,0,0,0])
1157 AC_FIND_FUNC(res_init, resolv,
1159 #include <stdio.h>
1160 #ifdef HAVE_SYS_TYPES_H
1161 #include <sys/types.h>
1162 #endif
1163 #ifdef HAVE_NETINET_IN_H
1164 #include <netinet/in.h>
1165 #endif
1166 #ifdef HAVE_ARPA_NAMESER_H
1167 #include <arpa/nameser.h>
1168 #endif
1169 #ifdef HAVE_RESOLV_H
1170 #include <resolv.h>
1171 #endif
1175 AC_FIND_FUNC(dn_expand, resolv,
1177 #include <stdio.h>
1178 #ifdef HAVE_SYS_TYPES_H
1179 #include <sys/types.h>
1180 #endif
1181 #ifdef HAVE_NETINET_IN_H
1182 #include <netinet/in.h>
1183 #endif
1184 #ifdef HAVE_ARPA_NAMESER_H
1185 #include <arpa/nameser.h>
1186 #endif
1187 #ifdef HAVE_RESOLV_H
1188 #include <resolv.h>
1189 #endif
1191 [0,0,0,0,0])
1193 AC_BROKEN_SNPRINTF
1195 AC_CHECK_FUNCS(strtoll strtoq getrusage thr_yield)
1197 AC_EGREP_HEADER(sigaction, signal.h,
1198         AC_DEFINE(HAVE_POSIX_SIGNALS, 1, [define if you have sigaction]))
1200 save_CPPFLAGS="${CPPFLAGS}"
1201 AC_HAVE_TYPES([int8_t int16_t int32_t int64_t])
1202 AC_HAVE_TYPES([int16 int32])
1203 AC_HAVE_TYPES([u_int8_t u_int16_t u_int32_t u_int64_t])
1204 AC_HAVE_TYPES([uint8_t uint16_t uint32_t uint64_t])
1205 AC_HAVE_TYPES([u_int16 u_int32])
1206 AC_HAVE_TYPES([bool ssize_t])
1207 AC_HAVE_TYPES([register_t])     dnl really only needed for bsd nnpfs
1208 AC_HAVE_TYPES([uintptr_t])      dnl really only needed for bsd nnpfs
1209 AC_HAVE_TYPES([intptr_t])
1210 AC_HAVE_TYPES([off64_t])
1211 AC_CHECK_HEADERS([ktypes.h com_err.h et/com_err.h])
1212 COMERR_CPPFLAGS="$CPPFLAGS"
1213 AC_SUBST(COMERR_CPPFLAGS)
1214 CPPFLAGS="${save_CPPFLAGS}"
1216 AC_TYPE_SIGNAL
1219 dnl check for old libkafs
1222 dnl AC_FIND_FUNC_NO_LIBS2(krb_afslog_uid, "", , , [$KAFS_LIBS $KRB4_LIB_FLAGS])
1225 AC_CHECK_FUNC(localtime_r,[
1226 AC_DEFINE([HAVE_LOCALTIME_R], 1, [define if there exists a localtime_r])])
1229 # libroken
1232 AC_CHECK_FUNCS(getfh fhopen)
1234 AC_CHECK_FUNCS(getattrlist setattrlist)
1236 AC_CHECK_FUNCS(statvfs)
1238 rk_CHECK_VAR(optreset,[#include <stdlib.h>])dnl
1241 dnl prototypes
1244 AC_NEED_PROTO([
1245 #include <sys/types.h> 
1246 #include <sys/time.h>
1247 #ifdef HAVE_UNISTD_H
1248 #include <unistd.h>
1249 #endif
1250 #ifdef HAVE_WINSOCK_H
1251 #include <winsock.h>
1252 #endif
1253 ], 
1254 select)
1256 AC_DIRENT_SYS_DIR_H
1258 AC_HAVE_STRUCT_FIELD(struct dirent, d_type,
1259 [#ifdef HAVE_SYS_TYPES_H
1260 #include <sys/types.h>
1261 #endif
1262 #include <dirent.h>
1266 dnl Check for sa_len in sys/socket.h
1269 AC_HAVE_STRUCT_FIELD(struct sockaddr,
1270 sa_len,
1271 [#include <sys/types.h>
1272 #include <sys/socket.h>])
1275 dnl Check for sin_len
1278 AC_HAVE_STRUCT_FIELD(struct sockaddr_in,
1279 sin_len,
1280 [#include <sys/types.h>
1281 #include <sys/socket.h>
1282 #ifdef HAVE_NETINET_IN_H
1283 #include <netinet/in.h>
1284 #endif])
1287 dnl check for strange as stuff on solaris
1290 case "$target_os" in
1291 solaris*)
1292   AC_CACHE_CHECK(if as supports .register, ac_cv_prog_as_register,[
1293   cat > conftest.s <<EOF
1294         .register       %g2, #scratch
1295         .register       %g3, #scratch
1296         .register       %g6, #scratch
1297         .register       %g7, #scratch
1299   if $AS conftest.s >/dev/null 2>&1; then
1300     ac_cv_prog_as_register=yes
1301   else
1302     ac_cv_prog_as_register=no
1303   fi
1304   rm -f conftest.s a.out
1306   if test "$ac_cv_prog_as_register" = "yes"; then
1307     AC_DEFINE([PROG_AS_UNDERSTANDS_REGISTER], 1,
1308         [define this if your as understands .register])
1309   fi
1310 esac
1313 dnl kernel checks
1317 dnl bsd style
1320 if test "$NNPFS_SUBDIR" = "bsd" -o "$NNPFS_SUBDIR" = "freebsd" ; then
1322 AC_CONFIG_FILES([nnpfs/bsd/Makefile nnpfs/bsd/bin/Makefile nnpfs/freebsd/Makefile])
1324 AC_ELF_OBJECT_FORMAT
1325 AC_KERNEL
1327 AC_CHECK_KERNEL_FUNCS([                         \
1328 cdevsw_add                                      \
1329 debuglockmgr                                    \
1330 findcdev                                        \
1331 lockmgr                                         \
1332 vop_revoke                                      \
1333 vop_stdpathconf                                 \
1334 genfs_mmap                                      \
1335 genfs_revoke                                    \
1336 lf_advlock                                      \
1337 vfs_opv_init                                    \
1338 vfs_opv_init_default                            \
1339 vfs_opv_init_explicit                           \
1340 vfs_add_vnodeops                                \
1341 vfs_attach                                      \
1342 vfs_deallocate_syncvnode                        \
1343 vfs_register                                    \
1344 vfs_getvfs                                      \
1345 vgonel                                          \
1346 zfree                                           \
1347 zfreei                                          \
1348 uma_zfree_arg                                   \
1349 vfs_cache_lookup                                \
1350 vnode_pager_generic_putpages                    \
1351 vnode_pager_generic_getpages                    \
1352 vnode_pager_setsize                             \
1353 devtoname                                       \
1354 udev2dev                                        \
1355 snprintf                                        \
1356 suser_ucred                                     \
1357 namei_hash                                      \
1358 nosys                                           \
1359 sys_nosys                                       \
1360 sys_lkmnosys                                    \
1361 cache_purgevfs                                  \
1363 AC_CHECK_KERNEL_FUNC(memcpy, [0,0,0])
1365 AC_BSD_HEADER_VNODE_IF_H
1367 AC_KERNEL_NEED_PROTO([
1368 #ifdef HAVE_SYS_TYPES_H
1369 #include <sys/types.h>
1370 #endif
1371 #ifdef HAVE_SYS_PARAM_H
1372 #include <sys/param.h>
1373 #endif
1374 #ifdef HAVE_SYS_TIME_H
1375 #include <sys/time.h>
1376 #endif
1377 #ifdef HAVE_SYS_PROC_H
1378 #include <sys/proc.h>
1379 #endif
1380 #ifdef HAVE_SYS_VNODE_H
1381 #include <sys/vnode.h>
1382 #endif
1384 vgonel)
1386 AC_KERNEL_NEED_PROTO([
1387 #ifdef HAVE_SYS_TYPES_H
1388 #include <sys/types.h>
1389 #endif
1390 #ifdef HAVE_SYS_PARAM_H
1391 #include <sys/param.h>
1392 #endif
1393 #ifdef HAVE_SYS_TIME_H
1394 #include <sys/time.h>
1395 #endif
1396 #ifdef HAVE_SYS_PROC_H
1397 #include <sys/proc.h>
1398 #endif
1399 #include <sys/signal.h>
1400 #include <sys/signalvar.h>
1402 issignal)
1404 AC_KERNEL_NEED_PROTO([
1405 #ifdef HAVE_SYS_TYPES_H
1406 #include <sys/types.h>
1407 #endif
1408 #ifdef HAVE_SYS_PARAM_H
1409 #include <sys/param.h>
1410 #endif
1411 #ifdef HAVE_SYS_TIME_H
1412 #include <sys/time.h>
1413 #endif
1414 #ifdef HAVE_SYS_PROC_H
1415 #include <sys/proc.h>
1416 #endif
1417 #ifdef HAVE_SYS_VNODE_H
1418 #include <sys/vnode.h>
1419 #endif
1420 #ifdef HAVE_SYS_VFS_PROTO_H
1421 #include <sys/vfs_proto.h>
1422 #endif
1424 vn_writechk)
1426 AC_KERNEL_NEED_PROTO([
1427 #ifdef HAVE_SYS_TYPES_H
1428 #include <sys/types.h>
1429 #endif
1430 #ifdef HAVE_SYS_PARAM_H
1431 #include <sys/param.h>
1432 #endif
1433 #ifdef HAVE_SYS_LIBKERN_H
1434 #include <sys/libkern.h>
1435 #endif
1436 #ifdef HAVE_SYS_SYSTM_H
1437 #include <sys/systm.h>
1438 #endif
1440 strncmp)
1442 AC_CHECK_KERNEL_VAR(doforce, int)
1443 AC_CHECK_KERNEL_VAR(aout_sysent, struct sysent*,[#include <sys/systm.h>])
1444 AC_CHECK_KERNEL_VOP_T
1445 AC_BSD_FUNC_VFS_OBJECT_CREATE
1446 AC_BSD_FUNC_VOP_LOCK
1447 AC_BSD_FUNC_VFS_BUSY
1448 AC_BSD_FUNC_VGET
1449 AC_BSD_FUNC_SUSER
1450 AC_BSD_FUNC_VFS_GETNEWFSID
1451 AC_BSD_FUNC_LOCKMGR
1452 AC_BSD_FUNC_LOCKSTATUS
1453 AC_BSD_FUNC_SELRECORD
1454 AC_BSD_FHTOVP
1456 AC_CHECK_DIRSIZ
1459 dnl Find out if have have proc.p_sigmask
1462 AC_HAVE_STRUCT_FIELD(
1463 struct proc,
1464 p_sigmask,
1465 [#ifdef HAVE_SYS_TYPES_H
1466 #include <sys/types.h>
1467 #endif
1468 #ifdef HAVE_SYS_PARAM_H
1469 #include <sys/param.h>
1470 #endif
1471 #ifdef HAVE_SYS_TIME_H
1472 #include <sys/time.h>
1473 #endif
1474 #ifdef HAVE_SYS_PROC_H
1475 #include <sys/proc.h>
1476 #endif])
1478 AC_HAVE_STRUCT_FIELD(
1479 struct proc,
1480 p_sigctx,
1481 [#ifdef HAVE_SYS_TYPES_H
1482 #include <sys/types.h>
1483 #endif
1484 #ifdef HAVE_SYS_PARAM_H
1485 #include <sys/param.h>
1486 #endif
1487 #ifdef HAVE_SYS_TIME_H
1488 #include <sys/time.h>
1489 #endif
1490 #ifdef HAVE_SYS_PROC_H
1491 #include <sys/proc.h>
1492 #endif])
1494 AC_HAVE_KERNEL_STRUCT_FIELD([
1495 #ifdef HAVE_SYS_TYPES_H
1496 #include <sys/types.h>
1497 #endif
1498 #ifdef HAVE_SYS_PARAM_H
1499 #include <sys/param.h>
1500 #endif
1501 #ifdef HAVE_SYS_TIME_H
1502 #include <sys/time.h>
1503 #endif
1504 #ifdef HAVE_SYS_PROC_H
1505 #include <sys/proc.h>
1506 #endif
1507 #ifdef HAVE_SYS_VNODE_H
1508 #include <sys/vnode.h>
1509 #endif
1510 #ifdef HAVE_SYS_MOUNT_H
1511 #include <sys/mount.h>
1512 #endif
1514 mount,
1515 struct vnode *,
1516 mnt_syncer)
1518 AC_HAVE_KERNEL_STRUCT_FIELD([
1519 #ifdef HAVE_SYS_TYPES_H
1520 #include <sys/types.h>
1521 #endif
1522 #ifdef HAVE_SYS_PARAM_H
1523 #include <sys/param.h>
1524 #endif
1525 #ifdef HAVE_SYS_TIME_H
1526 #include <sys/time.h>
1527 #endif
1528 #ifdef HAVE_SYS_PROC_H
1529 #include <sys/proc.h>
1530 #endif
1531 #ifdef HAVE_SYS_VNODE_H
1532 #include <sys/vnode.h>
1533 #endif
1534 #ifdef HAVE_SYS_MOUNT_H
1535 #include <sys/mount.h>
1536 #endif
1538 mount,
1539 qaddr_t,
1540 m_info)
1542 AC_HAVE_KERNEL_STRUCT_FIELD([
1543 #include <sys/types.h>
1544 #include <sys/param.h>
1545 #include <sys/mount.h>
1547 vfsconf,
1548 int,
1549 vfc_refcount)
1551 AC_HAVE_KERNEL_STRUCT_FIELD([
1552 #include <sys/types.h>
1553 #include <sys/param.h>
1554 #include <sys/mount.h>
1556 vfsconf,
1557 int (*)(void),
1558 vfc_mountroot)
1560 AC_HAVE_KERNEL_STRUCT_FIELD([
1561 #include <sys/types.h>
1562 #ifdef HAVE_SYS_CDEFS_H
1563 #include <sys/cdefs.h>
1564 #endif
1565 #include <sys/uio.h>
1567 uio,
1568 struct proc *,
1569 uio_procp)
1571 AC_HAVE_KERNEL_STRUCT_FIELD([
1572 #include <sys/types.h>
1573 #include <sys/param.h>
1574 #include <sys/mount.h>
1576 vfsops,
1577 struct vnodeopv_desc **,
1578 vfs_opv_descs)
1580 AC_HAVE_KERNEL_STRUCT_FIELD([
1581 #include <sys/types.h>
1582 #include <sys/param.h>
1583 #include <sys/mount.h>
1585 vfsops,
1586 char *,
1587 vfs_name)
1589 AC_HAVE_KERNEL_STRUCT_FIELD([
1590 #include <sys/types.h>
1591 #include <sys/param.h>
1592 #include <sys/mount.h>
1594 vfsops,
1595 void *,
1596 vfs_uninit)
1598 AC_HAVE_KERNEL_STRUCT_FIELD([
1599 #include <sys/types.h>
1600 #include <sys/param.h>
1601 #include <sys/mount.h>
1603 vfsops,
1604 void *,
1605 vfs_reinit)
1607 AC_HAVE_KERNEL_STRUCT_FIELD([
1608 #include <sys/types.h>
1609 #include <sys/param.h>
1610 #include <sys/mount.h>
1612 vfsops,
1613 struct sysctl_oid *,
1614 vfs_oid)
1616 AC_HAVE_KERNEL_STRUCT_FIELD([
1617 #include <sys/types.h>
1618 #include <sys/param.h>
1619 #include <sys/mount.h>
1621 vfsops,
1622 int,
1623 vfs_done)
1625 save_test_KERNEL_CFLAGS="$test_KERNEL_CFLAGS"
1626 test_KERNEL_CFLAGS="$test_KERNEL_CFLAGS $BSD_WERROR"
1628 AC_HAVE_KERNEL_STRUCT_FIELD([
1629 #include <sys/types.h>
1630 #include <sys/param.h>
1631 #include <sys/time.h>
1632 #include <sys/proc.h>
1633 #include <sys/mount.h>
1634 typedef int (*mount_type)(struct mount *, const char *, void *, struct nameidata *, struct proc *);
1636 vfsops,
1637 mount_type,
1638 vfs_mount)
1640 test_KERNEL_CFLAGS="$save_test_KERNEL_CFLAGS"
1642 AC_HAVE_KERNEL_STRUCT_FIELD([
1643 #include <sys/types.h>
1644 #include <sys/param.h>
1645 #include <sys/mount.h>
1647 vfsops,
1648 void *,
1649 vfs_checkexp)
1651 AC_HAVE_KERNEL_STRUCT_FIELD([
1652 #include <sys/types.h>
1653 #include <sys/param.h>
1654 #include <sys/mount.h>
1656 vfsops,
1657 void *,
1658 vfs_wassysctl)
1660 AC_HAVE_KERNEL_STRUCT_FIELD([
1661 #include <sys/types.h>
1662 #include <sys/param.h>
1663 #include <sys/mount.h>
1665 vfsops,
1666 void *,
1667 vfs_snapshot)
1669 AC_HAVE_KERNEL_STRUCT_FIELD([
1670 #include <sys/types.h>
1671 #include <sys/param.h>
1672 #include <sys/mount.h>
1674 vfsops,
1675 void *,
1676 vfs_extattrctl)
1678 AC_HAVE_KERNEL_STRUCT_FIELD([
1679 #include <sys/types.h>
1680 #include <sys/param.h>
1681 #include <sys/mount.h>
1683 vfsops,
1684 void *,
1685 vfs_mountroot)
1687 AC_HAVE_KERNEL_STRUCT_FIELD([
1688 #include <sys/types.h>
1689 #include <sys/param.h>
1690 #include <sys/mount.h>
1692 vfsops,
1693 void *,
1694 vfs_swapvp)
1696 AC_HAVE_KERNEL_STRUCT_FIELD([
1697 #include <sys/types.h>
1698 #include <sys/param.h>
1699 #include <sys/mount.h>
1701 vfsops,
1702 void *,
1703 vfs_smoothsync)
1705 AC_HAVE_KERNEL_STRUCT_FIELD([
1706 #include <sys/types.h>
1707 #include <sys/systm.h>
1708 #ifdef HAVE_SYS_SYSENT_H
1709 #include <sys/sysent.h>
1710 #endif
1712 sysent,
1713 int,
1714 sy_flags)
1716 AC_HAVE_KERNEL_STRUCT_FIELD([
1717 #include <sys/types.h>
1718 #include <sys/systm.h>
1719 #ifdef HAVE_SYS_SYSENT_H
1720 #include <sys/sysent.h>
1721 #endif
1723 sysent,
1724 unsigned char,
1725 sy_info)
1727 AC_HAVE_KERNEL_STRUCT_FIELD([
1728 #ifdef HAVE_SYS_TYPES_H
1729 #include <sys/types.h>
1730 #endif
1731 #ifdef HAVE_SYS_PARAM_H
1732 #include <sys/param.h>
1733 #endif
1734 #ifdef HAVE_SYS_TIME_H
1735 #include <sys/time.h>
1736 #endif
1737 #ifdef HAVE_SYS_PROC_H
1738 #include <sys/proc.h>
1739 #endif
1740 #ifdef HAVE_SYS_VNODE_H
1741 #include <sys/vnode.h>
1742 #endif
1743 #ifdef HAVE_SYS_MOUNT_H
1744 #include <sys/mount.h>
1745 #endif
1747 vnode,
1748 u_long,
1749 v_id)
1751 AC_HAVE_KERNEL_STRUCT_FIELD([
1752 #include <sys/types.h>
1753 #include <sys/param.h>
1754 #include <sys/vnode.h>
1756 vop_fsync_args,
1757 int,
1758 a_flags)
1760 AC_HAVE_KERNEL_STRUCT_FIELD([
1761 #include <sys/types.h>
1762 #include <sys/param.h>
1763 #include <sys/vnode.h>
1765 vop_putpages_args,
1766 int,
1767 a_sync)
1769 AC_HAVE_KERNEL_STRUCT_FIELD([
1770 #include <sys/types.h>
1771 #include <sys/param.h>
1772 #include <sys/vnode.h>
1774 vop_getpages_args,
1775 voff_t,
1776 a_offset)
1778 AC_HAVE_KERNEL_DEF([
1779 #ifdef HAVE_SYS_TYPES_H
1780 #include <sys/types.h>
1781 #endif
1782 #ifdef HAVE_SYS_PARAM_H
1783 #include <sys/param.h>
1784 #endif
1785 #ifdef HAVE_SYS_MOUNT_H
1786 #include <sys/mount.h>
1787 #endif
1788 #ifdef HAVE_SYS_TIME_H
1789 #include <sys/time.h>
1790 #endif
1791 #ifdef HAVE_SYS_PROC_H
1792 #include <sys/proc.h>
1793 #endif
1794 #ifdef HAVE_SYS_SA_H
1795 #include <sys/sa.h>
1796 #endif
1797 #ifdef HAVE_SYS_SYSPROTO_H
1798 #include <sys/sysproto.h>
1799 #endif
1800 #ifdef HAVE_SYS_SYSCALLARGS_H
1801 #include <sys/syscallargs.h>
1802 #endif
1804 struct setgroups_args)
1806 AC_HAVE_KERNEL_DEF([
1807 #ifdef HAVE_SYS_TYPES_H
1808 #include <sys/types.h>
1809 #endif
1810 #ifdef HAVE_SYS_PARAM_H
1811 #include <sys/param.h>
1812 #endif
1813 #ifdef HAVE_SYS_MOUNT_H
1814 #include <sys/mount.h>
1815 #endif
1816 #ifdef HAVE_SYS_TIME_H
1817 #include <sys/time.h>
1818 #endif
1819 #ifdef HAVE_SYS_PROC_H
1820 #include <sys/proc.h>
1821 #endif
1822 #ifdef HAVE_SYS_SA_H
1823 #include <sys/sa.h>
1824 #endif
1825 #ifdef HAVE_SYS_SYSPROTO_H
1826 #include <sys/sysproto.h>
1827 #endif
1828 #ifdef HAVE_SYS_SYSCALLARGS_H
1829 #include <sys/syscallargs.h>
1830 #endif
1832 struct sys_setgroups_args)
1834 AC_HAVE_KERNEL_STRUCT_FIELD([
1835 #include <sys/types.h>
1836 #include <sys/time.h>
1837 #ifdef HAVE_SYS_CDEFS_H
1838 #include <sys/cdefs.h>
1839 #endif
1840 #include <sys/conf.h>
1842 cdevsw,
1843 d_stop_t *,
1844 d_stop)
1846 AC_HAVE_KERNEL_STRUCT_FIELD([
1847 #include <sys/types.h>
1848 #include <sys/time.h>
1849 #ifdef HAVE_SYS_CDEFS_H
1850 #include <sys/cdefs.h>
1851 #endif
1852 #include <sys/conf.h>
1854 cdevsw,
1855 d_reset_t *,
1856 d_reset)
1858 AC_HAVE_KERNEL_STRUCT_FIELD([
1859 #include <sys/types.h>
1860 #include <sys/time.h>
1861 #ifdef HAVE_SYS_CDEFS_H
1862 #include <sys/cdefs.h>
1863 #endif
1864 #include <sys/conf.h>
1866 cdevsw,
1867 d_reset_t *,
1868 d_bogoreset)
1870 AC_HAVE_KERNEL_STRUCT_FIELD([
1871 #include <sys/types.h>
1872 #include <sys/time.h>
1873 #ifdef HAVE_SYS_CDEFS_H
1874 #include <sys/cdefs.h>
1875 #endif
1876 #include <sys/conf.h>
1878 cdevsw,
1879 d_kqfilter_t *,
1880 d_kqfilter)
1882 AC_HAVE_KERNEL_STRUCT_FIELD([
1883 #include <sys/types.h>
1884 #include <sys/time.h>
1885 #ifdef HAVE_SYS_CDEFS_H
1886 #include <sys/cdefs.h>
1887 #endif
1888 #include <sys/conf.h>
1890 cdevsw,
1891 size_t,
1892 d_psize)
1894 AC_HAVE_KERNEL_STRUCT_FIELD([
1895 #include <sys/types.h>
1896 #include <sys/time.h>
1897 #ifdef HAVE_SYS_CDEFS_H
1898 #include <sys/cdefs.h>
1899 #endif
1900 #include <sys/conf.h>
1902 cdevsw,
1903 d_devtotty_t *,
1904 d_devtotty)
1906 AC_HAVE_KERNEL_STRUCT_FIELD([
1907 #include <sys/types.h>
1908 #include <sys/time.h>
1909 #ifdef HAVE_SYS_CDEFS_H
1910 #include <sys/cdefs.h>
1911 #endif
1912 #include <sys/conf.h>
1914 cdevsw,
1915 d_parms_t *,
1916 d_bogoparms)
1918 AC_HAVE_KERNEL_STRUCT_FIELD([
1919 #include <sys/types.h>
1920 #include <sys/time.h>
1921 #ifdef HAVE_SYS_CDEFS_H
1922 #include <sys/cdefs.h>
1923 #endif
1924 #include <sys/conf.h>
1926 cdevsw,
1927 void *,
1928 d_spare)
1930 AC_HAVE_KERNEL_STRUCT_FIELD([
1931 #include <sys/types.h>
1932 #include <sys/time.h>
1933 #ifdef HAVE_SYS_CDEFS_H
1934 #include <sys/cdefs.h>
1935 #endif
1936 #include <sys/conf.h>
1938 cdevsw,
1939 d_mmap_t,
1940 d_mmap)
1942 AC_HAVE_KERNEL_STRUCT_FIELD([
1943 #include <sys/types.h>
1944 #include <sys/time.h>
1945 #ifdef HAVE_SYS_CDEFS_H
1946 #include <sys/cdefs.h>
1947 #endif
1948 #include <sys/conf.h>
1950 cdevsw,
1951 d_strategy_t,
1952 d_strategy)
1954 AC_HAVE_KERNEL_STRUCT_FIELD([
1955 #include <sys/types.h>
1956 #include <sys/time.h>
1957 #ifdef HAVE_SYS_CDEFS_H
1958 #include <sys/cdefs.h>
1959 #endif
1960 #include <sys/conf.h>
1962 cdevsw,
1963 dumper_t,
1964 d_dump)
1966 AC_HAVE_KERNEL_STRUCT_FIELD([
1967 #include <sys/types.h>
1968 #include <sys/time.h>
1969 #ifdef HAVE_SYS_CDEFS_H
1970 #include <sys/cdefs.h>
1971 #endif
1972 #include <sys/conf.h>
1974 cdevsw,
1975 int,
1976 d_maxio)
1978 AC_HAVE_KERNEL_STRUCT_FIELD([
1979 #include <sys/types.h>
1980 #include <sys/time.h>
1981 #ifdef HAVE_SYS_CDEFS_H
1982 #include <sys/cdefs.h>
1983 #endif
1984 #include <sys/conf.h>
1986 cdevsw,
1987 int,
1988 d_bmaj)
1990 AC_HAVE_KERNEL_STRUCT_FIELD([
1991 #include <sys/types.h>
1992 #ifdef HAVE_SYS_CDEFS_H
1993 #include <sys/cdefs.h>
1994 #endif
1995 #include <sys/uio.h>
1996 #include <sys/namei.h>
1998 componentname,
1999 u_long,
2000 cn_hash)
2002 AC_CHECK_BSD_UVM_ONLY
2005 dnl linux
2008 elif test "$NNPFS_SUBDIR" = "linux"; then
2010 AC_CONFIG_FILES([nnpfs/linux/Makefile nnpfs/linux/bin/Makefile])
2012 dnl Linux devfs check
2013 AC_CHECK_HEADERS(linux/devfs_fs.h linux/stddef.h)
2015 AC_HAVE_KERNEL_STRUCT_FIELD([
2016 #define __KERNEL__
2017 #include <asm/current.h>
2018 #include <linux/fs.h>
2020 ViceIoctl,
2021 caddr_t,
2024 AC_HAVE_LINUX_KERNEL_TYPES(int8_t int16_t int32_t int64_t)
2025 AC_HAVE_LINUX_KERNEL_TYPES(uint8_t uint16_t uint32_t uint64_t)
2027 AC_LINUX_FUNC_INIT_MUTEX
2028 AC_LINUX_GETATTR_THREE_ARGS
2030 elif test "$NNPFS_SUBDIR" = "solaris"; then
2032 AC_CONFIG_FILES([nnpfs/solaris/Makefile nnpfs/solaris/bin/Makefile])
2034 AC_HAVE_KERNEL_STRUCT_FIELD([
2035 #include <sys/types.h>
2036 #include <sys/vfs.h>
2037 typedef void (*freevfs_type)(struct vfs *);
2039 vfsops,
2040 freevfs_type,
2041 vfs_freevfs)
2043 elif test "$NNPFS_SUBDIR" = "irix"; then
2045 AC_CONFIG_FILES([nnpfs/irix/Makefile nnpfs/irix/bin/Makefile])
2047 elif test "$NNPFS_SUBDIR" = "aix"; then
2049 AC_CONFIG_FILES([nnpfs/aix/Makefile nnpfs/aix/bin/Makefile])
2051 fi # end of OS-specific tests
2054 dnl Global kernel checks
2057 AC_CHECK_KERNEL_FUNCS(strlcpy)
2060 dnl Arla configuration. Default values, overrided below if needed
2063 arla_AC_SUBST_VALUE(ARLA_CONF_HIGHVNODES,4000)
2064 arla_AC_SUBST_VALUE(ARLA_CONF_LOWVNODES,3000)
2065 arla_AC_SUBST_VALUE(ARLA_CONF_HIGHBYTES,1400M)
2066 arla_AC_SUBST_VALUE(ARLA_CONF_LOWBYTES,700M)
2068 dnl override section
2070 case "$target_os" in
2071     linux*|darwin*)
2072         ARLA_CONF_HIGHVNODES=40000
2073         ARLA_CONF_LOWVNODES=30000
2074         ;;
2075 esac
2078 # Libtool vs automake stuff
2081 LTLIBOBJS=`echo "$LIB@&t@OBJS" | sed 's/\.o/\.lo/g'`
2082 AC_SUBST(LTLIBOBJS)
2084 AH_BOTTOM([#ifdef ROKEN_RENAME
2085 #include "roken_rename.h"
2086 #endif])
2088 # Almost done....
2090 AC_OUTPUT(Makefile                              \
2091         include/Makefile                        \
2092         arlad/Makefile                          \
2093         lwp/Makefile                            \
2094         nnpfs/Makefile                          \
2095         rx/Makefile                             \
2096         rxdef/Makefile                          \
2097         rxgk/Makefile                           \
2098         rxkad/Makefile                          \
2099         appl/Makefile                           \
2100         appl/lib/Makefile                       \
2101         appl/aafs/Makefile                      \
2102         appl/aafs-perl/Makefile                 \
2103         appl/kalog/Makefile                     \
2104         appl/afsmgr/Makefile                    \
2105         appl/afsutils/Makefile                  \
2106         appl/amon/Makefile                      \
2107         appl/afstool/Makefile                   \
2108         appl/fs/Makefile                        \
2109         appl/pts/Makefile                       \
2110         appl/perf/Makefile                      \
2111         appl/udebug/Makefile                    \
2112         appl/vos/Makefile                       \
2113         appl/bos/Makefile                       \
2114         appl/mac/Makefile                       \
2115         appl/mac/install/Info.plist             \
2116         appl/mac/Arla_Configuration/Makefile    \
2117         appl/mac/Arla_Configuration/Info.plist  \
2118         appl/mac/arlacmm/Makefile               \
2119         appl/mac/mafslog/Makefile               \
2120         doc/Makefile                            \
2121         lib/Makefile                            \
2122         lib/roken/Makefile                      \
2123         lib/sl/Makefile                         \
2124         lib/editline/Makefile                   \
2125         lib/ko/Makefile                         \
2126         lib/vers/Makefile                       \
2127         lib/bufdir/Makefile                     \
2128         util/Makefile                           \
2129         ydr/Makefile                            \
2130         conf/Makefile                           \
2131         tools/Makefile                          \
2132         tools/gnats/Makefile                    \
2133         tools/release-tools/Makefile            \
2134         milko/Makefile                          \
2135         milko/lib/Makefile                      \
2136         milko/lib/vstatus/Makefile              \
2137         milko/lib/dpart/Makefile                \
2138         milko/lib/voldb/Makefile                \
2139         milko/lib/vld/Makefile                  \
2140         milko/lib/ropa/Makefile                 \
2141         milko/lib/msecurity/Makefile            \
2142         milko/lib/mlog/Makefile                 \
2143         milko/lib/mdb/Makefile                  \
2144         milko/appl/Makefile                     \
2145         milko/appl/sked/Makefile                \
2146         milko/appl/bootstrap/Makefile           \
2147         milko/fs/Makefile                       \
2148         milko/vldb/Makefile                     \
2149         milko/pts/Makefile                      \
2150         milko/bos/Makefile                      \
2151         tests/Makefile)
2153 AC_KRB_VERSION(arla)