(afsrights2nnpfsrights): export
[arla.git] / configure.in
blob7b8ef7676cfd61d9c9d407c184103e601e375902
1 AC_REVISION($Revision$)dnl
2 AC_PREREQ(2.59)
3 AC_INIT(arla, 0.91pre, [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/kauth.h                     \
861                 sys/libkern.h                   \
862                 sys/lkm.h                       \
863                 sys/lock.h                      \
864                 sys/mkdev.h                     \
865                 sys/mman.h                      \
866                 sys/module.h                    \
867                 sys/mutex.h                     \
868                 sys/param.h                     \
869                 sys/prctl.h                     \
870                 sys/poll.h                      \
871                 sys/pool.h                      \
872                 sys/queue.h                     \
873                 sys/resource.h                  \
874                 sys/sa.h                        \
875                 sys/select.h                    \
876                 sys/selinfo.h                   \
877                 sys/socket.h                    \
878                 sys/sockio.h                    \
879                 sys/stat.h                      \
880                 sys/statvfs.h                   \
881                 sys/statfs.h                    \
882                 sys/stdint.h                    \
883                 sys/sysent.h                    \
884                 sys/sysproto.h                  \
885                 sys/systm.h                     \
886                 sys/time.h                      \
887                 sys/types.h                     \
888                 sys/ubc.h                       \
889                 sys/utsname.h                   \
890                 sys/vfs.h                       \
891                 sys/vfs_proto.h                 \
892                 sys/vnode.h                     \
893                 sys/wait.h                      \
894                 vis.h                           \
895                 unistd.h                        \
896                 winsock.h                       \
899 AC_CHECK_HEADERS([net/if.h], , , [AC_INCLUDES_DEFAULT
900 #if HAVE_SYS_SOCKET_H
901 #include <sys/socket.h>
902 #endif])
904 AC_CHECK_HEADERS(netinet6/in6_var.h, , , [AC_INCLUDES_DEFAULT
905 #ifdef HAVE_NETINET6_IN6_H
906 #include <netinet6/in6.h>
907 #endif
910 AC_CHECK_HEADERS([                      \
911                 sys/proc.h              \
912                 sys/mount.h             \
913                 sys/signalvar.h         \
914                 sys/user.h              \
915 ], , , [AC_INCLUDES_DEFAULT
916 #ifdef HAVE_SYS_PARAM_H
917 #include <sys/param.h>
918 #endif
921 AC_CHECK_HEADERS([                      \
922                 sys/syscallargs.h       \
923 ], , , [AC_INCLUDES_DEFAULT
924 #ifdef HAVE_SYS_PARAM_H
925 #include <sys/param.h>
926 #endif
927 #ifdef HAVE_SYS_MOUNT_H
928 #include <sys/mount.h>
929 #endif
930 #ifdef HAVE_SYS_SA_H
931 #include <sys/sa.h>
932 #endif
935 AC_CHECK_HEADERS([resolv.h], , , [AC_INCLUDES_DEFAULT
936 #ifdef HAVE_SYS_TYPES_H
937 #include <sys/types.h>
938 #endif
939 #ifdef HAVE_NETINET_IN_H
940 #include <netinet/in.h>
941 #endif
942 #ifdef HAVE_ARPA_NAMESER_H
943 #include <arpa/nameser.h>
944 #endif
947 AC__EXTENSIONS__
950 dnl These need to before roken checks
953 AM_CONDITIONAL(have_err_h, test "$ac_cv_header_err_h" = yes)
954 AM_CONDITIONAL(have_fnmatch_h, test "$ac_cv_header_fnmatch_h" = yes)
955 AM_CONDITIONAL(have_ifaddrs_h, test "$ac_cv_header_ifaddrs_h" = yes)
956 AM_CONDITIONAL(have_vis_h, test "$ac_cv_header_vis_h" = yes)
957 AM_CONDITIONAL(have_glob_h, test "$ac_cv_header_glob_h" = yes)
958 AM_CONDITIONAL(do_roken_rename, true)
961 dnl and this is for kernel header files
964 save_CPPFLAGS="${CPPFLAGS}"
965 CPPFLAGS="${KERNEL_CPPFLAGS}"
967 AC_CHECK_HEADERS([                              \
968                 miscfs/genfs/genfs.h            \
969                 miscfs/syncfs/syncfs.h          \
970                 uvm/uvm_extern.h                \
971                 vm/vm.h                         \
972                 vm/vm_extern.h                  \
973                 vm/vm_object.h                  \
974                 vm/vm_pager.h                   \
975                 vm/vm_zone.h                    \
976                 vm/vnode_pager.h                \
977                 vm/uma.h                        \
978 ], , , -)
980 CPPFLAGS="${save_CPPFLAGS}"
984 dnl Check for endian-ness
986 KRB_C_BIGENDIAN
989 dnl check for const
992 AC_C_CONST
995 dnl Check for inline
998 AC_C_INLINE
1001 dnl Check for __FUNCTION__
1004 AC_C___FUNCTION__
1007 dnl Check for __attribute__
1010 AC_C___ATTRIBUTE__
1013 dnl roken stuff
1016 AC_ENABLE_SHARED(no)
1017 AC_PROG_LIBTOOL
1019 rk_DB
1022 # It is said that the kerberos junk needs to be after ac_check_roken,
1023 # but I didn't notice that, so we include some to have a good place
1024 # to check for existing roken in 
1027 AC_CHECK_KERBEROS(54auto)
1028 AC_CHECK_KAFS
1029 #end krb, continue roken stuff
1031 AC_CHECK_ROKEN()
1033 # oh, and put sl here, too
1034 AC_CHECK_SL
1035 # done!
1037 if test "X$ac_cv_arla_with_roken" = "Xyes" ; then
1038    rk_ROKEN(lib/roken)
1039    #LIB_roken="\$(top_builddir)/lib/vers/libvers.la $LIB_roken"
1040 else
1041   dnl inlined parts of rk_ROKEN, seems to be needed by sl and rx sometimes.
1042   AC_BROKEN([                                   \
1043         err                                     \
1044         errx                                    \
1045         strdup                                  \
1046         strtok_r                                \
1047         strupr                                  \
1048         warn                                    \
1049         warnx                                   \
1050   ])
1052 AM_CONDITIONAL(ARLA_LOCAL_ROKEN, test X$ac_cv_arla_with_roken = Xyes)
1054 rk_CHECK_MAN
1056 if test "X$ac_cv_found_krb5" = "Xyes" ; then
1057   RXKAD_LIBS_extra="$RXKAD_LIBS_extra $KRB5_LIB_FLAGS"
1060 if test "X$RXKAD_LIBS_extra" != "X" ; then
1061   RXKAD_LIBS="\$(top_builddir)/rxkad/librxkad.la $RXKAD_LIBS_extra"
1063 AM_CONDITIONAL(RXKAD, test "X$RXKAD_LIBS_extra" != "X")
1065 dnl AC_TYPE_KRB_PRINCIPAL
1066 dnl AC_FUNC_KRB_GET_ERR_TEXT
1067 dnl AC_FUNC_KRB_GET_DEFAULT_TKT_ROOT
1068 dnl AC_FUNC_KRB_GET_DEFAULT_PRINCIPAL
1069 dnl AC_FUNC_KRB_KDCTIMEOFDAY
1070 AC_FUNC_KAFS_SETTOKEN_RXKAD
1073 # check for tf_util
1076 dnl AC_FIND_FUNC_NO_LIBS2(tf_init, "", , , [$KRB4_LIB_FLAGS])
1077 dnl 
1078 dnl if test "$ac_cv_func_tf_init" = yes; then
1079 dnl     APPL_SUBDIRS="$APPL_SUBDIRS kalog"
1080 dnl fi
1081 dnl 
1084 dnl Check for strange operating systems that you need to handle differently
1087 AC_KRB_SYS_AIX
1089 if test "$krb_cv_sys_aix" = yes ;then
1090         if test "$aix_dynamic_afs" = yes; then
1091                 AFS_EXTRA_OBJS='$(srcdir)/afsl.exp dlfcn.o'
1092                 AFS_EXTRA_LIBS=afslib.so
1093                 # this works differently in AIX <=3 and 4
1094                 if test `uname -v` = 4 ; then
1095                         AFS_EXTRA_LD="-bnoentry"
1096                 else
1097                         AFS_EXTRA_LD="-e _nostart"
1098                 fi
1099                 AFS_EXTRA_DEFS=
1100                 AIX_EXTRA_KAFS="-lld"
1101         else
1102                 AFS_EXTRA_OBJS='$(srcdir)/afsl.exp afslib.o'
1103                 AFS_EXTRA_LIBS=
1104                 AFS_EXTRA_DEFS='-DSTATIC_AFS_SYSCALLS'
1105                 AIX_EXTRA_KAFS=
1106         fi
1107         AC_SUBST(AFS_EXTRA_OBJS)dnl
1108         AC_SUBST(AFS_EXTRA_LIBS)dnl
1109         AC_SUBST(AFS_EXTRA_LD)dnl
1110         AC_SUBST(AFS_EXTRA_DEFS)dnl
1111         AC_SUBST(AIX_EXTRA_KAFS)dnl
1115 dnl Check for struct winsize
1118 AC_KRB_STRUCT_WINSIZE
1121 dnl Various checks for libraries and their contents
1124 AC_FIND_FUNC(syslog, syslog)
1127 dnl System V is have misplaced the socket routines, should really be in libc
1130 AC_FIND_FUNC(socket, socket)
1131 AC_FIND_FUNC(gethostbyname, nsl)
1132 AC_FIND_FUNC(gethostbyname2, inet6 ip6)
1134 dnl we don't actually use v6 functions in this code, but some generic
1135 dnl functions such as getnameinfo et al can reside in libraries that are
1136 dnl found by this macro
1138 AC_KRB_IPV6
1140 AC_FIND_FUNC(res_search, resolv,
1142 #include <stdio.h>
1143 #ifdef HAVE_SYS_TYPES_H
1144 #include <sys/types.h>
1145 #endif
1146 #ifdef HAVE_NETINET_IN_H
1147 #include <netinet/in.h>
1148 #endif
1149 #ifdef HAVE_ARPA_NAMESER_H
1150 #include <arpa/nameser.h>
1151 #endif
1152 #ifdef HAVE_RESOLV_H
1153 #include <resolv.h>
1154 #endif
1156 [0,0,0,0,0])
1158 AC_FIND_FUNC(res_init, resolv,
1160 #include <stdio.h>
1161 #ifdef HAVE_SYS_TYPES_H
1162 #include <sys/types.h>
1163 #endif
1164 #ifdef HAVE_NETINET_IN_H
1165 #include <netinet/in.h>
1166 #endif
1167 #ifdef HAVE_ARPA_NAMESER_H
1168 #include <arpa/nameser.h>
1169 #endif
1170 #ifdef HAVE_RESOLV_H
1171 #include <resolv.h>
1172 #endif
1176 AC_FIND_FUNC(dn_expand, resolv,
1178 #include <stdio.h>
1179 #ifdef HAVE_SYS_TYPES_H
1180 #include <sys/types.h>
1181 #endif
1182 #ifdef HAVE_NETINET_IN_H
1183 #include <netinet/in.h>
1184 #endif
1185 #ifdef HAVE_ARPA_NAMESER_H
1186 #include <arpa/nameser.h>
1187 #endif
1188 #ifdef HAVE_RESOLV_H
1189 #include <resolv.h>
1190 #endif
1192 [0,0,0,0,0])
1194 AC_BROKEN_SNPRINTF
1196 AC_CHECK_FUNCS(strtoll strtoq getrusage thr_yield)
1198 AC_EGREP_HEADER(sigaction, signal.h,
1199         AC_DEFINE(HAVE_POSIX_SIGNALS, 1, [define if you have sigaction]))
1201 save_CPPFLAGS="${CPPFLAGS}"
1202 AC_HAVE_TYPES([int8_t int16_t int32_t int64_t])
1203 AC_HAVE_TYPES([int16 int32])
1204 AC_HAVE_TYPES([u_int8_t u_int16_t u_int32_t u_int64_t])
1205 AC_HAVE_TYPES([uint8_t uint16_t uint32_t uint64_t])
1206 AC_HAVE_TYPES([u_int16 u_int32])
1207 AC_HAVE_TYPES([bool ssize_t])
1208 AC_HAVE_TYPES([register_t])     dnl really only needed for bsd nnpfs
1209 AC_HAVE_TYPES([uintptr_t])      dnl really only needed for bsd nnpfs
1210 AC_HAVE_TYPES([intptr_t])
1211 AC_HAVE_TYPES([off64_t])
1212 AC_CHECK_HEADERS([ktypes.h com_err.h et/com_err.h])
1213 COMERR_CPPFLAGS="$CPPFLAGS"
1214 AC_SUBST(COMERR_CPPFLAGS)
1215 CPPFLAGS="${save_CPPFLAGS}"
1217 AC_TYPE_SIGNAL
1220 dnl check for old libkafs
1223 dnl AC_FIND_FUNC_NO_LIBS2(krb_afslog_uid, "", , , [$KAFS_LIBS $KRB4_LIB_FLAGS])
1226 AC_CHECK_FUNC(localtime_r,[
1227 AC_DEFINE([HAVE_LOCALTIME_R], 1, [define if there exists a localtime_r])])
1230 # libroken
1233 AC_CHECK_FUNCS(getfh fhopen)
1235 AC_CHECK_FUNCS(getattrlist setattrlist)
1237 AC_CHECK_FUNCS(statvfs)
1239 rk_CHECK_VAR(optreset,[#include <stdlib.h>])dnl
1242 dnl prototypes
1245 AC_NEED_PROTO([
1246 #include <sys/types.h> 
1247 #include <sys/time.h>
1248 #ifdef HAVE_UNISTD_H
1249 #include <unistd.h>
1250 #endif
1251 #ifdef HAVE_WINSOCK_H
1252 #include <winsock.h>
1253 #endif
1254 ], 
1255 select)
1257 AC_DIRENT_SYS_DIR_H
1259 AC_HAVE_STRUCT_FIELD(struct dirent, d_type,
1260 [#ifdef HAVE_SYS_TYPES_H
1261 #include <sys/types.h>
1262 #endif
1263 #include <dirent.h>
1267 dnl Check for sa_len in sys/socket.h
1270 AC_HAVE_STRUCT_FIELD(struct sockaddr,
1271 sa_len,
1272 [#include <sys/types.h>
1273 #include <sys/socket.h>])
1276 dnl Check for sin_len
1279 AC_HAVE_STRUCT_FIELD(struct sockaddr_in,
1280 sin_len,
1281 [#include <sys/types.h>
1282 #include <sys/socket.h>
1283 #ifdef HAVE_NETINET_IN_H
1284 #include <netinet/in.h>
1285 #endif])
1288 dnl check for strange as stuff on solaris
1291 case "$target_os" in
1292 solaris*)
1293   AC_CACHE_CHECK(if as supports .register, ac_cv_prog_as_register,[
1294   cat > conftest.s <<EOF
1295         .register       %g2, #scratch
1296         .register       %g3, #scratch
1297         .register       %g6, #scratch
1298         .register       %g7, #scratch
1300   if $AS conftest.s >/dev/null 2>&1; then
1301     ac_cv_prog_as_register=yes
1302   else
1303     ac_cv_prog_as_register=no
1304   fi
1305   rm -f conftest.s a.out
1307   if test "$ac_cv_prog_as_register" = "yes"; then
1308     AC_DEFINE([PROG_AS_UNDERSTANDS_REGISTER], 1,
1309         [define this if your as understands .register])
1310   fi
1311 esac
1314 dnl kernel checks
1318 dnl bsd style
1321 if test "$NNPFS_SUBDIR" = "bsd" -o "$NNPFS_SUBDIR" = "freebsd" ; then
1323 AC_CONFIG_FILES([nnpfs/bsd/Makefile nnpfs/bsd/bin/Makefile nnpfs/freebsd/Makefile])
1325 AC_ELF_OBJECT_FORMAT
1326 AC_KERNEL
1328 AC_CHECK_KERNEL_FUNCS([                         \
1329 cdevsw_add                                      \
1330 debuglockmgr                                    \
1331 findcdev                                        \
1332 lockmgr                                         \
1333 vop_revoke                                      \
1334 vop_stdpathconf                                 \
1335 genfs_mmap                                      \
1336 genfs_revoke                                    \
1337 kauth_cred_getuid                               \
1338 lf_advlock                                      \
1339 vfs_opv_init                                    \
1340 vfs_opv_init_default                            \
1341 vfs_opv_init_explicit                           \
1342 vfs_add_vnodeops                                \
1343 vfs_attach                                      \
1344 vfs_deallocate_syncvnode                        \
1345 vfs_register                                    \
1346 vfs_getvfs                                      \
1347 vgonel                                          \
1348 zfree                                           \
1349 zfreei                                          \
1350 uma_zfree_arg                                   \
1351 vfs_cache_lookup                                \
1352 vnode_pager_generic_putpages                    \
1353 vnode_pager_generic_getpages                    \
1354 vnode_pager_setsize                             \
1355 devtoname                                       \
1356 udev2dev                                        \
1357 snprintf                                        \
1358 suser_ucred                                     \
1359 namei_hash                                      \
1360 nosys                                           \
1361 sys_nosys                                       \
1362 sys_lkmnosys                                    \
1363 cache_purgevfs                                  \
1365 AC_CHECK_KERNEL_FUNC(memcpy, [0,0,0])
1367 AC_BSD_HEADER_VNODE_IF_H
1369 AC_KERNEL_NEED_PROTO([
1370 #ifdef HAVE_SYS_TYPES_H
1371 #include <sys/types.h>
1372 #endif
1373 #ifdef HAVE_SYS_PARAM_H
1374 #include <sys/param.h>
1375 #endif
1376 #ifdef HAVE_SYS_TIME_H
1377 #include <sys/time.h>
1378 #endif
1379 #ifdef HAVE_SYS_PROC_H
1380 #include <sys/proc.h>
1381 #endif
1382 #ifdef HAVE_SYS_VNODE_H
1383 #include <sys/vnode.h>
1384 #endif
1386 vgonel)
1388 AC_KERNEL_NEED_PROTO([
1389 #ifdef HAVE_SYS_TYPES_H
1390 #include <sys/types.h>
1391 #endif
1392 #ifdef HAVE_SYS_PARAM_H
1393 #include <sys/param.h>
1394 #endif
1395 #ifdef HAVE_SYS_TIME_H
1396 #include <sys/time.h>
1397 #endif
1398 #ifdef HAVE_SYS_PROC_H
1399 #include <sys/proc.h>
1400 #endif
1401 #include <sys/signal.h>
1402 #include <sys/signalvar.h>
1404 issignal)
1406 AC_KERNEL_NEED_PROTO([
1407 #ifdef HAVE_SYS_TYPES_H
1408 #include <sys/types.h>
1409 #endif
1410 #ifdef HAVE_SYS_PARAM_H
1411 #include <sys/param.h>
1412 #endif
1413 #ifdef HAVE_SYS_TIME_H
1414 #include <sys/time.h>
1415 #endif
1416 #ifdef HAVE_SYS_PROC_H
1417 #include <sys/proc.h>
1418 #endif
1419 #ifdef HAVE_SYS_VNODE_H
1420 #include <sys/vnode.h>
1421 #endif
1422 #ifdef HAVE_SYS_VFS_PROTO_H
1423 #include <sys/vfs_proto.h>
1424 #endif
1426 vn_writechk)
1428 AC_KERNEL_NEED_PROTO([
1429 #ifdef HAVE_SYS_TYPES_H
1430 #include <sys/types.h>
1431 #endif
1432 #ifdef HAVE_SYS_PARAM_H
1433 #include <sys/param.h>
1434 #endif
1435 #ifdef HAVE_SYS_LIBKERN_H
1436 #include <sys/libkern.h>
1437 #endif
1438 #ifdef HAVE_SYS_SYSTM_H
1439 #include <sys/systm.h>
1440 #endif
1442 strncmp)
1444 AC_CHECK_KERNEL_VAR(doforce, int)
1445 AC_CHECK_KERNEL_VAR(aout_sysent, struct sysent*,[#include <sys/systm.h>])
1446 AC_CHECK_KERNEL_VOP_T
1447 AC_BSD_FUNC_VFS_OBJECT_CREATE
1448 AC_BSD_FUNC_VOP_LOCK
1449 AC_BSD_FUNC_VFS_BUSY
1450 AC_BSD_FUNC_VGET
1451 AC_BSD_FUNC_SUSER
1452 AC_BSD_FUNC_VFS_GETNEWFSID
1453 AC_BSD_FUNC_LOCKMGR
1454 AC_BSD_FUNC_LOCKSTATUS
1455 AC_BSD_FUNC_SELRECORD
1456 AC_BSD_FHTOVP
1458 AC_CHECK_DIRSIZ
1461 dnl Find out if have have proc.p_sigmask
1464 AC_HAVE_STRUCT_FIELD(
1465 struct proc,
1466 p_sigmask,
1467 [#ifdef HAVE_SYS_TYPES_H
1468 #include <sys/types.h>
1469 #endif
1470 #ifdef HAVE_SYS_PARAM_H
1471 #include <sys/param.h>
1472 #endif
1473 #ifdef HAVE_SYS_TIME_H
1474 #include <sys/time.h>
1475 #endif
1476 #ifdef HAVE_SYS_PROC_H
1477 #include <sys/proc.h>
1478 #endif])
1480 AC_HAVE_STRUCT_FIELD(
1481 struct proc,
1482 p_sigctx,
1483 [#ifdef HAVE_SYS_TYPES_H
1484 #include <sys/types.h>
1485 #endif
1486 #ifdef HAVE_SYS_PARAM_H
1487 #include <sys/param.h>
1488 #endif
1489 #ifdef HAVE_SYS_TIME_H
1490 #include <sys/time.h>
1491 #endif
1492 #ifdef HAVE_SYS_PROC_H
1493 #include <sys/proc.h>
1494 #endif])
1496 AC_HAVE_KERNEL_STRUCT_FIELD([
1497 #ifdef HAVE_SYS_TYPES_H
1498 #include <sys/types.h>
1499 #endif
1500 #ifdef HAVE_SYS_PARAM_H
1501 #include <sys/param.h>
1502 #endif
1503 #ifdef HAVE_SYS_TIME_H
1504 #include <sys/time.h>
1505 #endif
1506 #ifdef HAVE_SYS_PROC_H
1507 #include <sys/proc.h>
1508 #endif
1509 #ifdef HAVE_SYS_VNODE_H
1510 #include <sys/vnode.h>
1511 #endif
1512 #ifdef HAVE_SYS_MOUNT_H
1513 #include <sys/mount.h>
1514 #endif
1516 mount,
1517 struct vnode *,
1518 mnt_syncer)
1520 AC_HAVE_KERNEL_STRUCT_FIELD([
1521 #ifdef HAVE_SYS_TYPES_H
1522 #include <sys/types.h>
1523 #endif
1524 #ifdef HAVE_SYS_PARAM_H
1525 #include <sys/param.h>
1526 #endif
1527 #ifdef HAVE_SYS_TIME_H
1528 #include <sys/time.h>
1529 #endif
1530 #ifdef HAVE_SYS_PROC_H
1531 #include <sys/proc.h>
1532 #endif
1533 #ifdef HAVE_SYS_VNODE_H
1534 #include <sys/vnode.h>
1535 #endif
1536 #ifdef HAVE_SYS_MOUNT_H
1537 #include <sys/mount.h>
1538 #endif
1540 mount,
1541 qaddr_t,
1542 m_info)
1544 AC_HAVE_KERNEL_STRUCT_FIELD([
1545 #include <sys/types.h>
1546 #include <sys/param.h>
1547 #include <sys/mount.h>
1549 vfsconf,
1550 int,
1551 vfc_refcount)
1553 AC_HAVE_KERNEL_STRUCT_FIELD([
1554 #include <sys/types.h>
1555 #include <sys/param.h>
1556 #include <sys/mount.h>
1558 vfsconf,
1559 int (*)(void),
1560 vfc_mountroot)
1562 AC_HAVE_KERNEL_STRUCT_FIELD([
1563 #include <sys/types.h>
1564 #ifdef HAVE_SYS_CDEFS_H
1565 #include <sys/cdefs.h>
1566 #endif
1567 #include <sys/uio.h>
1569 uio,
1570 struct proc *,
1571 uio_procp)
1573 AC_HAVE_KERNEL_STRUCT_FIELD([
1574 #include <sys/types.h>
1575 #include <sys/param.h>
1576 #include <sys/mount.h>
1578 vfsops,
1579 struct vnodeopv_desc **,
1580 vfs_opv_descs)
1582 AC_HAVE_KERNEL_STRUCT_FIELD([
1583 #include <sys/types.h>
1584 #include <sys/param.h>
1585 #include <sys/mount.h>
1587 vfsops,
1588 char *,
1589 vfs_name)
1591 AC_HAVE_KERNEL_STRUCT_FIELD([
1592 #include <sys/types.h>
1593 #include <sys/param.h>
1594 #include <sys/mount.h>
1596 vfsops,
1597 void *,
1598 vfs_uninit)
1600 AC_HAVE_KERNEL_STRUCT_FIELD([
1601 #include <sys/types.h>
1602 #include <sys/param.h>
1603 #include <sys/mount.h>
1605 vfsops,
1606 void *,
1607 vfs_reinit)
1609 AC_HAVE_KERNEL_STRUCT_FIELD([
1610 #include <sys/types.h>
1611 #include <sys/param.h>
1612 #include <sys/mount.h>
1614 vfsops,
1615 struct sysctl_oid *,
1616 vfs_oid)
1618 AC_HAVE_KERNEL_STRUCT_FIELD([
1619 #include <sys/types.h>
1620 #include <sys/param.h>
1621 #include <sys/mount.h>
1623 vfsops,
1624 int,
1625 vfs_done)
1627 save_test_KERNEL_CFLAGS="$test_KERNEL_CFLAGS"
1628 test_KERNEL_CFLAGS="$test_KERNEL_CFLAGS $BSD_WERROR"
1630 AC_HAVE_KERNEL_STRUCT_FIELD([
1631 #include <sys/types.h>
1632 #include <sys/param.h>
1633 #include <sys/time.h>
1634 #include <sys/proc.h>
1635 #include <sys/mount.h>
1636 typedef int (*mount_type)(struct mount *, const char *, void *, struct nameidata *, struct proc *);
1638 vfsops,
1639 mount_type,
1640 vfs_mount)
1642 test_KERNEL_CFLAGS="$save_test_KERNEL_CFLAGS"
1644 AC_HAVE_KERNEL_STRUCT_FIELD([
1645 #include <sys/types.h>
1646 #include <sys/param.h>
1647 #include <sys/mount.h>
1649 vfsops,
1650 void *,
1651 vfs_checkexp)
1653 AC_HAVE_KERNEL_STRUCT_FIELD([
1654 #include <sys/types.h>
1655 #include <sys/param.h>
1656 #include <sys/mount.h>
1658 vfsops,
1659 void *,
1660 vfs_wassysctl)
1662 AC_HAVE_KERNEL_STRUCT_FIELD([
1663 #include <sys/types.h>
1664 #include <sys/param.h>
1665 #include <sys/mount.h>
1667 vfsops,
1668 void *,
1669 vfs_snapshot)
1671 AC_HAVE_KERNEL_STRUCT_FIELD([
1672 #include <sys/types.h>
1673 #include <sys/param.h>
1674 #include <sys/mount.h>
1676 vfsops,
1677 void *,
1678 vfs_extattrctl)
1680 AC_HAVE_KERNEL_STRUCT_FIELD([
1681 #include <sys/types.h>
1682 #include <sys/param.h>
1683 #include <sys/mount.h>
1685 vfsops,
1686 void *,
1687 vfs_mountroot)
1689 AC_HAVE_KERNEL_STRUCT_FIELD([
1690 #include <sys/types.h>
1691 #include <sys/param.h>
1692 #include <sys/mount.h>
1694 vfsops,
1695 void *,
1696 vfs_swapvp)
1698 AC_HAVE_KERNEL_STRUCT_FIELD([
1699 #include <sys/types.h>
1700 #include <sys/param.h>
1701 #include <sys/mount.h>
1703 vfsops,
1704 void *,
1705 vfs_smoothsync)
1707 AC_HAVE_KERNEL_STRUCT_FIELD([
1708 #include <sys/types.h>
1709 #include <sys/systm.h>
1710 #ifdef HAVE_SYS_SYSENT_H
1711 #include <sys/sysent.h>
1712 #endif
1714 sysent,
1715 int,
1716 sy_flags)
1718 AC_HAVE_KERNEL_STRUCT_FIELD([
1719 #include <sys/types.h>
1720 #include <sys/systm.h>
1721 #ifdef HAVE_SYS_SYSENT_H
1722 #include <sys/sysent.h>
1723 #endif
1725 sysent,
1726 unsigned char,
1727 sy_info)
1729 AC_HAVE_KERNEL_STRUCT_FIELD([
1730 #ifdef HAVE_SYS_TYPES_H
1731 #include <sys/types.h>
1732 #endif
1733 #ifdef HAVE_SYS_PARAM_H
1734 #include <sys/param.h>
1735 #endif
1736 #ifdef HAVE_SYS_TIME_H
1737 #include <sys/time.h>
1738 #endif
1739 #ifdef HAVE_SYS_PROC_H
1740 #include <sys/proc.h>
1741 #endif
1742 #ifdef HAVE_SYS_VNODE_H
1743 #include <sys/vnode.h>
1744 #endif
1745 #ifdef HAVE_SYS_MOUNT_H
1746 #include <sys/mount.h>
1747 #endif
1749 vnode,
1750 u_long,
1751 v_id)
1753 AC_HAVE_KERNEL_STRUCT_FIELD([
1754 #include <sys/types.h>
1755 #include <sys/param.h>
1756 #include <sys/vnode.h>
1758 vop_fsync_args,
1759 int,
1760 a_flags)
1762 AC_HAVE_KERNEL_STRUCT_FIELD([
1763 #include <sys/types.h>
1764 #include <sys/param.h>
1765 #include <sys/vnode.h>
1767 vop_putpages_args,
1768 int,
1769 a_sync)
1771 AC_HAVE_KERNEL_STRUCT_FIELD([
1772 #include <sys/types.h>
1773 #include <sys/param.h>
1774 #include <sys/vnode.h>
1776 vop_getpages_args,
1777 voff_t,
1778 a_offset)
1780 AC_HAVE_KERNEL_DEF([
1781 #ifdef HAVE_SYS_TYPES_H
1782 #include <sys/types.h>
1783 #endif
1784 #ifdef HAVE_SYS_PARAM_H
1785 #include <sys/param.h>
1786 #endif
1787 #ifdef HAVE_SYS_MOUNT_H
1788 #include <sys/mount.h>
1789 #endif
1790 #ifdef HAVE_SYS_TIME_H
1791 #include <sys/time.h>
1792 #endif
1793 #ifdef HAVE_SYS_PROC_H
1794 #include <sys/proc.h>
1795 #endif
1796 #ifdef HAVE_SYS_SA_H
1797 #include <sys/sa.h>
1798 #endif
1799 #ifdef HAVE_SYS_SYSPROTO_H
1800 #include <sys/sysproto.h>
1801 #endif
1802 #ifdef HAVE_SYS_SYSCALLARGS_H
1803 #include <sys/syscallargs.h>
1804 #endif
1806 struct setgroups_args)
1808 AC_HAVE_KERNEL_DEF([
1809 #ifdef HAVE_SYS_TYPES_H
1810 #include <sys/types.h>
1811 #endif
1812 #ifdef HAVE_SYS_PARAM_H
1813 #include <sys/param.h>
1814 #endif
1815 #ifdef HAVE_SYS_MOUNT_H
1816 #include <sys/mount.h>
1817 #endif
1818 #ifdef HAVE_SYS_TIME_H
1819 #include <sys/time.h>
1820 #endif
1821 #ifdef HAVE_SYS_PROC_H
1822 #include <sys/proc.h>
1823 #endif
1824 #ifdef HAVE_SYS_SA_H
1825 #include <sys/sa.h>
1826 #endif
1827 #ifdef HAVE_SYS_SYSPROTO_H
1828 #include <sys/sysproto.h>
1829 #endif
1830 #ifdef HAVE_SYS_SYSCALLARGS_H
1831 #include <sys/syscallargs.h>
1832 #endif
1834 struct sys_setgroups_args)
1836 AC_HAVE_KERNEL_STRUCT_FIELD([
1837 #include <sys/types.h>
1838 #include <sys/time.h>
1839 #ifdef HAVE_SYS_CDEFS_H
1840 #include <sys/cdefs.h>
1841 #endif
1842 #include <sys/conf.h>
1844 cdevsw,
1845 d_stop_t *,
1846 d_stop)
1848 AC_HAVE_KERNEL_STRUCT_FIELD([
1849 #include <sys/types.h>
1850 #include <sys/time.h>
1851 #ifdef HAVE_SYS_CDEFS_H
1852 #include <sys/cdefs.h>
1853 #endif
1854 #include <sys/conf.h>
1856 cdevsw,
1857 d_reset_t *,
1858 d_reset)
1860 AC_HAVE_KERNEL_STRUCT_FIELD([
1861 #include <sys/types.h>
1862 #include <sys/time.h>
1863 #ifdef HAVE_SYS_CDEFS_H
1864 #include <sys/cdefs.h>
1865 #endif
1866 #include <sys/conf.h>
1868 cdevsw,
1869 d_reset_t *,
1870 d_bogoreset)
1872 AC_HAVE_KERNEL_STRUCT_FIELD([
1873 #include <sys/types.h>
1874 #include <sys/time.h>
1875 #ifdef HAVE_SYS_CDEFS_H
1876 #include <sys/cdefs.h>
1877 #endif
1878 #include <sys/conf.h>
1880 cdevsw,
1881 d_kqfilter_t *,
1882 d_kqfilter)
1884 AC_HAVE_KERNEL_STRUCT_FIELD([
1885 #include <sys/types.h>
1886 #include <sys/time.h>
1887 #ifdef HAVE_SYS_CDEFS_H
1888 #include <sys/cdefs.h>
1889 #endif
1890 #include <sys/conf.h>
1892 cdevsw,
1893 size_t,
1894 d_psize)
1896 AC_HAVE_KERNEL_STRUCT_FIELD([
1897 #include <sys/types.h>
1898 #include <sys/time.h>
1899 #ifdef HAVE_SYS_CDEFS_H
1900 #include <sys/cdefs.h>
1901 #endif
1902 #include <sys/conf.h>
1904 cdevsw,
1905 d_devtotty_t *,
1906 d_devtotty)
1908 AC_HAVE_KERNEL_STRUCT_FIELD([
1909 #include <sys/types.h>
1910 #include <sys/time.h>
1911 #ifdef HAVE_SYS_CDEFS_H
1912 #include <sys/cdefs.h>
1913 #endif
1914 #include <sys/conf.h>
1916 cdevsw,
1917 d_parms_t *,
1918 d_bogoparms)
1920 AC_HAVE_KERNEL_STRUCT_FIELD([
1921 #include <sys/types.h>
1922 #include <sys/time.h>
1923 #ifdef HAVE_SYS_CDEFS_H
1924 #include <sys/cdefs.h>
1925 #endif
1926 #include <sys/conf.h>
1928 cdevsw,
1929 void *,
1930 d_spare)
1932 AC_HAVE_KERNEL_STRUCT_FIELD([
1933 #include <sys/types.h>
1934 #include <sys/time.h>
1935 #ifdef HAVE_SYS_CDEFS_H
1936 #include <sys/cdefs.h>
1937 #endif
1938 #include <sys/conf.h>
1940 cdevsw,
1941 d_mmap_t,
1942 d_mmap)
1944 AC_HAVE_KERNEL_STRUCT_FIELD([
1945 #include <sys/types.h>
1946 #include <sys/time.h>
1947 #ifdef HAVE_SYS_CDEFS_H
1948 #include <sys/cdefs.h>
1949 #endif
1950 #include <sys/conf.h>
1952 cdevsw,
1953 d_strategy_t,
1954 d_strategy)
1956 AC_HAVE_KERNEL_STRUCT_FIELD([
1957 #include <sys/types.h>
1958 #include <sys/time.h>
1959 #ifdef HAVE_SYS_CDEFS_H
1960 #include <sys/cdefs.h>
1961 #endif
1962 #include <sys/conf.h>
1964 cdevsw,
1965 dumper_t,
1966 d_dump)
1968 AC_HAVE_KERNEL_STRUCT_FIELD([
1969 #include <sys/types.h>
1970 #include <sys/time.h>
1971 #ifdef HAVE_SYS_CDEFS_H
1972 #include <sys/cdefs.h>
1973 #endif
1974 #include <sys/conf.h>
1976 cdevsw,
1977 int,
1978 d_maxio)
1980 AC_HAVE_KERNEL_STRUCT_FIELD([
1981 #include <sys/types.h>
1982 #include <sys/time.h>
1983 #ifdef HAVE_SYS_CDEFS_H
1984 #include <sys/cdefs.h>
1985 #endif
1986 #include <sys/conf.h>
1988 cdevsw,
1989 int,
1990 d_bmaj)
1992 AC_HAVE_KERNEL_STRUCT_FIELD([
1993 #include <sys/types.h>
1994 #ifdef HAVE_SYS_CDEFS_H
1995 #include <sys/cdefs.h>
1996 #endif
1997 #include <sys/uio.h>
1998 #include <sys/namei.h>
2000 componentname,
2001 u_long,
2002 cn_hash)
2004 AC_CHECK_BSD_UVM_ONLY
2007 dnl linux
2010 elif test "$NNPFS_SUBDIR" = "linux"; then
2012 AC_CONFIG_FILES([nnpfs/linux/Makefile nnpfs/linux/bin/Makefile])
2014 dnl Linux devfs check
2015 AC_CHECK_HEADERS(linux/devfs_fs.h linux/stddef.h)
2017 AC_HAVE_KERNEL_STRUCT_FIELD([
2018 #define __KERNEL__
2019 #include <asm/current.h>
2020 #include <linux/fs.h>
2022 ViceIoctl,
2023 caddr_t,
2026 AC_HAVE_LINUX_KERNEL_TYPES(int8_t int16_t int32_t int64_t)
2027 AC_HAVE_LINUX_KERNEL_TYPES(uint8_t uint16_t uint32_t uint64_t)
2029 AC_LINUX_FUNC_INIT_MUTEX
2031 elif test "$NNPFS_SUBDIR" = "solaris"; then
2033 AC_CONFIG_FILES([nnpfs/solaris/Makefile nnpfs/solaris/bin/Makefile])
2035 AC_HAVE_KERNEL_STRUCT_FIELD([
2036 #include <sys/types.h>
2037 #include <sys/vfs.h>
2038 typedef void (*freevfs_type)(struct vfs *);
2040 vfsops,
2041 freevfs_type,
2042 vfs_freevfs)
2044 elif test "$NNPFS_SUBDIR" = "irix"; then
2046 AC_CONFIG_FILES([nnpfs/irix/Makefile nnpfs/irix/bin/Makefile])
2048 elif test "$NNPFS_SUBDIR" = "aix"; then
2050 AC_CONFIG_FILES([nnpfs/aix/Makefile nnpfs/aix/bin/Makefile])
2052 fi # end of OS-specific tests
2055 dnl Global kernel checks
2058 AC_CHECK_KERNEL_FUNCS(strlcpy)
2061 dnl Arla configuration. Default values, overrided below if needed
2064 arla_AC_SUBST_VALUE(ARLA_CONF_HIGHVNODES,4000)
2065 arla_AC_SUBST_VALUE(ARLA_CONF_LOWVNODES,3000)
2066 arla_AC_SUBST_VALUE(ARLA_CONF_HIGHBYTES,1400M)
2067 arla_AC_SUBST_VALUE(ARLA_CONF_LOWBYTES,700M)
2069 dnl override section
2071 case "$target_os" in
2072     linux*|darwin*)
2073         ARLA_CONF_HIGHVNODES=40000
2074         ARLA_CONF_LOWVNODES=30000
2075         ;;
2076 esac
2079 # Libtool vs automake stuff
2082 LTLIBOBJS=`echo "$LIB@&t@OBJS" | sed 's/\.o/\.lo/g'`
2083 AC_SUBST(LTLIBOBJS)
2085 AH_BOTTOM([#ifdef ROKEN_RENAME
2086 #include "roken_rename.h"
2087 #endif])
2089 # Almost done....
2091 AC_OUTPUT(Makefile                              \
2092         include/Makefile                        \
2093         arlad/Makefile                          \
2094         lwp/Makefile                            \
2095         nnpfs/Makefile                          \
2096         nnpfs/dummer/Makefile                   \
2097         rx/Makefile                             \
2098         rxdef/Makefile                          \
2099         rxgk/Makefile                           \
2100         rxkad/Makefile                          \
2101         appl/Makefile                           \
2102         appl/lib/Makefile                       \
2103         appl/aafs/Makefile                      \
2104         appl/aafs-perl/Makefile                 \
2105         appl/kalog/Makefile                     \
2106         appl/afsmgr/Makefile                    \
2107         appl/afsutils/Makefile                  \
2108         appl/amon/Makefile                      \
2109         appl/afstool/Makefile                   \
2110         appl/fs/Makefile                        \
2111         appl/rxgklog/Makefile                   \
2112         appl/pts/Makefile                       \
2113         appl/perf/Makefile                      \
2114         appl/udebug/Makefile                    \
2115         appl/vos/Makefile                       \
2116         appl/bos/Makefile                       \
2117         appl/mac/Makefile                       \
2118         appl/mac/install/Info.plist             \
2119         appl/mac/Arla_Configuration/Makefile    \
2120         appl/mac/Arla_Configuration/Info.plist  \
2121         appl/mac/arlacmm/Makefile               \
2122         appl/mac/mafslog/Makefile               \
2123         doc/Makefile                            \
2124         lib/Makefile                            \
2125         lib/roken/Makefile                      \
2126         lib/sl/Makefile                         \
2127         lib/editline/Makefile                   \
2128         lib/ko/Makefile                         \
2129         lib/vers/Makefile                       \
2130         lib/bufdir/Makefile                     \
2131         util/Makefile                           \
2132         ydr/Makefile                            \
2133         conf/Makefile                           \
2134         tools/Makefile                          \
2135         tools/gnats/Makefile                    \
2136         tools/release-tools/Makefile            \
2137         milko/Makefile                          \
2138         milko/lib/Makefile                      \
2139         milko/lib/vstatus/Makefile              \
2140         milko/lib/dpart/Makefile                \
2141         milko/lib/voldb/Makefile                \
2142         milko/lib/vld/Makefile                  \
2143         milko/lib/ropa/Makefile                 \
2144         milko/lib/msecurity/Makefile            \
2145         milko/lib/mlog/Makefile                 \
2146         milko/lib/mdb/Makefile                  \
2147         milko/appl/Makefile                     \
2148         milko/appl/sked/Makefile                \
2149         milko/appl/bootstrap/Makefile           \
2150         milko/fs/Makefile                       \
2151         milko/vldb/Makefile                     \
2152         milko/pts/Makefile                      \
2153         milko/bos/Makefile                      \
2154         tests/Makefile)
2156 AC_KRB_VERSION(arla)