summaryrefslogtreecommitdiffstats
path: root/contrib/amd/m4
diff options
context:
space:
mode:
authormbr <mbr@FreeBSD.org>2003-09-02 15:27:38 +0000
committermbr <mbr@FreeBSD.org>2003-09-02 15:27:38 +0000
commit7d0df748b4c59651751f156e408f856a02073b69 (patch)
tree4674a9f108ae4334ed6a61634f703f67f6533f4d /contrib/amd/m4
parent532be24b7ef077cdfe0129dee60ab1f934c24181 (diff)
downloadFreeBSD-src-7d0df748b4c59651751f156e408f856a02073b69.zip
FreeBSD-src-7d0df748b4c59651751f156e408f856a02073b69.tar.gz
Virgin import of AMD (am-utils) 20030828 (6.0.9)
Diffstat (limited to 'contrib/amd/m4')
-rw-r--r--contrib/amd/m4/GNUmakefile155
-rwxr-xr-xcontrib/amd/m4/amdgrep7
-rwxr-xr-xcontrib/amd/m4/amindent328
-rwxr-xr-xcontrib/amd/m4/autopat36
-rwxr-xr-xcontrib/amd/m4/chop-aclocal.pl19
-rwxr-xr-xcontrib/amd/m4/copy-if-newbig29
-rw-r--r--contrib/amd/m4/macros/HEADER13
-rw-r--r--contrib/amd/m4/macros/TRAILER2
-rw-r--r--contrib/amd/m4/macros/c_void_p.m422
-rw-r--r--contrib/amd/m4/macros/cache_check_dynamic.m426
-rw-r--r--contrib/amd/m4/macros/check_amu_fs.m440
-rw-r--r--contrib/amd/m4/macros/check_checkmount_style.m428
-rw-r--r--contrib/amd/m4/macros/check_extern.m498
-rw-r--r--contrib/amd/m4/macros/check_fhandle.m425
-rw-r--r--contrib/amd/m4/macros/check_field.m4110
-rw-r--r--contrib/amd/m4/macros/check_fs_headers.m453
-rw-r--r--contrib/amd/m4/macros/check_fs_mntent.m4176
-rw-r--r--contrib/amd/m4/macros/check_gnu_getopt.m442
-rw-r--r--contrib/amd/m4/macros/check_hide_mount_type.m431
-rw-r--r--contrib/amd/m4/macros/check_lib2.m466
-rw-r--r--contrib/amd/m4/macros/check_map_funcs.m447
-rw-r--r--contrib/amd/m4/macros/check_mnt2_cdfs_opt.m492
-rw-r--r--contrib/amd/m4/macros/check_mnt2_gen_opt.m485
-rw-r--r--contrib/amd/m4/macros/check_mnt2_nfs_opt.m459
-rw-r--r--contrib/amd/m4/macros/check_mnttab_file_name.m457
-rw-r--r--contrib/amd/m4/macros/check_mnttab_location.m426
-rw-r--r--contrib/amd/m4/macros/check_mnttab_opt.m452
-rw-r--r--contrib/amd/m4/macros/check_mnttab_style.m433
-rw-r--r--contrib/amd/m4/macros/check_mnttab_type.m4143
-rw-r--r--contrib/amd/m4/macros/check_mount_style.m442
-rw-r--r--contrib/amd/m4/macros/check_mount_trap.m447
-rw-r--r--contrib/amd/m4/macros/check_mount_type.m4164
-rw-r--r--contrib/amd/m4/macros/check_mtype_printf_type.m422
-rw-r--r--contrib/amd/m4/macros/check_mtype_type.m419
-rw-r--r--contrib/amd/m4/macros/check_network_transport_type.m427
-rw-r--r--contrib/amd/m4/macros/check_nfs_fh_dref.m447
-rw-r--r--contrib/amd/m4/macros/check_nfs_hn_dref.m421
-rw-r--r--contrib/amd/m4/macros/check_nfs_prot_headers.m494
-rw-r--r--contrib/amd/m4/macros/check_nfs_sa_dref.m433
-rw-r--r--contrib/amd/m4/macros/check_nfs_socket_connection.m428
-rw-r--r--contrib/amd/m4/macros/check_os_libs.m428
-rw-r--r--contrib/amd/m4/macros/check_restartable_signal_handler.m422
-rw-r--r--contrib/amd/m4/macros/check_umount_style.m424
-rw-r--r--contrib/amd/m4/macros/check_unmount_args.m421
-rw-r--r--contrib/amd/m4/macros/check_unmount_call.m427
-rw-r--r--contrib/amd/m4/macros/expand_cpp_hex.m440
-rw-r--r--contrib/amd/m4/macros/expand_cpp_int.m442
-rw-r--r--contrib/amd/m4/macros/expand_cpp_string.m440
-rw-r--r--contrib/amd/m4/macros/expand_run_string.m425
-rw-r--r--contrib/amd/m4/macros/extern_optarg.m436
-rw-r--r--contrib/amd/m4/macros/extern_sys_errlist.m430
-rw-r--r--contrib/amd/m4/macros/field_mntent_t_mnt_time_string.m436
-rw-r--r--contrib/amd/m4/macros/func_bad_memcmp.m411
-rw-r--r--contrib/amd/m4/macros/func_bad_yp_all.m427
-rw-r--r--contrib/amd/m4/macros/header_templates.m4917
-rw-r--r--contrib/amd/m4/macros/host_macros.m491
-rw-r--r--contrib/amd/m4/macros/linux_headers.m442
-rw-r--r--contrib/amd/m4/macros/localconfig.m413
-rw-r--r--contrib/amd/m4/macros/mount_headers.m412
-rw-r--r--contrib/amd/m4/macros/name_package.m48
-rw-r--r--contrib/amd/m4/macros/name_version.m48
-rw-r--r--contrib/amd/m4/macros/opt_amu_cflags.m424
-rw-r--r--contrib/amd/m4/macros/opt_cppflags.m422
-rw-r--r--contrib/amd/m4/macros/opt_debug.m430
-rw-r--r--contrib/amd/m4/macros/opt_ldflags.m422
-rw-r--r--contrib/amd/m4/macros/opt_libs.m422
-rw-r--r--contrib/amd/m4/macros/os_cflags.m480
-rw-r--r--contrib/amd/m4/macros/os_cppflags.m418
-rw-r--r--contrib/amd/m4/macros/os_ldflags.m422
-rw-r--r--contrib/amd/m4/macros/package_bugreport.m48
-rw-r--r--contrib/amd/m4/macros/package_name.m48
-rw-r--r--contrib/amd/m4/macros/package_version.m48
-rw-r--r--contrib/amd/m4/macros/save_state.m412
-rw-r--r--contrib/amd/m4/macros/struct_field_nfs_fh.m435
-rw-r--r--contrib/amd/m4/macros/struct_mntent.m421
-rw-r--r--contrib/amd/m4/macros/struct_mnttab.m421
-rw-r--r--contrib/amd/m4/macros/struct_nfs_args.m455
-rw-r--r--contrib/amd/m4/macros/struct_nfs_fh.m463
-rw-r--r--contrib/amd/m4/macros/struct_nfs_fh3.m462
-rw-r--r--contrib/amd/m4/macros/struct_nfs_gfs_mount.m422
-rw-r--r--contrib/amd/m4/macros/try_compile_anyfs.m4172
-rw-r--r--contrib/amd/m4/macros/try_compile_nfs.m413
-rw-r--r--contrib/amd/m4/macros/try_compile_rpc.m423
-rw-r--r--contrib/amd/m4/macros/type_auth_create_gidlist.m418
-rw-r--r--contrib/amd/m4/macros/type_cachefs_args.m423
-rw-r--r--contrib/amd/m4/macros/type_cdfs_args.m457
-rw-r--r--contrib/amd/m4/macros/type_efs_args.m425
-rw-r--r--contrib/amd/m4/macros/type_lofs_args.m430
-rw-r--r--contrib/amd/m4/macros/type_mfs_args.m423
-rw-r--r--contrib/amd/m4/macros/type_pcfs_args.m450
-rw-r--r--contrib/amd/m4/macros/type_recvfrom_fromlen.m420
-rw-r--r--contrib/amd/m4/macros/type_rfs_args.m423
-rw-r--r--contrib/amd/m4/macros/type_svc_in_arg.m439
-rw-r--r--contrib/amd/m4/macros/type_time_t.m45
-rw-r--r--contrib/amd/m4/macros/type_tmpfs_args.m423
-rw-r--r--contrib/amd/m4/macros/type_ufs_args.m441
-rw-r--r--contrib/amd/m4/macros/type_xdrproc_t.m420
-rw-r--r--contrib/amd/m4/macros/type_xfs_args.m425
-rw-r--r--contrib/amd/m4/macros/type_yp_order_outorder.m423
-rw-r--r--contrib/amd/m4/macros/with_addon.m426
-rwxr-xr-xcontrib/amd/m4/mk-aclocal18
-rwxr-xr-xcontrib/amd/m4/mkconf20
-rwxr-xr-xcontrib/amd/m4/rmtspc6
-rwxr-xr-xcontrib/amd/m4/update_build_version22
104 files changed, 5244 insertions, 0 deletions
diff --git a/contrib/amd/m4/GNUmakefile b/contrib/amd/m4/GNUmakefile
new file mode 100644
index 0000000..f35fef5
--- /dev/null
+++ b/contrib/amd/m4/GNUmakefile
@@ -0,0 +1,155 @@
+#
+# THIS MAKEFILE IS FOR am-utils maintainers only!
+#
+# GNUmakefile for remaking configuration files.
+#
+# Erez Zadok <ezk@cs.columbia.edu>
+#
+
+AUTOCONF=autoconf --localdir=./m4 ./m4/configure.in
+AUTOHEADER=autoheader --localdir=./m4 ./m4/configure.in
+#AUTOMAKE=./m4/automake --include-deps --amdir=./m4/amdir
+#AUTOMAKE=automake --include-deps --no-intermediates --localdir=./m4
+#AUTOMAKE=automake --include-deps --localdir=./m4
+AUTOMAKE=automake --include-deps --altdir=./m4
+ACLOCAL=aclocal --altdir=./m4
+MK_ACLOCAL=./mk-aclocal
+
+CUTWARNMSG="warning: AC_TRY_RUN called without default to allow cross compilin"
+CUTWARNMSG2="AC_OUTPUT_COMMANDS|autoupdate"
+AMFILES=../Makefile.am $(wildcard ../*/Makefile.am)
+INAMFILES=$(AMFILES:.am=.in)
+ACFILES=$(wildcard macros/*.m4 macros/HEADER macros/TRAILER m4/aclocal.m4)
+
+LOG=/tmp/amu-${USER}.log
+
+TOPDIR=..
+VPATH=
+
+all: testdir ${TOPDIR}/configure config.h.in ${TOPDIR}/Makefile.in \
+ GNUmakefile stamp-h.in
+
+config: all $(TOPDIR)/buildall aux_conf.h.in
+ (cd ${TOPDIR} && ./buildall -c)
+
+dconfig: all $(TOPDIR)/buildall aux_conf.h.in
+ (cd ${TOPDIR} && ./buildall -C)
+
+qconfig: all $(TOPDIR)/buildall aux_conf.h.in
+ (cd ${TOPDIR} && ./buildall -q)
+
+build: all $(TOPDIR)/buildall aux_conf.h.in
+ (cd ${TOPDIR} && ./buildall -b)
+
+world: all $(TOPDIR)/buildall aux_conf.h.in
+ (cd ${TOPDIR} && ./buildall)
+
+testdir: ${TOPDIR}/amd/amd.c
+
+${TOPDIR}/configure: configure.in aclocal.m4
+ -(cd ${TOPDIR} && ${AUTOCONF} > configure.new 2> ${LOG})
+ -@egrep -v ${CUTWARNMSG} ${LOG} > ${LOG}.new ; mv ${LOG}.new ${LOG}
+ @echo '############################################################'
+ @echo 'Checking for "AC_OUTPUT_COMMANDS" warnings:'
+ @echo ' (If you see any output, fix this when autoconf/automake are'
+ @echo ' back in sync in their CVS trees. -ezk, 2/10/00)'
+ -@egrep ${CUTWARNMSG2} ${LOG}
+ -@egrep -v ${CUTWARNMSG2} ${LOG} > ${LOG}.new ; mv ${LOG}.new ${LOG}
+ @echo '############################################################'
+ @if test -s ${LOG}; then cat ${LOG}; exit 2; fi
+ -mv ../configure ../configure.old
+ mv ../configure.new ../configure
+ rm -f ../configure.old
+ chmod a+rx $@
+
+config.h.in: configure.in acconfig.h
+ -(cd ${TOPDIR} && ${AUTOHEADER} > ./m4/config.h.in 2> ${LOG})
+ -@egrep -v ${CUTWARNMSG} ${LOG} > ${LOG}.new ; mv ${LOG}.new ${LOG}
+ @echo '############################################################'
+ @echo 'Checking for "AC_OUTPUT_COMMANDS" warnings:'
+ @echo ' (If you see any output, fix this when autoconf/automake are'
+ @echo ' back in sync in their CVS trees. -ezk, 2/10/00)'
+ -@egrep ${CUTWARNMSG2} ${LOG}
+ -@egrep -v ${CUTWARNMSG2} ${LOG} > ${LOG}.new ; mv ${LOG}.new ${LOG}
+ @echo '############################################################'
+ @if test -s ${LOG}; then cat ${LOG}; exit 2; fi
+
+${TOPDIR}/Makefile.in: ${AMFILES} configure.in aclocal.m4
+ (cd ${TOPDIR} && ${AUTOMAKE})
+ @rm -f ${LOG}
+
+aclocal.m4: ${ACFILES} configure.in
+ rm -f $@
+ ${MK_ACLOCAL} > acinclude.m4
+ (cd ${TOPDIR} && ${ACLOCAL})
+
+stamp-h.in: ${AMFILES} config.h.in aclocal.m4 aux_conf.h.in
+ echo timestamp > $@
+
+clean:
+ rm -f ${TOPDIR}/configure config.h.in $(INAMFILES) aclocal.m4 stamp.h.in
+
+##############################################################################
+# maintainer rules to update autoconf/automake/libtool files distributed with
+# am-utils. -Erez.
+
+P1s=/usr/local/gnu/share/automake
+P2s=/usr/local/gnu/share/libtool
+P1=/usr/local/gnu/lib/automake
+P2=/usr/local/gnu/lib/libtool
+P3=/misc/mirror/gnu/prep/config
+P4=/misc/mirror/gnu/prep
+ICMD=./m4/copy-if-newbig
+CPCMD=cp -p
+
+update: \
+ config.guess \
+ config.sub \
+ doc/texinfo.tex
+# depcomp \
+# install-sh \
+# ltconfig \
+# ltmain.sh \
+# mdate-sh \
+# missing \
+# mkinstalldirs \
+
+config.guess:: $(P1s)/config.guess
+ $(ICMD) $? $@
+config.guess:: $(P2s)/config.guess
+ $(ICMD) $? $@
+config.guess:: $(P3)/config.guess
+ $(ICMD) $? $@
+
+config.sub:: $(P1s)/config.sub
+ $(ICMD) $? $@
+config.sub:: $(P2s)/config.sub
+ $(ICMD) $? $@
+config.sub:: $(P3)/config.sub
+ $(ICMD) $? $@
+
+depcomp:: $(P1)/depcomp
+ $(CPCMD) $? $@
+
+install-sh: $(P1)/install-sh
+ $(CPCMD) $? $@
+
+ltconfig: $(P2)/ltconfig
+ $(CPCMD) $? $@
+
+ltmain.sh: $(P2)/ltmain.sh
+ $(CPCMD) $? $@
+
+mdate-sh: $(P1)/mdate-sh
+ $(CPCMD) $? $@
+
+missing: $(P1)/missing
+ $(CPCMD) $? $@
+
+mkinstalldirs: $(P1)/mkinstalldirs
+ $(CPCMD) $? $@
+
+doc/texinfo.tex: $(P4)/texinfo.tex
+ $(CPCMD) $? $@
+
+##############################################################################
diff --git a/contrib/amd/m4/amdgrep b/contrib/amd/m4/amdgrep
new file mode 100755
index 0000000..86dffbf
--- /dev/null
+++ b/contrib/amd/m4/amdgrep
@@ -0,0 +1,7 @@
+#!/bin/sh
+exec egrep -n "$*" \
+ [a-z]*/*.[hcyl] \
+ conf/*/*.[hc] \
+ Makefile.am \
+ [a-z]*/Makefile.am \
+ m4/macros/*.m4
diff --git a/contrib/amd/m4/amindent b/contrib/amd/m4/amindent
new file mode 100755
index 0000000..8c4f7fc
--- /dev/null
+++ b/contrib/amd/m4/amindent
@@ -0,0 +1,328 @@
+#!/bin/sh
+# indent all am-utils files
+if [ ! -f amd/amd.c ]; then
+ # maybe we are in a subdir
+ echo cd ..
+ cd ..
+fi
+if [ ! -f amd/amd.c ]; then
+ echo "please run $0 from the top level of the am-utils source tree"
+ exit 2
+fi
+
+# files="
+# */*.[hc]
+# */*.h.in
+# conf/*/*.[hc]
+# OLD/*/*.[hc]
+# "
+#files="conf/*/*.[hc]"
+files="specify_the_file.c"
+
+sunopts="
+-npro
+-nbad
+-bap
+-bbb
+-nbc
+-br
+-ncdb
+-d0
+-di0
+-nei
+-eei
+-nfc1
+-i2
+-lp
+-nsc
+-TIntFuncPtr
+-Tadd_fn
+-Taddrlist
+-Tam_node
+-Tam_ops
+-Tam_opts
+-Tam_stats
+-Tamq_mount_info
+-Tamq_mount_info_list
+-Tamq_mount_stats
+-Tamq_mount_tree
+-Tamq_mount_tree_list
+-Tamq_mount_tree_p
+-Tamq_opt
+-Tamq_setopt
+-Tamq_string
+-Tattrstat
+-Tauto_tree
+-Tautomount
+-Tcallout
+-Tcreateargs
+-Tdict
+-Tdict_data
+-Tdict_ent
+-Tdirlist
+-Tdiropargs
+-Tdiropokres
+-Tdiropres
+-Tdirpath
+-Tdisk_fs
+-Tentry
+-Tether_if
+-Texportnode
+-Texports
+-Tfattr
+-Tfh_cache
+-Tfhandle
+-Tfhandle_t
+-Tfhstatus
+-Tfilename
+-Tfserver
+-Tfsmount
+-Tftype
+-Tfwd_fun
+-Tgid_t
+-Tgroupnode
+-Tgroups
+-Thost
+-Tioloc
+-Tkv
+-Tlinkargs
+-Tmap_type
+-Tmnt_map
+-Tmntfs
+-Tmntlist
+-Tmount
+-Tmountbody
+-Tmountlist
+-Tname
+-Tnfs_fh
+-Tnfs_private
+-Tnfscookie
+-Tnfspath
+-Tnfsstat
+-Tnfstime
+-Tnfsx_mnt
+-Tnsw_lookup
+-Tnsw_switchconfig
+-Topt_apply
+-Tpid_t
+-Tpjob
+-Tqelem
+-Treadargs
+-Treaddirargs
+-Treaddirres
+-Treadlinkres
+-Treadokres
+-Treadres
+-Trenameargs
+-Trpc_forward
+-Tsattr
+-Tsattrargs
+-Tserv_state
+-Tstatfsokres
+-Tstatfsres
+-Tsymlinkargs
+-Ttask_fun
+-Ttime_t
+-Ttime_type
+-Tuid2home_t
+-Tuid_t
+-Tusername2uid_t
+-Tvffserver
+-Tvfmount_fs
+-Tvfs_init
+-Tvfs_match
+-Tvfumount_fs
+-Tvmount_fs
+-Tvmounted
+-Tvoidp
+-Tvumount_fs
+-Tvumounted
+-Twriteargs
+"
+
+gnuopts="
+-npro
+-nbad
+-bap
+-sob
+-fca
+-nfc1
+-ncdb
+-br
+-ce
+-ss
+-npcs
+-cs
+-nbc
+-psl
+-lp
+-sc
+-T IntFuncPtr
+-T add_fn
+-T addrlist
+-T am_node
+-T am_ops
+-T am_opts
+-T am_stats
+-T amq_mount_info
+-T amq_mount_info_list
+-T amq_mount_stats
+-T amq_mount_tree
+-T amq_mount_tree_list
+-T amq_mount_tree_p
+-T amq_opt
+-T amq_setopt
+-T amq_string
+-T attrstat
+-T auto_tree
+-T automount
+-T callout
+-T createargs
+-T dict
+-T dict_data
+-T dict_ent
+-T dirlist
+-T diropargs
+-T diropokres
+-T diropres
+-T dirpath
+-T disk_fs
+-T entry
+-T ether_if
+-T exportnode
+-T exports
+-T fattr
+-T fh_cache
+-T fhandle
+-T fhandle_t
+-T fhstatus
+-T filename
+-T fserver
+-T fsmount
+-T ftype
+-T fwd_fun
+-T gid_t
+-T groupnode
+-T groups
+-T host
+-T ioloc
+-T kv
+-T linkargs
+-T map_type
+-T mnt_map
+-T mntfs
+-T mntlist
+-T mount
+-T mountbody
+-T mountlist
+-T name
+-T nfs_fh
+-T nfs_private
+-T nfscookie
+-T nfspath
+-T nfsstat
+-T nfstime
+-T nfsx_mnt
+-T nsw_lookup
+-T nsw_switchconfig
+-T opt_apply
+-T pid_t
+-T pjob
+-T qelem
+-T readargs
+-T readdirargs
+-T readdirres
+-T readlinkres
+-T readokres
+-T readres
+-T renameargs
+-T rpc_forward
+-T sattr
+-T sattrargs
+-T serv_state
+-T statfsokres
+-T statfsres
+-T symlinkargs
+-T task_fun
+-T time_t
+-T time_type
+-T uid2home_t
+-T uid_t
+-T username2uid_t
+-T vffserver
+-T vfmount_fs
+-T vfs_init
+-T vfs_match
+-T vfumount_fs
+-T vmount_fs
+-T vmounted
+-T voidp
+-T vumount_fs
+-T vumounted
+-T writeargs
+"
+
+
+#prefix=".C"
+
+# check args
+if [ $# -lt 1 ]; then
+ echo "Usage: $0 <-g|-s> [files...]"
+ exit 1
+fi
+if [ $1 = "-g" -o "$1" = "-s" ]; then
+ OPT=$1
+ shift
+else
+ echo "Usage: $0 <-g|-s> [files...]"
+ exit 1
+fi
+# check if specified files to process
+if [ $# -gt 0 ]; then
+ files="$*"
+fi
+
+for i in ${files}; do
+ if [ ! -f $i ]; then
+ echo "No such file: $i"
+ continue
+ fi
+
+ case $OPT in
+
+ -g )
+ icmd="/usr/local/gnu/bin/indent"
+ cmd="${icmd} $i -o $i$prefix $gnuopts"
+ showcmd="${icmd} $i -o $i$prefix"
+
+ ;;
+
+ -s )
+ icmd="/opt/SUNWspro/bin/indent"
+ cmd="${icmd} $i $i$prefix $sunopts"
+ showcmd="${icmd} $i $i$prefix"
+ ;;
+
+ * )
+ echo "Usage: $0 <-g|-s>"
+ exit 1
+ ;;
+ esac
+
+ echo ${showcmd}
+ ${cmd}
+ if [ $? != 0 ]; then
+ echo Failed!
+ exit $?
+ fi
+
+ # remove trailing spaces
+ cmd="./m4/rmtspc $i"
+ echo ${cmd}
+ ${cmd}
+ if [ $? != 0 ]; then
+ echo Failed!
+ exit $?
+ fi
+
+done
diff --git a/contrib/amd/m4/autopat b/contrib/amd/m4/autopat
new file mode 100755
index 0000000..1b1ed77
--- /dev/null
+++ b/contrib/amd/m4/autopat
@@ -0,0 +1,36 @@
+#!/bin/bash -norc
+# find patterns of cache entries to automatically remove from config.cache
+# Used by am-utils developers.
+# Erez Zadok <ezk@cs.columbia.edu>
+#set -x
+
+macdir="../m4/macros"
+
+# find the right directory
+if [ ! -d $macdir ]; then
+ echo "Could not find $macdir directory."
+ exit 2
+fi
+
+# skip if no config.cache file
+if [ ! -f config.cache ]; then
+ echo "Not in the A.cpu-company-system."
+ exit 2
+fi
+
+# look for files that changed vs. config.cache
+pat=""
+for i in ${macdir}/*.m4; do
+ if test $i -nt config.cache; then
+ n=`egrep '^ac_cv_' $i |sed 's/[^a-zA-Z0-9_].*//g'|sort|uniq`
+ if test -z "$n"; then
+ continue;
+ fi
+ if test -z "$pat"; then
+ pat="$n"
+ else
+ pat="$pat|$n"
+ fi
+ fi
+done
+echo "$pat"
diff --git a/contrib/amd/m4/chop-aclocal.pl b/contrib/amd/m4/chop-aclocal.pl
new file mode 100755
index 0000000..2bf6b75
--- /dev/null
+++ b/contrib/amd/m4/chop-aclocal.pl
@@ -0,0 +1,19 @@
+#!/bin/perl -w
+
+$seq = 1;
+$file = "";
+$file = sprintf("tmp/%02d.m4", $seq);
+open(FILE, ">$file") || die "cannot open \"$file\": $!";
+printf(STDOUT "FILE: $file\n");
+while (<>) {
+ if (/^$/) {
+ close(FILE);
+ $seq++;
+ $file = sprintf("tmp/%02d.m4", $seq);
+ open(FILE, ">$file") || die "cannot open \"$file\": $!";
+ printf(STDOUT "FILE: $file\n");
+ next;
+ }
+ printf FILE;
+}
+close(FILE);
diff --git a/contrib/amd/m4/copy-if-newbig b/contrib/amd/m4/copy-if-newbig
new file mode 100755
index 0000000..3438c52
--- /dev/null
+++ b/contrib/amd/m4/copy-if-newbig
@@ -0,0 +1,29 @@
+#!/usr/bin/perl -w
+# copy a file if it is both newer and bigger in size
+# if copying, first rename older file to .orig
+
+$src = $ARGV[0];
+$dst = $ARGV[1];
+# dev,ino,mode,nlink,uid,gid,rdev,size,atime,mtime,ctime,blksize,blocks
+@srcstat = stat($src);
+@dststat = stat($dst);
+
+$srcsize = $srcstat[7];
+$srcmtime = $srcstat[9];
+$dstsize = $dststat[7];
+$dstmtime = $dststat[9];
+
+# copy if src file is bigger and newer
+if ($srcsize > $dstsize && $srcmtime > $dstmtime) {
+ print "mv -f $dst $dst.orig\n";
+ system("mv -f $dst $dst.orig");
+ print "cp -p $src $dst\n";
+ system("cp -p $src $dst");
+ die "cp command failed" if ($? != 0);
+}
+# make sure dst file has newer timestamp
+if ($srcmtime > $dstmtime) {
+ print "touch $dst\n";
+ system("touch $dst");
+}
+exit(0);
diff --git a/contrib/amd/m4/macros/HEADER b/contrib/amd/m4/macros/HEADER
new file mode 100644
index 0000000..928095f
--- /dev/null
+++ b/contrib/amd/m4/macros/HEADER
@@ -0,0 +1,13 @@
+dnl aclocal.m4 file for am-utils-6.x
+dnl Contains definitions for specialized GNU-autoconf macros.
+dnl Author: Erez Zadok <ezk@cs.columbia.edu>
+dnl
+dnl DO NOT EDIT DIRECTLY! Generated automatically by maintainers from
+dnl m4/GNUmakefile!
+dnl
+dnl ######################################################################
+dnl UNCOMMENT THE NEXT FEW LINES FOR DEBUGGING CONFIGURE
+dnl define([AC_CACHE_LOAD], )dnl
+dnl define([AC_CACHE_SAVE], )dnl
+dnl ======================================================================
+
diff --git a/contrib/amd/m4/macros/TRAILER b/contrib/amd/m4/macros/TRAILER
new file mode 100644
index 0000000..0e77c354
--- /dev/null
+++ b/contrib/amd/m4/macros/TRAILER
@@ -0,0 +1,2 @@
+dnl ######################################################################
+dnl end of aclocal.m4 for am-utils-6.x
diff --git a/contrib/amd/m4/macros/c_void_p.m4 b/contrib/amd/m4/macros/c_void_p.m4
new file mode 100644
index 0000000..50c246f
--- /dev/null
+++ b/contrib/amd/m4/macros/c_void_p.m4
@@ -0,0 +1,22 @@
+dnl ######################################################################
+dnl check if compiler can handle "void *"
+AC_DEFUN(AMU_C_VOID_P,
+[
+AC_CACHE_CHECK(if compiler can handle void *,
+ac_cv_c_void_p,
+[
+# try to compile a program which uses void *
+AC_TRY_COMPILE(
+[ ],
+[
+void *vp;
+], ac_cv_c_void_p=yes, ac_cv_c_void_p=no)
+])
+if test "$ac_cv_c_void_p" = yes
+then
+ AC_DEFINE(voidp, void *)
+else
+ AC_DEFINE(voidp, char *)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/cache_check_dynamic.m4 b/contrib/amd/m4/macros/cache_check_dynamic.m4
new file mode 100644
index 0000000..b8eb598
--- /dev/null
+++ b/contrib/amd/m4/macros/cache_check_dynamic.m4
@@ -0,0 +1,26 @@
+dnl ######################################################################
+dnl New versions of the cache functions which also dynamically evaluate the
+dnl cache-id field, so that it may contain shell variables to expand
+dnl dynamically for the creation of $ac_cv_* variables on the fly.
+dnl In addition, this function allows you to call COMMANDS which generate
+dnl output on the command line, because it prints its own AC_MSG_CHECKING
+dnl after COMMANDS are run.
+dnl
+dnl ======================================================================
+dnl AMU_CACHE_CHECK_DYNAMIC(MESSAGE, CACHE-ID, COMMANDS)
+define(AMU_CACHE_CHECK_DYNAMIC,
+[
+ac_tmp=`echo $2`
+if eval "test \"`echo '$''{'$ac_tmp'+set}'`\" = set"; then
+ AC_MSG_CHECKING([$1])
+ echo $ECHO_N "(cached) $ECHO_C" 1>&AS_MESSAGE_FD([])
+dnl XXX: for older autoconf versions
+dnl echo $ac_n "(cached) $ac_c" 1>&AS_MESSAGE_FD([])
+else
+ $3
+ AC_MSG_CHECKING([$1])
+fi
+ac_tmp_val=`eval eval "echo '$''{'$ac_tmp'}'"`
+AC_MSG_RESULT($ac_tmp_val)
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_amu_fs.m4 b/contrib/amd/m4/macros/check_amu_fs.m4
new file mode 100644
index 0000000..391deb3
--- /dev/null
+++ b/contrib/amd/m4/macros/check_amu_fs.m4
@@ -0,0 +1,40 @@
+dnl ######################################################################
+dnl check if an automounter filesystem exists (it almost always does).
+dnl Usage: AC_CHECK_AMU_FS(<fs>, <msg>, [<depfs>])
+dnl Print the message in <msg>, and declare HAVE_AMU_FS_<fs> true.
+dnl If <depfs> is defined, then define this filesystem as tru only of the
+dnl filesystem for <depfs> is true.
+AC_DEFUN(AMU_CHECK_AMU_FS,
+[
+# store variable name of fs
+ac_upcase_am_fs_name=`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ac_safe=HAVE_AMU_FS_$ac_upcase_am_fs_name
+# check for cache and set it if needed
+AMU_CACHE_CHECK_DYNAMIC(for $2 filesystem ($1),
+ac_cv_am_fs_$1,
+[
+# true by default
+eval "ac_cv_am_fs_$1=yes"
+# if <depfs> exists but is defined to "no", set this filesystem to no.
+if test -n "$3"
+then
+ # flse by default if arg 3 was supplied
+ eval "ac_cv_am_fs_$1=no"
+ if test "`eval echo '$''{ac_cv_fs_'$3'}'`" = yes
+ then
+ eval "ac_cv_am_fs_$1=yes"
+ fi
+ # some filesystems do not have a mnttab entry, but exist based on headers
+ if test "`eval echo '$''{ac_cv_fs_header_'$3'}'`" = yes
+ then
+ eval "ac_cv_am_fs_$1=yes"
+ fi
+fi
+])
+# check if need to define variable
+if test "`eval echo '$''{ac_cv_am_fs_'$1'}'`" = yes
+then
+ AC_DEFINE_UNQUOTED($ac_safe)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_checkmount_style.m4 b/contrib/amd/m4/macros/check_checkmount_style.m4
new file mode 100644
index 0000000..a2e7555
--- /dev/null
+++ b/contrib/amd/m4/macros/check_checkmount_style.m4
@@ -0,0 +1,28 @@
+dnl ######################################################################
+dnl check style of fixmount check_mount() function
+AC_DEFUN(AMU_CHECK_CHECKMOUNT_STYLE,
+[
+AC_CACHE_CHECK(style of fixmount check_mount(),
+ac_cv_style_checkmount,
+[
+# select the correct style for unmounting filesystems
+case "${host_os_name}" in
+ svr4* | sysv4* | solaris2* | sunos5* )
+ ac_cv_style_checkmount=svr4 ;;
+ bsd44* | bsdi* | freebsd* | netbsd* | openbsd* | darwin* | rhapsody* )
+ ac_cv_style_checkmount=bsd44 ;;
+ aix* )
+ ac_cv_style_checkmount=aix ;;
+ osf* )
+ ac_cv_style_checkmount=osf ;;
+ ultrix* )
+ ac_cv_style_checkmount=ultrix ;;
+ * )
+ ac_cv_style_checkmount=default ;;
+esac
+])
+am_utils_checkmount_style_file="check_mount.c"
+am_utils_link_files=${am_utils_link_files}fixmount/${am_utils_checkmount_style_file}:conf/checkmount/checkmount_${ac_cv_style_checkmount}.c" "
+
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_extern.m4 b/contrib/amd/m4/macros/check_extern.m4
new file mode 100644
index 0000000..a278426
--- /dev/null
+++ b/contrib/amd/m4/macros/check_extern.m4
@@ -0,0 +1,98 @@
+dnl ######################################################################
+dnl check for external definition for a function (not external variables)
+dnl Usage AMU_CHECK_EXTERN(extern)
+dnl Checks for external definition for "extern" that is delimited on the
+dnl left and the right by a character that is not a valid symbol character.
+dnl
+dnl Note that $pattern below is very carefully crafted to match any system
+dnl external definition, with __P posix prototypes, with or without an extern
+dnl word, etc. Think twice before changing this.
+AC_DEFUN(AMU_CHECK_EXTERN,
+[
+# store variable name for external definition
+ac_upcase_extern_name=`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ac_safe=HAVE_EXTERN_$ac_upcase_extern_name
+# check for cached value and set it if needed
+AMU_CACHE_CHECK_DYNAMIC(external function definition for $1,
+ac_cv_extern_$1,
+[
+# the old pattern assumed that the complete external definition is on one
+# line but on some systems it is split over several lines, so only match
+# beginning of the extern definition including the opening parenthesis.
+#pattern="(extern)?.*[^a-zA-Z0-9_]$1[^a-zA-Z0-9_]?.*\(.*\).*;"
+pattern="(extern)?.*[[^a-zA-Z0-9_]]$1[[^a-zA-Z0-9_]]?.*\("
+AC_EGREP_CPP(${pattern},
+[
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif /* HAVE_SYS_TYPES_H */
+#ifdef HAVE_SYS_WAIT_H
+# include <sys/wait.h>
+#endif /* HAVE_SYS_WAIT_H */
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else /* not TIME_WITH_SYS_TIME */
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else /* not HAVE_SYS_TIME_H */
+# include <time.h>
+# endif /* not HAVE_SYS_TIME_H */
+#endif /* not TIME_WITH_SYS_TIME */
+
+#ifdef HAVE_STDIO_H
+# include <stdio.h>
+#endif /* HAVE_STDIO_H */
+#ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+#endif /* HAVE_STDLIB_H */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+#if HAVE_STRING_H
+# include <string.h>
+#endif /* HAVE_STRING_H */
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif /* HAVE_STRINGS_H */
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif /* HAVE_NETDB_H */
+#ifdef HAVE_CLUSTER_H
+# include <cluster.h>
+#endif /* HAVE_CLUSTER_H */
+#ifdef HAVE_RPC_RPC_H
+/*
+ * Turn on PORTMAP, so that additional header files would get included
+ * and the important definition for UDPMSGSIZE is included too.
+ */
+# ifndef PORTMAP
+# define PORTMAP
+# endif /* not PORTMAP */
+# include <rpc/rpc.h>
+# ifndef XDRPROC_T_TYPE
+typedef bool_t (*xdrproc_t) __P ((XDR *, __ptr_t, ...));
+# endif /* not XDRPROC_T_TYPE */
+#endif /* HAVE_RPC_RPC_H */
+
+], eval "ac_cv_extern_$1=yes", eval "ac_cv_extern_$1=no")
+])
+# check if need to define variable
+if test "`eval echo '$''{ac_cv_extern_'$1'}'`" = yes
+then
+ AC_DEFINE_UNQUOTED($ac_safe)
+fi
+])
+dnl ======================================================================
+
+dnl ######################################################################
+dnl run AMU_CHECK_EXTERN on each argument given
+dnl Usage: AMU_CHECK_EXTERNS(arg arg arg ...)
+AC_DEFUN(AMU_CHECK_EXTERNS,
+[
+for ac_tmp_arg in $1
+do
+AMU_CHECK_EXTERN($ac_tmp_arg)
+done
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_fhandle.m4 b/contrib/amd/m4/macros/check_fhandle.m4
new file mode 100644
index 0000000..c1ecbc4
--- /dev/null
+++ b/contrib/amd/m4/macros/check_fhandle.m4
@@ -0,0 +1,25 @@
+dnl ######################################################################
+dnl Find if type 'fhandle' exists
+AC_DEFUN(AMU_CHECK_FHANDLE,
+[
+AC_CACHE_CHECK(if plain fhandle type exists,
+ac_cv_have_fhandle,
+[
+# try to compile a program which may have a definition for the type
+# set to a default value
+ac_cv_have_fhandle=no
+# look for "struct nfs_fh"
+if test "$ac_cv_have_fhandle" = no
+then
+AC_TRY_COMPILE_NFS(
+[ fhandle a;
+], ac_cv_have_fhandle=yes, ac_cv_have_fhandle=no)
+fi
+
+])
+if test "$ac_cv_have_fhandle" != no
+then
+ AC_DEFINE(HAVE_FHANDLE)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_field.m4 b/contrib/amd/m4/macros/check_field.m4
new file mode 100644
index 0000000..9659787
--- /dev/null
+++ b/contrib/amd/m4/macros/check_field.m4
@@ -0,0 +1,110 @@
+dnl ######################################################################
+dnl FIXED VERSION OF AUTOCONF 2.50 AC_CHECK_MEMBER. g/cc will fail to check
+dnl a member if the .member is itself a data structure, because you cannot
+dnl compare, in C, a data structure against NULL; you can compare a native
+dnl data type (int, char) or a pointer. Solution: do what I did in my
+dnl original member checking macro: try to take the address of the member.
+dnl You can always take the address of anything.
+dnl -Erez Zadok, Feb 6, 2002.
+dnl
+# AC_CHECK_MEMBER2(AGGREGATE.MEMBER,
+# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
+# [INCLUDES])
+# ---------------------------------------------------------
+# AGGREGATE.MEMBER is for instance `struct passwd.pw_gecos', shell
+# variables are not a valid argument.
+AC_DEFUN([AC_CHECK_MEMBER2],
+[AS_LITERAL_IF([$1], [],
+ [AC_FATAL([$0: requires literal arguments])])dnl
+m4_if(m4_regexp([$1], [\.]), -1,
+ [AC_FATAL([$0: Did not see any dot in `$1'])])dnl
+AS_VAR_PUSHDEF([ac_Member], [ac_cv_member_$1])dnl
+dnl Extract the aggregate name, and the member name
+AC_CACHE_CHECK([for $1], ac_Member,
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT([$4])],
+[dnl AGGREGATE ac_aggr;
+static m4_patsubst([$1], [\..*]) ac_aggr;
+dnl ac_aggr.MEMBER;
+if (&(ac_aggr.m4_patsubst([$1], [^[^.]*\.])))
+return 0;])],
+ [AS_VAR_SET(ac_Member, yes)],
+ [AS_VAR_SET(ac_Member, no)])])
+AS_IF([test AS_VAR_GET(ac_Member) = yes], [$2], [$3])dnl
+AS_VAR_POPDEF([ac_Member])dnl
+])# AC_CHECK_MEMBER
+
+# AC_CHECK_MEMBERS2([AGGREGATE.MEMBER, ...],
+# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]
+# [INCLUDES])
+# ---------------------------------------------------------
+# The first argument is an m4 list.
+AC_DEFUN([AC_CHECK_MEMBERS2],
+[m4_foreach([AC_Member], [$1],
+ [AC_CHECK_MEMBER2(AC_Member,
+ [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_[]AC_Member), 1,
+ [Define if `]m4_patsubst(AC_Member,
+ [^[^.]*\.])[' is
+ member of `]m4_patsubst(AC_Member, [\..*])['.])
+$2],
+ [$3],
+ [$4])])])
+
+
+dnl ######################################################################
+dnl find if structure $1 has field field $2
+AC_DEFUN(AMU_CHECK_FIELD,
+[
+AC_CHECK_MEMBERS2($1, , ,[
+AMU_MOUNT_HEADERS(
+[
+/* now set the typedef */
+#ifdef HAVE_STRUCT_MNTENT
+typedef struct mntent mntent_t;
+#else /* not HAVE_STRUCT_MNTENT */
+# ifdef HAVE_STRUCT_MNTTAB
+typedef struct mnttab mntent_t;
+# endif /* HAVE_STRUCT_MNTTAB */
+#endif /* not HAVE_STRUCT_MNTENT */
+
+/*
+ * for various filesystem specific mount arguments
+ */
+
+#ifdef HAVE_SYS_FS_PC_FS_H
+# include <sys/fs/pc_fs.h>
+#endif /* HAVE_SYS_FS_PC_FS_H */
+#ifdef HAVE_MSDOSFS_MSDOSFSMOUNT_H
+# include <msdosfs/msdosfsmount.h>
+#endif /* HAVE_MSDOSFS_MSDOSFSMOUNT_H */
+
+#ifdef HAVE_SYS_FS_EFS_CLNT_H
+# include <sys/fs/efs_clnt.h>
+#endif /* HAVE_SYS_FS_EFS_CLNT_H */
+#ifdef HAVE_SYS_FS_XFS_CLNT_H
+# include <sys/fs/xfs_clnt.h>
+#endif /* HAVE_SYS_FS_XFS_CLNT_H */
+#ifdef HAVE_SYS_FS_UFS_MOUNT_H
+# include <sys/fs/ufs_mount.h>
+#endif /* HAVE_SYS_FS_UFS_MOUNT_H */
+#ifdef HAVE_SYS_FS_AUTOFS_H
+# include <sys/fs/autofs.h>
+#endif /* HAVE_SYS_FS_AUTOFS_H */
+#ifdef HAVE_RPCSVC_AUTOFS_PROT_H
+# include <rpcsvc/autofs_prot.h>
+#else /* not HAVE_RPCSVC_AUTOFS_PROT_H */
+# ifdef HAVE_SYS_FS_AUTOFS_PROT_H
+# include <sys/fs/autofs_prot.h>
+# endif /* HAVE_SYS_FS_AUTOFS_PROT_H */
+#endif /* not HAVE_RPCSVC_AUTOFS_PROT_H */
+#ifdef HAVE_HSFS_HSFS_H
+# include <hsfs/hsfs.h>
+#endif /* HAVE_HSFS_HSFS_H */
+
+#ifdef HAVE_IFADDRS_H
+# include <ifaddrs.h>
+#endif /* HAVE_IFADDRS_H */
+
+])
+])
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_fs_headers.m4 b/contrib/amd/m4/macros/check_fs_headers.m4
new file mode 100644
index 0000000..39052ca
--- /dev/null
+++ b/contrib/amd/m4/macros/check_fs_headers.m4
@@ -0,0 +1,53 @@
+dnl ######################################################################
+dnl check if a filesystem exists (if any of its header files exist).
+dnl Usage: AC_CHECK_FS_HEADERS(<headers>..., <fs>, [<fssymbol>])
+dnl Check if any of the headers <headers> exist. If any exist, then
+dnl define HAVE_FS_<fs>. If <fssymbol> exits, then define
+dnl HAVE_FS_<fssymbol> instead...
+AC_DEFUN(AMU_CHECK_FS_HEADERS,
+[
+# find what name to give to the fs
+if test -n "$3"
+then
+ ac_fs_name=$3
+else
+ ac_fs_name=$2
+fi
+# store variable name of fs
+ac_upcase_fs_name=`echo $2 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ac_fs_headers_safe=HAVE_FS_$ac_upcase_fs_name
+# check for cache and set it if needed
+AMU_CACHE_CHECK_DYNAMIC(for $ac_fs_name filesystem in <$1>,
+ac_cv_fs_header_$ac_fs_name,
+[
+# define to "no" by default
+eval "ac_cv_fs_header_$ac_fs_name=no"
+# and look to see if it was found
+AC_CHECK_HEADERS($1,
+[ eval "ac_cv_fs_header_$ac_fs_name=yes"
+ break
+])])
+# check if need to define variable
+if test "`eval echo '$''{ac_cv_fs_header_'$ac_fs_name'}'`" = yes
+then
+ AC_DEFINE_UNQUOTED($ac_fs_headers_safe)
+# append ops_<fs>.o object to AMD_FS_OBJS for automatic compilation
+# if first time we add something to this list, then also tell autoconf
+# to replace instances of it in Makefiles.
+ if test -z "$AMD_FS_OBJS"
+ then
+ AMD_FS_OBJS="ops_${ac_fs_name}.o"
+ AC_SUBST(AMD_FS_OBJS)
+ else
+ # since this object file could have already been added before
+ # we need to ensure we do not add it twice.
+ case "${AMD_FS_OBJS}" in
+ *ops_${ac_fs_name}.o* ) ;;
+ * )
+ AMD_FS_OBJS="$AMD_FS_OBJS ops_${ac_fs_name}.o"
+ ;;
+ esac
+ fi
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_fs_mntent.m4 b/contrib/amd/m4/macros/check_fs_mntent.m4
new file mode 100644
index 0000000..22b16ff
--- /dev/null
+++ b/contrib/amd/m4/macros/check_fs_mntent.m4
@@ -0,0 +1,176 @@
+dnl ######################################################################
+dnl check if a filesystem type exists (if its header files exist)
+dnl Usage: AC_CHECK_FS_MNTENT(<filesystem>, [<fssymbol>])
+dnl
+dnl Check in some headers for MNTTYPE_<filesystem> macro. If that exist,
+dnl then define HAVE_FS_<filesystem>. If <fssymbol> exits, then define
+dnl HAVE_FS_<fssymbol> instead...
+AC_DEFUN(AMU_CHECK_FS_MNTENT,
+[
+# find what name to give to the fs
+if test -n "$2"
+then
+ ac_fs_name=$2
+ ac_fs_as_name=" (from: $1)"
+else
+ ac_fs_name=$1
+ ac_fs_as_name=""
+fi
+# store variable name of filesystem
+ac_upcase_fs_name=`echo $ac_fs_name | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ac_safe=HAVE_FS_$ac_upcase_fs_name
+# check for cache and set it if needed
+AMU_CACHE_CHECK_DYNAMIC(for $ac_fs_name$ac_fs_as_name mntent definition,
+ac_cv_fs_$ac_fs_name,
+[
+# assume not found
+eval "ac_cv_fs_$ac_fs_name=no"
+for ac_fs_tmp in $1
+do
+ ac_upcase_fs_symbol=`echo $ac_fs_tmp | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+
+ # first look for MNTTYPE_*
+ AC_EGREP_CPP(yes,
+ AMU_MOUNT_HEADERS(
+ [
+#ifdef MNTTYPE_$ac_upcase_fs_symbol
+ yes
+#endif /* MNTTYPE_$ac_upcase_fs_symbol */
+ ]), [eval "ac_cv_fs_$ac_fs_name=yes"], [eval "ac_cv_fs_$ac_fs_name=no"] )
+ # check if need to terminate "for" loop
+ if test "`eval echo '$''{ac_cv_fs_'$ac_fs_name'}'`" != no
+ then
+ break
+ fi
+
+ # now try to look for MOUNT_ macro
+ AC_EGREP_CPP(yes,
+ AMU_MOUNT_HEADERS(
+ [
+#ifdef MOUNT_$ac_upcase_fs_symbol
+ yes
+#endif /* MOUNT_$ac_upcase_fs_symbol */
+ ]), [eval "ac_cv_fs_$ac_fs_name=yes"], [eval "ac_cv_fs_$ac_fs_name=no"] )
+ # check if need to terminate "for" loop
+ if test "`eval echo '$''{ac_cv_fs_'$ac_fs_name'}'`" != no
+ then
+ break
+ fi
+
+ # now try to look for MNT_ macro
+ AC_EGREP_CPP(yes,
+ AMU_MOUNT_HEADERS(
+ [
+#ifdef MNT_$ac_upcase_fs_symbol
+ yes
+#endif /* MNT_$ac_upcase_fs_symbol */
+ ]), [eval "ac_cv_fs_$ac_fs_name=yes"], [eval "ac_cv_fs_$ac_fs_name=no"] )
+ # check if need to terminate "for" loop
+ if test "`eval echo '$''{ac_cv_fs_'$ac_fs_name'}'`" != no
+ then
+ break
+ fi
+
+ # now try to look for GT_ macro (ultrix)
+ AC_EGREP_CPP(yes,
+ AMU_MOUNT_HEADERS(
+ [
+#ifdef GT_$ac_upcase_fs_symbol
+ yes
+#endif /* GT_$ac_upcase_fs_symbol */
+ ]), [eval "ac_cv_fs_$ac_fs_name=yes"], [eval "ac_cv_fs_$ac_fs_name=no"] )
+ # check if need to terminate "for" loop
+ if test "`eval echo '$''{ac_cv_fs_'$ac_fs_name'}'`" != no
+ then
+ break
+ fi
+
+ # look for a loadable filesystem module (linux)
+ if test -f /lib/modules/$host_os_version/fs/$ac_fs_tmp.o
+ then
+ eval "ac_cv_fs_$ac_fs_name=yes"
+ break
+ fi
+
+ # look for a loadable filesystem module (linux 2.4+)
+ if test -f /lib/modules/$host_os_version/kernel/fs/$ac_fs_tmp/$ac_fs_tmp.o
+ then
+ eval "ac_cv_fs_$ac_fs_name=yes"
+ break
+ fi
+
+ # look for a loadable filesystem module (linux redhat-5.1)
+ if test -f /lib/modules/preferred/fs/$ac_fs_tmp.o
+ then
+ eval "ac_cv_fs_$ac_fs_name=yes"
+ break
+ fi
+
+ # in addition look for statically compiled filesystem (linux)
+ if egrep "[[^a-zA-Z0-9_]]$ac_fs_tmp$" /proc/filesystems >/dev/null 2>&1
+ then
+ eval "ac_cv_fs_$ac_fs_name=yes"
+ break
+ fi
+
+ if test "$ac_fs_tmp" = "nfs3" -a "$ac_cv_header_linux_nfs_mount_h" = "yes"
+ then
+ # hack hack hack
+ # in 6.1, which has fallback to v2/udp, we might want
+ # to always use version 4.
+ # in 6.0 we do not have much choice
+ #
+ let nfs_mount_version="`grep NFS_MOUNT_VERSION /usr/include/linux/nfs_mount.h | awk '{print $''3;}'`"
+ if test $nfs_mount_version -ge 4
+ then
+ eval "ac_cv_fs_$ac_fs_name=yes"
+ break
+ fi
+ fi
+
+ # run a test program for bsdi3
+ AC_TRY_RUN(
+ [
+#include <sys/param.h>
+#include <sys/mount.h>
+main()
+{
+ int i;
+ struct vfsconf vf;
+ i = getvfsbyname("$ac_fs_tmp", &vf);
+ if (i < 0)
+ exit(1);
+ else
+ exit(0);
+}
+ ], [eval "ac_cv_fs_$ac_fs_name=yes"
+ break
+ ]
+ )
+
+done
+])
+# check if need to define variable
+if test "`eval echo '$''{ac_cv_fs_'$ac_fs_name'}'`" = yes
+then
+ AC_DEFINE_UNQUOTED($ac_safe)
+# append ops_<fs>.o object to AMD_FS_OBJS for automatic compilation
+# if first time we add something to this list, then also tell autoconf
+# to replace instances of it in Makefiles.
+ if test -z "$AMD_FS_OBJS"
+ then
+ AMD_FS_OBJS="ops_${ac_fs_name}.o"
+ AC_SUBST(AMD_FS_OBJS)
+ else
+ # since this object file could have already been added before
+ # we need to ensure we do not add it twice.
+ case "${AMD_FS_OBJS}" in
+ *ops_${ac_fs_name}.o* ) ;;
+ * )
+ AMD_FS_OBJS="$AMD_FS_OBJS ops_${ac_fs_name}.o"
+ ;;
+ esac
+ fi
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_gnu_getopt.m4 b/contrib/amd/m4/macros/check_gnu_getopt.m4
new file mode 100644
index 0000000..be7be62
--- /dev/null
+++ b/contrib/amd/m4/macros/check_gnu_getopt.m4
@@ -0,0 +1,42 @@
+dnl ######################################################################
+dnl Do we have a GNUish getopt
+AC_DEFUN(AMU_CHECK_GNU_GETOPT,
+[
+AC_CACHE_CHECK([for GNU getopt], ac_cv_sys_gnu_getopt, [
+AC_TRY_RUN([
+#include <stdio.h>
+#include <unistd.h>
+int main()
+{
+ int argc = 3;
+ char *argv[] = { "actest", "arg", "-x", NULL };
+ int c;
+ FILE* rf;
+ int isGNU = 0;
+
+ rf = fopen("conftestresult", "w");
+ if (rf == NULL) exit(1);
+
+ while ( (c = getopt(argc, argv, "x")) != -1 ) {
+ switch ( c ) {
+ case 'x':
+ isGNU=1;
+ break;
+ default:
+ exit(1);
+ }
+ }
+ fprintf(rf, isGNU ? "yes" : "no");
+ exit(0);
+}
+],[
+ac_cv_sys_gnu_getopt="`cat conftestresult`"
+],[
+AC_MSG_ERROR(could not test for getopt())
+])
+])
+if test "$ac_cv_sys_gnu_getopt" = "yes"
+then
+ AC_DEFINE(HAVE_GNU_GETOPT)
+fi
+])
diff --git a/contrib/amd/m4/macros/check_hide_mount_type.m4 b/contrib/amd/m4/macros/check_hide_mount_type.m4
new file mode 100644
index 0000000..d16cab8
--- /dev/null
+++ b/contrib/amd/m4/macros/check_hide_mount_type.m4
@@ -0,0 +1,31 @@
+dnl ######################################################################
+dnl Define mount type to hide amd mounts from df(1)
+dnl
+dnl This has to be determined individually per OS. Depending on whatever
+dnl mount options are defined in the system header files such as
+dnl MNTTYPE_IGNORE or MNTTYPE_AUTO, or others does not work: some OSs define
+dnl some of these then use other stuff; some do not define them at all in
+dnl the headers, but still use it; and more. After a long attempt to get
+dnl this automatically configured, I came to the conclusion that the semi-
+dnl automatic per-host-os determination here is the best.
+dnl
+AC_DEFUN(AMU_CHECK_HIDE_MOUNT_TYPE,
+[
+AC_CACHE_CHECK(for mount type to hide from df,
+ac_cv_hide_mount_type,
+[
+case "${host_os}" in
+ irix* | hpux* )
+ ac_cv_hide_mount_type="ignore"
+ ;;
+ sunos4* )
+ ac_cv_hide_mount_type="auto"
+ ;;
+ * )
+ ac_cv_hide_mount_type="nfs"
+ ;;
+esac
+])
+AC_DEFINE_UNQUOTED(HIDE_MOUNT_TYPE, "$ac_cv_hide_mount_type")
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_lib2.m4 b/contrib/amd/m4/macros/check_lib2.m4
new file mode 100644
index 0000000..69125c6
--- /dev/null
+++ b/contrib/amd/m4/macros/check_lib2.m4
@@ -0,0 +1,66 @@
+dnl a bug-fixed version of autoconf 2.12.
+dnl first try to link library without $5, and only of that failed,
+dnl try with $5 if specified.
+dnl it adds $5 to $LIBS if it was needed -Erez.
+dnl AC_CHECK_LIB2(LIBRARY, FUNCTION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
+dnl [, OTHER-LIBRARIES]]])
+AC_DEFUN(AMU_CHECK_LIB2,
+[AC_MSG_CHECKING([for $2 in -l$1])
+dnl Use a cache variable name containing both the library and function name,
+dnl because the test really is for library $1 defining function $2, not
+dnl just for library $1. Separate tests with the same $1 and different $2s
+dnl may have different results.
+ac_lib_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
+AC_CACHE_VAL(ac_cv_lib_$ac_lib_var,
+[ac_save_LIBS="$LIBS"
+
+# first try with base library, without auxiliary library
+LIBS="-l$1 $LIBS"
+AC_TRY_LINK(dnl
+ifelse([$2], [main], , dnl Avoid conflicting decl of main.
+[/* Override any gcc2 internal prototype to avoid an error. */
+]
+[/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $2();
+]),
+ [$2()],
+ eval "ac_cv_lib_$ac_lib_var=\"$1\"",
+ eval "ac_cv_lib_$ac_lib_var=no")
+
+# if OK, set to no auxiliary library, else try auxiliary library
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = no"; then
+ LIBS="-l$1 $5 $LIBS"
+ AC_TRY_LINK(dnl
+ ifelse([$2], [main], , dnl Avoid conflicting decl of main.
+ [/* Override any gcc2 internal prototype to avoid an error. */
+ ]
+ [/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+ char $2();
+ ]),
+ [$2()],
+ eval "ac_cv_lib_$ac_lib_var=\"$1 $5\"",
+ eval "ac_cv_lib_$ac_lib_var=no")
+fi
+
+LIBS="$ac_save_LIBS"
+])dnl
+ac_tmp="`eval echo '$''{ac_cv_lib_'$ac_lib_var'}'`"
+if test "${ac_tmp}" != no; then
+ AC_MSG_RESULT(-l$ac_tmp)
+ ifelse([$3], ,
+[
+ ac_tr_lib=HAVE_LIB`echo $1 | sed -e 's/[[^a-zA-Z0-9_]]/_/g' \
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+
+ AC_DEFINE_UNQUOTED($ac_tr_lib)
+ LIBS="-l$ac_tmp $LIBS"
+], [$3])
+else
+ AC_MSG_RESULT(no)
+ifelse([$4], , , [$4
+])dnl
+fi
+
+])
diff --git a/contrib/amd/m4/macros/check_map_funcs.m4 b/contrib/amd/m4/macros/check_map_funcs.m4
new file mode 100644
index 0000000..2723d0e
--- /dev/null
+++ b/contrib/amd/m4/macros/check_map_funcs.m4
@@ -0,0 +1,47 @@
+dnl ######################################################################
+dnl check if a map exists (if some library function exists).
+dnl Usage: AC_CHECK_MAP_FUNCS(<functions>..., <map>, [<mapsymbol>])
+dnl Check if any of the functions <functions> exist. If any exist, then
+dnl define HAVE_MAP_<map>. If <mapsymbol> exits, then defined
+dnl HAVE_MAP_<mapsymbol> instead...
+AC_DEFUN(AMU_CHECK_MAP_FUNCS,
+[
+# find what name to give to the map
+if test -n "$3"
+then
+ ac_map_name=$3
+else
+ ac_map_name=$2
+fi
+# store variable name of map
+ac_upcase_map_name=`echo $2 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ac_safe=HAVE_MAP_$ac_upcase_map_name
+# check for cache and set it if needed
+AMU_CACHE_CHECK_DYNAMIC(for $ac_map_name maps,
+ac_cv_map_$ac_map_name,
+[
+# define to "no" by default
+eval "ac_cv_map_$ac_map_name=no"
+# and look to see if it was found
+AC_CHECK_FUNCS($1,
+[
+ eval "ac_cv_map_$ac_map_name=yes"
+ break
+])])
+# check if need to define variable
+if test "`eval echo '$''{ac_cv_map_'$ac_map_name'}'`" = yes
+then
+ AC_DEFINE_UNQUOTED($ac_safe)
+# append info_<map>.o object to AMD_INFO_OBJS for automatic compilation
+# if first time we add something to this list, then also tell autoconf
+# to replace instances of it in Makefiles.
+ if test -z "$AMD_INFO_OBJS"
+ then
+ AMD_INFO_OBJS="info_${ac_map_name}.o"
+ AC_SUBST(AMD_INFO_OBJS)
+ else
+ AMD_INFO_OBJS="$AMD_INFO_OBJS info_${ac_map_name}.o"
+ fi
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_mnt2_cdfs_opt.m4 b/contrib/amd/m4/macros/check_mnt2_cdfs_opt.m4
new file mode 100644
index 0000000..b85c8cbf
--- /dev/null
+++ b/contrib/amd/m4/macros/check_mnt2_cdfs_opt.m4
@@ -0,0 +1,92 @@
+dnl ######################################################################
+dnl Find CDFS-specific mount(2) options (hex numbers)
+dnl Usage: AMU_CHECK_MNT2_CDFS_OPT(<fs>)
+dnl Check if there is an entry for MS_<fs> or M_<fs> in sys/mntent.h or
+dnl mntent.h, then define MNT2_CDFS_OPT_<fs> to the hex number.
+AC_DEFUN(AMU_CHECK_MNT2_CDFS_OPT,
+[
+# what name to give to the fs
+ac_fs_name=$1
+# store variable name of fs
+ac_upcase_fs_name=`echo $ac_fs_name | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ac_safe=MNT2_CDFS_OPT_$ac_upcase_fs_name
+# check for cache and set it if needed
+AMU_CACHE_CHECK_DYNAMIC(for CDFS-specific mount(2) option $ac_fs_name,
+ac_cv_mnt2_cdfs_opt_$ac_fs_name,
+[
+# undefine by default
+eval "ac_cv_mnt2_cdfs_opt_$ac_fs_name=notfound"
+value=notfound
+
+# first, try MS_* (most systems). Must be the first test!
+if test "$value" = notfound
+then
+AMU_EXPAND_CPP_HEX(
+AMU_MOUNT_HEADERS
+, MS_$ac_upcase_fs_name)
+fi
+
+# if failed, try MNT_* (bsd44 systems)
+if test "$value" = notfound
+then
+AMU_EXPAND_CPP_HEX(
+AMU_MOUNT_HEADERS
+, MNT_$ac_upcase_fs_name)
+fi
+
+# if failed, try MS_* as an integer (linux systems)
+if test "$value" = notfound
+then
+AMU_EXPAND_CPP_INT(
+AMU_MOUNT_HEADERS
+, MS_$ac_upcase_fs_name)
+fi
+
+# If failed try M_* (must be last test since svr4 systems define M_DATA etc.
+# in <sys/stream.h>
+# This test was off for now, because of the conflicts with other systems.
+# but I turned it back on by faking the inclusion of <sys/stream.h> already.
+if test "$value" = notfound
+then
+AMU_EXPAND_CPP_HEX(
+#ifndef _sys_stream_h
+# define _sys_stream_h
+#endif /* not _sys_stream_h */
+#ifndef _SYS_STREAM_H
+# define _SYS_STREAM_H
+#endif /* not _SYS_STREAM_H */
+AMU_MOUNT_HEADERS
+, M_$ac_upcase_fs_name)
+fi
+
+# if failed, try ISOFSMNT_* as a hex (bsdi4 systems)
+if test "$value" = notfound
+then
+AMU_EXPAND_CPP_HEX(
+AMU_MOUNT_HEADERS
+, ISOFSMNT_$ac_upcase_fs_name)
+fi
+
+# set cache variable to value
+eval "ac_cv_mnt2_cdfs_opt_$ac_fs_name=$value"
+])
+# outside cache check, if ok, define macro
+ac_tmp=`eval echo '$''{ac_cv_mnt2_cdfs_opt_'$ac_fs_name'}'`
+if test "${ac_tmp}" != notfound
+then
+ AC_DEFINE_UNQUOTED($ac_safe, $ac_tmp)
+fi
+])
+dnl ======================================================================
+
+dnl ######################################################################
+dnl run AMU_CHECK_MNT2_CDFS_OPT on each argument given
+dnl Usage: AMU_CHECK_MNT2_CDFS_OPTS(arg arg arg ...)
+AC_DEFUN(AMU_CHECK_MNT2_CDFS_OPTS,
+[
+for ac_tmp_arg in $1
+do
+AMU_CHECK_MNT2_CDFS_OPT($ac_tmp_arg)
+done
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_mnt2_gen_opt.m4 b/contrib/amd/m4/macros/check_mnt2_gen_opt.m4
new file mode 100644
index 0000000..68d4874
--- /dev/null
+++ b/contrib/amd/m4/macros/check_mnt2_gen_opt.m4
@@ -0,0 +1,85 @@
+dnl ######################################################################
+dnl Find generic mount(2) options (hex numbers)
+dnl Usage: AMU_CHECK_MNT2_GEN_OPT(<fs>)
+dnl Check if there is an entry for MS_<fs>, MNT_<fs>, or M_<fs>
+dnl (in that order) in mntent.h, sys/mntent.h, or mount.h...
+dnl then define MNT2_GEN_OPT_<fs> to the hex number.
+AC_DEFUN(AMU_CHECK_MNT2_GEN_OPT,
+[
+# what name to give to the fs
+ac_fs_name=$1
+# store variable name of fs
+ac_upcase_fs_name=`echo $ac_fs_name | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ac_safe=MNT2_GEN_OPT_$ac_upcase_fs_name
+# check for cache and set it if needed
+AMU_CACHE_CHECK_DYNAMIC(for generic mount(2) option $ac_fs_name,
+ac_cv_mnt2_gen_opt_$ac_fs_name,
+[
+# undefine by default
+eval "ac_cv_mnt2_gen_opt_$ac_fs_name=notfound"
+value=notfound
+
+# first, try MS_* (most systems). Must be the first test!
+if test "$value" = notfound
+then
+AMU_EXPAND_CPP_HEX(
+AMU_MOUNT_HEADERS
+, MS_$ac_upcase_fs_name)
+fi
+
+# if failed, try MNT_* (bsd44 systems)
+if test "$value" = notfound
+then
+AMU_EXPAND_CPP_HEX(
+AMU_MOUNT_HEADERS
+, MNT_$ac_upcase_fs_name)
+fi
+
+# if failed, try MS_* as an integer (linux systems)
+if test "$value" = notfound
+then
+AMU_EXPAND_CPP_INT(
+AMU_MOUNT_HEADERS
+, MS_$ac_upcase_fs_name)
+fi
+
+# If failed try M_* (must be last test since svr4 systems define M_DATA etc.
+# in <sys/stream.h>
+# This test was off for now, because of the conflicts with other systems.
+# but I turned it back on by faking the inclusion of <sys/stream.h> already.
+if test "$value" = notfound
+then
+AMU_EXPAND_CPP_HEX(
+#ifndef _sys_stream_h
+# define _sys_stream_h
+#endif /* not _sys_stream_h */
+#ifndef _SYS_STREAM_H
+# define _SYS_STREAM_H
+#endif /* not _SYS_STREAM_H */
+AMU_MOUNT_HEADERS
+, M_$ac_upcase_fs_name)
+fi
+
+# set cache variable to value
+eval "ac_cv_mnt2_gen_opt_$ac_fs_name=$value"
+])
+# outside cache check, if ok, define macro
+ac_tmp=`eval echo '$''{ac_cv_mnt2_gen_opt_'$ac_fs_name'}'`
+if test "${ac_tmp}" != notfound
+then
+ AC_DEFINE_UNQUOTED($ac_safe, $ac_tmp)
+fi
+])
+dnl ======================================================================
+
+dnl ######################################################################
+dnl run AMU_CHECK_MNT2_GEN_OPT on each argument given
+dnl Usage: AMU_CHECK_MNT2_GEN_OPTS(arg arg arg ...)
+AC_DEFUN(AMU_CHECK_MNT2_GEN_OPTS,
+[
+for ac_tmp_arg in $1
+do
+AMU_CHECK_MNT2_GEN_OPT($ac_tmp_arg)
+done
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_mnt2_nfs_opt.m4 b/contrib/amd/m4/macros/check_mnt2_nfs_opt.m4
new file mode 100644
index 0000000..4e69eaf
--- /dev/null
+++ b/contrib/amd/m4/macros/check_mnt2_nfs_opt.m4
@@ -0,0 +1,59 @@
+dnl ######################################################################
+dnl Find NFS-specific mount(2) options (hex numbers)
+dnl Usage: AMU_CHECK_MNT2_NFS_OPT(<fs>)
+dnl Check if there is an entry for NFSMNT_<fs> in sys/mntent.h or
+dnl mntent.h, then define MNT2_NFS_OPT_<fs> to the hex number.
+AC_DEFUN(AMU_CHECK_MNT2_NFS_OPT,
+[
+# what name to give to the fs
+ac_fs_name=$1
+# store variable name of fs
+ac_upcase_fs_name=`echo $ac_fs_name | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ac_safe=MNT2_NFS_OPT_$ac_upcase_fs_name
+# check for cache and set it if needed
+AMU_CACHE_CHECK_DYNAMIC(for NFS-specific mount(2) option $ac_fs_name,
+ac_cv_mnt2_nfs_opt_$ac_fs_name,
+[
+# undefine by default
+eval "ac_cv_mnt2_nfs_opt_$ac_fs_name=notfound"
+value=notfound
+
+# first try NFSMNT_* (most systems)
+if test "$value" = notfound
+then
+AMU_EXPAND_CPP_HEX(
+AMU_MOUNT_HEADERS
+, NFSMNT_$ac_upcase_fs_name)
+fi
+
+# next try NFS_MOUNT_* (linux)
+if test "$value" = notfound
+then
+AMU_EXPAND_CPP_HEX(
+AMU_MOUNT_HEADERS
+, NFS_MOUNT_$ac_upcase_fs_name)
+fi
+
+# set cache variable to value
+eval "ac_cv_mnt2_nfs_opt_$ac_fs_name=$value"
+])
+# outside cache check, if ok, define macro
+ac_tmp=`eval echo '$''{ac_cv_mnt2_nfs_opt_'$ac_fs_name'}'`
+if test "${ac_tmp}" != notfound
+then
+ AC_DEFINE_UNQUOTED($ac_safe, $ac_tmp)
+fi
+])
+dnl ======================================================================
+
+dnl ######################################################################
+dnl run AMU_CHECK_MNT2_NFS_OPT on each argument given
+dnl Usage: AMU_CHECK_MNT2_NFS_OPTS(arg arg arg ...)
+AC_DEFUN(AMU_CHECK_MNT2_NFS_OPTS,
+[
+for ac_tmp_arg in $1
+do
+AMU_CHECK_MNT2_NFS_OPT($ac_tmp_arg)
+done
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_mnttab_file_name.m4 b/contrib/amd/m4/macros/check_mnttab_file_name.m4
new file mode 100644
index 0000000..6ad11d2
--- /dev/null
+++ b/contrib/amd/m4/macros/check_mnttab_file_name.m4
@@ -0,0 +1,57 @@
+dnl ######################################################################
+dnl Find name of mount table file, and define it as MNTTAB_FILE_NAME
+dnl
+dnl Solaris defines MNTTAB as /etc/mnttab, the file where /sbin/mount
+dnl stores its cache of mounted filesystems. But under SunOS, the same
+dnl macro MNTTAB, is defined as the _source_ of filesystems to mount, and
+dnl is set to /etc/fstab. That is why I have to first check out
+dnl if MOUNTED exists, and if not, check for the MNTTAB macro.
+dnl
+AC_DEFUN(AMU_CHECK_MNTTAB_FILE_NAME,
+[
+AC_CACHE_CHECK(for name of mount table file name,
+ac_cv_mnttab_file_name,
+[
+# expand cpp value for MNTTAB
+AMU_EXPAND_CPP_STRING(
+AMU_MOUNT_HEADERS(
+[
+/* see M4 comment at the top of the definition of this macro */
+#ifdef MOUNTED
+# define _MNTTAB_FILE_NAME MOUNTED
+# else /* not MOUNTED */
+# ifdef MNTTAB
+# define _MNTTAB_FILE_NAME MNTTAB
+# endif /* MNTTAB */
+#endif /* not MOUNTED */
+]),
+_MNTTAB_FILE_NAME,
+[ ac_cv_mnttab_file_name=$value
+],
+[
+ac_cv_mnttab_file_name=notfound
+# check explicitly for /etc/mnttab
+if test "$ac_cv_mnttab_file_name" = notfound
+then
+ if test -f /etc/mnttab
+ then
+ ac_cv_mnttab_file_name="/etc/mnttab"
+ fi
+fi
+# check explicitly for /etc/mtab
+if test "$ac_cv_mnttab_file_name" = notfound
+then
+ if test -f /etc/mtab
+ then
+ ac_cv_mnttab_file_name="/etc/mtab"
+ fi
+fi
+])
+])
+# test value and create macro as needed
+if test "$ac_cv_mnttab_file_name" != notfound
+then
+ AC_DEFINE_UNQUOTED(MNTTAB_FILE_NAME, "$ac_cv_mnttab_file_name")
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_mnttab_location.m4 b/contrib/amd/m4/macros/check_mnttab_location.m4
new file mode 100644
index 0000000..8bf4231
--- /dev/null
+++ b/contrib/amd/m4/macros/check_mnttab_location.m4
@@ -0,0 +1,26 @@
+dnl ######################################################################
+dnl check if the mount table is kept in a file or in the kernel.
+AC_DEFUN(AMU_CHECK_MNTTAB_LOCATION,
+[
+AMU_CACHE_CHECK_DYNAMIC(where mount table is kept,
+ac_cv_mnttab_location,
+[
+# assume location is on file
+ac_cv_mnttab_location=file
+AC_CHECK_FUNCS(mntctl getmntinfo getmountent,
+ac_cv_mnttab_location=kernel)
+# Solaris 8 Beta Refresh and up use the mntfs pseudo filesystem to store the
+# mount table in kernel (cf. mnttab(4): the MS_NOMNTTAB option in
+# <sys/mount.h> inhibits that a mount shows up there and thus can be used to
+# check for the in-kernel mount table
+if test "$ac_cv_mnt2_gen_opt_nomnttab" != notfound
+then
+ ac_cv_mnttab_location=kernel
+fi
+])
+if test "$ac_cv_mnttab_location" = file
+then
+ AC_DEFINE(MOUNT_TABLE_ON_FILE)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_mnttab_opt.m4 b/contrib/amd/m4/macros/check_mnttab_opt.m4
new file mode 100644
index 0000000..19e118e
--- /dev/null
+++ b/contrib/amd/m4/macros/check_mnttab_opt.m4
@@ -0,0 +1,52 @@
+dnl ######################################################################
+dnl check the string type of the name of a filesystem mount table entry
+dnl option.
+dnl Usage: AMU_CHECK_MNTTAB_OPT(<fs>)
+dnl Check if there is an entry for MNTOPT_<fs> in sys/mntent.h or mntent.h
+dnl define MNTTAB_OPT_<fs> to the string name (e.g., "ro").
+AC_DEFUN(AMU_CHECK_MNTTAB_OPT,
+[
+# what name to give to the fs
+ac_fs_name=$1
+# store variable name of fs
+ac_upcase_fs_name=`echo $ac_fs_name | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ac_safe=MNTTAB_OPT_$ac_upcase_fs_name
+# check for cache and set it if needed
+AMU_CACHE_CHECK_DYNAMIC(for mount table option $ac_fs_name,
+ac_cv_mnttab_opt_$ac_fs_name,
+[
+# undefine by default
+eval "ac_cv_mnttab_opt_$ac_fs_name=notfound"
+# and look to see if it was found
+AMU_EXPAND_CPP_STRING(
+AMU_MOUNT_HEADERS
+, MNTOPT_$ac_upcase_fs_name)
+# set cache variable to value
+if test "${value}" != notfound
+then
+ eval "ac_cv_mnttab_opt_$ac_fs_name=\\\"$value\\\""
+else
+ eval "ac_cv_mnttab_opt_$ac_fs_name=$value"
+fi
+dnl DO NOT CHECK FOR MNT_* b/c bsd44 systems don't use /etc/mnttab,
+])
+# outside cache check, if ok, define macro
+ac_tmp=`eval echo '$''{ac_cv_mnttab_opt_'$ac_fs_name'}'`
+if test "${ac_tmp}" != notfound
+then
+ AC_DEFINE_UNQUOTED($ac_safe, $ac_tmp)
+fi
+])
+dnl ======================================================================
+
+dnl ######################################################################
+dnl run AMU_CHECK_MNTTAB_OPT on each argument given
+dnl Usage: AMU_CHECK_MNTTAB_OPTS(arg arg arg ...)
+AC_DEFUN(AMU_CHECK_MNTTAB_OPTS,
+[
+for ac_tmp_arg in $1
+do
+AMU_CHECK_MNTTAB_OPT($ac_tmp_arg)
+done
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_mnttab_style.m4 b/contrib/amd/m4/macros/check_mnttab_style.m4
new file mode 100644
index 0000000..2f5218a
--- /dev/null
+++ b/contrib/amd/m4/macros/check_mnttab_style.m4
@@ -0,0 +1,33 @@
+dnl ######################################################################
+dnl check style of accessing the mount table file
+AC_DEFUN(AMU_CHECK_MNTTAB_STYLE,
+[
+AC_CACHE_CHECK(mount table style,
+ac_cv_style_mnttab,
+[
+# select the correct style for mount table manipulation functions
+case "${host_os_name}" in
+ aix* )
+ ac_cv_style_mnttab=aix ;;
+ bsd* | bsdi* | freebsd* | netbsd* | openbsd* | darwin* | rhapsody* )
+ ac_cv_style_mnttab=bsd ;;
+ isc3* )
+ ac_cv_style_mnttab=isc3 ;;
+ mach3* )
+ ac_cv_style_mnttab=mach3 ;;
+ osf* )
+ ac_cv_style_mnttab=osf ;;
+ svr4* | sysv4* | solaris2* | sunos5* | aoi* )
+ ac_cv_style_mnttab=svr4 ;;
+ ultrix* )
+ ac_cv_style_mnttab=ultrix ;;
+ * )
+ ac_cv_style_mnttab=file ;;
+esac
+])
+am_utils_link_files=${am_utils_link_files}libamu/mtabutil.c:conf/mtab/mtab_${ac_cv_style_mnttab}.c" "
+
+# append mtab utilities object to LIBOBJS for automatic compilation
+AC_LIBOBJ(mtabutil)
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_mnttab_type.m4 b/contrib/amd/m4/macros/check_mnttab_type.m4
new file mode 100644
index 0000000..98d6b55
--- /dev/null
+++ b/contrib/amd/m4/macros/check_mnttab_type.m4
@@ -0,0 +1,143 @@
+dnl ######################################################################
+dnl check the string type of the name of a filesystem mount table entry.
+dnl Usage: AC_CHECK_MNTTAB_TYPE(<fs>, [fssymbol])
+dnl Check if there is an entry for MNTTYPE_<fs> in sys/mntent.h and mntent.h
+dnl define MNTTAB_TYPE_<fs> to the string name (e.g., "nfs"). If <fssymbol>
+dnl exist, then define MNTTAB_TYPE_<fssymbol> instead. If <fssymbol> is
+dnl defined, then <fs> can be a list of fs strings to look for.
+dnl If no symbols have been defined, but the filesystem has been found
+dnl earlier, then set the mount-table type to "<fs>" anyway...
+AC_DEFUN(AMU_CHECK_MNTTAB_TYPE,
+[
+# find what name to give to the fs
+if test -n "$2"
+then
+ ac_fs_name=$2
+else
+ ac_fs_name=$1
+fi
+# store variable name of fs
+ac_upcase_fs_name=`echo $ac_fs_name | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ac_safe=MNTTAB_TYPE_$ac_upcase_fs_name
+# check for cache and set it if needed
+AMU_CACHE_CHECK_DYNAMIC(for mnttab name for $ac_fs_name filesystem,
+ac_cv_mnttab_type_$ac_fs_name,
+[
+# undefine by default
+eval "ac_cv_mnttab_type_$ac_fs_name=notfound"
+# and look to see if it was found
+for ac_fs_tmp in $1
+do
+ if test "$ac_fs_tmp" = "nfs3" -a "$ac_cv_fs_nfs3" = "yes" -a "$ac_cv_header_linux_nfs_h" = "yes"
+ then
+ eval "ac_cv_mnttab_type_$ac_fs_name=\\\"$ac_cv_mnttab_type_nfs\\\""
+ break
+ fi
+
+ ac_upcase_fs_symbol=`echo $ac_fs_tmp | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' | tr -d '.'`
+
+ # first look for MNTTYPE_*
+ AC_EGREP_CPP(yes,
+ AMU_MOUNT_HEADERS(
+ [
+#ifdef MNTTYPE_$ac_upcase_fs_symbol
+ yes
+#endif /* MNTTYPE_$ac_upcase_fs_symbol */
+ ]),
+ [ eval "ac_cv_mnttab_type_$ac_fs_name=\\\"$ac_fs_tmp\\\""
+ ])
+ # check if need to terminate "for" loop
+ if test "`eval echo '$''{ac_cv_mnttab_type_'$ac_fs_name'}'`" != notfound
+ then
+ break
+ fi
+
+ # look for a loadable filesystem module (linux)
+ if test -f /lib/modules/$host_os_version/fs/$ac_fs_tmp.o
+ then
+ eval "ac_cv_mnttab_type_$ac_fs_name=\\\"$ac_fs_tmp\\\""
+ break
+ fi
+
+ # look for a loadable filesystem module (linux 2.4+)
+ if test -f /lib/modules/$host_os_version/kernel/fs/$ac_fs_tmp/$ac_fs_tmp.o
+ then
+ eval "ac_cv_mnttab_type_$ac_fs_name=\\\"$ac_fs_tmp\\\""
+ break
+ fi
+
+ # look for a loadable filesystem module (linux redhat-5.1)
+ if test -f /lib/modules/preferred/fs/$ac_fs_tmp.o
+ then
+ eval "ac_cv_mnttab_type_$ac_fs_name=\\\"$ac_fs_tmp\\\""
+ break
+ fi
+
+ # next look for statically compiled filesystem (linux)
+ if egrep "[[^a-zA-Z0-9_]]$ac_fs_tmp$" /proc/filesystems >/dev/null 2>&1
+ then
+ eval "ac_cv_mnttab_type_$ac_fs_name=\\\"$ac_fs_tmp\\\""
+ break
+ fi
+
+ # then try to run a program that derefences a static array (bsd44)
+ AMU_EXPAND_RUN_STRING(
+ AMU_MOUNT_HEADERS(
+ [
+#ifndef INITMOUNTNAMES
+# error INITMOUNTNAMES not defined
+#endif /* not INITMOUNTNAMES */
+ ]),
+ [
+ char const *namelist[] = INITMOUNTNAMES;
+ if (argc > 1)
+ printf("\"%s\"", namelist[MOUNT_$ac_upcase_fs_symbol]);
+ ], [ eval "ac_cv_mnttab_type_$ac_fs_name=\\\"$value\\\""
+ ])
+ # check if need to terminate "for" loop
+ if test "`eval echo '$''{ac_cv_mnttab_type_'$ac_fs_name'}'`" != notfound
+ then
+ break
+ fi
+
+ # finally run a test program for bsdi3
+ AC_TRY_RUN(
+ [
+#include <sys/param.h>
+#include <sys/mount.h>
+main()
+{
+ int i;
+ struct vfsconf vf;
+ i = getvfsbyname("$ac_fs_tmp", &vf);
+ if (i < 0)
+ exit(1);
+ else
+ exit(0);
+}
+ ], [eval "ac_cv_mnttab_type_$ac_fs_name=\\\"$ac_fs_tmp\\\""
+ break
+ ]
+ )
+
+done
+
+# check if not defined, yet the filesystem is defined
+if test "`eval echo '$''{ac_cv_mnttab_type_'$ac_fs_name'}'`" = notfound
+then
+# this should test if $ac_cv_fs_<fsname> is "yes"
+ if test "`eval echo '$''{ac_cv_fs_'$ac_fs_name'}'`" = yes ||
+ test "`eval echo '$''{ac_cv_fs_header_'$ac_fs_name'}'`" = yes
+ then
+ eval "ac_cv_mnttab_type_$ac_fs_name=\\\"$ac_fs_name\\\""
+ fi
+fi
+])
+# check if need to define variable
+ac_tmp=`eval echo '$''{ac_cv_mnttab_type_'$ac_fs_name'}'`
+if test "$ac_tmp" != notfound
+then
+ AC_DEFINE_UNQUOTED($ac_safe, $ac_tmp)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_mount_style.m4 b/contrib/amd/m4/macros/check_mount_style.m4
new file mode 100644
index 0000000..f4cc14e
--- /dev/null
+++ b/contrib/amd/m4/macros/check_mount_style.m4
@@ -0,0 +1,42 @@
+dnl ######################################################################
+dnl check style of mounting filesystems
+AC_DEFUN(AMU_CHECK_MOUNT_STYLE,
+[
+AC_CACHE_CHECK(style of mounting filesystems,
+ac_cv_style_mount,
+[
+# select the correct style for mounting filesystems
+case "${host_os_name}" in
+ solaris1* | sunos[[34]]* | bsdi[[12]]* )
+ ac_cv_style_mount=default ;;
+ hpux[[6-9]]* | hpux10* )
+ ac_cv_style_mount=hpux ;;
+ svr4* | sysv4* | solaris* | sunos* | aoi* | hpux* )
+ ac_cv_style_mount=svr4 ;;
+ bsdi* )
+ ac_cv_style_mount=bsdi3 ;;
+ aix* )
+ ac_cv_style_mount=aix ;;
+ irix5* )
+ ac_cv_style_mount=irix5 ;;
+ irix* )
+ ac_cv_style_mount=irix6 ;;
+ isc3* )
+ ac_cv_style_mount=isc3 ;;
+ linux* )
+ ac_cv_style_mount=linux ;;
+ mach3* )
+ ac_cv_style_mount=mach3 ;;
+ stellix* )
+ ac_cv_style_mount=stellix ;;
+ * ) # no style needed. Use default filesystem calls ala BSD
+ ac_cv_style_mount=default ;;
+esac
+])
+am_utils_mount_style_file="mountutil.c"
+am_utils_link_files=${am_utils_link_files}libamu/${am_utils_mount_style_file}:conf/mount/mount_${ac_cv_style_mount}.c" "
+
+# append mount utilities object to LIBOBJS for automatic compilation
+AC_LIBOBJ(mountutil)
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_mount_trap.m4 b/contrib/amd/m4/macros/check_mount_trap.m4
new file mode 100644
index 0000000..ffac8b8
--- /dev/null
+++ b/contrib/amd/m4/macros/check_mount_trap.m4
@@ -0,0 +1,47 @@
+dnl ######################################################################
+dnl check the mount system call trap needed to mount(2) a filesystem
+AC_DEFUN(AMU_CHECK_MOUNT_TRAP,
+[
+AC_CACHE_CHECK(mount trap system-call style,
+ac_cv_mount_trap,
+[
+# select the correct style to mount(2) a filesystem
+case "${host_os_name}" in
+ solaris1* | sunos[[34]]* )
+ ac_cv_mount_trap=default ;;
+ hpux[[6-9]]* | hpux10* )
+ ac_cv_mount_trap=hpux ;;
+ svr4* | sysv4* | solaris* | sunos* | aoi* | hpux* )
+ ac_cv_mount_trap=svr4 ;;
+ news4* | riscix* )
+ ac_cv_mount_trap=news4 ;;
+ linux* )
+ ac_cv_mount_trap=linux ;;
+ irix* )
+ ac_cv_mount_trap=irix ;;
+ aux* )
+ ac_cv_mount_trap=aux ;;
+ hcx* )
+ ac_cv_mount_trap=hcx ;;
+ rtu6* )
+ ac_cv_mount_trap=rtu6 ;;
+ dgux* )
+ ac_cv_mount_trap=dgux ;;
+ aix* )
+ ac_cv_mount_trap=aix3 ;;
+ mach2* | mach3* )
+ ac_cv_mount_trap=mach3 ;;
+ ultrix* )
+ ac_cv_mount_trap=ultrix ;;
+ isc3* )
+ ac_cv_mount_trap=isc3 ;;
+ stellix* )
+ ac_cv_mount_trap=stellix ;;
+ * )
+ ac_cv_mount_trap=default ;;
+esac
+])
+am_utils_mount_trap=$srcdir"/conf/trap/trap_"$ac_cv_mount_trap".h"
+AC_SUBST_FILE(am_utils_mount_trap)
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_mount_type.m4 b/contrib/amd/m4/macros/check_mount_type.m4
new file mode 100644
index 0000000..55aad06
--- /dev/null
+++ b/contrib/amd/m4/macros/check_mount_type.m4
@@ -0,0 +1,164 @@
+dnl ######################################################################
+dnl check the string type of the name of a filesystem mount table entry.
+dnl Usage: AC_CHECK_MOUNT_TYPE(<fs>, [fssymbol])
+dnl Check if there is an entry for MNTTYPE_<fs> in sys/mntent.h and mntent.h
+dnl define MOUNT_TYPE_<fs> to the string name (e.g., "nfs"). If <fssymbol>
+dnl exist, then define MOUNT_TYPE_<fssymbol> instead. If <fssymbol> is
+dnl defined, then <fs> can be a list of fs strings to look for.
+dnl If no symbols have been defined, but the filesystem has been found
+dnl earlier, then set the mount-table type to "<fs>" anyway...
+AC_DEFUN(AMU_CHECK_MOUNT_TYPE,
+[
+# find what name to give to the fs
+if test -n "$2"
+then
+ ac_fs_name=$2
+else
+ ac_fs_name=$1
+fi
+# prepare upper-case name of filesystem
+ac_upcase_fs_name=`echo $ac_fs_name | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+##############################################################################
+# check for cache and set it if needed
+AMU_CACHE_CHECK_DYNAMIC(for mount(2) type/name for $ac_fs_name filesystem,
+ac_cv_mount_type_$ac_fs_name,
+[
+# undefine by default
+eval "ac_cv_mount_type_$ac_fs_name=notfound"
+# and look to see if it was found
+for ac_fs_tmp in $1
+do
+
+ ac_upcase_fs_symbol=`echo $ac_fs_tmp | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' | tr -d '.'`
+
+ # first look for MNTTYPE_<fs>
+ AC_EGREP_CPP(yes,
+ AMU_MOUNT_HEADERS(
+ [
+#ifdef MNTTYPE_$ac_upcase_fs_symbol
+ yes
+#endif /* MNTTYPE_$ac_upcase_fs_symbol */
+ ]), [eval "ac_cv_mount_type_$ac_fs_name=MNTTYPE_$ac_upcase_fs_symbol"],
+ [eval "ac_cv_mount_type_$ac_fs_name=notfound"] )
+ # check if need to terminate "for" loop
+ if test "`eval echo '$''{ac_cv_mount_type_'$ac_fs_name'}'`" != notfound
+ then
+ break
+ fi
+
+ # next look for MOUNT_<fs>
+ AC_EGREP_CPP(yes,
+ AMU_MOUNT_HEADERS(
+ [
+#ifdef MOUNT_$ac_upcase_fs_symbol
+ yes
+#endif /* MOUNT_$ac_upcase_fs_symbol */
+ ]), [eval "ac_cv_mount_type_$ac_fs_name=MOUNT_$ac_upcase_fs_symbol"],
+ [eval "ac_cv_mount_type_$ac_fs_name=notfound"] )
+ # check if need to terminate "for" loop
+ if test "`eval echo '$''{ac_cv_mount_type_'$ac_fs_name'}'`" != notfound
+ then
+ break
+ fi
+
+ # next look for MNT_<fs>
+ AC_EGREP_CPP(yes,
+ AMU_MOUNT_HEADERS(
+ [
+#ifdef MNT_$ac_upcase_fs_symbol
+ yes
+#endif /* MNT_$ac_upcase_fs_symbol */
+ ]), [eval "ac_cv_mount_type_$ac_fs_name=MNT_$ac_upcase_fs_symbol"],
+ [eval "ac_cv_mount_type_$ac_fs_name=notfound"] )
+ # check if need to terminate "for" loop
+ if test "`eval echo '$''{ac_cv_mount_type_'$ac_fs_name'}'`" != notfound
+ then
+ break
+ fi
+
+ # next look for GT_<fs> (ultrix)
+ AC_EGREP_CPP(yes,
+ AMU_MOUNT_HEADERS(
+ [
+#ifdef GT_$ac_upcase_fs_symbol
+ yes
+#endif /* GT_$ac_upcase_fs_symbol */
+ ]), [eval "ac_cv_mount_type_$ac_fs_name=GT_$ac_upcase_fs_symbol"],
+ [eval "ac_cv_mount_type_$ac_fs_name=notfound"] )
+ # check if need to terminate "for" loop
+ if test "`eval echo '$''{ac_cv_mount_type_'$ac_fs_name'}'`" != notfound
+ then
+ break
+ fi
+
+ # look for a loadable filesystem module (linux)
+ if test -f /lib/modules/$host_os_version/fs/$ac_fs_tmp.o
+ then
+ eval "ac_cv_mount_type_$ac_fs_name=\\\"$ac_fs_tmp\\\""
+ break
+ fi
+
+ # look for a loadable filesystem module (linux 2.4+)
+ if test -f /lib/modules/$host_os_version/kernel/fs/$ac_fs_tmp/$ac_fs_tmp.o
+ then
+ eval "ac_cv_mount_type_$ac_fs_name=\\\"$ac_fs_tmp\\\""
+ break
+ fi
+
+ # look for a loadable filesystem module (linux redhat-5.1)
+ if test -f /lib/modules/preferred/fs/$ac_fs_tmp.o
+ then
+ eval "ac_cv_mount_type_$ac_fs_name=\\\"$ac_fs_tmp\\\""
+ break
+ fi
+
+ # in addition look for statically compiled filesystem (linux)
+ if egrep "[[^a-zA-Z0-9_]]$ac_fs_tmp$" /proc/filesystems >/dev/null 2>&1
+ then
+ eval "ac_cv_mount_type_$ac_fs_name=\\\"$ac_fs_tmp\\\""
+ break
+ fi
+
+ # run a test program for bsdi3
+ AC_TRY_RUN(
+ [
+#include <sys/param.h>
+#include <sys/mount.h>
+main()
+{
+ int i;
+ struct vfsconf vf;
+ i = getvfsbyname("$ac_fs_tmp", &vf);
+ if (i < 0)
+ exit(1);
+ else
+ exit(0);
+}
+ ], [eval "ac_cv_mount_type_$ac_fs_name=\\\"$ac_fs_tmp\\\""
+ break
+ ]
+ )
+
+done
+# check if not defined, yet the filesystem is defined
+if test "`eval echo '$''{ac_cv_mount_type_'$ac_fs_name'}'`" = notfound
+then
+# this should test if $ac_cv_fs_<fsname> is "yes"
+ if test "`eval echo '$''{ac_cv_fs_'$ac_fs_name'}'`" = yes ||
+ test "`eval echo '$''{ac_cv_fs_header_'$ac_fs_name'}'`" = yes
+ then
+ eval "ac_cv_mount_type_$ac_fs_name=MNTTYPE_$ac_upcase_fs_name"
+ fi
+fi
+])
+# end of cache check for ac_cv_mount_type_$ac_fs_name
+##############################################################################
+# check if need to define variable
+if test "`eval echo '$''{ac_cv_mount_type_'$ac_fs_name'}'`" != notfound
+then
+ ac_safe=MOUNT_TYPE_$ac_upcase_fs_name
+ ac_tmp=`eval echo '$''{ac_cv_mount_type_'$ac_fs_name'}'`
+ AC_DEFINE_UNQUOTED($ac_safe, $ac_tmp)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_mtype_printf_type.m4 b/contrib/amd/m4/macros/check_mtype_printf_type.m4
new file mode 100644
index 0000000..83b4f42
--- /dev/null
+++ b/contrib/amd/m4/macros/check_mtype_printf_type.m4
@@ -0,0 +1,22 @@
+dnl ######################################################################
+dnl check the correct printf-style type for the mount type in the mount()
+dnl system call.
+dnl If you change this one, you must also fix the check_mtype_type.m4.
+AC_DEFUN(AMU_CHECK_MTYPE_PRINTF_TYPE,
+[
+AC_CACHE_CHECK(printf string to print type field of mount() call,
+ac_cv_mtype_printf_type,
+[
+# select the correct printf type
+case "${host_os_name}" in
+ osf* | freebsd2* | bsdi2* | aix* | ultrix* )
+ ac_cv_mtype_printf_type="%d" ;;
+ irix3 | isc3 )
+ ac_cv_mtype_printf_type="0x%x" ;;
+ * )
+ ac_cv_mtype_printf_type="%s" ;;
+esac
+])
+AC_DEFINE_UNQUOTED(MTYPE_PRINTF_TYPE, "$ac_cv_mtype_printf_type")
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_mtype_type.m4 b/contrib/amd/m4/macros/check_mtype_type.m4
new file mode 100644
index 0000000..7a678e5
--- /dev/null
+++ b/contrib/amd/m4/macros/check_mtype_type.m4
@@ -0,0 +1,19 @@
+dnl ######################################################################
+dnl check the correct type for the mount type in the mount() system call
+dnl If you change this one, you must also fix the check_mtype_printf_type.m4.
+AC_DEFUN(AMU_CHECK_MTYPE_TYPE,
+[
+AC_CACHE_CHECK(type of mount type field in mount() call,
+ac_cv_mtype_type,
+[
+# select the correct type
+case "${host_os_name}" in
+ osf* | freebsd2* | bsdi2* | aix* | ultrix* )
+ ac_cv_mtype_type=int ;;
+ * )
+ ac_cv_mtype_type="char *" ;;
+esac
+])
+AC_DEFINE_UNQUOTED(MTYPE_TYPE, $ac_cv_mtype_type)
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_network_transport_type.m4 b/contrib/amd/m4/macros/check_network_transport_type.m4
new file mode 100644
index 0000000..5689981
--- /dev/null
+++ b/contrib/amd/m4/macros/check_network_transport_type.m4
@@ -0,0 +1,27 @@
+dnl ######################################################################
+dnl check the correct network transport type to use
+AC_DEFUN(AMU_CHECK_NETWORK_TRANSPORT_TYPE,
+[
+AC_CACHE_CHECK(network transport type,
+ac_cv_transport_type,
+[
+# select the correct type
+case "${host_os_name}" in
+ solaris1* | sunos[[34]]* | hpux[[6-9]]* | hpux10* )
+ ac_cv_transport_type=sockets ;;
+ solaris* | sunos* | hpux* )
+ ac_cv_transport_type=tli ;;
+ * )
+ ac_cv_transport_type=sockets ;;
+esac
+])
+am_utils_link_files=${am_utils_link_files}libamu/transputil.c:conf/transp/transp_${ac_cv_transport_type}.c" "
+
+# append transport utilities object to LIBOBJS for automatic compilation
+AC_LIBOBJ(transputil)
+if test $ac_cv_transport_type = tli
+then
+ AC_DEFINE(HAVE_TRANSPORT_TYPE_TLI)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_nfs_fh_dref.m4 b/contrib/amd/m4/macros/check_nfs_fh_dref.m4
new file mode 100644
index 0000000..ee852ac
--- /dev/null
+++ b/contrib/amd/m4/macros/check_nfs_fh_dref.m4
@@ -0,0 +1,47 @@
+dnl ######################################################################
+dnl check the correct way to dereference the address part of the nfs fhandle
+AC_DEFUN(AMU_CHECK_NFS_FH_DREF,
+[
+AC_CACHE_CHECK(nfs file-handle address dereferencing style,
+ac_cv_nfs_fh_dref_style,
+[
+# select the correct nfs address dereferencing style
+case "${host_os}" in
+ hpux[[6-9]]* | hpux10* )
+ ac_cv_nfs_fh_dref_style=hpux ;;
+ sunos3* )
+ ac_cv_nfs_fh_dref_style=sunos3 ;;
+ sunos4* | solaris1* )
+ ac_cv_nfs_fh_dref_style=sunos4 ;;
+ svr4* | sysv4* | solaris* | sunos* | hpux* )
+ ac_cv_nfs_fh_dref_style=svr4 ;;
+ bsd44* | bsdi2* | freebsd2.[[01]]* )
+ ac_cv_nfs_fh_dref_style=bsd44 ;;
+ # all new BSDs changed the type of the
+ # filehandle in nfs_args from nfsv2fh_t to u_char.
+ freebsd* | freebsdelf* | bsdi* | netbsd* | openbsd* | darwin* | rhapsody* )
+ ac_cv_nfs_fh_dref_style=freebsd22 ;;
+ aix[[1-3]]* | aix4.[[01]]* )
+ ac_cv_nfs_fh_dref_style=aix3 ;;
+ aix* )
+ ac_cv_nfs_fh_dref_style=aix42 ;;
+ irix* )
+ ac_cv_nfs_fh_dref_style=irix ;;
+ linux* )
+ ac_cv_nfs_fh_dref_style=linux ;;
+ isc3 )
+ ac_cv_nfs_fh_dref_style=isc3 ;;
+ osf[[1-3]]* )
+ ac_cv_nfs_fh_dref_style=osf2 ;;
+ osf* )
+ ac_cv_nfs_fh_dref_style=osf4 ;;
+ nextstep* )
+ ac_cv_nfs_fh_dref_style=nextstep ;;
+ * )
+ ac_cv_nfs_fh_dref_style=default ;;
+esac
+])
+am_utils_nfs_fh_dref=$srcdir"/conf/fh_dref/fh_dref_"$ac_cv_nfs_fh_dref_style".h"
+AC_SUBST_FILE(am_utils_nfs_fh_dref)
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_nfs_hn_dref.m4 b/contrib/amd/m4/macros/check_nfs_hn_dref.m4
new file mode 100644
index 0000000..ae35212
--- /dev/null
+++ b/contrib/amd/m4/macros/check_nfs_hn_dref.m4
@@ -0,0 +1,21 @@
+dnl ######################################################################
+dnl check the correct way to dereference the hostname part of the nfs fhandle
+AC_DEFUN(AMU_CHECK_NFS_HN_DREF,
+[
+AC_CACHE_CHECK(nfs hostname dereferencing style,
+ac_cv_nfs_hn_dref_style,
+[
+# select the correct nfs address dereferencing style
+case "${host_os_name}" in
+ linux* )
+ ac_cv_nfs_hn_dref_style=linux ;;
+ isc3 )
+ ac_cv_nfs_hn_dref_style=isc3 ;;
+ * )
+ ac_cv_nfs_hn_dref_style=default ;;
+esac
+])
+am_utils_nfs_hn_dref=$srcdir"/conf/hn_dref/hn_dref_"$ac_cv_nfs_hn_dref_style".h"
+AC_SUBST_FILE(am_utils_nfs_hn_dref)
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_nfs_prot_headers.m4 b/contrib/amd/m4/macros/check_nfs_prot_headers.m4
new file mode 100644
index 0000000..4c59e08
--- /dev/null
+++ b/contrib/amd/m4/macros/check_nfs_prot_headers.m4
@@ -0,0 +1,94 @@
+dnl ######################################################################
+dnl check if system has NFS protocol headers
+AC_DEFUN(AMU_CHECK_NFS_PROT_HEADERS,
+[
+AC_CACHE_CHECK(location of NFS protocol header files,
+ac_cv_nfs_prot_headers,
+[
+# select the correct style for mounting filesystems
+case "${host_os}" in
+ irix5* )
+ ac_cv_nfs_prot_headers=irix5 ;;
+ irix* )
+ ac_cv_nfs_prot_headers=irix6 ;;
+ sunos3* )
+ ac_cv_nfs_prot_headers=sunos3 ;;
+ sunos4* | solaris1* )
+ ac_cv_nfs_prot_headers=sunos4 ;;
+ sunos5.[[0-3]]* | solaris2.[[0-3]]* )
+ ac_cv_nfs_prot_headers=sunos5_3 ;;
+ sunos5.4* | solaris2.4* )
+ ac_cv_nfs_prot_headers=sunos5_4 ;;
+ sunos5.5* | solaris2.5* )
+ ac_cv_nfs_prot_headers=sunos5_5 ;;
+ sunos5.6* | solaris2.6* )
+ ac_cv_nfs_prot_headers=sunos5_6 ;;
+ sunos5.7* | solaris2.7* )
+ ac_cv_nfs_prot_headers=sunos5_7 ;;
+ sunos* | solaris* )
+ ac_cv_nfs_prot_headers=sunos5_8 ;;
+ bsdi2*)
+ ac_cv_nfs_prot_headers=bsdi2 ;;
+ bsdi* )
+ ac_cv_nfs_prot_headers=bsdi3 ;;
+ freebsd2* )
+ ac_cv_nfs_prot_headers=freebsd2 ;;
+ freebsd* | freebsdelf* )
+ ac_cv_nfs_prot_headers=freebsd3 ;;
+ netbsd1.[[0-2]]* )
+ ac_cv_nfs_prot_headers=netbsd ;;
+ netbsd1.3* )
+ ac_cv_nfs_prot_headers=netbsd1_3 ;;
+ netbsd* | netbsdelf* )
+ ac_cv_nfs_prot_headers=netbsd1_4 ;;
+ openbsd* )
+ ac_cv_nfs_prot_headers=openbsd ;;
+ hpux[[6-9]]* | hpux10* )
+ ac_cv_nfs_prot_headers=hpux ;;
+ hpux* )
+ ac_cv_nfs_prot_headers=hpux11 ;;
+ aix[[1-3]]* )
+ ac_cv_nfs_prot_headers=aix3 ;;
+ aix4.[[01]]* )
+ ac_cv_nfs_prot_headers=aix4 ;;
+ aix4.2* )
+ ac_cv_nfs_prot_headers=aix4_2 ;;
+ aix4.3* )
+ ac_cv_nfs_prot_headers=aix4_3 ;;
+ aix* )
+ ac_cv_nfs_prot_headers=aix5_1 ;;
+ osf[[1-3]]* )
+ ac_cv_nfs_prot_headers=osf2 ;;
+ osf4* )
+ ac_cv_nfs_prot_headers=osf4 ;;
+ osf* )
+ ac_cv_nfs_prot_headers=osf5 ;;
+ svr4* )
+ ac_cv_nfs_prot_headers=svr4 ;;
+ sysv4* ) # this is for NCR2 machines
+ ac_cv_nfs_prot_headers=ncr2 ;;
+ linux* )
+ ac_cv_nfs_prot_headers=linux ;;
+ nextstep* )
+ ac_cv_nfs_prot_headers=nextstep ;;
+ ultrix* )
+ ac_cv_nfs_prot_headers=ultrix ;;
+ darwin* | rhapsody* )
+ ac_cv_nfs_prot_headers=darwin ;;
+ * )
+ ac_cv_nfs_prot_headers=default ;;
+esac
+])
+
+# make sure correct header is linked in top build directory
+am_utils_nfs_prot_file="amu_nfs_prot.h"
+am_utils_link_files=${am_utils_link_files}${am_utils_nfs_prot_file}:conf/nfs_prot/nfs_prot_${ac_cv_nfs_prot_headers}.h" "
+
+# define the name of the header to be included for other M4 macros
+AC_DEFINE_UNQUOTED(AMU_NFS_PROTOCOL_HEADER, "${srcdir}/conf/nfs_prot/nfs_prot_${ac_cv_nfs_prot_headers}.h")
+
+# set headers in a macro for Makefile.am files to use (for dependencies)
+AMU_NFS_PROT_HEADER='${top_builddir}/'$am_utils_nfs_prot_file
+AC_SUBST(AMU_NFS_PROT_HEADER)
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_nfs_sa_dref.m4 b/contrib/amd/m4/macros/check_nfs_sa_dref.m4
new file mode 100644
index 0000000..55ce734
--- /dev/null
+++ b/contrib/amd/m4/macros/check_nfs_sa_dref.m4
@@ -0,0 +1,33 @@
+dnl ######################################################################
+dnl check the correct way to dereference the address part of the nfs fhandle
+AC_DEFUN(AMU_CHECK_NFS_SA_DREF,
+[
+AC_CACHE_CHECK(nfs address dereferencing style,
+ac_cv_nfs_sa_dref_style,
+[
+# select the correct nfs address dereferencing style
+case "${host_os}" in
+ hpux[[6-9]]* | hpux10* | sunos[[34]]* | solaris1* )
+ ac_cv_nfs_sa_dref_style=default ;;
+ svr4* | sysv4* | solaris* | sunos* | hpux* )
+ ac_cv_nfs_sa_dref_style=svr4 ;;
+ 386bsd* | bsdi1* )
+ ac_cv_nfs_sa_dref_style=386bsd ;;
+ bsd44* | bsdi* | freebsd* | netbsd* | openbsd* | darwin* | rhapsody* )
+ ac_cv_nfs_sa_dref_style=bsd44 ;;
+ linux* )
+ ac_cv_nfs_sa_dref_style=linux ;;
+ aix* )
+ ac_cv_nfs_sa_dref_style=aix3 ;;
+ aoi* )
+ ac_cv_nfs_sa_dref_style=aoi ;;
+ isc3 )
+ ac_cv_nfs_sa_dref_style=isc3 ;;
+ * )
+ ac_cv_nfs_sa_dref_style=default ;;
+esac
+])
+am_utils_nfs_sa_dref=$srcdir"/conf/sa_dref/sa_dref_"$ac_cv_nfs_sa_dref_style".h"
+AC_SUBST_FILE(am_utils_nfs_sa_dref)
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_nfs_socket_connection.m4 b/contrib/amd/m4/macros/check_nfs_socket_connection.m4
new file mode 100644
index 0000000..264afeb
--- /dev/null
+++ b/contrib/amd/m4/macros/check_nfs_socket_connection.m4
@@ -0,0 +1,28 @@
+dnl ######################################################################
+dnl check if need to turn on, off, or leave alone the NFS "noconn" option
+AC_DEFUN(AMU_CHECK_NFS_SOCKET_CONNECTION,
+[
+AC_CACHE_CHECK(if to turn on/off noconn option,
+ac_cv_nfs_socket_connection,
+[
+# set default to no-change
+ac_cv_nfs_socket_connection=none
+# select the correct style
+case "${host_os}" in
+ openbsd2.[[01]]* )
+ ac_cv_nfs_socket_connection=noconn ;;
+ openbsd* | freebsd* | freebsdelf* )
+ ac_cv_nfs_socket_connection=conn ;;
+esac
+])
+# set correct value
+case "$ac_cv_nfs_socket_connection" in
+ noconn )
+ AC_DEFINE(USE_UNCONNECTED_NFS_SOCKETS)
+ ;;
+ conn )
+ AC_DEFINE(USE_CONNECTED_NFS_SOCKETS)
+ ;;
+esac
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_os_libs.m4 b/contrib/amd/m4/macros/check_os_libs.m4
new file mode 100644
index 0000000..68e604b
--- /dev/null
+++ b/contrib/amd/m4/macros/check_os_libs.m4
@@ -0,0 +1,28 @@
+dnl ######################################################################
+dnl set OS libraries specific to an OS:
+dnl libnsl/libsocket are needed only on solaris and some svr4 systems.
+dnl Using a typical macro has proven unsuccesful, because on some other
+dnl systems such as irix, including libnsl and or libsocket actually breaks
+dnl lots of code. So I am forced to use a special purpose macro that sets
+dnl the libraries based on the OS. Sigh. -Erez.
+AC_DEFUN(AMU_CHECK_OS_LIBS,
+[
+AC_CACHE_CHECK(for additional OS libraries,
+ac_cv_os_libs,
+[
+# select the correct set of libraries to link with
+case "${host_os_name}" in
+ svr4* | sysv4* | solaris2* | sunos5* | aoi* )
+ ac_cv_os_libs="-lsocket -lnsl" ;;
+ * )
+ ac_cv_os_libs=none ;;
+esac
+])
+# set list of libraries to link with
+if test "$ac_cv_os_libs" != none
+then
+ LIBS="$ac_cv_os_libs $LIBS"
+fi
+
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_restartable_signal_handler.m4 b/contrib/amd/m4/macros/check_restartable_signal_handler.m4
new file mode 100644
index 0000000..be74ef1
--- /dev/null
+++ b/contrib/amd/m4/macros/check_restartable_signal_handler.m4
@@ -0,0 +1,22 @@
+dnl ######################################################################
+dnl check if a system needs to restart its signal handlers
+AC_DEFUN(AMU_CHECK_RESTARTABLE_SIGNAL_HANDLER,
+[
+AC_CACHE_CHECK(if system needs to restart signal handlers,
+ac_cv_restartable_signal_handler,
+[
+# select the correct systems to restart signal handlers
+case "${host_os_name}" in
+ svr3* | svr4* | sysv4* | solaris2* | sunos5* | aoi* | irix* )
+ ac_cv_restartable_signal_handler=yes ;;
+ * )
+ ac_cv_restartable_signal_handler=no ;;
+esac
+])
+# define REINSTALL_SIGNAL_HANDLER if need to
+if test "$ac_cv_restartable_signal_handler" = yes
+then
+ AC_DEFINE(REINSTALL_SIGNAL_HANDLER)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_umount_style.m4 b/contrib/amd/m4/macros/check_umount_style.m4
new file mode 100644
index 0000000..a198117
--- /dev/null
+++ b/contrib/amd/m4/macros/check_umount_style.m4
@@ -0,0 +1,24 @@
+dnl ######################################################################
+dnl check style of unmounting filesystems
+AC_DEFUN(AMU_CHECK_UMOUNT_STYLE,
+[
+AC_CACHE_CHECK(style of unmounting filesystems,
+ac_cv_style_umount,
+[
+# select the correct style for unmounting filesystems
+case "${host_os_name}" in
+ bsd44* | bsdi* | freebsd* | netbsd* | openbsd* | darwin* | rhapsody* )
+ ac_cv_style_umount=bsd44 ;;
+ osf* )
+ ac_cv_style_umount=osf ;;
+ * )
+ ac_cv_style_umount=default ;;
+esac
+])
+am_utils_umount_style_file="umount_fs.c"
+am_utils_link_files=${am_utils_link_files}libamu/${am_utils_umount_style_file}:conf/umount/umount_${ac_cv_style_umount}.c" "
+
+# append un-mount utilities object to LIBOBJS for automatic compilation
+AC_LIBOBJ(umount_fs)
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_unmount_args.m4 b/contrib/amd/m4/macros/check_unmount_args.m4
new file mode 100644
index 0000000..97f4e97
--- /dev/null
+++ b/contrib/amd/m4/macros/check_unmount_args.m4
@@ -0,0 +1,21 @@
+dnl ######################################################################
+dnl check the unmount system call arguments needed for
+AC_DEFUN(AMU_CHECK_UNMOUNT_ARGS,
+[
+AC_CACHE_CHECK(unmount system-call arguments,
+ac_cv_unmount_args,
+[
+# select the correct style to mount(2) a filesystem
+case "${host_os_name}" in
+ aix* )
+ ac_cv_unmount_args="mnt->mnt_passno, 0" ;;
+ ultrix* )
+ ac_cv_unmount_args="mnt->mnt_passno" ;;
+ * )
+ ac_cv_unmount_args="mnt->mnt_dir" ;;
+esac
+])
+am_utils_unmount_args=$ac_cv_unmount_args
+AC_SUBST(am_utils_unmount_args)
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/check_unmount_call.m4 b/contrib/amd/m4/macros/check_unmount_call.m4
new file mode 100644
index 0000000..67b2399
--- /dev/null
+++ b/contrib/amd/m4/macros/check_unmount_call.m4
@@ -0,0 +1,27 @@
+dnl ######################################################################
+dnl check for the correct system call to unmount a filesystem.
+AC_DEFUN(AMU_CHECK_UNMOUNT_CALL,
+[
+dnl make sure this one is called before [AC_CHECK_UNMOUNT_ARGS]
+AC_BEFORE([$0], [AC_CHECK_UNMOUNT_ARGS])
+AC_CACHE_CHECK(the system call to unmount a filesystem,
+ac_cv_unmount_call,
+[
+# check for various unmount a filesystem calls
+if test "$ac_cv_func_uvmount" = yes ; then
+ ac_cv_unmount_call=uvmount
+elif test "$ac_cv_func_unmount" = yes ; then
+ ac_cv_unmount_call=unmount
+elif test "$ac_cv_func_umount" = yes ; then
+ ac_cv_unmount_call=umount
+else
+ ac_cv_unmount_call=no
+fi
+])
+if test "$ac_cv_unmount_call" != no
+then
+ am_utils_unmount_call=$ac_cv_unmount_call
+ AC_SUBST(am_utils_unmount_call)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/expand_cpp_hex.m4 b/contrib/amd/m4/macros/expand_cpp_hex.m4
new file mode 100644
index 0000000..cd8b598
--- /dev/null
+++ b/contrib/amd/m4/macros/expand_cpp_hex.m4
@@ -0,0 +1,40 @@
+dnl ######################################################################
+dnl Expand the value of a CPP macro into a printable hex number.
+dnl Takes: header, macro, [action-if-found, [action-if-not-found]]
+dnl It runs the header through CPP looking for a match between the macro
+dnl and a string pattern, and if sucessful, it prints the string value out.
+AC_DEFUN(AMU_EXPAND_CPP_HEX,
+[
+# we are looking for a regexp of a string
+AC_EGREP_CPP(0x,
+[$1]
+$2,
+value="notfound"
+AC_TRY_RUN(
+[
+[$1]
+main(argc)
+int argc;
+{
+#ifdef $2
+if (argc > 1)
+ printf("0x%x", $2);
+exit(0);
+#else
+# error no such option $2
+#endif
+exit(1);
+}], value=`./conftest dummy 2>>config.log`, value="notfound", value="notfound")
+,
+value="notfound"
+)
+if test "$value" = notfound
+then
+ :
+ $4
+else
+ :
+ $3
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/expand_cpp_int.m4 b/contrib/amd/m4/macros/expand_cpp_int.m4
new file mode 100644
index 0000000..7dff0ab
--- /dev/null
+++ b/contrib/amd/m4/macros/expand_cpp_int.m4
@@ -0,0 +1,42 @@
+dnl ######################################################################
+dnl Expand the value of a CPP macro into a printable integer number.
+dnl Takes: header, macro, [action-if-found, [action-if-not-found]]
+dnl It runs the header through CPP looking for a match between the macro
+dnl and a string pattern, and if sucessful, it prints the string value out.
+AC_DEFUN(AMU_EXPAND_CPP_INT,
+[
+# we are looking for a regexp of an integer (must not start with 0 --- those
+# are octals).
+AC_EGREP_CPP(
+[[1-9]][[0-9]]*,
+[$1]
+$2,
+value="notfound"
+AC_TRY_RUN(
+[
+[$1]
+main(argc)
+int argc;
+{
+#ifdef $2
+if (argc > 1)
+ printf("%d", $2);
+exit(0);
+#else
+# error no such option $2
+#endif
+exit(1);
+}], value=`./conftest dummy 2>>config.log`, value="notfound", value="notfound")
+,
+value="notfound"
+)
+if test "$value" = notfound
+then
+ :
+ $4
+else
+ :
+ $3
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/expand_cpp_string.m4 b/contrib/amd/m4/macros/expand_cpp_string.m4
new file mode 100644
index 0000000..c54bc07
--- /dev/null
+++ b/contrib/amd/m4/macros/expand_cpp_string.m4
@@ -0,0 +1,40 @@
+dnl ######################################################################
+dnl Expand the value of a CPP macro into a printable string.
+dnl Takes: header, macro, [action-if-found, [action-if-not-found]]
+dnl It runs the header through CPP looking for a match between the macro
+dnl and a string pattern, and if sucessful, it prints the string value out.
+AC_DEFUN(AMU_EXPAND_CPP_STRING,
+[
+# we are looking for a regexp of a string
+AC_EGREP_CPP(\".*\",
+[$1]
+$2,
+value="notfound"
+AC_TRY_RUN(
+[
+[$1]
+main(argc)
+int argc;
+{
+#ifdef $2
+if (argc > 1)
+ printf("%s", $2);
+exit(0);
+#else
+# error no such option $2
+#endif
+exit(1);
+}], value=`./conftest dummy 2>>config.log`, value="notfound", value="notfound")
+,
+value="notfound"
+)
+if test "$value" = notfound
+then
+ :
+ $4
+else
+ :
+ $3
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/expand_run_string.m4 b/contrib/amd/m4/macros/expand_run_string.m4
new file mode 100644
index 0000000..02c531e
--- /dev/null
+++ b/contrib/amd/m4/macros/expand_run_string.m4
@@ -0,0 +1,25 @@
+dnl ######################################################################
+dnl Run a program and print its output as a string
+dnl Takes: (header, code-to-run, [action-if-found, [action-if-not-found]])
+AC_DEFUN(AMU_EXPAND_RUN_STRING,
+[
+value="notfound"
+AC_TRY_RUN(
+[
+$1
+main(argc)
+int argc;
+{
+$2
+exit(0);
+}], value=`./conftest dummy 2>>config.log`, value="notfound", value="notfound")
+if test "$value" = notfound
+then
+ :
+ $4
+else
+ :
+ $3
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/extern_optarg.m4 b/contrib/amd/m4/macros/extern_optarg.m4
new file mode 100644
index 0000000..14ac210
--- /dev/null
+++ b/contrib/amd/m4/macros/extern_optarg.m4
@@ -0,0 +1,36 @@
+dnl ######################################################################
+dnl find if "extern char *optarg" exists in headers
+AC_DEFUN(AMU_EXTERN_OPTARG,
+[
+AC_CACHE_CHECK(if external definition for optarg[] exists,
+ac_cv_extern_optarg,
+[
+# try to compile program that uses the variable
+AC_TRY_COMPILE(
+[
+#ifdef HAVE_STDIO_H
+# include <stdio.h>
+#endif /* HAVE_STDIO_H */
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+#ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+#endif /* HAVE_STDLIB_H */
+#ifdef HAVE_SYS_ERRNO_H
+# include <sys/errno.h>
+#endif /* HAVE_SYS_ERRNO_H */
+#ifdef HAVE_ERRNO_H
+# include <errno.h>
+#endif /* HAVE_ERRNO_H */
+],
+[
+char *cp = optarg;
+], ac_cv_extern_optarg=yes, ac_cv_extern_optarg=no)
+])
+if test "$ac_cv_extern_optarg" = yes
+then
+ AC_DEFINE(HAVE_EXTERN_OPTARG)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/extern_sys_errlist.m4 b/contrib/amd/m4/macros/extern_sys_errlist.m4
new file mode 100644
index 0000000..1684d27
--- /dev/null
+++ b/contrib/amd/m4/macros/extern_sys_errlist.m4
@@ -0,0 +1,30 @@
+dnl ######################################################################
+dnl find if "extern char *sys_errlist[]" exist in headers
+AC_DEFUN(AMU_EXTERN_SYS_ERRLIST,
+[
+AC_CACHE_CHECK(if external definition for sys_errlist[] exists,
+ac_cv_extern_sys_errlist,
+[
+# try to locate pattern in header files
+#pattern="(extern)?.*char.*sys_errlist.*\[\]"
+pattern="(extern)?.*char.*sys_errlist.*"
+AC_EGREP_CPP(${pattern},
+[
+#ifdef HAVE_STDIO_H
+# include <stdio.h>
+#endif /* HAVE_STDIO_H */
+#ifdef HAVE_SYS_ERRNO_H
+# include <sys/errno.h>
+#endif /* HAVE_SYS_ERRNO_H */
+#ifdef HAVE_ERRNO_H
+# include <errno.h>
+#endif /* HAVE_ERRNO_H */
+], ac_cv_extern_sys_errlist=yes, ac_cv_extern_sys_errlist=no)
+])
+# check if need to define variable
+if test "$ac_cv_extern_sys_errlist" = yes
+then
+ AC_DEFINE(HAVE_EXTERN_SYS_ERRLIST)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/field_mntent_t_mnt_time_string.m4 b/contrib/amd/m4/macros/field_mntent_t_mnt_time_string.m4
new file mode 100644
index 0000000..400a3c6
--- /dev/null
+++ b/contrib/amd/m4/macros/field_mntent_t_mnt_time_string.m4
@@ -0,0 +1,36 @@
+fdnl ######################################################################
+dnl find if mntent_t field mnt_time exists and is of type "char *"
+AC_DEFUN(AMU_FIELD_MNTENT_T_MNT_TIME_STRING,
+[
+AC_CACHE_CHECK(if mntent_t field mnt_time exist as type string,
+ac_cv_field_mntent_t_mnt_time_string,
+[
+# try to compile a program
+AC_TRY_COMPILE(
+AMU_MOUNT_HEADERS(
+[
+/* now set the typedef */
+#ifdef HAVE_STRUCT_MNTENT
+typedef struct mntent mntent_t;
+#else /* not HAVE_STRUCT_MNTENT */
+# ifdef HAVE_STRUCT_MNTTAB
+typedef struct mnttab mntent_t;
+# else /* not HAVE_STRUCT_MNTTAB */
+# error XXX: could not find definition for struct mntent or struct mnttab!
+# endif /* not HAVE_STRUCT_MNTTAB */
+#endif /* not HAVE_STRUCT_MNTENT */
+]),
+[
+mntent_t mtt;
+char *cp = "test";
+int i;
+mtt.mnt_time = cp;
+i = mtt.mnt_time[0];
+], ac_cv_field_mntent_t_mnt_time_string=yes, ac_cv_field_mntent_t_mnt_time_string=no)
+])
+if test "$ac_cv_field_mntent_t_mnt_time_string" = yes
+then
+ AC_DEFINE(HAVE_MNTENT_T_MNT_TIME_STRING)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/func_bad_memcmp.m4 b/contrib/amd/m4/macros/func_bad_memcmp.m4
new file mode 100644
index 0000000..9b988c8
--- /dev/null
+++ b/contrib/amd/m4/macros/func_bad_memcmp.m4
@@ -0,0 +1,11 @@
+dnl My version is similar to the one from Autoconf 2.52, but I also
+dnl define HAVE_BAD_MEMCMP so that I can do smarter things to avoid
+dnl linkage conflicts with bad memcmp versions that are in libc.
+AC_DEFUN(AMU_FUNC_BAD_MEMCMP,
+[
+AC_FUNC_MEMCMP
+if test "$ac_cv_func_memcmp_working" = no
+then
+AC_DEFINE(HAVE_BAD_MEMCMP)
+fi
+])
diff --git a/contrib/amd/m4/macros/func_bad_yp_all.m4 b/contrib/amd/m4/macros/func_bad_yp_all.m4
new file mode 100644
index 0000000..48ffb45
--- /dev/null
+++ b/contrib/amd/m4/macros/func_bad_yp_all.m4
@@ -0,0 +1,27 @@
+dnl Check for a yp_all() function that does not leak a file descriptor
+dnl to the ypserv process.
+AC_DEFUN(AMU_FUNC_BAD_YP_ALL,
+[
+AC_CACHE_CHECK(for a file-descriptor leakage clean yp_all,
+ac_cv_func_yp_all_clean,
+[
+# clean by default
+ac_cv_func_yp_all_clean=yes
+# select the correct type
+case "${host_os_name}" in
+ irix* )
+ ac_cv_func_yp_all_clean=no ;;
+ linux* )
+ # RedHat 5.1 systems with glibc glibc-2.0.7-19 or below
+ # leak a UDP socket from yp_all()
+ case "`cat /etc/redhat-release /dev/null 2>/dev/null`" in
+ *5.1* )
+ ac_cv_func_yp_all_clean=no ;;
+ esac
+esac
+])
+if test $ac_cv_func_yp_all_clean = no
+then
+ AC_DEFINE(HAVE_BAD_YP_ALL)
+fi
+])
diff --git a/contrib/amd/m4/macros/header_templates.m4 b/contrib/amd/m4/macros/header_templates.m4
new file mode 100644
index 0000000..98e62b8
--- /dev/null
+++ b/contrib/amd/m4/macros/header_templates.m4
@@ -0,0 +1,917 @@
+dnl FILE: m4/macros/header_templates.m4
+dnl defines descriptions for various am-utils specific macros
+
+AH_TEMPLATE([HAVE_AMU_FS_AUTO],
+[Define if have automount filesystem])
+
+AH_TEMPLATE([HAVE_AMU_FS_DIRECT],
+[Define if have direct automount filesystem])
+
+AH_TEMPLATE([HAVE_AMU_FS_TOPLVL],
+[Define if have "top-level" filesystem])
+
+AH_TEMPLATE([HAVE_AMU_FS_ERROR],
+[Define if have error filesystem])
+
+AH_TEMPLATE([HAVE_AMU_FS_INHERIT],
+[Define if have inheritance filesystem])
+
+AH_TEMPLATE([HAVE_AMU_FS_PROGRAM],
+[Define if have program filesystem])
+
+AH_TEMPLATE([HAVE_AMU_FS_LINK],
+[Define if have symbolic-link filesystem])
+
+AH_TEMPLATE([HAVE_AMU_FS_LINKX],
+[Define if have symlink with existence check filesystem])
+
+AH_TEMPLATE([HAVE_AMU_FS_HOST],
+[Define if have NFS host-tree filesystem])
+
+AH_TEMPLATE([HAVE_AMU_FS_NFSL],
+[Define if have nfsl (NFS with local link check) filesystem])
+
+AH_TEMPLATE([HAVE_AMU_FS_NFSX],
+[Define if have multi-NFS filesystem])
+
+AH_TEMPLATE([HAVE_AMU_FS_UNION],
+[Define if have union filesystem])
+
+AH_TEMPLATE([HAVE_MAP_FILE],
+[Define if have file maps (everyone should have it!)])
+
+AH_TEMPLATE([HAVE_MAP_NIS],
+[Define if have NIS maps])
+
+AH_TEMPLATE([HAVE_MAP_NISPLUS],
+[Define if have NIS+ maps])
+
+AH_TEMPLATE([HAVE_MAP_DBM],
+[Define if have DBM maps])
+
+AH_TEMPLATE([HAVE_MAP_NDBM],
+[Define if have NDBM maps])
+
+AH_TEMPLATE([HAVE_MAP_HESIOD],
+[Define if have HESIOD maps])
+
+AH_TEMPLATE([HAVE_MAP_LDAP],
+[Define if have LDAP maps])
+
+AH_TEMPLATE([HAVE_MAP_PASSWD],
+[Define if have PASSWD maps])
+
+AH_TEMPLATE([HAVE_MAP_UNION],
+[Define if have UNION maps])
+
+AH_TEMPLATE([HAVE_FS_UFS],
+[Define if have UFS filesystem])
+
+AH_TEMPLATE([HAVE_FS_XFS],
+[Define if have XFS filesystem (irix)])
+
+AH_TEMPLATE([HAVE_FS_EFS],
+[Define if have EFS filesystem (irix)])
+
+AH_TEMPLATE([HAVE_FS_NFS],
+[Define if have NFS filesystem])
+
+AH_TEMPLATE([HAVE_FS_NFS3],
+[Define if have NFS3 filesystem])
+
+AH_TEMPLATE([HAVE_FS_PCFS],
+[Define if have PCFS filesystem])
+
+AH_TEMPLATE([HAVE_FS_LOFS],
+[Define if have LOFS filesystem])
+
+AH_TEMPLATE([HAVE_FS_HSFS],
+[Define if have HSFS filesystem])
+
+AH_TEMPLATE([HAVE_FS_CDFS],
+[Define if have CDFS filesystem])
+
+AH_TEMPLATE([HAVE_FS_TFS],
+[Define if have TFS filesystem])
+
+AH_TEMPLATE([HAVE_FS_TMPFS],
+[Define if have TMPFS filesystem])
+
+AH_TEMPLATE([HAVE_FS_MFS],
+[Define if have MFS filesystem])
+
+AH_TEMPLATE([HAVE_FS_CFS],
+[Define if have CFS (crypto) filesystem])
+
+AH_TEMPLATE([HAVE_FS_AUTOFS],
+[Define if have AUTOFS filesystem])
+
+AH_TEMPLATE([HAVE_FS_CACHEFS],
+[Define if have CACHEFS filesystem])
+
+AH_TEMPLATE([HAVE_FS_NULLFS],
+[Define if have NULLFS (loopback on bsd44) filesystem])
+
+AH_TEMPLATE([HAVE_FS_UNIONFS],
+[Define if have UNIONFS filesystem])
+
+AH_TEMPLATE([HAVE_FS_UMAPFS],
+[Define if have UMAPFS (uid/gid mapping) filesystem])
+
+AH_TEMPLATE([MOUNT_TYPE_UFS],
+[Mount(2) type/name for UFS filesystem])
+
+AH_TEMPLATE([MOUNT_TYPE_XFS],
+[Mount(2) type/name for XFS filesystem (irix)])
+
+AH_TEMPLATE([MOUNT_TYPE_EFS],
+[Mount(2) type/name for EFS filesystem (irix)])
+
+AH_TEMPLATE([MOUNT_TYPE_NFS],
+[Mount(2) type/name for NFS filesystem])
+
+AH_TEMPLATE([MOUNT_TYPE_NFS3],
+[Mount(2) type/name for NFS3 filesystem])
+
+AH_TEMPLATE([MOUNT_TYPE_PCFS],
+[Mount(2) type/name for PCFS filesystem. XXX: conf/trap/trap_hpux.h may override this definition for HPUX 9.0])
+
+AH_TEMPLATE([MOUNT_TYPE_LOFS],
+[Mount(2) type/name for LOFS filesystem])
+
+AH_TEMPLATE([MOUNT_TYPE_CDFS],
+[Mount(2) type/name for CDFS filesystem])
+
+AH_TEMPLATE([MOUNT_TYPE_TFS],
+[Mount(2) type/name for TFS filesystem])
+
+AH_TEMPLATE([MOUNT_TYPE_TMPFS],
+[Mount(2) type/name for TMPFS filesystem])
+
+AH_TEMPLATE([MOUNT_TYPE_MFS],
+[Mount(2) type/name for MFS filesystem])
+
+AH_TEMPLATE([MOUNT_TYPE_CFS],
+[Mount(2) type/name for CFS (crypto) filesystem])
+
+AH_TEMPLATE([MOUNT_TYPE_AUTOFS],
+[Mount(2) type/name for AUTOFS filesystem])
+
+AH_TEMPLATE([MOUNT_TYPE_CACHEFS],
+[Mount(2) type/name for CACHEFS filesystem])
+
+AH_TEMPLATE([MOUNT_TYPE_IGNORE],
+[Mount(2) type/name for IGNORE filesystem (not real just ignore for df)])
+
+AH_TEMPLATE([MOUNT_TYPE_NULLFS],
+[Mount(2) type/name for NULLFS (loopback on bsd44) filesystem])
+
+AH_TEMPLATE([MOUNT_TYPE_UNIONFS],
+[Mount(2) type/name for UNIONFS filesystem])
+
+AH_TEMPLATE([MOUNT_TYPE_UMAPFS],
+[Mount(2) type/name for UMAPFS (uid/gid mapping) filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_UFS],
+[Mount-table entry name for UFS filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_XFS],
+[Mount-table entry name for XFS filesystem (irix)])
+
+AH_TEMPLATE([MNTTAB_TYPE_EFS],
+[Mount-table entry name for EFS filesystem (irix)])
+
+AH_TEMPLATE([MNTTAB_TYPE_NFS],
+[Mount-table entry name for NFS filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_NFS3],
+[Mount-table entry name for NFS3 filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_PCFS],
+[Mount-table entry name for PCFS filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_LOFS],
+[Mount-table entry name for LOFS filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_CDFS],
+[Mount-table entry name for CDFS filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_TFS],
+[Mount-table entry name for TFS filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_TMPFS],
+[Mount-table entry name for TMPFS filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_MFS],
+[Mount-table entry name for MFS filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_CFS],
+[Mount-table entry name for CFS (crypto) filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_AUTOFS],
+[Mount-table entry name for AUTOFS filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_CACHEFS],
+[Mount-table entry name for CACHEFS filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_NULLFS],
+[Mount-table entry name for NULLFS (loopback on bsd44) filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_UNIONFS],
+[Mount-table entry name for UNIONFS filesystem])
+
+AH_TEMPLATE([MNTTAB_TYPE_UMAPFS],
+[Mount-table entry name for UMAPFS (uid/gid mapping) filesystem])
+
+AH_TEMPLATE([MNTTAB_FILE_NAME],
+[Name of mount table file name])
+
+AH_TEMPLATE([HIDE_MOUNT_TYPE],
+[Name of mount type to hide amd mount from df(1)])
+
+AH_TEMPLATE([MNTTAB_OPT_RO],
+[Mount Table option string: Read only])
+
+AH_TEMPLATE([MNTTAB_OPT_RW],
+[Mount Table option string: Read/write])
+
+AH_TEMPLATE([MNTTAB_OPT_RQ],
+[Mount Table option string: Read/write with quotas])
+
+AH_TEMPLATE([MNTTAB_OPT_QUOTA],
+[Mount Table option string: Check quotas])
+
+AH_TEMPLATE([MNTTAB_OPT_NOQUOTA],
+[Mount Table option string: Don't check quotas])
+
+AH_TEMPLATE([MNTTAB_OPT_ONERROR],
+[Mount Table option string: action to taken on error])
+
+AH_TEMPLATE([MNTTAB_OPT_TOOSOON],
+[Mount Table option string: min. time between inconsistencies])
+
+AH_TEMPLATE([MNTTAB_OPT_SOFT],
+[Mount Table option string: Soft mount])
+
+AH_TEMPLATE([MNTTAB_OPT_SPONGY],
+[Mount Table option string: spongy mount])
+
+AH_TEMPLATE([MNTTAB_OPT_HARD],
+[Mount Table option string: Hard mount])
+
+AH_TEMPLATE([MNTTAB_OPT_SUID],
+[Mount Table option string: Set uid allowed])
+
+AH_TEMPLATE([MNTTAB_OPT_NOSUID],
+[Mount Table option string: Set uid not allowed])
+
+AH_TEMPLATE([MNTTAB_OPT_GRPID],
+[Mount Table option string: SysV-compatible gid on create])
+
+AH_TEMPLATE([MNTTAB_OPT_REMOUNT],
+[Mount Table option string: Change mount options])
+
+AH_TEMPLATE([MNTTAB_OPT_NOSUB],
+[Mount Table option string: Disallow mounts on subdirs])
+
+AH_TEMPLATE([MNTTAB_OPT_MULTI],
+[Mount Table option string: Do multi-component lookup])
+
+AH_TEMPLATE([MNTTAB_OPT_INTR],
+[Mount Table option string: Allow NFS ops to be interrupted])
+
+AH_TEMPLATE([MNTTAB_OPT_NOINTR],
+[Mount Table option string: Don't allow interrupted ops])
+
+AH_TEMPLATE([MNTTAB_OPT_PORT],
+[Mount Table option string: NFS server IP port number])
+
+AH_TEMPLATE([MNTTAB_OPT_SECURE],
+[Mount Table option string: Secure (AUTH_DES) mounting])
+
+AH_TEMPLATE([MNTTAB_OPT_KERB],
+[Mount Table option string: Secure (AUTH_Kerb) mounting])
+
+AH_TEMPLATE([MNTTAB_OPT_RSIZE],
+[Mount Table option string: Max NFS read size (bytes)])
+
+AH_TEMPLATE([MNTTAB_OPT_WSIZE],
+[Mount Table option string: Max NFS write size (bytes)])
+
+AH_TEMPLATE([MNTTAB_OPT_TIMEO],
+[Mount Table option string: NFS timeout (1/10 sec)])
+
+AH_TEMPLATE([MNTTAB_OPT_RETRANS],
+[Mount Table option string: Max retransmissions (soft mnts)])
+
+AH_TEMPLATE([MNTTAB_OPT_ACTIMEO],
+[Mount Table option string: Attr cache timeout (sec)])
+
+AH_TEMPLATE([MNTTAB_OPT_ACREGMIN],
+[Mount Table option string: Min attr cache timeout (files)])
+
+AH_TEMPLATE([MNTTAB_OPT_ACREGMAX],
+[Mount Table option string: Max attr cache timeout (files)])
+
+AH_TEMPLATE([MNTTAB_OPT_ACDIRMIN],
+[Mount Table option string: Min attr cache timeout (dirs)])
+
+AH_TEMPLATE([MNTTAB_OPT_ACDIRMAX],
+[Mount Table option string: Max attr cache timeout (dirs)])
+
+AH_TEMPLATE([MNTTAB_OPT_NOAC],
+[Mount Table option string: Don't cache attributes at all])
+
+AH_TEMPLATE([MNTTAB_OPT_NOCTO],
+[Mount Table option string: No close-to-open consistency])
+
+AH_TEMPLATE([MNTTAB_OPT_BG],
+[Mount Table option string: Do mount retries in background])
+
+AH_TEMPLATE([MNTTAB_OPT_FG],
+[Mount Table option string: Do mount retries in foreground])
+
+AH_TEMPLATE([MNTTAB_OPT_RETRY],
+[Mount Table option string: Number of mount retries])
+
+AH_TEMPLATE([MNTTAB_OPT_DEV],
+[Mount Table option string: Device id of mounted fs])
+
+AH_TEMPLATE([MNTTAB_OPT_FSID],
+[Mount Table option string: Filesystem id of mounted fs])
+
+AH_TEMPLATE([MNTTAB_OPT_POSIX],
+[Mount Table option string: Get static pathconf for mount])
+
+AH_TEMPLATE([MNTTAB_OPT_MAP],
+[Mount Table option string: Automount map])
+
+AH_TEMPLATE([MNTTAB_OPT_DIRECT],
+[Mount Table option string: Automount direct map mount])
+
+AH_TEMPLATE([MNTTAB_OPT_INDIRECT],
+[Mount Table option string: Automount indirect map mount])
+
+AH_TEMPLATE([MNTTAB_OPT_LLOCK],
+[Mount Table option string: Local locking (no lock manager)])
+
+AH_TEMPLATE([MNTTAB_OPT_IGNORE],
+[Mount Table option string: Ignore this entry])
+
+AH_TEMPLATE([MNTTAB_OPT_NOAUTO],
+[Mount Table option string: No auto (what?)])
+
+AH_TEMPLATE([MNTTAB_OPT_NOCONN],
+[Mount Table option string: No connection])
+
+AH_TEMPLATE([MNTTAB_OPT_VERS],
+[Mount Table option string: protocol version number indicator])
+
+AH_TEMPLATE([MNTTAB_OPT_PROTO],
+[Mount Table option string: protocol network_id indicator])
+
+AH_TEMPLATE([MNTTAB_OPT_SYNCDIR],
+[Mount Table option string: Synchronous local directory ops])
+
+AH_TEMPLATE([MNTTAB_OPT_NOSETSEC],
+[Mount Table option string: Do no allow setting sec attrs])
+
+AH_TEMPLATE([MNTTAB_OPT_SYMTTL],
+[Mount Table option string: set symlink cache time-to-live])
+
+AH_TEMPLATE([MNTTAB_OPT_COMPRESS],
+[Mount Table option string: compress])
+
+AH_TEMPLATE([MNTTAB_OPT_PGTHRESH],
+[Mount Table option string: paging threshold])
+
+AH_TEMPLATE([MNTTAB_OPT_MAXGROUPS],
+[Mount Table option string: max groups])
+
+AH_TEMPLATE([MNTTAB_OPT_PROPLIST],
+[Mount Table option string: support property lists (ACLs)])
+
+AH_TEMPLATE([MNT2_GEN_OPT_ASYNC],
+[asynchronous filesystem access])
+
+AH_TEMPLATE([MNT2_GEN_OPT_AUTOMNTFS],
+[automounter filesystem (ignore) flag, used in bsdi-4.1])
+
+AH_TEMPLATE([MNT2_GEN_OPT_AUTOMOUNTED],
+[automounter filesystem flag, used in Mac OS X / Darwin])
+
+AH_TEMPLATE([MNT2_GEN_OPT_BIND],
+[directory hardlink])
+
+AH_TEMPLATE([MNT2_GEN_OPT_CACHE],
+[cache (what?)])
+
+AH_TEMPLATE([MNT2_GEN_OPT_DATA],
+[6-argument mount])
+
+AH_TEMPLATE([MNT2_GEN_OPT_FSS],
+[old (4-argument) mount (compatibility)])
+
+AH_TEMPLATE([MNT2_GEN_OPT_IGNORE],
+[ignore mount entry in df output])
+
+AH_TEMPLATE([MNT2_GEN_OPT_JFS],
+[journaling filesystem (AIX's UFS/FFS)])
+
+AH_TEMPLATE([MNT2_GEN_OPT_GRPID],
+[old BSD group-id on create])
+
+AH_TEMPLATE([MNT2_GEN_OPT_MULTI],
+[do multi-component lookup on files])
+
+AH_TEMPLATE([MNT2_GEN_OPT_NEWTYPE],
+[use type string instead of int])
+
+AH_TEMPLATE([MNT2_GEN_OPT_NFS],
+[NFS mount])
+
+AH_TEMPLATE([MNT2_GEN_OPT_NOCACHE],
+[nocache (what?)])
+
+AH_TEMPLATE([MNT2_GEN_OPT_NODEV],
+[do not interpret special device files])
+
+AH_TEMPLATE([MNT2_GEN_OPT_NOEXEC],
+[no exec calls allowed])
+
+AH_TEMPLATE([MNT2_GEN_OPT_NONDEV],
+[do not interpret special device files])
+
+AH_TEMPLATE([MNT2_GEN_OPT_NOSUB],
+[Disallow mounts beneath this mount])
+
+AH_TEMPLATE([MNT2_GEN_OPT_NOSUID],
+[Setuid programs disallowed])
+
+AH_TEMPLATE([MNT2_GEN_OPT_NOTRUNC],
+[Return ENAMETOOLONG for long filenames])
+
+AH_TEMPLATE([MNT2_GEN_OPT_OPTIONSTR],
+[Pass mount option string to kernel])
+
+AH_TEMPLATE([MNT2_GEN_OPT_OVERLAY],
+[allow overlay mounts])
+
+AH_TEMPLATE([MNT2_GEN_OPT_QUOTA],
+[check quotas])
+
+AH_TEMPLATE([MNT2_GEN_OPT_RDONLY],
+[Read-only])
+
+AH_TEMPLATE([MNT2_GEN_OPT_REMOUNT],
+[change options on an existing mount])
+
+AH_TEMPLATE([MNT2_GEN_OPT_RONLY],
+[read only])
+
+AH_TEMPLATE([MNT2_GEN_OPT_SYNC],
+[synchronize data immediately to filesystem])
+
+AH_TEMPLATE([MNT2_GEN_OPT_SYNCHRONOUS],
+[synchronous filesystem access (same as SYNC)])
+
+AH_TEMPLATE([MNT2_GEN_OPT_SYS5],
+[Mount with Sys 5-specific semantics])
+
+AH_TEMPLATE([MNT2_GEN_OPT_UNION],
+[Union mount])
+
+AH_TEMPLATE([MNT2_NFS_OPT_AUTO],
+[hide mount type from df(1)])
+
+AH_TEMPLATE([MNT2_NFS_OPT_ACDIRMAX],
+[set max secs for dir attr cache])
+
+AH_TEMPLATE([MNT2_NFS_OPT_ACDIRMIN],
+[set min secs for dir attr cache])
+
+AH_TEMPLATE([MNT2_NFS_OPT_ACREGMAX],
+[set max secs for file attr cache])
+
+AH_TEMPLATE([MNT2_NFS_OPT_ACREGMIN],
+[set min secs for file attr cache])
+
+AH_TEMPLATE([MNT2_NFS_OPT_AUTHERR],
+[Authentication error])
+
+AH_TEMPLATE([MNT2_NFS_OPT_DEADTHRESH],
+[set dead server retry thresh])
+
+AH_TEMPLATE([MNT2_NFS_OPT_DISMINPROG],
+[Dismount in progress])
+
+AH_TEMPLATE([MNT2_NFS_OPT_DISMNT],
+[Dismounted])
+
+AH_TEMPLATE([MNT2_NFS_OPT_DUMBTIMR],
+[Don't estimate rtt dynamically])
+
+AH_TEMPLATE([MNT2_NFS_OPT_GRPID],
+[System V-style gid inheritance])
+
+AH_TEMPLATE([MNT2_NFS_OPT_HASAUTH],
+[Has authenticator])
+
+AH_TEMPLATE([MNT2_NFS_OPT_FSNAME],
+[provide name of server's fs to system])
+
+AH_TEMPLATE([MNT2_NFS_OPT_HOSTNAME],
+[set hostname for error printf])
+
+AH_TEMPLATE([MNT2_NFS_OPT_IGNORE],
+[ignore mount point])
+
+AH_TEMPLATE([MNT2_NFS_OPT_INT],
+[allow interrupts on hard mount])
+
+AH_TEMPLATE([MNT2_NFS_OPT_INTR],
+[allow interrupts on hard mount])
+
+AH_TEMPLATE([MNT2_NFS_OPT_INTERNAL],
+[Bits set internally])
+
+AH_TEMPLATE([MNT2_NFS_OPT_KERB],
+[Use Kerberos authentication])
+
+AH_TEMPLATE([MNT2_NFS_OPT_KERBEROS],
+[use kerberos credentials])
+
+AH_TEMPLATE([MNT2_NFS_OPT_KNCONF],
+[transport's knetconfig structure])
+
+AH_TEMPLATE([MNT2_NFS_OPT_LEASETERM],
+[set lease term (nqnfs)])
+
+AH_TEMPLATE([MNT2_NFS_OPT_LLOCK],
+[Local locking (no lock manager)])
+
+AH_TEMPLATE([MNT2_NFS_OPT_MAXGRPS],
+[set maximum grouplist size])
+
+AH_TEMPLATE([MNT2_NFS_OPT_MNTD],
+[Mnt server for mnt point])
+
+AH_TEMPLATE([MNT2_NFS_OPT_MYWRITE],
+[Assume writes were mine])
+
+AH_TEMPLATE([MNT2_NFS_OPT_NFSV3],
+[mount NFS Version 3])
+
+AH_TEMPLATE([MNT2_NFS_OPT_NOAC],
+[don't cache attributes])
+
+AH_TEMPLATE([MNT2_NFS_OPT_NOCONN],
+[Don't Connect the socket])
+
+AH_TEMPLATE([MNT2_NFS_OPT_NOCTO],
+[no close-to-open consistency])
+
+AH_TEMPLATE([MNT2_NFS_OPT_NOINT],
+[disallow interrupts on hard mounts])
+
+AH_TEMPLATE([MNT2_NFS_OPT_NQLOOKLEASE],
+[Get lease for lookup])
+
+AH_TEMPLATE([MNT2_NFS_OPT_NONLM],
+[Don't use locking])
+
+AH_TEMPLATE([MNT2_NFS_OPT_NQNFS],
+[Use Nqnfs protocol])
+
+AH_TEMPLATE([MNT2_NFS_OPT_POSIX],
+[static pathconf kludge info])
+
+AH_TEMPLATE([MNT2_NFS_OPT_RCVLOCK],
+[Rcv socket lock])
+
+AH_TEMPLATE([MNT2_NFS_OPT_RDIRALOOK],
+[Do lookup with readdir (nqnfs)])
+
+AH_TEMPLATE([MNT2_NFS_OPT_PROPLIST],
+[allow property list operations (ACLs over NFS)])
+
+AH_TEMPLATE([MNT2_NFS_OPTS_RDIRPLUS],
+[Use Readdirplus for NFSv3])
+
+AH_TEMPLATE([MNT2_NFS_OPT_READAHEAD],
+[set read ahead])
+
+AH_TEMPLATE([MNT2_NFS_OPT_READDIRSIZE],
+[Set readdir size])
+
+AH_TEMPLATE([MNT2_NFS_OPT_RESVPORT],
+[Allocate a reserved port])
+
+AH_TEMPLATE([MNT2_NFS_OPT_RETRANS],
+[set number of request retries])
+
+AH_TEMPLATE([MNT2_NFS_OPT_RONLY],
+[read only])
+
+AH_TEMPLATE([MNT2_NFS_OPT_RPCTIMESYNC],
+[use RPC to do secure NFS time sync])
+
+AH_TEMPLATE([MNT2_NFS_OPT_RSIZE],
+[set read size])
+
+AH_TEMPLATE([MNT2_NFS_OPT_SECURE],
+[secure mount])
+
+AH_TEMPLATE([MNT2_NFS_OPT_SNDLOCK],
+[Send socket lock])
+
+AH_TEMPLATE([MNT2_NFS_OPT_SOFT],
+[soft mount (hard is default)])
+
+AH_TEMPLATE([MNT2_NFS_OPT_SPONGY],
+[spongy mount])
+
+AH_TEMPLATE([MNT2_NFS_OPT_TIMEO],
+[set initial timeout])
+
+AH_TEMPLATE([MNT2_NFS_OPT_TCP],
+[use TCP for mounts])
+
+AH_TEMPLATE([MNT2_NFS_OPT_VER3],
+[linux NFSv3])
+
+AH_TEMPLATE([MNT2_NFS_OPT_WAITAUTH],
+[Wait for authentication])
+
+AH_TEMPLATE([MNT2_NFS_OPT_WANTAUTH],
+[Wants an authenticator])
+
+AH_TEMPLATE([MNT2_NFS_OPT_WANTRCV],
+[Want receive socket lock])
+
+AH_TEMPLATE([MNT2_NFS_OPT_WANTSND],
+[Want send socket lock])
+
+AH_TEMPLATE([MNT2_NFS_OPT_WSIZE],
+[set write size])
+
+AH_TEMPLATE([MNT2_NFS_OPT_SYMTTL],
+[set symlink cache time-to-live])
+
+AH_TEMPLATE([MNT2_NFS_OPT_PGTHRESH],
+[paging threshold])
+
+AH_TEMPLATE([MNT2_NFS_OPT_XLATECOOKIE],
+[32<->64 dir cookie translation])
+
+AH_TEMPLATE([MNT2_CDFS_OPT_DEFPERM],
+[Ignore permission bits])
+
+AH_TEMPLATE([MNT2_CDFS_OPT_NODEFPERM],
+[Use on-disk permission bits])
+
+AH_TEMPLATE([MNT2_CDFS_OPT_NOVERSION],
+[Strip off extension from version string])
+
+AH_TEMPLATE([MNT2_CDFS_OPT_RRIP],
+[Use Rock Ridge Interchange Protocol (RRIP) extensions])
+
+AH_TEMPLATE([HAVE_MNTENT_T_MNT_TIME_STRING],
+[does mntent_t have mnt_time field and is of type "char *" ?])
+
+AH_TEMPLATE([REINSTALL_SIGNAL_HANDLER],
+[should signal handlers be reinstalled?])
+
+AH_TEMPLATE([DEBUG],
+[Turn off general debugging by default])
+
+AH_TEMPLATE([DEBUG_MEM],
+[Turn off memory debugging by default])
+
+AH_TEMPLATE([PACKAGE_NAME],
+[Define package name (must be defined by configure.in)])
+
+AH_TEMPLATE([PACKAGE_VERSION],
+[Define version of package (must be defined by configure.in)])
+
+AH_TEMPLATE([PACKAGE_BUGREPORT],
+[Define bug-reporting address (must be defined by configure.in)])
+
+AH_TEMPLATE([HOST_CPU],
+[Define name of host machine's cpu (eg. sparc)])
+
+AH_TEMPLATE([HOST_ARCH],
+[Define name of host machine's architecture (eg. sun4)])
+
+AH_TEMPLATE([HOST_VENDOR],
+[Define name of host machine's vendor (eg. sun)])
+
+AH_TEMPLATE([HOST_OS],
+[Define name and version of host machine (eg. solaris2.5.1)])
+
+AH_TEMPLATE([HOST_OS_NAME],
+[Define only name of host machine OS (eg. solaris2)])
+
+AH_TEMPLATE([HOST_OS_VERSION],
+[Define only version of host machine (eg. 2.5.1)])
+
+AH_TEMPLATE([HOST_HEADER_VERSION],
+[Define the header version of (linux) hosts (eg. 2.2.10)])
+
+AH_TEMPLATE([HOST_NAME],
+[Define name of host])
+
+AH_TEMPLATE([USER_NAME],
+[Define user name])
+
+AH_TEMPLATE([CONFIG_DATE],
+[Define configuration date])
+
+AH_TEMPLATE([HAVE_TRANSPORT_TYPE_TLI],
+[what type of network transport type is in use? TLI or sockets?])
+
+AH_TEMPLATE([time_t],
+[Define to `long' if <sys/types.h> doesn't define time_t])
+
+AH_TEMPLATE([voidp],
+[Define to "void *" if compiler can handle, otherwise "char *"])
+
+AH_TEMPLATE([am_nfs_fh],
+[Define a type/structure for an NFS V2 filehandle])
+
+AH_TEMPLATE([am_nfs_fh3],
+[Define a type/structure for an NFS V3 filehandle])
+
+AH_TEMPLATE([HAVE_NFS_PROT_HEADERS],
+[define if the host has NFS protocol headers in system headers])
+
+AH_TEMPLATE([AMU_NFS_PROTOCOL_HEADER],
+[define name of am-utils' NFS protocol header])
+
+AH_TEMPLATE([nfs_args_t],
+[Define a type for the nfs_args structure])
+
+AH_TEMPLATE([NFS_FH_FIELD],
+[Define the field name for the filehandle within nfs_args_t])
+
+AH_TEMPLATE([HAVE_FHANDLE],
+[Define if plain fhandle type exists])
+
+AH_TEMPLATE([SVC_IN_ARG_TYPE],
+[Define the type of the 3rd argument ('in') to svc_getargs()])
+
+AH_TEMPLATE([XDRPROC_T_TYPE],
+[Define to the type of xdr procedure type])
+
+AH_TEMPLATE([MOUNT_TABLE_ON_FILE],
+[Define if mount table is on file, undefine if in kernel])
+
+AH_TEMPLATE([HAVE_STRUCT_MNTENT],
+[Define if have struct mntent in one of the standard headers])
+
+AH_TEMPLATE([HAVE_STRUCT_MNTTAB],
+[Define if have struct mnttab in one of the standard headers])
+
+AH_TEMPLATE([HAVE_STRUCT_NFS_ARGS],
+[Define if have struct nfs_args in one of the standard nfs headers])
+
+AH_TEMPLATE([HAVE_STRUCT_NFS_GFS_MOUNT],
+[Define if have struct nfs_gfs_mount in one of the standard nfs headers])
+
+AH_TEMPLATE([YP_ORDER_OUTORDER_TYPE],
+[Type of the 3rd argument to yp_order()])
+
+AH_TEMPLATE([RECVFROM_FROMLEN_TYPE],
+[Type of the 6th argument to recvfrom()])
+
+AH_TEMPLATE([AUTH_CREATE_GIDLIST_TYPE],
+[Type of the 5rd argument to authunix_create()])
+
+AH_TEMPLATE([MTYPE_PRINTF_TYPE],
+[The string used in printf to print the mount-type field of mount(2)])
+
+AH_TEMPLATE([MTYPE_TYPE],
+[Type of the mount-type field in the mount() system call])
+
+AH_TEMPLATE([pcfs_args_t],
+[Define a type for the pcfs_args structure])
+
+AH_TEMPLATE([autofs_args_t],
+[Define a type for the autofs_args structure])
+
+AH_TEMPLATE([cachefs_args_t],
+[Define a type for the cachefs_args structure])
+
+AH_TEMPLATE([tmpfs_args_t],
+[Define a type for the tmpfs_args structure])
+
+AH_TEMPLATE([ufs_args_t],
+[Define a type for the ufs_args structure])
+
+AH_TEMPLATE([efs_args_t],
+[Define a type for the efs_args structure])
+
+AH_TEMPLATE([xfs_args_t],
+[Define a type for the xfs_args structure])
+
+AH_TEMPLATE([lofs_args_t],
+[Define a type for the lofs_args structure])
+
+AH_TEMPLATE([cdfs_args_t],
+[Define a type for the cdfs_args structure])
+
+AH_TEMPLATE([mfs_args_t],
+[Define a type for the mfs_args structure])
+
+AH_TEMPLATE([rfs_args_t],
+[Define a type for the rfs_args structure])
+
+AH_TEMPLATE([HAVE_BAD_MEMCMP],
+[define if have a bad version of memcmp()])
+
+AH_TEMPLATE([HAVE_BAD_YP_ALL],
+[define if have a bad version of yp_all()])
+
+AH_TEMPLATE([USE_UNCONNECTED_NFS_SOCKETS],
+[define if must use NFS "noconn" option])
+
+AH_TEMPLATE([USE_CONNECTED_NFS_SOCKETS],
+[define if must NOT use NFS "noconn" option])
+
+AH_TEMPLATE([HAVE_GNU_GETOPT],
+[define if your system's getopt() is GNU getopt() (are you using glibc)])
+
+AH_TEMPLATE([HAVE_EXTERN_SYS_ERRLIST],
+[does extern definition for sys_errlist[] exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_OPTARG],
+[does extern definition for optarg exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_CLNT_SPCREATEERROR],
+[does extern definition for clnt_spcreateerror() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_CLNT_SPERRNO],
+[does extern definition for clnt_sperrno() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_FREE],
+[does extern definition for free() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_GET_MYADDRESS],
+[does extern definition for get_myaddress() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_GETCCENT],
+[does extern definition for getccent() (hpux) exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_GETDOMAINNAME],
+[does extern definition for getdomainname() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_GETHOSTNAME],
+[does extern definition for gethostname() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_GETLOGIN],
+[does extern definition for getlogin() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_GETTABLESIZE],
+[does extern definition for gettablesize() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_GETPAGESIZE],
+[does extern definition for getpagesize() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_INNETGR],
+[does extern definition for innetgr() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_MKSTEMP],
+[does extern definition for mkstemp() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_SBRK],
+[does extern definition for sbrk() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_SETEUID],
+[does extern definition for seteuid() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_SETITIMER],
+[does extern definition for setitimer() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_STRCASECMP],
+[does extern definition for strcasecmp() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_STRDUP],
+[does extern definition for strdup() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_STRSTR],
+[does extern definition for strstr() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_USLEEP],
+[does extern definition for usleep() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_WAIT3],
+[does extern definition for wait3() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_VSNPRINTF],
+[does extern definition for vsnprintf() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_XDR_CALLMSG],
+[does extern definition for xdr_callmsg() exist?])
+
+AH_TEMPLATE([HAVE_EXTERN_XDR_OPAQUE_AUTH],
+[does extern definition for xdr_opaque_auth() exist?])
diff --git a/contrib/amd/m4/macros/host_macros.m4 b/contrib/amd/m4/macros/host_macros.m4
new file mode 100644
index 0000000..b835d7e
--- /dev/null
+++ b/contrib/amd/m4/macros/host_macros.m4
@@ -0,0 +1,91 @@
+dnl ######################################################################
+dnl AC_HOST_MACROS: define HOST_CPU, HOST_VENDOR, and HOST_OS
+AC_DEFUN(AMU_HOST_MACROS,
+[
+# these are defined already by the macro 'CANONICAL_HOST'
+ AC_MSG_CHECKING([host cpu])
+ AC_DEFINE_UNQUOTED(HOST_CPU, "$host_cpu")
+ AC_MSG_RESULT($host_cpu)
+
+ AC_MSG_CHECKING([vendor])
+ AC_DEFINE_UNQUOTED(HOST_VENDOR, "$host_vendor")
+ AC_MSG_RESULT($host_vendor)
+
+ AC_MSG_CHECKING([host full OS name and version])
+ # normalize some host OS names
+ case ${host_os} in
+ # linux is linux is linux, regardless of RMS.
+ linux-gnu* | lignux* ) host_os=linux ;;
+ esac
+ AC_DEFINE_UNQUOTED(HOST_OS, "$host_os")
+ AC_MSG_RESULT($host_os)
+
+# break host_os into host_os_name and host_os_version
+ AC_MSG_CHECKING([host OS name])
+ host_os_name=`echo $host_os | sed 's/\..*//g'`
+ # normalize some OS names
+ case ${host_os_name} in
+ # linux is linux is linux, regardless of RMS.
+ linux-gnu* | lignux* ) host_os_name=linux ;;
+ esac
+ AC_DEFINE_UNQUOTED(HOST_OS_NAME, "$host_os_name")
+ AC_MSG_RESULT($host_os_name)
+
+# parse out the OS version of the host
+ AC_MSG_CHECKING([host OS version])
+ host_os_version=`echo $host_os | sed 's/^[[^0-9]]*//g'`
+ if test -z "$host_os_version"
+ then
+ host_os_version=`(uname -r) 2>/dev/null` || host_os_version=unknown
+ fi
+ case ${host_os_version} in
+ # fixes for some OS versions (solaris used to be here)
+ * ) # do nothing for now
+ ;;
+ esac
+ AC_DEFINE_UNQUOTED(HOST_OS_VERSION, "$host_os_version")
+ AC_MSG_RESULT($host_os_version)
+
+# figure out host architecture (different than CPU)
+ AC_MSG_CHECKING([host OS architecture])
+ host_arch=`(uname -m) 2>/dev/null` || host_arch=unknown
+ # normalize some names
+ case ${host_arch} in
+ sun4* ) host_arch=sun4 ;;
+ sun3x ) host_arch=sun3 ;;
+ sun ) host_arch=`(arch) 2>/dev/null` || host_arch=unknown ;;
+ i?86 ) host_arch=i386 ;; # all x86 should show up as i386
+ esac
+ AC_DEFINE_UNQUOTED(HOST_ARCH, "$host_arch")
+ AC_MSG_RESULT($host_arch)
+
+# figure out host name
+ AC_MSG_CHECKING([host name])
+ host_name=`(hostname || uname -n) 2>/dev/null` || host_name=unknown
+ AC_DEFINE_UNQUOTED(HOST_NAME, "$host_name")
+ AC_MSG_RESULT($host_name)
+
+# figure out user name
+ AC_MSG_CHECKING([user name])
+ if test -n "$USER"
+ then
+ user_name="$USER"
+ else
+ if test -n "$LOGNAME"
+ then
+ user_name="$LOGNAME"
+ else
+ user_name=`(whoami) 2>/dev/null` || user_name=unknown
+ fi
+ fi
+ AC_DEFINE_UNQUOTED(USER_NAME, "$user_name")
+ AC_MSG_RESULT($user_name)
+
+# figure out configuration date
+ AC_MSG_CHECKING([configuration date])
+ config_date=`(date) 2>/dev/null` || config_date=unknown_date
+ AC_DEFINE_UNQUOTED(CONFIG_DATE, "$config_date")
+ AC_MSG_RESULT($config_date)
+
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/linux_headers.m4 b/contrib/amd/m4/macros/linux_headers.m4
new file mode 100644
index 0000000..8b8c514
--- /dev/null
+++ b/contrib/amd/m4/macros/linux_headers.m4
@@ -0,0 +1,42 @@
+dnl ######################################################################
+dnl ensure that linux kernel headers match running kernel
+AC_DEFUN(AMU_LINUX_HEADERS,
+[
+# test sanity of running kernel vs. kernel headers
+ AC_MSG_CHECKING("host headers version")
+ case ${host_os} in
+ linux )
+ host_header_version="bad"
+ AMU_EXPAND_RUN_STRING(
+[
+#include <stdio.h>
+#include <linux/version.h>
+],
+[
+if (argc > 1)
+ printf("%s", UTS_RELEASE);
+],
+[ host_header_version=$value ],
+[ echo
+ AC_MSG_ERROR([cannot find UTS_RELEASE in <linux/version.h>.
+ This Linux system may be misconfigured or unconfigured!])
+])
+ ;;
+ * ) host_header_version=$host_os_version ;;
+ esac
+ AC_DEFINE_UNQUOTED(HOST_HEADER_VERSION, "$host_header_version")
+ AC_MSG_RESULT($host_header_version)
+
+ case ${host_os} in
+ linux )
+ if test "$host_os_version" != $host_header_version
+ then
+ AC_MSG_WARN([Linux kernel $host_os_version mismatch with $host_header_version headers!])
+ fi
+ ;;
+esac
+dnl cache these two for debugging purposes
+ac_cv_os_version=$host_os_version
+ac_cv_header_version=$host_header_version
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/localconfig.m4 b/contrib/amd/m4/macros/localconfig.m4
new file mode 100644
index 0000000..ee56245
--- /dev/null
+++ b/contrib/amd/m4/macros/localconfig.m4
@@ -0,0 +1,13 @@
+dnl ######################################################################
+dnl check if a local configuration file exists
+AC_DEFUN(AMU_LOCALCONFIG,
+[AC_MSG_CHECKING(a local configuration file)
+if test -f localconfig.h
+then
+ AC_DEFINE(HAVE_LOCALCONFIG_H)
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT(no)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/mount_headers.m4 b/contrib/amd/m4/macros/mount_headers.m4
new file mode 100644
index 0000000..cf7b910
--- /dev/null
+++ b/contrib/amd/m4/macros/mount_headers.m4
@@ -0,0 +1,12 @@
+dnl ######################################################################
+dnl an M4 macro to include a list of common headers being used everywhere
+define(AMU_MOUNT_HEADERS,
+[
+#include "${srcdir}/include/mount_headers1.h"
+#include AMU_NFS_PROTOCOL_HEADER
+#include "${srcdir}/include/mount_headers2.h"
+
+$1
+]
+)
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/name_package.m4 b/contrib/amd/m4/macros/name_package.m4
new file mode 100644
index 0000000..434e592
--- /dev/null
+++ b/contrib/amd/m4/macros/name_package.m4
@@ -0,0 +1,8 @@
+dnl ######################################################################
+dnl Package name
+AC_DEFUN(AC_NAME_PACKAGE,
+[AC_MSG_CHECKING(package name)
+AC_DEFINE_UNQUOTED(PACKAGE, "$1")
+AC_MSG_RESULT(\"$1\")
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/name_version.m4 b/contrib/amd/m4/macros/name_version.m4
new file mode 100644
index 0000000..e9b78d6
--- /dev/null
+++ b/contrib/amd/m4/macros/name_version.m4
@@ -0,0 +1,8 @@
+dnl ######################################################################
+dnl Version of package
+AC_DEFUN(AC_NAME_VERSION,
+[AC_MSG_CHECKING(version of package)
+AC_DEFINE_UNQUOTED(VERSION, "$1")
+AC_MSG_RESULT(\"$1\")
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/opt_amu_cflags.m4 b/contrib/amd/m4/macros/opt_amu_cflags.m4
new file mode 100644
index 0000000..75f9661
--- /dev/null
+++ b/contrib/amd/m4/macros/opt_amu_cflags.m4
@@ -0,0 +1,24 @@
+dnl ######################################################################
+dnl Which options to add to CFLAGS for compilation?
+dnl NOTE: this is only for final compiltions, not for configure tests)
+AC_DEFUN(AMU_OPT_AMU_CFLAGS,
+[AC_MSG_CHECKING(for additional C option compilation flags)
+AC_ARG_ENABLE(am-cflags,
+AC_HELP_STRING([--enable-am-cflags=ARG],
+ [compile package with ARG additional C flags]),
+[
+if test "$enableval" = "" || test "$enableval" = "yes" || test "$enableval" = "no"; then
+ AC_MSG_ERROR(am-cflags must be supplied if option is used)
+fi
+# user supplied a cflags option to configure
+AMU_CFLAGS="$enableval"
+AC_SUBST(AMU_CFLAGS)
+AC_MSG_RESULT($enableval)
+], [
+ # default is to have no additional C flags
+ AMU_CFLAGS=""
+ AC_SUBST(AMU_CFLAGS)
+ AC_MSG_RESULT(none)
+])
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/opt_cppflags.m4 b/contrib/amd/m4/macros/opt_cppflags.m4
new file mode 100644
index 0000000..bcf7d76
--- /dev/null
+++ b/contrib/amd/m4/macros/opt_cppflags.m4
@@ -0,0 +1,22 @@
+dnl ######################################################################
+dnl Initial settings for CPPFLAGS (-I options)
+dnl NOTE: this is for configuration as well as compilations!
+AC_DEFUN(AMU_OPT_CPPFLAGS,
+[AC_MSG_CHECKING(for configuration/compilation (-I) preprocessor flags)
+AC_ARG_ENABLE(cppflags,
+AC_HELP_STRING([--enable-cppflags=ARG],
+ [configure/compile with ARG (-I) preprocessor flags]),
+[
+if test "$enableval" = "" || test "$enableval" = "yes" || test "$enableval" = "no"; then
+ AC_MSG_ERROR(cppflags must be supplied if option is used)
+fi
+# use supplied options
+CPPFLAGS="$CPPFLAGS $enableval"
+export CPPFLAGS
+AC_MSG_RESULT($enableval)
+], [
+ # default is to have no additional flags
+ AC_MSG_RESULT(none)
+])
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/opt_debug.m4 b/contrib/amd/m4/macros/opt_debug.m4
new file mode 100644
index 0000000..18205f2
--- /dev/null
+++ b/contrib/amd/m4/macros/opt_debug.m4
@@ -0,0 +1,30 @@
+dnl ######################################################################
+dnl Debugging: "yes" means general, "mem" means general and memory debugging,
+dnl and "no" means none.
+AC_DEFUN(AMU_OPT_DEBUG,
+[AC_MSG_CHECKING(for debugging options)
+AC_ARG_ENABLE(debug,
+AC_HELP_STRING([--enable-debug=ARG],[enable debugging (yes/mem/no)]),
+[
+if test "$enableval" = yes; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(DEBUG)
+ ac_cv_opt_debug=yes
+elif test "$enableval" = mem; then
+ AC_MSG_RESULT(mem)
+ AC_DEFINE(DEBUG)
+ AC_DEFINE(DEBUG_MEM)
+ AC_CHECK_LIB(mapmalloc, malloc_verify)
+ AC_CHECK_LIB(malloc, mallinfo)
+ ac_cv_opt_debug=mem
+else
+ AC_MSG_RESULT(no)
+ ac_cv_opt_debug=no
+fi
+],
+[
+ # default is no debugging
+ AC_MSG_RESULT(no)
+])
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/opt_ldflags.m4 b/contrib/amd/m4/macros/opt_ldflags.m4
new file mode 100644
index 0000000..9afd9a9
--- /dev/null
+++ b/contrib/amd/m4/macros/opt_ldflags.m4
@@ -0,0 +1,22 @@
+dnl ######################################################################
+dnl Initial settings for LDFLAGS (-L options)
+dnl NOTE: this is for configuration as well as compilations!
+AC_DEFUN(AMU_OPT_LDFLAGS,
+[AC_MSG_CHECKING(for configuration/compilation (-L) library flags)
+AC_ARG_ENABLE(ldflags,
+AC_HELP_STRING([--enable-ldflags=ARG],
+ [configure/compile with ARG (-L) library flags]),
+[
+if test "$enableval" = "" || test "$enableval" = "yes" || test "$enableval" = "no"; then
+ AC_MSG_ERROR(ldflags must be supplied if option is used)
+fi
+# use supplied options
+LDFLAGS="$LDFLAGS $enableval"
+export LDFLAGS
+AC_MSG_RESULT($enableval)
+], [
+ # default is to have no additional flags
+ AC_MSG_RESULT(none)
+])
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/opt_libs.m4 b/contrib/amd/m4/macros/opt_libs.m4
new file mode 100644
index 0000000..3134931
--- /dev/null
+++ b/contrib/amd/m4/macros/opt_libs.m4
@@ -0,0 +1,22 @@
+dnl ######################################################################
+dnl Initial settings for LIBS (-l options)
+dnl NOTE: this is for configuration as well as compilations!
+AC_DEFUN(AMU_OPT_LIBS,
+[AC_MSG_CHECKING(for configuration/compilation (-l) library flags)
+AC_ARG_ENABLE(libs,
+AC_HELP_STRING([--enable-libs=ARG],
+ [configure/compile with ARG (-l) library flags]),
+[
+if test "$enableval" = "" || test "$enableval" = "yes" || test "$enableval" = "no"; then
+ AC_MSG_ERROR(libs must be supplied if option is used)
+fi
+# use supplied options
+LIBS="$LIBS $enableval"
+export LIBS
+AC_MSG_RESULT($enableval)
+], [
+ # default is to have no additional flags
+ AC_MSG_RESULT(none)
+])
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/os_cflags.m4 b/contrib/amd/m4/macros/os_cflags.m4
new file mode 100644
index 0000000..6f82808
--- /dev/null
+++ b/contrib/amd/m4/macros/os_cflags.m4
@@ -0,0 +1,80 @@
+dnl ######################################################################
+dnl Specify additional compile options based on the OS and the compiler
+AC_DEFUN(AMU_OS_CFLAGS,
+[
+AC_CACHE_CHECK(additional compiler flags,
+ac_cv_os_cflags,
+[
+case "${host_os}" in
+ irix6* )
+ case "${CC}" in
+ cc )
+ # do not use 64-bit compiler
+ ac_cv_os_cflags="-n32 -mips3 -Wl,-woff,84"
+ ;;
+ esac
+ ;;
+ osf[[1-3]]* )
+ # get the right version of struct sockaddr
+ case "${CC}" in
+ cc )
+ ac_cv_os_cflags="-std -D_SOCKADDR_LEN -D_NO_PROTO"
+ ;;
+ * )
+ ac_cv_os_cflags="-D_SOCKADDR_LEN -D_NO_PROTO"
+ ;;
+ esac
+ ;;
+ osf* )
+ # get the right version of struct sockaddr
+ case "${CC}" in
+ cc )
+ ac_cv_os_cflags="-std -D_SOCKADDR_LEN"
+ ;;
+ * )
+ ac_cv_os_cflags="-D_SOCKADDR_LEN"
+ ;;
+ esac
+ ;;
+ aix[[1-3]]* )
+ ac_cv_os_cflags="" ;;
+ aix4.[[0-2]]* )
+ # turn on additional headers
+ ac_cv_os_cflags="-D_XOPEN_EXTENDED_SOURCE"
+ ;;
+ aix* )
+ # avoid circular dependencies in yp headers
+ ac_cv_os_cflags="-DHAVE_BAD_HEADERS -D_XOPEN_EXTENDED_SOURCE"
+ ;;
+ OFF-sunos4* )
+ # make sure passing whole structures is handled in gcc
+ case "${CC}" in
+ gcc )
+ ac_cv_os_cflags="-fpcc-struct-return"
+ ;;
+ esac
+ ;;
+ sunos[[34]]* | solaris1* | solaris2.[[0-5]]* | sunos5.[[0-5]]* )
+ ac_cv_os_cflags="" ;;
+ solaris* | sunos* )
+ # turn on 64-bit file offset interface
+ case "${CC}" in
+ * )
+ ac_cv_os_cflags="-D_LARGEFILE64_SOURCE"
+ ;;
+ esac
+ ;;
+ hpux* )
+ # use Ansi compiler on HPUX
+ case "${CC}" in
+ cc )
+ ac_cv_os_cflags="-Ae"
+ ;;
+ esac
+ ;;
+ * ) ac_cv_os_cflags="" ;;
+esac
+])
+CFLAGS="$CFLAGS $ac_cv_os_cflags"
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/os_cppflags.m4 b/contrib/amd/m4/macros/os_cppflags.m4
new file mode 100644
index 0000000..8039f4e
--- /dev/null
+++ b/contrib/amd/m4/macros/os_cppflags.m4
@@ -0,0 +1,18 @@
+dnl ######################################################################
+dnl Specify additional cpp options based on the OS and the compiler
+AC_DEFUN(AMU_OS_CPPFLAGS,
+[
+AC_CACHE_CHECK(additional preprocessor flags,
+ac_cv_os_cppflags,
+[
+case "${host_os}" in
+# off for now, posix may be a broken thing for nextstep3...
+# nextstep* )
+# ac_cv_os_cppflags="-D_POSIX_SOURCE"
+# ;;
+ * ) ac_cv_os_cppflags="" ;;
+esac
+])
+CPPFLAGS="$CPPFLAGS $ac_cv_os_cppflags"
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/os_ldflags.m4 b/contrib/amd/m4/macros/os_ldflags.m4
new file mode 100644
index 0000000..f46debb
--- /dev/null
+++ b/contrib/amd/m4/macros/os_ldflags.m4
@@ -0,0 +1,22 @@
+dnl ######################################################################
+dnl Specify additional linker options based on the OS and the compiler
+AC_DEFUN(AMU_OS_LDFLAGS,
+[
+AC_CACHE_CHECK(additional linker flags,
+ac_cv_os_ldflags,
+[
+case "${host_os}" in
+ solaris2.7* | sunos5.7* )
+ # find LDAP: off until Sun includes ldap headers.
+ case "${CC}" in
+ * )
+ #ac_cv_os_ldflags="-L/usr/lib/fn"
+ ;;
+ esac
+ ;;
+ * ) ac_cv_os_ldflags="" ;;
+esac
+])
+LDFLAGS="$LDFLAGS $ac_cv_os_ldflags"
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/package_bugreport.m4 b/contrib/amd/m4/macros/package_bugreport.m4
new file mode 100644
index 0000000..1590111
--- /dev/null
+++ b/contrib/amd/m4/macros/package_bugreport.m4
@@ -0,0 +1,8 @@
+dnl ######################################################################
+dnl Bugreport name
+AC_DEFUN(AMU_PACKAGE_BUGREPORT,
+[AC_MSG_CHECKING(bug-reporting address)
+AC_DEFINE_UNQUOTED(PACKAGE_BUGREPORT, "$1")
+AC_MSG_RESULT(\"$1\")
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/package_name.m4 b/contrib/amd/m4/macros/package_name.m4
new file mode 100644
index 0000000..711a8b8
--- /dev/null
+++ b/contrib/amd/m4/macros/package_name.m4
@@ -0,0 +1,8 @@
+dnl ######################################################################
+dnl Package name
+AC_DEFUN(AMU_PACKAGE_NAME,
+[AC_MSG_CHECKING(package name)
+AC_DEFINE_UNQUOTED(PACKAGE_NAME, "$1")
+AC_MSG_RESULT(\"$1\")
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/package_version.m4 b/contrib/amd/m4/macros/package_version.m4
new file mode 100644
index 0000000..ec419e0
--- /dev/null
+++ b/contrib/amd/m4/macros/package_version.m4
@@ -0,0 +1,8 @@
+dnl ######################################################################
+dnl Version of package
+AC_DEFUN(AMU_PACKAGE_VERSION,
+[AC_MSG_CHECKING(version of package)
+AC_DEFINE_UNQUOTED(PACKAGE_VERSION, "$1")
+AC_MSG_RESULT(\"$1\")
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/save_state.m4 b/contrib/amd/m4/macros/save_state.m4
new file mode 100644
index 0000000..04cd14b
--- /dev/null
+++ b/contrib/amd/m4/macros/save_state.m4
@@ -0,0 +1,12 @@
+dnl ######################################################################
+dnl AC_SAVE_STATE: save confdefs.h onto dbgcf.h and write $ac_cv_* cache
+dnl variables that are known so far.
+define(AMU_SAVE_STATE,
+AC_MSG_NOTICE(*** SAVING CONFIGURE STATE ***)
+if test -f confdefs.h
+then
+ cp confdefs.h dbgcf.h
+fi
+[AC_CACHE_SAVE]
+)
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/struct_field_nfs_fh.m4 b/contrib/amd/m4/macros/struct_field_nfs_fh.m4
new file mode 100644
index 0000000..33598a7
--- /dev/null
+++ b/contrib/amd/m4/macros/struct_field_nfs_fh.m4
@@ -0,0 +1,35 @@
+dnl ######################################################################
+dnl Find the name of the nfs filehandle field in nfs_args_t.
+AC_DEFUN(AMU_STRUCT_FIELD_NFS_FH,
+[
+dnl make sure this is called before macros which depend on it
+AC_BEFORE([$0], [AC_TYPE_NFS_FH])
+AC_CACHE_CHECK(for the name of the nfs filehandle field in nfs_args_t,
+ac_cv_struct_field_nfs_fh,
+[
+# set to a default value
+ac_cv_struct_field_nfs_fh=notfound
+# look for name "fh" (most systems)
+if test "$ac_cv_struct_field_nfs_fh" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ nfs_args_t nat;
+ char *cp = (char *) &(nat.fh);
+], ac_cv_struct_field_nfs_fh=fh, ac_cv_struct_field_nfs_fh=notfound)
+fi
+
+# look for name "root" (for example Linux)
+if test "$ac_cv_struct_field_nfs_fh" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ nfs_args_t nat;
+ char *cp = (char *) &(nat.root);
+], ac_cv_struct_field_nfs_fh=root, ac_cv_struct_field_nfs_fh=notfound)
+fi
+])
+if test "$ac_cv_struct_field_nfs_fh" != notfound
+then
+ AC_DEFINE_UNQUOTED(NFS_FH_FIELD, $ac_cv_struct_field_nfs_fh)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/struct_mntent.m4 b/contrib/amd/m4/macros/struct_mntent.m4
new file mode 100644
index 0000000..221d346
--- /dev/null
+++ b/contrib/amd/m4/macros/struct_mntent.m4
@@ -0,0 +1,21 @@
+dnl ######################################################################
+dnl Find if struct mntent exists anywhere in mount.h or mntent.h headers
+AC_DEFUN(AMU_STRUCT_MNTENT,
+[
+AC_CACHE_CHECK(for struct mntent,
+ac_cv_have_struct_mntent,
+[
+# try to compile a program which may have a definition for the structure
+AC_TRY_COMPILE(
+AMU_MOUNT_HEADERS
+,
+[
+struct mntent mt;
+], ac_cv_have_struct_mntent=yes, ac_cv_have_struct_mntent=no)
+])
+if test "$ac_cv_have_struct_mntent" = yes
+then
+ AC_DEFINE(HAVE_STRUCT_MNTENT)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/struct_mnttab.m4 b/contrib/amd/m4/macros/struct_mnttab.m4
new file mode 100644
index 0000000..6be529f
--- /dev/null
+++ b/contrib/amd/m4/macros/struct_mnttab.m4
@@ -0,0 +1,21 @@
+dnl ######################################################################
+dnl Find if struct mnttab exists anywhere in mount.h or mnttab.h headers
+AC_DEFUN(AMU_STRUCT_MNTTAB,
+[
+AC_CACHE_CHECK(for struct mnttab,
+ac_cv_have_struct_mnttab,
+[
+# try to compile a program which may have a definition for the structure
+AC_TRY_COMPILE(
+AMU_MOUNT_HEADERS
+,
+[
+struct mnttab mt;
+], ac_cv_have_struct_mnttab=yes, ac_cv_have_struct_mnttab=no)
+])
+if test "$ac_cv_have_struct_mnttab" = yes
+then
+ AC_DEFINE(HAVE_STRUCT_MNTTAB)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/struct_nfs_args.m4 b/contrib/amd/m4/macros/struct_nfs_args.m4
new file mode 100644
index 0000000..6d74214
--- /dev/null
+++ b/contrib/amd/m4/macros/struct_nfs_args.m4
@@ -0,0 +1,55 @@
+dnl ######################################################################
+dnl Find if struct nfs_args exists anywhere in typical headers
+AC_DEFUN(AMU_STRUCT_NFS_ARGS,
+[
+dnl make sure this is called before [AC_TYPE_NFS_FH]
+AC_BEFORE([$0], [AC_TYPE_NFS_FH])
+AC_BEFORE([$0], [AC_STRUCT_FIELD_NFS_FH])
+AC_CACHE_CHECK(for struct nfs_args,
+ac_cv_have_struct_nfs_args,
+[
+# try to compile a program which may have a definition for the structure
+# assume not found
+ac_cv_have_struct_nfs_args=notfound
+
+# look for "struct irix5_nfs_args" (specially set in conf/nfs_prot/)
+if test "$ac_cv_have_struct_nfs_args" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ struct irix5_nfs_args na;
+], ac_cv_have_struct_nfs_args="struct irix5_nfs_args", ac_cv_have_struct_nfs_args=notfound)
+fi
+
+# look for "struct aix51_nfs_args" (specially set in conf/nfs_prot/)
+if test "$ac_cv_have_struct_nfs_args" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ struct aix51_nfs_args na;
+], ac_cv_have_struct_nfs_args="struct aix51_nfs_args", ac_cv_have_struct_nfs_args=notfound)
+fi
+
+# look for "struct aix42_nfs_args" (specially set in conf/nfs_prot/)
+if test "$ac_cv_have_struct_nfs_args" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ struct aix42_nfs_args na;
+], ac_cv_have_struct_nfs_args="struct aix42_nfs_args", ac_cv_have_struct_nfs_args=notfound)
+fi
+
+# look for "struct nfs_args"
+if test "$ac_cv_have_struct_nfs_args" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ struct nfs_args na;
+], ac_cv_have_struct_nfs_args="struct nfs_args", ac_cv_have_struct_nfs_args=notfound)
+fi
+
+])
+
+if test "$ac_cv_have_struct_nfs_args" != notfound
+then
+ AC_DEFINE(HAVE_STRUCT_NFS_ARGS)
+ AC_DEFINE_UNQUOTED(nfs_args_t, $ac_cv_have_struct_nfs_args)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/struct_nfs_fh.m4 b/contrib/amd/m4/macros/struct_nfs_fh.m4
new file mode 100644
index 0000000..54ec5d88
--- /dev/null
+++ b/contrib/amd/m4/macros/struct_nfs_fh.m4
@@ -0,0 +1,63 @@
+dnl ######################################################################
+dnl Find the structure of an nfs filehandle.
+dnl if found, defined am_nfs_fh to it, else leave it undefined.
+dnl THE ORDER OF LOOKUPS IN THIS FILE IS VERY IMPORTANT!!!
+AC_DEFUN(AMU_STRUCT_NFS_FH,
+[
+AC_CACHE_CHECK(for type/structure of NFS V2 filehandle,
+ac_cv_struct_nfs_fh,
+[
+# try to compile a program which may have a definition for the type
+dnl need a series of compilations, which will test out every possible type
+dnl such as struct nfs_fh, fhandle_t, nfsv2fh_t, etc.
+# set to a default value
+ac_cv_struct_nfs_fh=notfound
+
+# look for "nfs_fh"
+if test "$ac_cv_struct_nfs_fh" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ nfs_fh nh;
+], ac_cv_struct_nfs_fh="nfs_fh", ac_cv_struct_nfs_fh=notfound)
+fi
+
+# look for "struct nfs_fh"
+if test "$ac_cv_struct_nfs_fh" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ struct nfs_fh nh;
+], ac_cv_struct_nfs_fh="struct nfs_fh", ac_cv_struct_nfs_fh=notfound)
+fi
+
+# look for "struct nfssvcfh"
+if test "$ac_cv_struct_nfs_fh" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ struct nfssvcfh nh;
+], ac_cv_struct_nfs_fh="struct nfssvcfh", ac_cv_struct_nfs_fh=notfound)
+fi
+
+# look for "nfsv2fh_t"
+if test "$ac_cv_struct_nfs_fh" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ nfsv2fh_t nh;
+], ac_cv_struct_nfs_fh="nfsv2fh_t", ac_cv_struct_nfs_fh=notfound)
+fi
+
+# look for "fhandle_t"
+if test "$ac_cv_struct_nfs_fh" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ fhandle_t nh;
+], ac_cv_struct_nfs_fh="fhandle_t", ac_cv_struct_nfs_fh=notfound)
+fi
+
+])
+
+if test "$ac_cv_struct_nfs_fh" != notfound
+then
+ AC_DEFINE_UNQUOTED(am_nfs_fh, $ac_cv_struct_nfs_fh)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/struct_nfs_fh3.m4 b/contrib/amd/m4/macros/struct_nfs_fh3.m4
new file mode 100644
index 0000000..aa87eb8
--- /dev/null
+++ b/contrib/amd/m4/macros/struct_nfs_fh3.m4
@@ -0,0 +1,62 @@
+dnl ######################################################################
+dnl Find the structure of an NFS V3 filehandle.
+dnl if found, defined am_nfs_fh3 to it, else leave it undefined.
+AC_DEFUN(AMU_STRUCT_NFS_FH3,
+[
+AC_CACHE_CHECK(for type/structure of NFS V3 filehandle,
+ac_cv_struct_nfs_fh3,
+[
+# try to compile a program which may have a definition for the type
+dnl need a series of compilations, which will test out every possible type
+dnl such as struct nfs_fh3, fhandle3_t, nfsv3fh_t, etc.
+# set to a default value
+ac_cv_struct_nfs_fh3=notfound
+
+# look for "nfs_fh3_freebsd3"
+if test "$ac_cv_struct_nfs_fh3" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ nfs_fh3_freebsd3 nh;
+], ac_cv_struct_nfs_fh3="nfs_fh3_freebsd3", ac_cv_struct_nfs_fh3=notfound)
+fi
+
+# look for "nfs_fh3"
+if test "$ac_cv_struct_nfs_fh3" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ nfs_fh3 nh;
+], ac_cv_struct_nfs_fh3="nfs_fh3", ac_cv_struct_nfs_fh3=notfound)
+fi
+
+# look for "struct nfs_fh3"
+if test "$ac_cv_struct_nfs_fh3" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ struct nfs_fh3 nh;
+], ac_cv_struct_nfs_fh3="struct nfs_fh3", ac_cv_struct_nfs_fh3=notfound)
+fi
+
+# look for "nfsv3fh_t"
+if test "$ac_cv_struct_nfs_fh3" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ nfsv3fh_t nh;
+], ac_cv_struct_nfs_fh3="nfsv3fh_t", ac_cv_struct_nfs_fh3=notfound)
+fi
+
+# look for "fhandle3_t"
+if test "$ac_cv_struct_nfs_fh3" = notfound
+then
+AC_TRY_COMPILE_NFS(
+[ fhandle3_t nh;
+], ac_cv_struct_nfs_fh3="fhandle3_t", ac_cv_struct_nfs_fh3=notfound)
+fi
+
+])
+
+if test "$ac_cv_struct_nfs_fh3" != notfound
+then
+ AC_DEFINE_UNQUOTED(am_nfs_fh3, $ac_cv_struct_nfs_fh3)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/struct_nfs_gfs_mount.m4 b/contrib/amd/m4/macros/struct_nfs_gfs_mount.m4
new file mode 100644
index 0000000..9a05304
--- /dev/null
+++ b/contrib/amd/m4/macros/struct_nfs_gfs_mount.m4
@@ -0,0 +1,22 @@
+dnl ######################################################################
+dnl Find if struct nfs_gfs_mount exists anywhere in typical headers
+AC_DEFUN(AMU_STRUCT_NFS_GFS_MOUNT,
+[
+dnl make sure this is called before [AC_TYPE_NFS_FH]
+AC_BEFORE([$0], [AC_TYPE_NFS_FH])
+AC_BEFORE([$0], [AC_STRUCT_FIELD_NFS_FH])
+AC_CACHE_CHECK(for struct nfs_gfs_mount,
+ac_cv_have_struct_nfs_gfs_mount,
+[
+# try to compile a program which may have a definition for the structure
+AC_TRY_COMPILE_NFS(
+[ struct nfs_gfs_mount ngm;
+], ac_cv_have_struct_nfs_gfs_mount=yes, ac_cv_have_struct_nfs_gfs_mount=no)
+])
+if test "$ac_cv_have_struct_nfs_gfs_mount" = yes
+then
+ AC_DEFINE(HAVE_STRUCT_NFS_GFS_MOUNT)
+ AC_DEFINE(nfs_args_t, struct nfs_gfs_mount)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/try_compile_anyfs.m4 b/contrib/amd/m4/macros/try_compile_anyfs.m4
new file mode 100644
index 0000000..d8486f7
--- /dev/null
+++ b/contrib/amd/m4/macros/try_compile_anyfs.m4
@@ -0,0 +1,172 @@
+dnl ######################################################################
+dnl Compile a program with <any>FS headers to try and find a feature.
+dnl The headers part are fixed. Only three arguments are allowed:
+dnl [$1] is the program to compile (2nd arg to AC_TRY_COMPILE)
+dnl [$2] action to take if the program compiled (3rd arg to AC_TRY_COMPILE)
+dnl [$3] action to take if program did not compile (4rd arg to AC_TRY_COMPILE)
+AC_DEFUN(AC_TRY_COMPILE_ANYFS,
+[# try to compile a program which may have a definition for a structure
+AC_TRY_COMPILE(
+[
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif /* HAVE_SYS_TYPES_H */
+#ifdef HAVE_SYS_ERRNO_H
+# include <sys/errno.h>
+#endif /* HAVE_SYS_ERRNO_H */
+#ifdef HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif /* HAVE_SYS_PARAM_H */
+
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else /* not TIME_WITH_SYS_TIME */
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else /* not HAVE_SYS_TIME_H */
+# include <time.h>
+# endif /* not HAVE_SYS_TIME_H */
+#endif /* not TIME_WITH_SYS_TIME */
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif /* HAVE_NETINET_IN_H */
+#ifdef HAVE_SYS_TIUSER_H
+# include <sys/tiuser.h>
+#endif /* HAVE_SYS_TIUSER_H */
+
+#ifdef HAVE_SYS_MOUNT_H
+# ifndef NFSCLIENT
+# define NFSCLIENT
+# endif /* not NFSCLIENT */
+# ifndef PCFS
+# define PCFS
+# endif /* not PCFS */
+# ifndef LOFS
+# define LOFS
+# endif /* not LOFS */
+# ifndef RFS
+# define RFS
+# endif /* not RFS */
+# ifndef MSDOSFS
+# define MSDOSFS
+# endif /* not MSDOSFS */
+# ifndef MFS
+# define MFS 1
+# endif /* not MFS */
+# ifndef CD9660
+# define CD9660
+# endif /* not CD9660 */
+# ifndef NFS
+# define NFS
+# endif /* not NFS */
+# include <sys/mount.h>
+#endif /* HAVE_SYS_MOUNT_H */
+
+#ifdef HAVE_SYS_VMOUNT_H
+# include <sys/vmount.h>
+#endif /* HAVE_SYS_VMOUNT_H */
+
+/*
+ * There is no point in including this on a glibc2 system
+ * we're only asking for trouble
+ */
+#if defined HAVE_LINUX_FS_H && (!defined __GLIBC__ || __GLIBC__ < 2)
+/*
+ * There's a conflict of definitions on redhat alpha linux between
+ * <netinet/in.h> and <linux/fs.h>.
+ * Also a conflict in definitions of ntohl/htonl in RH-5.1 sparc64
+ * between <netinet/in.h> and <linux/byteorder/generic.h> (2.1 kernels).
+ */
+# ifdef HAVE_SOCKETBITS_H
+# define _LINUX_SOCKET_H
+# undef BLKFLSBUF
+# undef BLKGETSIZE
+# undef BLKRAGET
+# undef BLKRASET
+# undef BLKROGET
+# undef BLKROSET
+# undef BLKRRPART
+# undef MS_MGC_VAL
+# undef MS_RMT_MASK
+# endif /* HAVE_SOCKETBITS_H */
+# ifdef HAVE_LINUX_POSIX_TYPES_H
+# include <linux/posix_types.h>
+# endif /* HAVE_LINUX_POSIX_TYPES_H */
+# ifndef _LINUX_BYTEORDER_GENERIC_H
+# define _LINUX_BYTEORDER_GENERIC_H
+# endif /* _LINUX_BYTEORDER_GENERIC_H */
+# ifndef _LINUX_STRING_H_
+# define _LINUX_STRING_H_
+# endif /* not _LINUX_STRING_H_ */
+# ifdef HAVE_LINUX_KDEV_T_H
+# define __KERNEL__
+# include <linux/kdev_t.h>
+# undef __KERNEL__
+# endif /* HAVE_LINUX_KDEV_T_H */
+# ifdef HAVE_LINUX_LIST_H
+# define __KERNEL__
+# include <linux/list.h>
+# undef __KERNEL__
+# endif /* HAVE_LINUX_LIST_H */
+# include <linux/fs.h>
+#endif /* HAVE_LINUX_FS_H && (!__GLIBC__ || __GLIBC__ < 2) */
+
+#ifdef HAVE_SYS_FS_AUTOFS_H
+# include <sys/fs/autofs.h>
+#endif /* HAVE_SYS_FS_AUTOFS_H */
+#ifdef HAVE_SYS_FS_CACHEFS_FS_H
+# include <sys/fs/cachefs_fs.h>
+#endif /* HAVE_SYS_FS_CACHEFS_FS_H */
+
+#ifdef HAVE_SYS_FS_PC_FS_H
+# include <sys/fs/pc_fs.h>
+#endif /* HAVE_SYS_FS_PC_FS_H */
+#ifdef HAVE_MSDOSFS_MSDOSFSMOUNT_H
+# include <msdosfs/msdosfsmount.h>
+#endif /* HAVE_MSDOSFS_MSDOSFSMOUNT_H */
+
+#ifdef HAVE_SYS_FS_TMP_H
+# include <sys/fs/tmp.h>
+#endif /* HAVE_SYS_FS_TMP_H */
+
+#ifdef HAVE_UFS_UFS_MOUNT_H
+# include <ufs/ufs_mount.h>
+#endif /* HAVE_UFS_UFS_MOUNT_H */
+#ifdef HAVE_UFS_UFS_UFSMOUNT_H
+# ifndef MAXQUOTAS
+# define MAXQUOTAS 2
+# endif /* not MAXQUOTAS */
+struct netexport { int this_is_SO_wrong; }; /* for bsdi-2.1 */
+/* netbsd-1.4 does't protect <ufs/ufs/ufsmount.h> */
+# ifndef _UFS_UFS_UFSMOUNT_H
+# include <ufs/ufs/ufsmount.h>
+# define _UFS_UFS_UFSMOUNT_H
+# endif /* not _UFS_UFS_UFSMOUNT_H */
+#endif /* HAVE_UFS_UFS_UFSMOUNT_H */
+#ifdef HAVE_SYS_FS_UFS_MOUNT_H
+# include <sys/fs/ufs_mount.h>
+#endif /* HAVE_SYS_FS_UFS_MOUNT_H */
+#ifdef HAVE_SYS_FS_EFS_CLNT_H
+# include <sys/fs/efs_clnt.h>
+#endif /* HAVE_SYS_FS_EFS_CLNT_H */
+#ifdef HAVE_SYS_FS_XFS_CLNT_H
+# include <sys/fs/xfs_clnt.h>
+#endif /* HAVE_SYS_FS_XFS_CLNT_H */
+
+#ifdef HAVE_CDFS_CDFS_MOUNT_H
+# include <cdfs/cdfs_mount.h>
+#endif /* HAVE_CDFS_CDFS_MOUNT_H */
+#ifdef HAVE_HSFS_HSFS_H
+# include <hsfs/hsfs.h>
+#endif /* HAVE_HSFS_HSFS_H */
+#ifdef HAVE_CDFS_CDFSMOUNT_H
+# include <cdfs/cdfsmount.h>
+#endif /* HAVE_CDFS_CDFSMOUNT_H */
+#ifdef HAVE_ISOFS_CD9660_CD9660_MOUNT_H
+# include <isofs/cd9660/cd9660_mount.h>
+#endif /* HAVE_ISOFS_CD9660_CD9660_MOUNT_H */
+], [$1], [$2], [$3])
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/try_compile_nfs.m4 b/contrib/amd/m4/macros/try_compile_nfs.m4
new file mode 100644
index 0000000..f81aab0
--- /dev/null
+++ b/contrib/amd/m4/macros/try_compile_nfs.m4
@@ -0,0 +1,13 @@
+dnl ######################################################################
+dnl Compile a program with NFS headers to try and find a feature.
+dnl The headers part are fixed. Only three arguments are allowed:
+dnl [$1] is the program to compile (2nd arg to AC_TRY_COMPILE)
+dnl [$2] action to take if the program compiled (3rd arg to AC_TRY_COMPILE)
+dnl [$3] action to take if program did not compile (4rd arg to AC_TRY_COMPILE)
+AC_DEFUN(AC_TRY_COMPILE_NFS,
+[# try to compile a program which may have a definition for a structure
+AC_TRY_COMPILE(
+AMU_MOUNT_HEADERS
+, [$1], [$2], [$3])
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/try_compile_rpc.m4 b/contrib/amd/m4/macros/try_compile_rpc.m4
new file mode 100644
index 0000000..17b3f4c
--- /dev/null
+++ b/contrib/amd/m4/macros/try_compile_rpc.m4
@@ -0,0 +1,23 @@
+dnl ######################################################################
+dnl Compile a program with RPC headers to try and find a feature.
+dnl The headers part are fixed. Only three arguments are allowed:
+dnl [$1] is the program to compile (2nd arg to AC_TRY_COMPILE)
+dnl [$2] action to take if the program compiled (3rd arg to AC_TRY_COMPILE)
+dnl [$3] action to take if program did not compile (4rd arg to AC_TRY_COMPILE)
+AC_DEFUN(AC_TRY_COMPILE_RPC,
+[# try to compile a program which may have a definition for a structure
+AC_TRY_COMPILE(
+[
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif /* HAVE_SYS_TYPES_H */
+#ifdef HAVE_RPC_RPC_H
+# include <rpc/rpc.h>
+#endif /* HAVE_RPC_RPC_H */
+/* Prevent multiple inclusion on Ultrix 4 */
+#if defined(HAVE_RPC_XDR_H) && !defined(__XDR_HEADER__)
+# include <rpc/xdr.h>
+#endif /* defined(HAVE_RPC_XDR_H) && !defined(__XDR_HEADER__) */
+], [$1], [$2], [$3])
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_auth_create_gidlist.m4 b/contrib/amd/m4/macros/type_auth_create_gidlist.m4
new file mode 100644
index 0000000..357c120
--- /dev/null
+++ b/contrib/amd/m4/macros/type_auth_create_gidlist.m4
@@ -0,0 +1,18 @@
+dnl ######################################################################
+dnl check the correct type for the 5th argument to authunix_create()
+AC_DEFUN(AMU_TYPE_AUTH_CREATE_GIDLIST,
+[
+AC_CACHE_CHECK(argument type of 5rd argument to authunix_create(),
+ac_cv_auth_create_gidlist,
+[
+# select the correct type
+case "${host_os_name}" in
+ sunos[[34]]* | bsdi2* | sysv4* | hpux10.10 | ultrix* | aix4* )
+ ac_cv_auth_create_gidlist="int" ;;
+ * )
+ ac_cv_auth_create_gidlist="gid_t" ;;
+esac
+])
+AC_DEFINE_UNQUOTED(AUTH_CREATE_GIDLIST_TYPE, $ac_cv_auth_create_gidlist)
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_cachefs_args.m4 b/contrib/amd/m4/macros/type_cachefs_args.m4
new file mode 100644
index 0000000..9f57b46
--- /dev/null
+++ b/contrib/amd/m4/macros/type_cachefs_args.m4
@@ -0,0 +1,23 @@
+dnl ######################################################################
+dnl Find the correct type for CACHEFS mount(2) arguments structure
+AC_DEFUN(AMU_TYPE_CACHEFS_ARGS,
+[
+AC_CACHE_CHECK(for structure type of cachefs mount(2) arguments,
+ac_cv_type_cachefs_args,
+[
+# set to a default value
+ac_cv_type_cachefs_args=notfound
+# look for "struct cachefs_mountargs"
+if test "$ac_cv_type_cachefs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct cachefs_mountargs a;
+], ac_cv_type_cachefs_args="struct cachefs_mountargs", ac_cv_type_cachefs_args=notfound)
+fi
+])
+if test "$ac_cv_type_cachefs_args" != notfound
+then
+ AC_DEFINE_UNQUOTED(cachefs_args_t, $ac_cv_type_cachefs_args)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_cdfs_args.m4 b/contrib/amd/m4/macros/type_cdfs_args.m4
new file mode 100644
index 0000000..881d56b
--- /dev/null
+++ b/contrib/amd/m4/macros/type_cdfs_args.m4
@@ -0,0 +1,57 @@
+dnl ######################################################################
+dnl Find the correct type for CDFS mount(2) arguments structure
+AC_DEFUN(AMU_TYPE_CDFS_ARGS,
+[
+AC_CACHE_CHECK(for structure type of cdfs mount(2) arguments,
+ac_cv_type_cdfs_args,
+[
+# set to a default value
+ac_cv_type_cdfs_args=notfound
+
+# look for "struct iso_args"
+if test "$ac_cv_type_cdfs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct iso_args a;
+], ac_cv_type_cdfs_args="struct iso_args", ac_cv_type_cdfs_args=notfound)
+fi
+
+# look for "struct iso9660_args"
+if test "$ac_cv_type_cdfs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct iso9660_args a;
+], ac_cv_type_cdfs_args="struct iso9660_args", ac_cv_type_cdfs_args=notfound)
+fi
+
+# look for "struct cdfs_args"
+if test "$ac_cv_type_cdfs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct cdfs_args a;
+], ac_cv_type_cdfs_args="struct cdfs_args", ac_cv_type_cdfs_args=notfound)
+fi
+
+# look for "struct hsfs_args"
+if test "$ac_cv_type_cdfs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct hsfs_args a;
+], ac_cv_type_cdfs_args="struct hsfs_args", ac_cv_type_cdfs_args=notfound)
+fi
+
+# look for "struct iso_specific" (ultrix)
+if test "$ac_cv_type_cdfs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct iso_specific a;
+], ac_cv_type_cdfs_args="struct iso_specific", ac_cv_type_cdfs_args=notfound)
+fi
+
+])
+if test "$ac_cv_type_cdfs_args" != notfound
+then
+ AC_DEFINE_UNQUOTED(cdfs_args_t, $ac_cv_type_cdfs_args)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_efs_args.m4 b/contrib/amd/m4/macros/type_efs_args.m4
new file mode 100644
index 0000000..8a2e662
--- /dev/null
+++ b/contrib/amd/m4/macros/type_efs_args.m4
@@ -0,0 +1,25 @@
+dnl ######################################################################
+dnl Find the correct type for EFS mount(2) arguments structure
+AC_DEFUN(AMU_TYPE_EFS_ARGS,
+[
+AC_CACHE_CHECK(for structure type of efs mount(2) arguments,
+ac_cv_type_efs_args,
+[
+# set to a default value
+ac_cv_type_efs_args=notfound
+
+# look for "struct efs_args"
+if test "$ac_cv_type_efs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct efs_args a;
+], ac_cv_type_efs_args="struct efs_args", ac_cv_type_efs_args=notfound)
+fi
+
+])
+if test "$ac_cv_type_efs_args" != notfound
+then
+ AC_DEFINE_UNQUOTED(efs_args_t, $ac_cv_type_efs_args)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_lofs_args.m4 b/contrib/amd/m4/macros/type_lofs_args.m4
new file mode 100644
index 0000000..e04c551
--- /dev/null
+++ b/contrib/amd/m4/macros/type_lofs_args.m4
@@ -0,0 +1,30 @@
+dnl ######################################################################
+dnl Find the correct type for LOFS mount(2) arguments structure
+AC_DEFUN(AMU_TYPE_LOFS_ARGS,
+[
+AC_CACHE_CHECK(for structure type of lofs mount(2) arguments,
+ac_cv_type_lofs_args,
+[
+# set to a default value
+ac_cv_type_lofs_args=notfound
+# look for "struct lofs_args"
+if test "$ac_cv_type_lofs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct lofs_args a;
+], ac_cv_type_lofs_args="struct lofs_args", ac_cv_type_lofs_args=notfound)
+fi
+# look for "struct lo_args"
+if test "$ac_cv_type_lofs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct lo_args a;
+], ac_cv_type_lofs_args="struct lo_args", ac_cv_type_lofs_args=notfound)
+fi
+])
+if test "$ac_cv_type_lofs_args" != notfound
+then
+ AC_DEFINE_UNQUOTED(lofs_args_t, $ac_cv_type_lofs_args)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_mfs_args.m4 b/contrib/amd/m4/macros/type_mfs_args.m4
new file mode 100644
index 0000000..774ad3c
--- /dev/null
+++ b/contrib/amd/m4/macros/type_mfs_args.m4
@@ -0,0 +1,23 @@
+dnl ######################################################################
+dnl Find the correct type for MFS mount(2) arguments structure
+AC_DEFUN(AMU_TYPE_MFS_ARGS,
+[
+AC_CACHE_CHECK(for structure type of mfs mount(2) arguments,
+ac_cv_type_mfs_args,
+[
+# set to a default value
+ac_cv_type_mfs_args=notfound
+# look for "struct mfs_args"
+if test "$ac_cv_type_mfs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct mfs_args a;
+], ac_cv_type_mfs_args="struct mfs_args", ac_cv_type_mfs_args=notfound)
+fi
+])
+if test "$ac_cv_type_mfs_args" != notfound
+then
+ AC_DEFINE_UNQUOTED(mfs_args_t, $ac_cv_type_mfs_args)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_pcfs_args.m4 b/contrib/amd/m4/macros/type_pcfs_args.m4
new file mode 100644
index 0000000..c074bdb
--- /dev/null
+++ b/contrib/amd/m4/macros/type_pcfs_args.m4
@@ -0,0 +1,50 @@
+dnl ######################################################################
+dnl Find the correct type for PC/FS mount(2) arguments structure
+AC_DEFUN(AMU_TYPE_PCFS_ARGS,
+[
+AC_CACHE_CHECK(for structure type of pcfs mount(2) arguments,
+ac_cv_type_pcfs_args,
+[
+# set to a default value
+ac_cv_type_pcfs_args=notfound
+
+# look for "struct msdos_args"
+if test "$ac_cv_type_pcfs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct msdos_args a;
+], ac_cv_type_pcfs_args="struct msdos_args", ac_cv_type_pcfs_args=notfound)
+fi
+
+# look for "struct pc_args"
+if test "$ac_cv_type_pcfs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct pc_args a;
+], ac_cv_type_pcfs_args="struct pc_args", ac_cv_type_pcfs_args=notfound)
+fi
+
+# look for "struct pcfs_args"
+if test "$ac_cv_type_pcfs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct pcfs_args a;
+], ac_cv_type_pcfs_args="struct pcfs_args", ac_cv_type_pcfs_args=notfound)
+fi
+
+# look for "struct msdosfs_args"
+if test "$ac_cv_type_pcfs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct msdosfs_args a;
+], ac_cv_type_pcfs_args="struct msdosfs_args", ac_cv_type_pcfs_args=notfound)
+fi
+
+])
+
+if test "$ac_cv_type_pcfs_args" != notfound
+then
+ AC_DEFINE_UNQUOTED(pcfs_args_t, $ac_cv_type_pcfs_args)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_recvfrom_fromlen.m4 b/contrib/amd/m4/macros/type_recvfrom_fromlen.m4
new file mode 100644
index 0000000..4c0985b
--- /dev/null
+++ b/contrib/amd/m4/macros/type_recvfrom_fromlen.m4
@@ -0,0 +1,20 @@
+dnl ######################################################################
+dnl check the correct type for the 6th argument to recvfrom()
+AC_DEFUN(AMU_TYPE_RECVFROM_FROMLEN,
+[
+AC_CACHE_CHECK(non-pointer type of 6th (fromlen) argument to recvfrom(),
+ac_cv_recvfrom_fromlen,
+[
+# select the correct type
+case "${host_os}" in
+ aix[[1-3]]* )
+ ac_cv_recvfrom_fromlen="int" ;;
+ aix* )
+ ac_cv_recvfrom_fromlen="size_t" ;;
+ * )
+ ac_cv_recvfrom_fromlen="int" ;;
+esac
+])
+AC_DEFINE_UNQUOTED(RECVFROM_FROMLEN_TYPE, $ac_cv_recvfrom_fromlen)
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_rfs_args.m4 b/contrib/amd/m4/macros/type_rfs_args.m4
new file mode 100644
index 0000000..6a58fca
--- /dev/null
+++ b/contrib/amd/m4/macros/type_rfs_args.m4
@@ -0,0 +1,23 @@
+dnl ######################################################################
+dnl Find the correct type for RFS mount(2) arguments structure
+AC_DEFUN(AMU_TYPE_RFS_ARGS,
+[
+AC_CACHE_CHECK(for structure type of rfs mount(2) arguments,
+ac_cv_type_rfs_args,
+[
+# set to a default value
+ac_cv_type_rfs_args=notfound
+# look for "struct rfs_args"
+if test "$ac_cv_type_rfs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct rfs_args a;
+], ac_cv_type_rfs_args="struct rfs_args", ac_cv_type_rfs_args=notfound)
+fi
+])
+if test "$ac_cv_type_rfs_args" != notfound
+then
+ AC_DEFINE_UNQUOTED(rfs_args_t, $ac_cv_type_rfs_args)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_svc_in_arg.m4 b/contrib/amd/m4/macros/type_svc_in_arg.m4
new file mode 100644
index 0000000..33a80a4
--- /dev/null
+++ b/contrib/amd/m4/macros/type_svc_in_arg.m4
@@ -0,0 +1,39 @@
+dnl ######################################################################
+dnl Find the type of the 3rd argument (in) to svc_sendreply() call
+AC_DEFUN(AMU_TYPE_SVC_IN_ARG,
+[
+AC_CACHE_CHECK(for type of 3rd arg ('in') arg to svc_sendreply(),
+ac_cv_type_svc_in_arg,
+[
+# try to compile a program which may have a definition for the type
+dnl need a series of compilations, which will test out every possible type
+dnl such as caddr_t, char *, etc.
+# set to a default value
+ac_cv_type_svc_in_arg=notfound
+# look for "caddr_t"
+if test "$ac_cv_type_svc_in_arg" = notfound
+then
+AC_TRY_COMPILE_RPC(
+[ SVCXPRT *SX;
+ xdrproc_t xp;
+ caddr_t p;
+ svc_sendreply(SX, xp, p);
+], ac_cv_type_svc_in_arg="caddr_t", ac_cv_type_svc_in_arg=notfound)
+fi
+# look for "char *"
+if test "$ac_cv_type_svc_in_arg" = notfound
+then
+AC_TRY_COMPILE_RPC(
+[ SVCXPRT *SX;
+ xdrproc_t xp;
+ char *p;
+ svc_sendreply(SX, xp, p);
+], ac_cv_type_svc_in_arg="char *", ac_cv_type_svc_in_arg=notfound)
+fi
+])
+if test "$ac_cv_type_svc_in_arg" != notfound
+then
+ AC_DEFINE_UNQUOTED(SVC_IN_ARG_TYPE, $ac_cv_type_svc_in_arg)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_time_t.m4 b/contrib/amd/m4/macros/type_time_t.m4
new file mode 100644
index 0000000..2571338
--- /dev/null
+++ b/contrib/amd/m4/macros/type_time_t.m4
@@ -0,0 +1,5 @@
+dnl ######################################################################
+dnl check for type of time_t (usually in <sys/types.h>)
+AC_DEFUN(AMU_TYPE_TIME_T,
+[AC_CHECK_TYPE(time_t, long)])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_tmpfs_args.m4 b/contrib/amd/m4/macros/type_tmpfs_args.m4
new file mode 100644
index 0000000..7938352
--- /dev/null
+++ b/contrib/amd/m4/macros/type_tmpfs_args.m4
@@ -0,0 +1,23 @@
+dnl ######################################################################
+dnl Find the correct type for TMPFS mount(2) arguments structure
+AC_DEFUN(AMU_TYPE_TMPFS_ARGS,
+[
+AC_CACHE_CHECK(for structure type of tmpfs mount(2) arguments,
+ac_cv_type_tmpfs_args,
+[
+# set to a default value
+ac_cv_type_tmpfs_args=notfound
+# look for "struct tmpfs_args"
+if test "$ac_cv_type_tmpfs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct tmpfs_args a;
+], ac_cv_type_tmpfs_args="struct tmpfs_args", ac_cv_type_tmpfs_args=notfound)
+fi
+])
+if test "$ac_cv_type_tmpfs_args" != notfound
+then
+ AC_DEFINE_UNQUOTED(tmpfs_args_t, $ac_cv_type_tmpfs_args)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_ufs_args.m4 b/contrib/amd/m4/macros/type_ufs_args.m4
new file mode 100644
index 0000000..2f048f9
--- /dev/null
+++ b/contrib/amd/m4/macros/type_ufs_args.m4
@@ -0,0 +1,41 @@
+dnl ######################################################################
+dnl Find the correct type for UFS mount(2) arguments structure
+AC_DEFUN(AMU_TYPE_UFS_ARGS,
+[
+AC_CACHE_CHECK(for structure type of ufs mount(2) arguments,
+ac_cv_type_ufs_args,
+[
+# set to a default value
+ac_cv_type_ufs_args=notfound
+
+# look for "struct ufs_args"
+if test "$ac_cv_type_ufs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct ufs_args a;
+], ac_cv_type_ufs_args="struct ufs_args", ac_cv_type_ufs_args=notfound)
+fi
+
+# look for "struct efs_args" (irix)
+if test "$ac_cv_type_ufs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct efs_args a;
+], ac_cv_type_ufs_args="struct efs_args", ac_cv_type_ufs_args=notfound)
+fi
+
+# look for "struct ufs_specific" (ultrix)
+if test "$ac_cv_type_ufs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct ufs_specific a;
+], ac_cv_type_ufs_args="struct ufs_specific", ac_cv_type_ufs_args=notfound)
+fi
+
+])
+if test "$ac_cv_type_ufs_args" != notfound
+then
+ AC_DEFINE_UNQUOTED(ufs_args_t, $ac_cv_type_ufs_args)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_xdrproc_t.m4 b/contrib/amd/m4/macros/type_xdrproc_t.m4
new file mode 100644
index 0000000..7f5220b
--- /dev/null
+++ b/contrib/amd/m4/macros/type_xdrproc_t.m4
@@ -0,0 +1,20 @@
+dnl ######################################################################
+dnl check for type of xdrproc_t (usually in <rpc/xdr.h>)
+AC_DEFUN(AMU_TYPE_XDRPROC_T,
+[
+AC_CACHE_CHECK(for xdrproc_t,
+ac_cv_type_xdrproc_t,
+[
+# try to compile a program which may have a definition for the type
+dnl need a series of compilations, which will test out every possible type
+# look for "xdrproc_t"
+AC_TRY_COMPILE_RPC(
+[ xdrproc_t xdr_int;
+], ac_cv_type_xdrproc_t=yes, ac_cv_type_xdrproc_t=no)
+])
+if test "$ac_cv_type_xdrproc_t" = yes
+then
+ AC_DEFINE_UNQUOTED(XDRPROC_T_TYPE, xdrproc_t)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_xfs_args.m4 b/contrib/amd/m4/macros/type_xfs_args.m4
new file mode 100644
index 0000000..8397a98
--- /dev/null
+++ b/contrib/amd/m4/macros/type_xfs_args.m4
@@ -0,0 +1,25 @@
+dnl ######################################################################
+dnl Find the correct type for XFS mount(2) arguments structure
+AC_DEFUN(AMU_TYPE_XFS_ARGS,
+[
+AC_CACHE_CHECK(for structure type of xfs mount(2) arguments,
+ac_cv_type_xfs_args,
+[
+# set to a default value
+ac_cv_type_xfs_args=notfound
+
+# look for "struct xfs_args"
+if test "$ac_cv_type_xfs_args" = notfound
+then
+AC_TRY_COMPILE_ANYFS(
+[ struct xfs_args a;
+], ac_cv_type_xfs_args="struct xfs_args", ac_cv_type_xfs_args=notfound)
+fi
+
+])
+if test "$ac_cv_type_xfs_args" != notfound
+then
+ AC_DEFINE_UNQUOTED(xfs_args_t, $ac_cv_type_xfs_args)
+fi
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/type_yp_order_outorder.m4 b/contrib/amd/m4/macros/type_yp_order_outorder.m4
new file mode 100644
index 0000000..8d196b0
--- /dev/null
+++ b/contrib/amd/m4/macros/type_yp_order_outorder.m4
@@ -0,0 +1,23 @@
+dnl ######################################################################
+dnl check the correct type for the 3rd argument to yp_order()
+AC_DEFUN(AMU_TYPE_YP_ORDER_OUTORDER,
+[
+AC_CACHE_CHECK(pointer type of 3rd argument to yp_order(),
+ac_cv_yp_order_outorder,
+[
+# select the correct type
+case "${host_os}" in
+ aix[[1-3]]* | aix4.[[0-2]]* | sunos[[34]]* | solaris1* )
+ ac_cv_yp_order_outorder=int ;;
+ solaris* | svr4* | sysv4* | sunos* | hpux* | aix* )
+ ac_cv_yp_order_outorder="unsigned long" ;;
+ osf* )
+ # DU4 man page is wrong, headers are right
+ ac_cv_yp_order_outorder="unsigned int" ;;
+ * )
+ ac_cv_yp_order_outorder=int ;;
+esac
+])
+AC_DEFINE_UNQUOTED(YP_ORDER_OUTORDER_TYPE, $ac_cv_yp_order_outorder)
+])
+dnl ======================================================================
diff --git a/contrib/amd/m4/macros/with_addon.m4 b/contrib/amd/m4/macros/with_addon.m4
new file mode 100644
index 0000000..21489b1
--- /dev/null
+++ b/contrib/amd/m4/macros/with_addon.m4
@@ -0,0 +1,26 @@
+dnl ######################################################################
+dnl Do we want to compile with "ADDON" support? (hesiod, ldap, etc.)
+AC_DEFUN(AMU_WITH_ADDON,
+[AC_MSG_CHECKING([if $1 is wanted])
+ac_upcase=`echo $1|tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+AC_ARG_WITH($1,
+ AC_HELP_STRING([--with-$1],
+ [enable $2 support (default=yes if found)]
+),[
+if test "$withval" = "yes"; then
+ with_$1=yes
+elif test "$withval" = "no"; then
+ with_$1=no
+else
+ AC_MSG_ERROR(please use \"yes\" or \"no\" with --with-$1)
+fi
+],[
+with_$1=yes
+])
+if test "$with_$1" = "yes"
+then
+ AC_MSG_RESULT([yes, will enable if all libraries are found])
+else
+ AC_MSG_RESULT([no])
+fi
+])
diff --git a/contrib/amd/m4/mk-aclocal b/contrib/amd/m4/mk-aclocal
new file mode 100755
index 0000000..4f9f020
--- /dev/null
+++ b/contrib/amd/m4/mk-aclocal
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# Make am-utils' aclocal.m4 file (concatendated from others).
+# For maintainers only.
+# Erez Zadok <ezk@cs.columbia.edu>
+
+if [ ! -d macros ]; then
+ echo no macros directory found!
+ exit 2
+fi
+cd macros
+for i in HEADER *.m4; do
+ cat $i
+ echo
+ echo
+done
+cat TRAILER
+exit 0
diff --git a/contrib/amd/m4/mkconf b/contrib/amd/m4/mkconf
new file mode 100755
index 0000000..04fc92d
--- /dev/null
+++ b/contrib/amd/m4/mkconf
@@ -0,0 +1,20 @@
+#!/bin/bash -norc
+# (re)make the autoconf configuration files.
+# Used by am-utils maintainers only!
+#
+# Erez Zadok <ezk@cs.columbia.edu>
+#
+#set -x
+
+if [ ! -f amd/amd.c ]; then
+ cd ..
+fi
+if [ ! -f amd/amd.c ]; then
+ cd ..
+fi
+if [ ! -f amd/amd.c ]; then
+ echo "wrong directory!"
+ exit 1
+fi
+
+cd m4 && make $*
diff --git a/contrib/amd/m4/rmtspc b/contrib/amd/m4/rmtspc
new file mode 100755
index 0000000..431691d
--- /dev/null
+++ b/contrib/amd/m4/rmtspc
@@ -0,0 +1,6 @@
+#!/bin/sh
+# remove trailing spaces from C code
+#set -x
+for i in $*; do
+ sed 's/[ ]*$//g' < $i > $i.tmp_$$ && mv $i.tmp_$$ $i
+done
diff --git a/contrib/amd/m4/update_build_version b/contrib/amd/m4/update_build_version
new file mode 100755
index 0000000..e221abd
--- /dev/null
+++ b/contrib/amd/m4/update_build_version
@@ -0,0 +1,22 @@
+#!/bin/sh
+# Update the build version file for am-utils
+# Erez Zadok <ezk@cs.columbia.edu>
+#set -x
+
+file="build_version.h"
+vers=1
+
+if test -f $file
+then
+ egrep AMU_BUILD_VERSION $file | while read a b vers
+ do
+ vers=`expr $vers + 1`
+ echo '/* do not edit this file by hand */' > $file
+ echo '/* auto-generated by update_build_version script */' >> $file
+ echo '#define AMU_BUILD_VERSION '$vers >> $file
+ done
+else
+ echo '/* do not edit this file by hand */' > $file
+ echo '/* auto-generated by update_build_version script */' >> $file
+ echo '#define AMU_BUILD_VERSION '$vers >> $file
+fi
OpenPOWER on IntegriCloud