Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
executable file 5483 lines (5118 sloc) 136 KB
#!/bin/sh
#
# Configure -- configure lsof
#
# See the LSOF_HLP here document for usage.
#
# See the lsof distribution file 00XCONFIG for information on setting
# environment variables for cross-configuring lsof -- e.g., for configuring
# for Linux 2.3 on a machine running 2.4. Marty Leisner suggested this
# support and provided the Linux Configure stanza modifications.
#
# When configuring for a particular dialect, <target-dialect>, this script
# requires that the subdirectory ./dialects/<target-dialect> contain a
# shell script, named $LSOF_MK, that places its source modules in this
# directory.
#
# $Id: Configure,v 1.159 2010/07/29 15:59:28 abe Exp $
# LSOF_CFLAGS_OVERRIDE=1 may be introduced through the environment to cause
# the library Makefile's CFLAGS definition to override any in the
# environment.
# LSOF_DISTRIBKVM may be introduced through the environment to specify the
# Sun4 kernel virtual memory type of distrib.cf
LSOF_F="ddev.c dfile.c dlsof.h dmnt.c dnode*.c dproc.c dproto.h dsock.c dstore.c dzfs.h kernelbase.h machine.h machine.h.old new_machine.h __lseek.s"
LSOF_HLP_BASE=./cfghlp.
LSOF_HLP=${LSOF_HLP_BASE}$$
# LSOF_LOCALSUFFIX may be introduced through the environment to select a local
# version of a Makefile. It is used as a suffix to $LSOF_MKF.
# LSOF_MAKE may be introduced through the environment to specify a path to the
# make command. It defaults to `which make`, if that is non-NULL;
# otherwise to the string "make".
if test "X$LSOF_MAKE" = "X" # {
then
LSOF_MAKE=`which make`
if test "X$LSOF_MAKE" = "X" # {
then
LSOF_MAKE=make
fi # }
fi # }
LSOF_MK=Mksrc
# LSOF_MKC is the dialect's Mksrc create command -- default "ln -s".
# LSOF_MKFC may be introduced though the environment to change the name
# used for the created make file.
if test "X$LSOF_MKFC" = "X" # {
then
LSOF_MKFC=Makefile
fi # }
LSOF_LIB=lib
LSOF_MKF=Makefile
LSOF_LIBMKF=Makefile
LSOF_LIBMKFSKEL=Makefile.skel
LSOF_VF=version
# Make sure no other variable important to Makefile construction is
# already set in the environment.
#
# $AFS_VICE locatiion of AFS VICE directory
# (default = /usr/vice)
# $LSOF_AFS AFS temporary
# $LSOF_AFS_NQ AFS-not-qualified flag
# $LSOF_AFSV AFS version
# $LSOF_AR archive command and its arguments for making the
# lsof library
# $LSOF_ARCH Unix dialect architecture as a string -- may be
# supplied externally
# $LSOF_CC C compiler name (may be supplied externally)
# $LSOF_CCV C compiler version (may be supplied externally)
# $LSOF_CDIR configuration directory
# $LSOF_CFGD depend options
# $LSOF_CFGDN depend file name
# $LSOF_CFGF C flags -- e.g., -D's
# $LSOF_CFGL last lsof library loader flags -- e.g., -l's
# $LSOF_CINFO Configure information for LSOF_CINFO in version.h
# $LSOF_CTFH Solaris 10 and above libctf.h status
# $LSOF_CTFL Solaris 10 and above -lctf status
# $LSOF_DEBUG Makefile's DEBUG string
# $LSOF_DINC include flags -- -I's
# $LSOF_DINC_ADD include flags status
# $LSOF_DOC special document (man page) directory path
# $LSOF_ERR internal error flag
# $LSOF_FCFGL first lsof library loader flags -- e.g., -l's
# that must precede $LSOF_LIB
# $LSOF_FBSD_ZFS FreeBSD $LSOF_FBSD_ZFS_MKF status
# $LSOF_FBSD_ZFS_CFGF FreeBSD ZFS configure flags
# $LSOF_FBSD_ZFS_MKF FreeBSD ZFS Makefile name
# $LSOF_FBSD_ZFS_SYS FreeBSD ZFS system sources location
# $LSOF_HOST host name (e.g., from uname -n)
# $LSOF_INCLUDE directory where header files are found
# (default = /usr/include)
# $LSOF_LD loader name if not $LSOF_CC
# $LSOF_LIB_NO if "N" don't configure the lsof library
# $LSOF_LINUX_INCL temporary variable for holding path to Linux
# include files
# $LSOF_LOCALSUFFIX local suffix for Makefile
# $LSOF_NBSD_BUFQH NetBSD <sys/bufq.h> copy status
# $LSOF_NBSD_PTYFS NetBSD ${NETBSD_SYS}/sys/fs/ptyfs/ copy status
# $LSOF_N_UNIXV *BSD system's kernel file
# $LSOF_PL patch level
# $LSOF_RANLIB randomizing command for the lsof library
# $LSOF_RANLIB_SUP if non-NULL $LSOF_RANLIB was supplied
# $LSOF_SCRIPT_CALL Customize and Inventory scripts call status
# $LSOF_SPMKF Special Makefile name
# $LSOF_TGT canonical target abbreviation (shortest)
# $LSOF_TMP internal temporary
# $LSOF_TMP1 internal temporary
# $LSOF_TMP2 internal temporary
# $LSOF_TMP3 internal temporary
# $LSOF_TMP4 internal temporary
# $LSOF_TMP5 internal temporary
# $LSOF_TMP6 internal temporary
# $LSOF_TMPC_BASE base name for $LSOF_TMPC
# $LSOF_TMPC temporary C source file base name
# $LSOF_TSTBIGF big file capability (for $LSOF_TSTCFLG)
# $LSOF_TSTCC tests CC file
# $LSOF_TSTCFLG tests CFLAGS file
# $LSOF_TSTDFLG dialect-specific values for $LSOF_TSTCFLG
# $LSOF_TSTK64 status of 64 bit kernel (for $LSOF_TSTCFLG)
# $LSOF_TSTKMEM /dev/kmem usage status (for $LSOF_TSTCFLG)
# $LSOF_TSTLFF tests LDFLAGS file
# $LSOF_TSTLFLG tests LDFLAGS values
# $LSOF_TSTSUBD test subdirectory
# $LSOF_TSTVPATH test v_path state (for $LSOF_TSTCFLG)
# $LSOF_TSTXO test extra objects (for $LSOF_TSTXOC)
# $LSOF_TSTXOC test extra objects file
# $LSOF_UNSUP Lsof is unsupported on this dialect
# $LSOF_VERS Unix dialect version as a decimal number -- may
# be supplied externally
# $LSOF_VSTR Unix dialect version as a string -- may be supplied
# externally
if test "X$AFS_VICE" = "X" # {
then
AFS_VICE="/usr/vice"
fi # }
LSOF_AFS=""
LSOF_AFS_NQ=""
LSOF_AFSV=""
if test "X$LSOF_ARCH" = "X" # {
then
LSOF_ARCH=""
fi # }
LSOF_CDIR=""
LSOF_CFGD=""
LSOF_CFGDN=""
LSOF_CINFO=""
LSOF_CTFH=0
LSOF_CTFL=0
LSOF_DEBUG=""
LSOF_DOC=""
LSOF_ERR=""
LSOF_FCFGL=""
LSOF_FBSD_ZFS=0
LSOF_FBSD_ZFS_CFGF=""
LSOF_FBSD_ZFS_MKF="Makefile.zfs"
LSOF_FBSD_ZFS_SYS=""
LSOF_HOST=""
if test "X$LSOF_INCLUDE" = "X" # {
then
LSOF_DINC=""
LSOF_INCLUDE="/usr/include"
else
LSOF_DINC="-I$LSOF_INCLUDE"
fi # }
LSOF_LD=""
LSOF_LIB_NO=""
LSOF_LINUX_INCL=""
LSOF_PL=""
if test "X$LSOF_RANLIB" = "X" # {
then
LSOF_RANLIB="ranlib"
LSOF_RANLIB_SUP=""
else
LSOF_RANLIB_SUP="Y"
fi # }
LSOF_SCRIPT_CALL="yes"
LSOF_SPMKF=""
LSOF_TMP1=""
LSOF_TMP2=""
LSOF_TMPC_BASE=./lsof_Configure_tmp_
LSOF_TMPC=${LSOF_TMPC_BASE}$$
LSOF_TSTBIGF=""
LSOF_TSTSUBD="./tests"
LSOF_TSTCC="${LSOF_TSTSUBD}/config.cc"
LSOF_TSTCFLG="${LSOF_TSTSUBD}/config.cflags"
LSOF_TSTDFLG=""
LSOF_TSTK64=0
LSOF_TSTKMEM=1
LSOF_TSTLFF="${LSOF_TSTSUBD}/config.ldflags"
LSOF_TSTLFLG=""
LSOF_TSTVPATH=0
LSOF_TSTXO=""
LSOF_TSTXOC="${LSOF_TSTSUBD}/config.xobj"
LSOF_UNSUP="WARNING: unsupported dialect or version"
if test "X$LSOF_VERS" = "X" # {
then
LSOF_VERS=""
fi # }
if test "X$LSOF_VSTR" = "X" # {
then
LSOF_VSTR=""
fi # }
# Establish echo type -- Berkeley or SYSV.
j=`echo -n ""`
if test "X$j" = "X-n "
then
EC="\c"
EO=""
else
EC=""
EO="-n"
fi
# Make sure temporary files are removed before an abnormal exit.
trap 'rm -f ${LSOF_HLP_BASE}* ${LSOF_TMPC_BASE}*; exit 1' 1 2 3 15
rm -f $LSOF_HLP
cat > $LSOF_HLP << LSOF_HLP
Usage: Configure <options> <target-dialect>
<options>: -clean : clean up previous configuration
-d|-dialects : display a list of supported dialect versions
-h|-help : display help information
-n : avoid AFS, customization, and inventory checks
<target-dialect> (****USE -d TO GET TESTED DIALECT VERSION NUMBERS****):
aix|aixgcc : IBM AIX xlc (aix) or gcc (aixgcc)
darwin : Apple Darwin
decosf : DEC OSF/1
digital_unix|du : Digital UNIX
freebsd : FreeBSD
hpux|hpuxgcc : HP-UX cc (hpux) or gcc (hpuxgcc)
linux : Linux
netbsd : NetBSD
nextstep|next|ns|nxt : NEXTSTEP
openbsd : OpenBSD
openstep|os : OPENSTEP
osr|sco : SCO OpenServer < 6.0.0, SCO devloper's compiler
osrgcc|scogcc : SCO OpenServer < 6.0.0, gcc compiler
osr6 : SCO OpenServer 6.0.0, SCO compiler
solaris|solariscc : Solaris gcc (solaris) or cc (solariscc)
tru64 : Tru64 UNIX
unixware|uw : SCO|Caldera UnixWare
LSOF_HLP
LSOF_TGT="no-target"
args=$#
while test $args -gt 0 # {
do
case $1 in # {
-clean)
if test -r $LSOF_MKFC # {
then
echo "$LSOF_MAKE -f $LSOF_MKFC clean"
$LSOF_MAKE -f $LSOF_MKFC clean
else
if test -r ${LSOF_LIB}/${LSOF_LIBMKF} # {
then
echo "(cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF} clean)"
(cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF} clean)
else
if test -r ${LSOF_LIB}/${LSOF_LIBMKF}.skel # {
then
echo "(cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF}.skel clean)"
(cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF}.skel clean)
fi # }
fi # }
fi # }
if test -r ${LSOF_TSTSUBD}/Makefile # {
then
echo "(cd ${LSOF_TSTSUBD}; $LSOF_MAKE spotless)"
(cd ${LSOF_TSTSUBD}; $LSOF_MAKE spotless)
else
echo '(cd ${LSOF_TSTSUBD}; rm *.o config.*)'
(cd ${LSOF_TSTSUBD}; rm *.o config.*)
fi # }
rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF ${LSOF_TMPC_BASE}*
echo rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF ${LSOF_TMPC_BASE}*
rm -rf AFSHeaders AFSVersion solaris11 version.h vnode_if.h
echo "rm -rf AFSHeaders AFSVersion solaris11 version.h vnode_if.h"
rm -f ${LSOF_HLP_BASE}* cd9660_node.h lockf_owner.h fbsd_minor.h
echo "rm -f ${LSOF_HLP_BASE}* cd9660_node.h lockf_owner.h fbsd_minor.h"
rm -f dialects/aix/aix5/j2/j2_snapshot.h
echo "rm -f dialects/aix/aix5/j2/j2_snapshot.h"
rm -f dialects/sun/solaris10 # DEBUG -- for s10_44
echo "rm -f dialects/sun/solaris10" # DEBUG -- for s10_44
rm -f dialects/du/du5_sys_malloc.h
echo "rm -f dialects/du/du5_sys_malloc.h"
rm -f dialects/hpux/kmem/hpux_mount.h
echo "rm -f dialects/hpux/kmem/hpux_mount.h"
rm -rf dialects/n+obsd/include
echo "rm -rf dialects/n+obsd/include"
rm -f dialects/uw/uw7/vm/swap.h
echo "rm -f dialects/uw/uw7/vm/swap.h"
rm -f ${LSOF_LIB}/${LSOF_LIBMKF}
echo "rm -f ${LSOF_LIB}/${LSOF_LIBMKF}"
exit 0
;;
-d|-dialects)
if test -r ./00DIALECTS -a -r ./version # {
then
V=`sed '/VN/s/.ds VN \(.*\)/\1/' version`
echo "lsof $V has been *tested* on these UNIX dialect versions:"
cat 00DIALECTS
echo Although "$V hasn't been tested on other versions of these dialects,"
echo "it may work. Try \`Configure <dialect>\` and \`make\` to see."
rm -f $LSOF_HLP
exit 0
else
echo "Can't display UNIX dialect version information:"
if test ! -r ./00DIALECTS # {
then
echo " ./00DIALECTS is inaccessible."
fi # }
if test ! -r ./version # {
then
echo " ./version is inaccessible."
fi # }
rm -f $LSOF_HLP
exit 1
fi # }
;;
-h|-help) cat $LSOF_HLP
rm -f $LSOF_HLP
exit 0
;;
-n*)
LSOF_SCRIPT_CALL="no"
;;
*)
if test "X$LSOF_TGT" != "Xno-target" # {
then
echo "Only one dialect may be configured at a time."
echo 'Both "$LSOF_TGT" and "$1" were specified.'
cat $LSOF_HLP
rm -f $LSOF_HLP
exit 1
else
LSOF_TGT=$1
fi # }
;;
esac # }
shift
args=`expr $args - 1`
done # }
case $LSOF_TGT in # {
no-target)
echo "No target dialect was specified."
cat $LSOF_HLP
rm -f $LSOF_HLP
exit 1
;;
# Configure for AIX xlc and AIX gcc.
aix|aixgcc)
# AIXA stands for AIX architecture. It is assigned these values in this
# stanza:
#
# 0 The AIX version is < 5.0, or the AIX 5.0 architecture is
# Power and the kernel bit size is 32.
#
# 1 The AIX version is >= 5.0, the AIX architecture is Power,
# and the kernel bit size is 64.
#
# 2 The AIX version is >= 5.0 and the architecture is IA64.
if test "X$LSOF_RANLIB_SUP" = "X" # {
then
LSOF_RANLIB="@echo \\\\\\\\c" # AIX make doesn't like a null ${RANLIB}.
fi # }
if test "X$LSOF_VSTR" = "X" # {
then
# If the AIX version isn't pre-defined, determine it.
LSOF_TMP1=`uname -v`
if test "X$LSOF_TMP1" = "X5" # {
then
# If the AIX version is 5, build the version string with `uname -rv`
# output.
LSOF_VSTR=`uname -r | awk '{printf "5.%d.0.0\n",\$1}'`
echo "Uname reports the version is $LSOF_VSTR."
else
# See if oslevel can determine the version.
LSOF_TMP1=/usr/bin/oslevel
if test -x $LSOF_TMP1 # {
then
echo "Determining AIX version with $LSOF_TMP1."
echo "This may take a while, depending on your maintenance level."
LSOF_VSTR=`$LSOF_TMP1 | sed 's/[^0-9]*\([0-9\.]*\).*/\1/'`
echo "$LSOF_TMP1 reports the version is $LSOF_VSTR."
else
# If oslevel can't be used, build the version string with
# `uname -rv` and issue a warning.
LSOF_VSTR=`uname -rv | awk '{printf "%d.%d.0.0\n",\$2,\$1}'`
echo "WARNING: can't execute $LSOF_TMP1; uname -rv reports"
echo " the version is $LSOF_VSTR; edit CFGF in Makefile and"
echo " lib/Makefile to refine AIXV and LSOF_VSTR."
fi # }
fi # }
fi # }
if test "X$LSOF_VERS" = "X" # {
then
LSOF_VERS=`echo $LSOF_VSTR | sed 's/\.//g'`
fi # }
if test $LSOF_VERS -ge 4320 # {
then
LSOF_TSTBIGF=" "
fi # }
if test "X$LSOF_CC" = "X" # {
then
if test "X$LSOF_TGT" = "Xaixgcc" # {
then
LSOF_CC=gcc
LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
else
LSOF_CC=cc
fi # }
fi # }
LSOF_TGT="aix"
echo $LSOF_CC | grep gcc > /dev/null
if test $? -eq 0 # {
then
# Prevent use of gcc for AIX below 4.1.
if test $LSOF_VERS -lt 4100 # {
then
echo "********************************************************"
echo "* Sorry, but gcc can't be used to compile lsof for AIX *"
echo "* versions less than 4.1, because of possible kernel *"
echo "* structure alignment differences between it and xlc. *"
echo "********************************************************"
rm -f $LSOF_HLP
exit 1
fi # }
fi # }
# Test for AFS.
if test "X$AIX_HAS_AFS" != "X" # {
then
LSOF_AFS=$AIX_HAS_AFS
fi # }
if test "X$LSOF_AFS" != "Xno" # {
then
if test "X$LSOF_AFS" = "Xyes" -o -r ${AFS_VICE}/etc/ThisCell # {
then
if test "X$LSOF_AFS" != "Xyes" # {
then
if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
then
if test -r ./AFSHeaders -a -r ./AFSVersion # {
then
LSOF_AFS="yes"
fi # }
else
if test ! -x ./AFSConfig # {
then
echo "Can't find or execute the AFSConfig script"
rm -f $LSOF_HLP
exit 1
fi # }
./AFSConfig
if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
then
LSOF_AFS="yes"
fi # }
fi # }
fi # }
if test "X$LSOF_AFS" = "Xyes" # {
then
if test "X$LSOF_AFSV" = "X" # {
then
if test -r ./AFSVersion # {
then
LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
else
echo "!!!FATAL: no ./AFSVersion file. It should have been"
echo " created by a previous AFS configuration run."
rm -f $LSOF_HLP
exit 1
fi # }
fi # }
if test $LSOF_VERS -gt 4330 -o LSOF_AFSV -gt 305 # {
then
echo "!!!FATAL: Lsof does not support AFS on this combination of"
echo " AIX ($LSOF_VERS) and AFS ($LSOF_AFSV) versions."
echo " To disable AFS, set the value of the AIX_HAS_AFS"
echo " environment variable to \"no\"."
rm -f $LSOF_HLP
exit 1
else
LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
if test -r ${LSOF_INCLUDE}/sys/inttypes.h # {
then
grep "^typedef.*int16;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASINT16TYPE"
fi # }
grep "^typedef.*u_int32;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASUINT16TYPE"
fi # }
grep "^typedef.*int32;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASINT32TYPE"
fi # }
fi # }
fi # }
fi # }
fi # }
fi # }
# Miscellaneous AIX tests
if test -d ${LSOF_INCLUDE}/nfs # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_NFS"
fi # }
echo $LSOF_CC | grep cc | grep -v gcc > /dev/null
if test $? -eq 0 -a $LSOF_VERS -ge 4140 -a $LSOF_VERS -lt 5000 # {
then
LSOF_CFGL="$LSOF_CFGL -bnolibpath"
fi # }
if test -r ${LSOF_INCLUDE}/sys/socket.h # {
then
grep AF_INET6 ${LSOF_INCLUDE}/sys/socket.h > /dev/null
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
fi # }
fi # }
if test -r ${LSOF_INCLUDE}/sys/stat.h # {
then
grep stat64 ${LSOF_INCLUDE}/sys/stat.h > /dev/null
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASSTAT64"
fi # }
fi # }
#DEBUG SANFS if test -r ${LSOF_INCLUDE}/sys/sanfs/sanfsnode.h??? # {
#DEBUG SANFS then
#DEBUG SANFS LSOF_CFGF="$LSOF_CFGF -DHAS_SANFS"
#DEBUG SANFS fi # }
if test $LSOF_VERS -ge 5000 # {
then
# This is AIX 5 or greater.
if test -d ${LSOF_INCLUDE}/j2 # {
then
# The AIX > 5.0 system has jfs2 support. Make the necesssary definitions
# and adjustments.
rm -f dialects/aix/aix5/j2/j2_snapshot.h
(cd dialects/aix/aix5/j2; ln -s private_j2_snapshot.h j2_snapshot.h)
LSOF_CFGF="$LSOF_CFGF -DHAS_JFS2"
LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/aix/aix5"
if test $LSOF_VERS -ge 5200 # {
then
if test -r ${LSOF_INCLUDE}/j2/j2_snapshot.h # {
then
# The system has its own j2_snapshot.h, so make sure the
# private lsof copy is discarded.
rm -f dialects/aix/aix5/j2/j2_snapshot.h
fi # }
echo $LSOF_CC | grep gcc > /dev/null
if test $? -eq 0 # {
then
# Test gcc version for AIX 5.2.
LSOF_TMP1=`echo $LSOF_CCV | awk -F . '{printf "%d%02d",$1,$2}'`
if test $LSOF_TMP1 -ge 303 # {
then
# Add gcc >= 3.3 option to handle use of i_dev from the wInode
# anonymous structure reference in the JFS2 inode structure of
# <j2/j2_inode.h>.
LSOF_CFGF="$LSOF_CFGF -fms-extensions"
fi # }
fi #}
fi # }
fi # }
# Determine the AIX architecture type and set AIXA accordingly.
if test "X$AIX_ARCH" = "X" # {
then
uname -a | grep -i ia64 > /dev/null
if test $? -eq 0 # {
then
AIX_ARCH="ia64"
else
AIX_ARCH=""
fi # }
fi # }
if test "X$AIX_ARCH" = "Xia64" # {
then
# This is AIX >= 5 on ia64.
LSOF_TSTK64=1
echo $LSOF_CC | grep gcc > /dev/null
if test $? -eq 0 # {
then
# Quit if gcc was specified as the compiler, since the gcc options to
# do an ia64 lsof compilation are unknown.
echo "*************************************************************"
echo "* *"
echo "* !!!!!!!!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!!!!!!!!! *"
echo "* *"
echo "* Gcc can't be used to compile lsof for AIX 5 and above on *"
echo "* the ia64 architecture. Consult lsof's FAQ (in the file *"
echo "* 00FAQ) for more information. *"
echo "* *"
echo "*************************************************************"
rm -f $LSOF_HLP
exit 1
fi # }
LSOF_TMP1=2
if test "X$LSOF_AR" = "X" # {
then
LSOF_AR="/usr/bin/ar cr"
fi # }
LSOF_CFGF="$LSOF_CFGF -q64"
LSOF_CFGL="$LSOF_CFGL -lelf"
else
# This is AIX >= 5 on Power architecture.
echo $LSOF_CC | grep cc | grep -v gcc > /dev/null
if test $? -eq 0 # {
then
LSOF_CFGL="$LSOF_CFGL -bnolibpath"
fi # }
if test "X$AIX_KERNBITS" = "X" # {
then
# The kernel bit size wasn't predefined. Determine it by compiling
# and executing a test program.
rm -f ${LSOF_TMPC}.*
echo "#include <sys/systemcfg.h>" > ${LSOF_TMPC}.c
echo 'main(){ if (__KERNEL_32()) printf("32\\n");' >> ${LSOF_TMPC}.c
echo 'else if (__KERNEL_64()) printf("64\\n");' >> ${LSOF_TMPC}.c
echo 'else printf("0\\n");' >> ${LSOF_TMPC}.c
echo "return(0); }" >> ${LSOF_TMPC}.c
echo "Testing kernel bit size with $LSOF_CC"
$LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x
if test ! -x ${LSOF_TMPC}.x # {
then
echo "!!!FATAL: can't compile test program, ${LSOF_TMPC}.c."
rm -f $LSOF_HLP rm -f ${LSOF_TMPC}.*
exit 1
fi # }
AIX_KERNBITS=`./${LSOF_TMPC}.x`
rm -f ${LSOF_TMPC}.*
fi # }
# Use the kernel bit size specification to select archiver and compiler
# options, and to update AIXA.
case $AIX_KERNBITS in # {
32)
if test "X$LSOF_AR" = "X" # {
then
LSOF_AR="/usr/bin/ar cr"
fi # }
LSOF_TMP1=0
;;
64)
if test "X$LSOF_AR" = "X" # {
then
LSOF_AR="/usr/bin/ar -X 64 -v -q"
fi # }
LSOF_TSTK64=1
LSOF_TMP1=1
echo $LSOF_CC | grep gcc > /dev/null
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -maix64"
else
LSOF_CFGF="$LSOF_CFGF -q64"
fi # }
;;
*)
echo "!!!FATAL: unrecognized kernel bit size: $AIX_KERNBITS"
rm -f $LSOF_HLP
exit 1
esac # }
# Put kernel bit size information in $LSOF_CINFO and $LSOF_CFGF.
echo "Kernel bit size: $AIX_KERNBITS"
LSOF_TMP2="${AIX_KERNBITS} bit kernel"
if test "X$LSOF_CINFO" != "X" # {
then
LSOF_CINFO="${LSOF_CINFO} ${LSOF_TMP2}"
else
LSOF_CINFO="${LSOF_TMP2}"
fi # }
LSOF_CFGF="$LSOF_CFGF -DAIX_KERNBITS=${AIX_KERNBITS}"
fi # }
LSOF_CFGF="$LSOF_CFGF -DAIXA=$LSOF_TMP1"
if test "X$LSOF_TSTDFLG" = "X" # {
then
LSOF_TSTDFLG="-DLT_AIXA=$LSOF_TMP1"
else
LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_AIXA=$LSOF_TMP1"
fi # }
else
# AIX is < 5, so set AIXA accordingly.
LSOF_CFGF="$LSOF_CFGF -DAIXA=0"
if test "X$LSOF_TSTDFLG" = "X" # {
then
LSOF_TSTDFLG="-DLT_AIXA=0"
else
LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_AIXA=0"
fi # }
fi #}
LSOF_CFGF="$LSOF_CFGF -DAIXV=$LSOF_VERS"
LSOF_DIALECT_DIR=aix
echo $LSOF_CC | grep gcc > /dev/null
if test $? -eq 0 # {
then
# Do gcc tests.
if test $LSOF_VERS -ge 4100 -a $LSOF_VERS -lt 4200 # {
then
if test "X$AIX_USHACK" = "X" # {
then
# Compile and run a gcc test program to evaluate the user structure.
rm -f ${LSOF_TMPC}.*
echo "#include <stddef.h>" > ${LSOF_TMPC}.c
echo "#include <sys/user.h>" >> ${LSOF_TMPC}.c
echo "main(){exit((offsetof(struct user, U_irss) & 0x7) ? 1 : 0);}" >>${LSOF_TMPC}.c
echo "Testing user.h with $LSOF_CC"
$LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x
if ! ${LSOF_TMPC}.x # {
then
LSOF_TMP1=1
else
LSOF_TMP1=0
fi # }
rm -f ${LSOF_TMPC}.*
else
if test "$AIX_USHACK" = "Y" -o "$AIX_USHACK" = "y" # {
then
LSOF_TMP1=1
else
LSOF_TMP1=0
fi # }
fi # }
if test ${LSOF_TMP1} -eq 1 # {
then
echo "Applying gcc AIX 4.1+ user struct alignment hack"
rm -rf ./dialects/aix/aix$LSOF_VERS
mkdir ./dialects/aix/aix$LSOF_VERS
mkdir ./dialects/aix/aix${LSOF_VERS}/sys
sed 's/U_irss\[/dummy_for_alignment, U_irss\[/' < ${LSOF_INCLUDE}/sys/user.h > ./dialects/aix/aix${LSOF_VERS}/sys/user.h
LSOF_CFGF="$LSOF_CFGF -U_LONG_LONG -I`pwd`/dialects/aix/aix$LSOF_VERS"
fi # }
fi # }
else
# Get xlc version number
rm -f ${LSOF_TMPC}.*
echo "main(){}" > ${LSOF_TMPC}.c
echo "Getting version number of ${LSOF_CC}."
$LSOF_CC -c ${LSOF_TMPC}.c -I${LSOF_INCLUDE} -o ${LSOF_TMPC}.o -qlist > /dev/null 2>&1
LSOF_CCV=`head -1 ${LSOF_TMPC}.lst | sed 's/\(.*\) ---.*/\1/'`
rm ${LSOF_TMPC}.*
echo "The version is \"${LSOF_CCV}\"."
echo $LSOF_CCV | grep "Version [0-9]" > /dev/null
if test $? -eq 0 # {
then
LSOF_TMP=`echo $LSOF_CCV | sed 's/.*Version \([0-9]*\).*/\1/'`
if test "X$LSOF_TMP" != "X" -a $LSOF_TMP -ge 4 # {
then
if test $LSOF_TMP -ge 6 # {
then
LSOF_CFGF="$LSOF_CFGF -qmaxmem=-1"
else
LSOF_CFGF="$LSOF_CFGF -qmaxmem=16384"
fi # }
fi # }
fi # }
fi # }
if test $LSOF_VERS -ge 5300 # {
then
LSOF_UNSUP=""
fi # }
;;
# Configure for Apple Darwin.
darwin)
if test "X$LSOF_CC" = "X" # {
then
LSOF_CC=cc
LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
fi # }
if test "X$LSOF_VSTR" = "X" # {
then
LSOF_VSTR=`uname -r`
fi # }
if test "X$LSOF_VERS" = "X" # {
then
# If the Darwin / Mac OS X version isn't pre-defined, determine it.
case $LSOF_VSTR in # {
1.2*)
LSOF_VERS=120
;;
1.3*)
LSOF_VERS=130
;;
1.4*)
LSOF_VERS=140
;;
5.[012]*)
LSOF_VERS=500
;;
5.[3-9]*)
LSOF_VERS=530
;;
6.*)
LSOF_VERS=600
;;
7.*) # Mac OS X 10.3 (Panther)
LSOF_VERS=700
;;
8.*) # Mac OS X 10.4 (Tiger)
LSOF_VERS=800
;;
9.*) # Mac OS X 10.5 (Leopard)
LSOF_VERS=900
;;
10.*) # a coming version of Mac OS?
LSOF_VERS=1000
;;
*)
echo Unknown Darwin release: `uname -r`
echo Assuming Darwin 9.0
LSOF_VERS=900
;;
esac # }
fi # }
# Do Darwin version-specific stuff.
case $LSOF_VERS in # {
120|130)
LSOF_TMP1="hfs/hfs.h hfs/hfs_macos_defs.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h"
;;
140|500)
LSOF_TMP1="hfs/hfs.h hfs/hfs_macos_defs.h hfs/rangelist.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h"
;;
530)
LSOF_TMP1="hfs/hfs.h hfs/hfs_macos_defs.h hfs/rangelist.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h net/ndrv.h net/ndrv_var.h"
;;
600)
LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
LSOF_TMP1="hfs/hfs.h hfs/hfs_catalog.h hfs/hfs_cnode.h hfs/hfs_macos_defs.h hfs/rangelist.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h net/ndrv_var.h net/raw_cb.h netinet/ip_var.h netinet/tcp_var.h"
;;
700)
LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
LSOF_TMP1="hfs/hfs.h hfs/hfs_catalog.h hfs/hfs_cnode.h hfs/hfs_macos_defs.h hfs/rangelist.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h net/ndrv_var.h net/raw_cb.h netinet/ip_var.h netinet/tcp_var.h sys/eventvar.h"
;;
800)
LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
LSOF_TMP1="net/ndrv_var.h net/raw_cb.h netinet/ip_var.h netinet/tcp_var.h sys/eventvar.h sys/file_internal.h sys/mount_internal.h sys/proc_internal.h sys/vnode_internal.h"
;;
900)
LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
LSOF_TMP1=""
LSOF_UNSUP=""
LSOF_TSTBIGF=" " # enable LTbigf test
;;
1000)
LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
LSOF_TMP1=""
;;
*)
echo "Unsupported Darwin version: $LSOF_VERS"
rm -f $LSOF_HLP
exit 1
;;
esac # }
LSOF_TMP2=""
LSOF_TMP3=""
LSOF_TMP4=""
LSOF_CFGF="$LSOF_CFGF -mdynamic-no-pic"
LSOF_CFGL="$LSOF_CFGL -lcurses"
if test "X$DARWIN_XNUDIR" != "X" # {
then
LSOF_TMP2="${DARWIN_XNUDIR}/bsd"
LSOF_TMP3="${DARWIN_XNUDIR}/osfmk"
LSOF_TMP4=""
else
LSOF_TMP2="${DARWIN_XNU_HEADERS}/System/Library/Frameworks/Kernel.framework/Versions/A/PrivateHeaders"
LSOF_TMP3="${DARWIN_XNU_HEADERS}/System/Library/Frameworks/System.framework/Versions/B/PrivateHeaders"
LSOF_TMP4=""
if test "X$DARWIN_XNU_HEADERS" != "X" # {
then
LSOF_TMP4="${DARWIN_XNU_HEADERS}/usr/include"
fi # }
fi # }
# Test Darwin base.
if test "X$DARWIN_BASE" = "X" -o "X$DARWIN_BASE" = "Xlibproc" # {
then
LSOF_TMP5=""
if test $LSOF_VERS -ge 800 -o "X$DARWIN_BASE" = "Xlibproc" # {
then
if test -r ${LSOF_INCLUDE}/libproc.h # {
then
DARWIN_BASE="libproc"
else
if test -r ${LSOF_INCLUDE}/../local/include/libproc.h # {
then
DARWIN_BASE="libproc"
LSOF_TMP5="-I${LSOF_INCLUDE}/../local/include"
else
echo "FATAL: can't find libproc.h"
rm -f $LSOF_HLP
exit 1
fi # }
fi # }
else
# The default Darwin base is /dev/kmem.
DARWIN_BASE="/dev/kmem"
fi # }
fi # }
if test "X$DARWIN_BASE" = "Xlibproc" # {
then
# Configure for libproc-based Darwin lsof.
echo "Configuring libproc-based Darwin lsof"
LSOF_CINFO="libproc-based"
LSOF_DIALECT_DIR=darwin/libproc
if test $LSOF_VERS -lt 1000 # {
then
LSOF_CFGL="$LSOF_CFGL -lproc"
fi # }
LSOF_TSTKMEM=0
LSOF_DINC="$LSOF_DINC $LSOF_TMP5"
if test ! -r ${LSOF_INCLUDE}/sys/proc_info.h # {
then
if test "X$LSOF_TMP5" = "X" -o ! -r ${LSOF_TMP5}/sys/proc_info.h # {
then
echo "FATAL: can't find sys/proc_info.h"
rm -f $LSOF_HLP
exit 1
fi # }
fi # }
# Add header file paths for libproc-based Darwin lsof.
for i in $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
do
if test -d $i -a "X$i" != "X/usr/include" # {
then
LSOF_DINC="$LSOF_DINC -I${i}"
fi # }
done # }
# Do other libproc-based Darwin lsof setups.
if test -r ${LSOF_INCLUDE}/utmpx.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
fi # }
else
if test "X$DARWIN_BASE" != "X/dev/kmem" # {
then
echo "Darwin base unrecognized: $DARWIN_BASE"
rm -f $LSOF_HLP
exit 1
fi # }
# Configure for /dev/kmem-based Darwin lsof.
echo "Configuring /dev/kmem-based Darwin lsof"
LSOF_CINFO="/dev/kmem-based"
LSOF_DIALECT_DIR=darwin/kmem
# Make sure needed /dev/kmem-base XNU Darwin kernel header files are
# present.
LSOF_TMP5=""
for i in $LSOF_TMP1 # {
do
LSOF_TMP6=0
for j in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
do
if test "X${j}" != "X" -a -r ${j}/${i} # {
then
LSOF_TMP6=1
break
fi # }
done # }
if test $LSOF_TMP6 -ne 1 # {
then
if test "X$LSOF_TMP5" = "X" # {
then
LSOF_TMP5=$i
else
LSOF_TMP5="$LSOF_TMP5 $i"
fi # }
fi # }
done # }
if test "X$LSOF_TMP5" != "X" # {
then
# If any Darwin XNU kernel header files are missing, call the
# get-hdr-loc.sh script to find the path.
LSOF_TMP6=`pwd`/dialects/darwin/get-hdr-loc.sh
if test ! -x $LSOF_TMP6 # {
then
echo "FATAL: can't execute: $LSOF_TMP6"
rm -f $LSOF_HLP
exit 1
fi # }
DARWIN_XNUDIR=`$LSOF_TMP6 $LSOF_TMP5`
if test $? -ne 0 # {
then
echo "FATAL: $LSOF_TMP6 returns: $DARWIN_XNUDIR"
rm -f $LSOF_HLP
exit 1
fi # }
LSOF_TMP2="${DARWIN_XNUDIR}/bsd"
LSOF_TMP3="${DARWIN_XNUDIR}/osfmk"
LSOF_TMP4=""
fi # }
# Add header file paths for /dev/kmem-based Darwin lsof.
for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
do
if test -d $i -a "X$i" != "X/usr/include" # {
then
LSOF_DINC="$LSOF_DINC -I${i}"
fi # }
done # }
# Make conditional feature definitions for /dev/kmem-based Darwin lsof.
for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
do
if test "X${i}" != "X" -a -r ${i}/sys/namei.h # {
then
grep -q nc_vpid ${i}/sys/namei.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
fi # }
break
fi # }
done # }
for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
do
if test "X${i}" != "X" # {
then
if test $LSOF_VERS -ge 800 # {
then
if test -r ${i}/sys/file_internal.h # {
then
grep -q DTYPE_KQUEUE ${i}/sys/file_internal.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASKQUEUE"
fi # }
break
fi # }
else
if test $LSOF_VERS -ge 700 # {
then
if test -r ${i}/sys/file.h # {
then
grep -q DTYPE_KQUEUE ${i}/sys/file.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASKQUEUE"
fi # }
fi # }
break
fi # }
fi # }
fi # }
done # }
LSOF_CFGF="$LSOF_CFGF -DHAS9660FS"
fi # }
LSOF_CFGF="$LSOF_CFGF -DDARWINV=$LSOF_VERS"
LSOF_CFLAGS_OVERRIDE=1
;;
# Configure for DEC OSF/1, Digital UNIX, or Tru64 UNIX.
digital_unix|du|decosf|tru64)
LSOF_TGT="du"
LSOF_TSTBIGF=" "
LSOF_TSTK64=1
if test "X$LSOF_DINC" = "X" # {
then
LSOF_DINC="-I/usr/include"
fi # }
if test "X$LSOF_VSTR" = "X" # {
then
LSOF_VSTR=`uname -r`
fi # }
if test "X$LSOF_VERS" = "X" # {
then
# If the DEC OSF/1, Digital UNIX, or Tru64 UNIX version isn't
# predefined, determine it.
case $LSOF_VSTR in # {
V2.0)
LSOF_VERS=20000
;;
V3.0)
LSOF_VERS=30000
;;
V3.2)
LSOF_VERS=30200
;;
?4.0)
LSOF_TSTXO="../lib/snpf.o"
LSOF_VERS=40000
;;
?5.0)
LSOF_VERS=50000
;;
?5.1)
LSOF_VERS=50100
;;
*)
echo "WARNING: unknown version; assuming version is 2.0"
LSOF_VERS=20000
;;
esac # }
fi # }
# Do DEC OSF/1, Digital UNIX, or Tru64 UNIX version specific stuff.
case $LSOF_VERS in # {
20000)
LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
LSOF_TMP1="/sys"
;;
30000)
LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
LSOF_TMP1="/sys"
LSOF_TMP2=-DUSELOCALREADDIR
;;
30200)
LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
LSOF_TMP1="/sys"
LSOF_TMP2=-DUSELOCALREADDIR
;;
40000)
LSOF_TMP1="/usr/sys"
;;
50000|50100)
LSOF_CFGF="$LSOF_CFGF -DUSE_STAT"
LSOF_TMP1="/usr/sys"
;;
*)
echo "WARNING: unknown version: $LSOF_VERS"
rm -f $LSOF_HLP
exit 1
;;
esac # }
if test "X$DU_SYSDIR" = "X" # {
then
DU_SYSDIR=$LSOF_TMP1
fi # }
LSOF_HOST=`uname -n`
if test "X$DU_CDIR" = "X" # {
then
LSOF_CDIR=`expr $LSOF_HOST : '\([^\.]*\)\..*$'`
if test "X$LSOF_CDIR" = "X" # {
then
LSOF_CDIR=$LSOF_HOST
fi # }
LSOF_CDIR=`echo $LSOF_CDIR | tr a-z A-Z`
else
LSOF_CDIR=$DU_CDIR
fi # }
LSOF_LOOP=1
while test $LSOF_LOOP = 1 # {
do
if test -d ${DU_SYSDIR}/$LSOF_CDIR # {
then
echo "Using header files in ${DU_SYSDIR}/$LSOF_CDIR"
LSOF_LOOP=0
else
cat << .CAT_MARK
Please enter the name of the subdirectory in $DU_SYSDIR that contains the
configuration files for this host. Usually its name would be $LSOF_CDIR, but
that subdirectory doesn't seem to exist. The lsof compilation needs header
files specific to this machine's configuration found in that directory.
If you can't specify the appropriate configuration subdirectory, quit this
Configure step now and generate a proper configuration subdirectory with the
kernel generation process.
.CAT_MARK
echo "$DU_SYSDIR contains:"
echo ""
ls -CF $DU_SYSDIR
echo ""
echo -n "Configuration subdirectory name? "
read LSOF_CDIR LSOF_EXCESS
if test "X$LSOF_CDIR" = "X" -o ! -d ${DU_SYSDIR}/$LSOF_CDIR # {
then
echo ""
echo Cannot access directory ${DU_SYSDIR}/$LSOF_CDIR.
fi # }
fi # }
done # }
# Determine the ADVFS file system version.
if test "X$DU_ADVFSV" = "X" # {
then
echo "Determining the ADVFS version -- this will take a while."
LSOF_ADVFSV=`/usr/sbin/setld -i | grep "^OSFADVFSBIN[0-9]" | sed 's/\([^ ]*\).*/\1/' | sort -u | tail -1 | sed 's/OSFADVFSBIN//'`
else
LSOF_ADVFSV=$DU_ADVFSV
fi # }
case $LSOF_ADVFSV in # {
1*)
LSOF_ADVFSV=100
echo "The ADVFS version is 1."
;;
2*)
LSOF_ADVFSV=200
echo "The ADVFS version is 2."
;;
3*)
LSOF_ADVFSV=300
echo "The ADVFS version is 3."
;;
4*)
LSOF_ADVFSV=400
echo "The ADVFS version is 4."
;;
5*)
LSOF_ADVFSV=500
echo "The ADVFS version is 5."
;;
*)
echo "The ADVFS version is unknown; it will be assumed to be 1."
LSOF_ADVFSV=100
;;
esac # }
LSOF_CFGF="$LSOF_CFGF -DDUV=$LSOF_VERS -DADVFSV=$LSOF_ADVFSV $LSOF_TMP2"
if test "X$DU_SYSINC" = "X" # {
then
DU_SYSINC="/usr/sys/include"
fi # }
LSOF_DINC="$LSOF_DINC -I${DU_SYSDIR}/$LSOF_CDIR -I$DU_SYSINC"
LSOF_CFGL="$LSOF_CFGL -lmld"
if test "X${DU_SHLIB}" = "X" # {
then
DU_SHLIB=/usr/shlib
fi # }
if test -r ${DU_SHLIB}/libmsfs.so # {
then
nm ${DU_SHLIB}/libmsfs.so | grep tag_to_path > /dev/null 2>&1
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASTAGTOPATH"
LSOF_CFGL="$LSOF_CFGL -lmsfs"
fi # }
fi # }
grep "^struct spec_node {" ${DU_SYSDIR}/include/sys/specdev.h > /dev/null 2>&1
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASSPECNODE"
fi # }
if test $LSOF_VERS -ge 50000 # {
then
# Make du5_sys_malloc.h for DU 5.0 and above. Enable strict ANSI checking
# on 5.0 and 5.1A, but not 5.1B. Enable IPv6 handling.
LSOF_TMP1="-std1"
if test $LSOF_VERS -ge 50100 # {
then
LSOF_TMP1="-std"
if test -x /usr/sbin/sizer # {
then
/usr/sbin/sizer -v | grep -q 5.1A
if test $? -eq 0 # {
then
LSOF_TMP1="-std1"
fi # }
fi # }
fi # }
LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
LSOF_TMP1=${LSOF_INCLUDE}/sys/malloc.h
if test -r $LSOF_TMP1 # {
then
LSOF_TMP2=dialects/du/du5_sys_malloc.h
rm -f $LSOF_TMP2
echo "#if !defined(MANUFACTURED_DU5_SYS_MALLOC_H)" > $LSOF_TMP2
echo "/* By lsof Configure:" `date` " */" >> $LSOF_TMP2
echo "#define MANUFACTURED_DU5_SYS_MALLOC_H" >> $LSOF_TMP2
grep "^#define[ ]MALLOC_NUM_BUCKETS" $LSOF_TMP1 >> $LSOF_TMP2
echo "struct percpukmembuckets {" >> $LSOF_TMP2
sed '1,/^struct percpukmembuckets/d' $LSOF_TMP1 | sed -n '1,/^};/p' >> $LSOF_TMP2
echo "#endif" >> $LSOF_TMP2
LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/du"
fi # }
# Enable IPv6 for Tru64 UNIX 5.0 and above.
LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
fi # }
if test -r ${LSOF_INCLUDE}/sys/namei.h
then
grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
fi # }
fi # }
LSOF_DIALECT_DIR=du
;;
# Configure for FreeBSD.
freebsd)
LSOF_FBSD_ZFS=0
if test "X$LSOF_CC" = "X" # {
then
LSOF_CC=cc
LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
fi # }
if test "X$LSOF_VSTR" = "X" # {
then
LSOF_VSTR=`uname -r`
fi # }
if test "X$LSOF_VERS" = "X" # {
then
# If the FreeBSD version isn't pre-defined, determine it.
case $LSOF_VSTR in # {
1.*)
LSOF_VERS=1000
;;
2.0-*)
LSOF_VERS=2000
;;
2.0.5-*)
LSOF_VERS=2005
;;
2.1*)
LSOF_VERS=2010
;;
2.2*)
LSOF_VERS=2020
;;
3.0*)
LSOF_VERS=3000
;;
3.1*)
LSOF_VERS=3010
;;
3.2*)
LSOF_VERS=3020
;;
3.3*)
LSOF_VERS=3030
;;
3.4*)
LSOF_VERS=3040
;;
3.5*)
LSOF_VERS=3050
;;
3*)
LSOF_VERS=3050
echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
echo "!!!WARNING!!! Configuring for FreeBSD 3.5"
;;
4.0*)
LSOF_TSTBIGF=" "
LSOF_VERS=4000
;;
4.1-*)
LSOF_TSTBIGF=" "
LSOF_VERS=4010
;;
4.2*)
LSOF_TSTBIGF=" "
LSOF_VERS=4020
;;
4.3*)
LSOF_TSTBIGF=" "
LSOF_VERS=4030
;;
4.4*)
LSOF_TSTBIGF=" "
LSOF_VERS=4040
;;
4.5*)
LSOF_TSTBIGF=" "
LSOF_VERS=4050
;;
4.6*)
LSOF_TSTBIGF=" "
LSOF_VERS=4060
;;
4.7*)
LSOF_TSTBIGF=" "
LSOF_VERS=4070
;;
4.8*)
LSOF_TSTBIGF=" "
LSOF_VERS=4080
;;
4.9*)
LSOF_TSTBIGF=" "
LSOF_VERS=4090
;;
4.10*)
LSOF_TSTBIGF=" "
LSOF_VERS=4100
;;
4.11*)
LSOF_TSTBIGF=" "
LSOF_VERS=4110
;;
4*)
LSOF_VERS=4100
echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
echo "!!!WARNING!!! Configuring for FreeBSD 4.10"
;;
5.0*)
LSOF_TSTBIGF=" "
LSOF_VERS=5000
;;
5.1*)
LSOF_TSTBIGF=" "
LSOF_VERS=5010
;;
5.2*)
LSOF_TSTBIGF=" "
LSOF_VERS=5020
;;
5.3*)
LSOF_TSTBIGF=" "
LSOF_VERS=5030
;;
5.4*)
LSOF_TSTBIGF=" "
LSOF_VERS=5040
;;
5.5*)
LSOF_TSTBIGF=" "
LSOF_VERS=5050
;;
5*)
LSOF_VERS=5050
echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
echo "!!!WARNING!!! Configuring for FreeBSD 5.5"
;;
6.0*)
LSOF_TSTBIGF=" "
LSOF_VERS=6000
;;
6.1*)
LSOF_TSTBIGF=" "
LSOF_VERS=6010
;;
6.2*)
LSOF_TSTBIGF=" "
LSOF_VERS=6020
;;
6.3*)
LSOF_TSTBIGF=" "
LSOF_VERS=6030
;;
6.4*)
LSOF_TSTBIGF=" "
LSOF_VERS=6040
;;
6*)
LSOF_VERS=6000
echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
echo "!!!WARNING!!! Configuring for FreeBSD 6.0"
;;
7.0*)
LSOF_TSTBIGF=" "
LSOF_VERS=7000
;;
7.1*)
LSOF_TSTBIGF=" "
LSOF_VERS=7010
;;
7.2*)
LSOF_TSTBIGF=" "
LSOF_VERS=7020
;;
7.3*)
LSOF_TSTBIGF=" "
LSOF_VERS=7030
;;
7*)
LSOF_VERS=7000
echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
echo "!!!WARNING!!! Configuring for FreeBSD 7.0"
;;
8*)
LSOF_TSTBIGF=" "
LSOF_VERS=8000
;;
9*)
LSOF_TSTBIGF=" "
LSOF_VERS=9000
;;
*)
echo Unknown FreeBSD release: `uname -r`
echo Assuming FreeBSD 2.x
LSOF_CFGL="$LSOF_CFGL -lkvm"
LSOF_VERS=2000
LSOF_N_UNIXV=`/usr/sbin/sysctl -n kern.bootfile`
if test "X$LSOF_N_UNIXV" = "X" # {
then
LSOF_N_UNIXV="/kernel"
fi # }
;;
esac # }
fi # }
# Clear LSOF_UNSUP message for supported versions of FreeBSD.
case $LSOF_VERS in # {
4090|7000|7010|7020|7030|8000|9000)
LSOF_UNSUP=""
;;
esac # }
# Get system CFLAGS from FREEBSD_MAKE_CONF (default=/etc/make.conf).
if test "X$FREEBSD_MAKE_CONF" = "X" # {
then
FREEBSD_MAKE_CONF="/etc/make.conf"
fi # }
if test -r $FREEBSD_MAKE_CONF # {
then
LSOF_TMP1=`echo "all:\n.include <bsd.prog.mk>" | $LSOF_MAKE -f- -VCFLAGS`
LSOF_TMP=1
while test $LSOF_TMP -eq 1 # {
do
echo $LSOF_TMP1 | grep -q -e '-O'
if test $? -eq 0 # {
then
if test "X$LSOF_DEBUG" = "X"
then # {
LSOF_DEBUG=`echo $LSOF_TMP1 | sed 's/.*\(-O[^ $]*\).*/\1/'`
fi # }
LSOF_TMP1=`echo $LSOF_TMP1 | sed 's/\(.*\)-O[^ $]*\(.*\)/\1 \2/' | sed 's/^ *//g' | sed 's/ */ /g' | sed 's/ *$//'`
else
LSOF_TMP=0
fi # }
LSOF_FBSD_ZFS_CFGF="$LSOF_CFGF $LSOF_TMP1"
done # }
LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
fi # }
# Determine path to FreeBSD sources.
LSOF_DINC_ADD=0
if test "X$FREEBSD_SYS" = "X" # {
then
if test -d /usr/src/sys # {
then
FREEBSD_SYS=/usr/src/sys
else
if test -d /sys # {
then
FREEBSD_SYS="/sys"
else
echo "!!!WARNING!!! No kernel sources in /usr/src/sys or /sys"
fi # }
fi # }
fi # }
# Do FreeBSD version-specific stuff.
case $LSOF_VERS in # {
1000)
LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
LSOF_CFGL="$LSOF_CFGL -lutil"
LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/freebsd/include"
if test "X$FREEBSD_KERNEL" = "X" # {
then
LSOF_N_UNIXV="/386bsd"
else
LSOF_N_UNIXV=$FREEBSD_KERNEL
fi # }
;;
2000|2005|2010)
LSOF_CFGL="$LSOF_CFGL -lkvm"
;;
2020)
LSOF_CFGL="$LSOF_CFGL -lkvm"
if test -r ${LSOF_INCLUDE}/vm/lock.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASVMLOCKH"
fi # }
;;
3000|3010|3020|3030|3040|3050)
LSOF_CFGL="$LSOF_CFGL -lkvm"
if test -r ${LSOF_INCLUDE}/nfs/rpcv2.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASRPCV2H"
fi # }
if test -r ${LSOF_INCLUDE}/vm/lock.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASVMLOCKH"
fi # }
;;
4000|4010|4020|4030|4040|4050|4060|4070|4080|4090|4100|4110|5000|5010|5020|5030|5040|5050|6000|6010|6020|6030|6040|7000|7010|7020|7030|8000|9000)
if test -r ${LSOF_INCLUDE}/nfs/rpcv2.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASRPCV2H"
fi # }
if test -r ${LSOF_INCLUDE}/sys/namei.h # {
then
grep -q "^struct[ ]*namecache[ ]*{" ${LSOF_INCLUDE}/sys/namei.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASNAMECACHE"
fi # }
fi # }
if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
then
grep -q i_effnlink ${LSOF_INCLUDE}/ufs/ufs/inode.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_effnlink"
fi # }
fi # }
if test -r ${LSOF_INCLUDE}/sys/file.h # {
then
grep -q f_vnode ${LSOF_INCLUDE}/sys/file.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASF_VNODE"
fi # }
fi # }
LSOF_CFGL="$LSOF_CFGL -lkvm"
if test $LSOF_VERS -ge 5000 # {
then
# Do FreeBSD 5 and higher version-specific stuff.
if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
then
grep VT_FDESC ${LSOF_INCLUDE}/sys/vnode.h > /dev/null 2>&1
if test $? -eq 0 # {
then
if test ! -r ${LSOF_INCLUDE}/fs/devfs/devfs.h # {
then
if test -r ${FREEBSD_SYS}/fs/devfs/devfs.h # {
then
LSOF_DINC_ADD=1
else
echo "!!!FATAL: lsof cannot locate the devfs.h header file"
echo " in ${LSOF_INCLUDE}/fs/devfs/devfs.h or"
echo " ${FREEBSD_SYS}/fs/devfs/devfs.h. Consult"
echo " 00FAQ for an explanation."
exit 1
fi # }
fi # }
fi # }
fi # }
# Do FreeBSD 5.2 and higher version-specific stuff.
if test $LSOF_VERS -ge 5020 # {
then
# Determine the status of the cpumask_t typedef.
rm -f ${LSOF_TMPC}.*
cat > ${LSOF_TMPC}.c << .LSOF_END_HERE_DOC3
#undef _KERNEL
#include <sys/types.h>
main() {
cpumask_t c;
}
.LSOF_END_HERE_DOC3
$LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
LSOF_TMP1=$?
rm -f ${LSOF_TMPC}.*
if test $LSOF_TMP1 -ne 0 # {
then
# The cpumask_t typedef is unknown when _KERNEL is not defined.
if test -r ${LSOF_INCLUDE}/sys/types.h \
-a -r ${LSOF_INCLUDE}/machine/_types.h # {
then
grep -q cpumask_t ${LSOF_INCLUDE}/sys/types.h
if test $? -eq 0 # {
then
grep -q __cpumask_t ${LSOF_INCLUDE}/machine/_types.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASCPUMASK_T"
else
$LSOF_CC -E ${LSOF_INCLUDE}/machine/_types.h 2>/dev/null | grep -q __cpumask_t
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASCPUMASK_T"
fi # }
fi # }
fi # }
fi # }
fi # }
if test -r ${LSOF_INCLUDE}/sys/socketvar.h # {
then
grep -q SBS_CANT ${LSOF_INCLUDE}/sys/socketvar.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASSBSTATE"
fi # }
fi # }
fi # }
if test $LSOF_VERS -ge 5030 # {
then
# Do FreeBSD 5.3 and higher version-specific stuff.
if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
then
grep -q "defined(_KVM_VNODE)" ${LSOF_INCLUDE}/sys/vnode.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_KVM_VNODE"
fi #}
fi # }
fi # }
if test $LSOF_VERS -ge 6000 # {
then
# Do FreeBSD 6.0 and higher version-specific stuff.
if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
then
grep -q i_din2 ${LSOF_INCLUDE}/ufs/ufs/inode.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_UFS1_2"
fi # }
fi # }
if test -r ${LSOF_INCLUDE}/sys/conf.h # {
then
grep -q vm_memattr_t ${LSOF_INCLUDE}/sys/conf.h
if test $? -eq 0 #{
then
LSOF_CFGF="$LSOF_CFGF -DHAS_VM_MEMATTR_T"
fi # }
grep -q "^#define minor(" ${LSOF_INCLUDE}/sys/conf.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_CONF_MINOR"
rm -f fbsd_minor.h
if test -r ${LSOF_INCLUDE}/sys/types.h # {
then
LSOF_TMP1=`grep "^#define[ ]minor(" ${LSOF_INCLUDE}/sys/types.h`
if test "X$LSOF_TMP1" != "X" # {
then
echo "Creating fbsd_minor.h"
cat > fbsd_minor.h << FBSD_MINOR1
/*
* fbsd_minor.h -- created by lsof Configure script on
FBSD_MINOR1
echo $EO " * $EC" >> ./fbsd_minor.h
date >> ./fbsd_minor.h
cat >> ./fbsd_minor.h << FBSD_MINOR2
*/
#if !defined(FBSD_MINOR_H)
#define FBSD_MINOR_H
FBSD_MINOR2
echo $EO "${LSOF_TMP1}${EC}" >> fbsd_minor.h
cat >> ./fbsd_minor.h << FBSD_MINOR3
#endif /* defined(FBSD_MINOR_H) */
FBSD_MINOR3
fi # }
fi # }
else
if test -r ${FREEBSD_SYS}/fs/devfs/devfs_int.h # {
then
grep -q cdev2priv ${FREEBSD_SYS}/fs/devfs/devfs_int.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_CDEV2PRIV"
fi # }
fi # }
fi # }
grep -q "si_udev;" ${LSOF_INCLUDE}/sys/conf.h
if test $? -ne 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_NO_SI_UDEV"
fi # }
grep -q si_priv ${LSOF_INCLUDE}/sys/conf.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_SI_PRIV"
fi # }
fi # }
if test -r ${LSOF_INCLUDE}/sys/sx.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_SX_H"
fi # }
# Do ZFS test. Try for the newer OpenSolaris files first -- i.e.,
# the ones in ${FREEBSD_SYS}/cddl/contrib/opensolaris. If that fails,
# try for the older ones in ${FREEBSD}/contrib/opensolaris.
LSOF_FBSD_ZFS_SYS=${FREEBSD_SYS}/cddl
if test ! -r ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h # {
then
LSOF_FBSD_ZFS_SYS=${FREEBSD_SYS}
if test ! -r ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h # {
then
LSOF_FBSD_ZFS_SYS=""
fi # }
fi # }
if test "X$LSOF_FBSD_ZFS_SYS" != "X" # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_ZFS"
LSOF_FBSD_ZFS=1
LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DFREEBSDV=$LSOF_VERS"
LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_ZFS"
fi # }
if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
then
# See if the vnode contains the byte level lock pointer.
grep -q v_lockf ${LSOF_INCLUDE}/sys/vnode.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_V_LOCKF"
if test $LSOF_FBSD_ZFS -eq 1 # {
then
LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_V_LOCKF"
fi # }
fi # }
fi # }
if test -r ${LSOF_INCLUDE}/sys/lockf.h # {
then
# Determine the type of locking structure to which the inode or
# vnode points.
grep -q "^struct lockf_entry" ${LSOF_INCLUDE}/sys/lockf.h
if test $? -eq 0 # {
then
# Build the ./lockf_owner.h header file.
LSOF_TMP1=""
LSOF_TMP2=0
echo "Creating ./lockf_owner.h from ${FREEBSD_SYS}/kern/kern_lockf.c"
rm -f ./lockf_owner.h
if test -r ${FREEBSD_SYS}/kern/kern_lockf.c # {
then
LSOF_TMP1=`grep -n "^struct lock_owner" ${FREEBSD_SYS}/kern/kern_lockf.c | sed 's/\([0-9]*\):.*$/\1/'`
if test "X$LSOF_TMP1" != "X" # {
then
LSOF_TMP2=0
for i in `grep -n "};" ${FREEBSD_SYS}/kern/kern_lockf.c | sed 's/\([0-9]*\):.*$/\1/'` # {
do
if test $LSOF_TMP2 -eq 0 -a $i -gt $LSOF_TMP1 # {
then
LSOF_TMP2=$i
fi # }
done # }
if test $LSOF_TMP2 -eq 0 # {
then
LSOF_TMP1=""
else
cat > ./lockf_owner.h << LOCKF_OWNER1
/*
* lockf_owner.h -- created by lsof Configure script on
LOCKF_OWNER1
echo $EO " * $EC" >> ./lockf_owner.h
date >> ./lockf_owner.h
cat >> ./lockf_owner.h << LOCKF_OWNER2
*/
#if !defined(LOCKF_OWNER_H)
#define LOCKF_OWNER_H
LOCKF_OWNER2
ed -s ${FREEBSD_SYS}/kern/kern_lockf.c >> ./lockf_owner.h << LOCKF_OWNER3
${LSOF_TMP1},${LSOF_TMP2}p
LOCKF_OWNER3
if test $? -ne 0 # {
then
LSOF_TMP1=""
else
cat >> ./lockf_owner.h << LOCKF_OWNER4
#endif /* defined(LOCKF_OWNER_H) */
LOCKF_OWNER4
fi # }
fi # }
fi # }
else
echo "FATAL ERROR: can't read ${FREEBSD_SYS}/kern/kern_lockf.c"
fi # }
if test "X$LSOF_TMP1" != "X" -a "X$LSOF_TMP2" != "X0" # {
then
echo "./lockf_owner.h creation succeeded."
LSOF_CFGF="$LSOF_CFGF -DHAS_LOCKF_ENTRY"
else
echo "FATAL ERROR: ./lockf_owner.h creation failed (see 00FAQ)"
rm -f $LSOF_HLP
exit 1
fi # }
fi # }
# Test for in6p_.port in inpcb structure.
if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
then
grep -q 'in6p_.port' ${LSOF_INCLUDE}/netinet/in_pcb.h
if test $? -ne 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_NO_6PORT"
fi # }
fi # }
# Test for in6p_ppcb in inpcb structure.
if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
then
grep -q 'in6p_ppcb' ${LSOF_INCLUDE}/netinet/in_pcb.h
if test $? -ne 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_NO_6PPCB"
fi # }
fi # }
fi # }
fi # }
fi # }
;;
*)
echo "Unknown FreeBSD release: $LSOF_VERS"
rm -f $LSOF_HLP
exit 1
;;
esac # }
LSOF_CFGF="$LSOF_CFGF -DFREEBSDV=$LSOF_VERS"
if test $LSOF_VERS -lt 2000 -a "X$FREEBSD_KERNEL" = "X" # {
then
if test ! -x $LSOF_N_UNIXV # {
then
echo "Hmmm -- $LSOF_N_UNIXV doesn't appear to be your kernel file."
echo "Please enter the name of the file in / that contains"
echo "the kernel for this host. It must be a regular file,"
echo "not a directory, and must be executable."
LSOF_LOOP=1
while test $LSOF_LOOP = 1 # {
do
echo ""
echo "/ contains:"
echo ""
ls -CF /
echo ""
echo -n "Kernel file name? "
read LSOF_N_UNIXV LSOF_EXCESS
LSOF_N_UNIXV="/$LSOF_N_UNIXV"
if test ! -d $LSOF_N_UNIXV -a -x $LSOF_N_UNIXV # {
then
LSOF_LOOP=0
else
echo ""
echo $LSOF_N_UNIXV is not a regular executable file.
fi # }
done # }
fi # }
LSOF_N_UNIXV=`echo $LSOF_N_UNIXV | sed 's#^/*#/#'`
LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=$LSOF_N_UNIXV"
fi # }
if test -r ${FREEBSD_SYS}/miscfs/fdesc/fdesc.h # {
then
LSOF_TMP1=${FREEBSD_SYS}/miscfs/fdesc/fdesc.h
else
if test $LSOF_VERS -ge 5000 -a -r ${LSOF_INCLUDE}/fs/fdescfs/fdesc.h # {
then
LSOF_TMP1=${LSOF_INCLUDE}/fs/fdescfs/fdesc.h
else
LSOF_TMP1=""
fi # }
fi # }
if test "X$LSOF_TMP1" != "X" # {
then
grep -q Fctty $LSOF_TMP1
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
else
LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
fi # }
grep -q fd_link $LSOF_TMP1
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
fi # }
LSOF_DINC_ADD=1
fi # }
if test $LSOF_VERS -ge 5000 # {
then
LSOF_TMP1="fs"
else
LSOF_TMP1="miscfs"
fi # }
if test $LSOF_VERS -lt 5000 # {
then
if test -d ${FREEBSD_SYS}/${LSOF_TMP1}/procfs # {
then
LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
LSOF_DINC_ADD=1
fi # }
else
if test -d ${FREEBSD_SYS}/${LSOF_TMP1}/pseudofs # {
then
LSOF_CFGF="$LSOF_CFGF -DHASPSEUDOFS"
LSOF_DINC_ADD=1
fi # }
fi # }
if test -r ${LSOF_INCLUDE}/${LSOF_TMP1}/nullfs/null.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
else
if test -r ${FREEBSD_SYS}/${LSOF_TMP1}/nullfs/null.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
LSOF_DINC_ADD=1
fi # }
fi # }
if test -r ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h # {
then
rm -f cd9660_node.h
grep -q "^#ifdef [_]*KERNEL" ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h
if test $? -eq 0 # {
then
ln -s ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h cd9660_node.h
else
sed -e '/^ \* Prototypes for ISOFS vnode operations/,$c\
\ The ISOFS prototypes were removed by Configure. */' \
< ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h > cd9660_node.h
echo "" >> cd9660_node.h
fi # }
LSOF_CFGF="$LSOF_CFGF -DHAS9660FS"
if test $LSOF_VERS -ge 6000 # {
then
grep -q "i_dev;" cd9660_node.h
if test $? -ne 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_NO_ISO_DEV"
fi # }
fi # }
fi # }
if test -r ${LSOF_INCLUDE}/sys/namei.h
then
grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
fi # }
fi # }
if test $LSOF_DINC_ADD -eq 1 # {
then
if test "X$LSOF_DINC" = "X" # {
then
LSOF_DINC="-I${FREEBSD_SYS}"
else
LSOF_DINC="$LSOF_DINC -I${LSOF_INCLUDE} -I${FREEBSD_SYS}"
fi # }
fi # }
if test -r ${LSOF_INCLUDE}/netinet/in.h # {
then
grep IPV6_INRIA_VERSION ${LSOF_INCLUDE}/netinet/in.h > /dev/null
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASIPv6 -DHASINRIAIPv6"
fi # }
fi # }
echo $CFGF | grep HASIPv6 > /dev/null
if test $? -ne 0 -a -r ${LSOF_INCLUDE}/netinet6/in6.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
fi # }
if test -r ${LSOF_INCLUDE}/utmpx.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
fi # }
LSOF_DIALECT_DIR=freebsd
;;
# Configure for HP-UX and HP-UX gcc.
hpux|hpuxgcc)
if test "X$LSOF_RANLIB_SUP" = "X" # {
then
LSOF_RANLIB=""
fi # }
if test "X$LSOF_VSTR" = "X" # {
then
LSOF_VSTR=`uname -r`
fi # }
if test "X$LSOF_VERS" = "X" # {
then
# If the HP-UX version isn't pre-defined, determine it.
LSOF_VERS=`echo $LSOF_VSTR | awk -F. '{printf "%d%02d",\$2,\$3}'`
fi # }
if test $LSOF_VERS -ge 1020 # {
then
LSOF_TSTBIGF="-D_LARGEFILE64_SOURCE"
fi # }
# Determine compiler.
if test "X$LSOF_CC" = "X" # {
then
if test "X$LSOF_TGT" = "Xhpuxgcc" # {
then
LSOF_CC=gcc
else
if test "X$HPUX_CCDIR1" = "X" # {
then
HPUX_CCDIR1="/bin"
fi # }
if test "X$HPUX_CCDIR2" = "X" # {
then
HPUX_CCDIR2="/usr/ccs/bin"
fi # }
if test -x ${HPUX_CCDIR1}/cc # {
then
LSOF_CC=${HPUX_CCDIR1}/cc
else
if test -x ${HPUX_CCDIR2}/cc # {
then
LSOF_CC=${HPUX_CCDIR2}/cc
else
echo "No executable cc in $HPUX_CCDIR1 or $HPUX_CCDIR2"
rm -f $LSOF_HLP
exit 1
fi # }
fi # }
$LSOF_CC -O < /dev/null 2>&1 | grep -q Bundled
if test $? -eq 0 # {
then
LSOF_DEBUG="No-O" # to disable -O
if test "X$HPUX_LIBC1" = "X" # {
then
HPUX_LIBC1="/usr/lib"
fi # }
if test -r ${HPUX_LIBC1}/libc.sl # {
then
LSOF_FCFGL="-L$HPUX_LIBC -lc"
else
if test "X$HPUX_LIBC2" = "X" # {
then
HPUX_LIBC2="/usr/lib"
fi # }
if test -r ${HPUX_LIBC2}/libc.sl # {
then
LSOF_FCFGL="-L$HPUX_LIBC2 -lc"
fi # }
fi # }
fi # }
fi # }
fi # }
echo $LSOF_CC | grep gcc > /dev/null
if test $? -eq 0 # {
then
LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
else
$LSOF_CC -O < /dev/null 2>&1 | grep -q Bundled
if test $? -eq 0 # {
then
LSOF_DEBUG="No-O" # to disable -O
fi # }
fi # }
LSOF_TGT=hpux
# Test for "const void" support.
rm -f ${LSOF_TMPC}.*
echo "main() { const void *x; return(0); }" >> $LSOF_TMPC.c
$LSOF_CC $LSOF_TMPC.c -o $LSOF_TMPC.x > /dev/null 2>&1
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_CONST"
fi # }
rm -f ${LSOF_TMPC}.*
# Test HP-UX base.
if test "X$HPUX_BASE" = "X" # {
then
if test -d $LSOF_INCLUDE/sys/pstat -a $LSOF_VERS -ge 1111 # {
then
HPUX_BASE="pstat"
else
HPUX_BASE="/dev/kmem"
fi # }
fi # }
if test "X$HPUX_BASE" = "Xpstat" # {
then
# Configure for pstat-based HP-UX lsof.
LSOF_CINFO="PSTAT-based"
echo "Configuring PSTAT-based HP-UX lsof"
LSOF_DIALECT_DIR=hpux/pstat
LSOF_CFGF="$LSOF_CFGF -DHPUXV=$LSOF_VERS -D_PSTAT64"
LSOF_CFGL="$LSOF_CFGL -lnsl"
LSOF_TSTKMEM=0
LSOF_TSTK64=1
ls -l $LSOF_CC | grep -q ansic
LSOF_TMP1=$?
ls -l $LSOF_CC | grep -q aCC
if test $? -eq 0 -o $LSOF_TMP1 -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -Ae +DD32"
else
echo $LSOF_CC | grep -q gcc
if test $? -ne 0 # {
then
LSOF_CFGF="$LSOF_CFGF +DD32"
fi # }
fi # }
if test -r ${LSOF_INCLUDE}/netinet/in6.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
fi # }
if test -r ${LSOF_INCLUDE}/sys/pstat/stream_pstat_body.h # {
then
grep -q PS_STR_XPORT_DATA ${LSOF_INCLUDE}/sys/pstat/stream_pstat_body.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -D_PSTAT_STREAM_GET_XPORT"
fi # }
fi # }
if test $LSOF_VERS -ge 1123 # {
then
LSOF_CFGF="$LSOF_CFGF -D_LARGEFILE64_SOURCE"
fi # }
else
if test "X$HPUX_BASE" = "X/dev/kmem" # {
then
# Configure for /dev/kmem-based HP-UX lsof.
if test "X$HPUX_BOOTFILE" = "X" # {
then
HPUX_BOOTFILE="/stand/vmunix"
fi # }
if test $LSOF_VERS -gt 1100 # {
then
echo ""
echo "************************************************"
echo "* *"
echo "* !!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!! *"
echo "* *"
echo "* LSOF DOES NOT SUPPORT THIS VERSION OF HP-UX. *"
echo "* *"
echo "************************************************"
echo ""
rm -f $LSOF_HLP
exit 1
fi # }
LSOF_CFGF="$LSOF_CFGF -DHPUXV=$LSOF_VERS"
LSOF_CINFO="/dev/kmem-based"
LSOF_DIALECT_DIR=hpux/kmem
echo "Configuring /dev/kmem-based HP-UX lsof"
if test $LSOF_VERS -lt 1000 # {
then
if test "X$HPUX_X25DIR" = "X" # {
then
HPUX_X25DIR="/etc/conf"
else
HPUX_X25DIR=$HPUX_X25DIR
fi # }
if test -r ${HPUX_X25DIR}/x25/x25addrstr.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHPUX_CCITT"
LSOF_DINC="$LSOF_DINC -I$HPUX_X25DIR"
fi # }
fi # }
if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h -a -r ${LSOF_INCLUDE}/sys/fs/vx_hpux.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
fi # }
if test $LSOF_VERS -ge 1030 # {
then
if test "X$HPUX_KERNBITS" = "X" # {
then
HPUX_KERNBITS=`getconf _SC_KERNEL_BITS`
fi # }
LSOF_CFGF="$LSOF_CFGF -DHPUXKERNBITS=${HPUX_KERNBITS} -I`pwd`/dialects/hpux/kmem/hpux11"
if test $HPUX_KERNBITS -eq 64 # {
then
LSOF_TSTK64=1
echo ""
echo "*****************************************"
echo "* *"
echo "* NOTICE! Configuring for 64 bit HP-UX *"
echo "* *"
echo "*****************************************"
echo $LSOF_CC | grep gcc > /dev/null
if test $? -eq 0 # {
then
# Test gcc for 64 bit support, trying gcc with no options, then
# with -mlp64, testing the result with file.
echo ""
echo "Testing $LSOF_CC for 64 bit support"
rm -f ${LSOF_TMPC}.*
echo "main(){}" > ${LSOF_TMPC}.c
LSOF_TMP1=""
$LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
if test $? -eq 0 # {
then
/bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
if test $? -eq 0 # {
then
LSOF_TMP1=" "
fi # }
fi # }
if test "X$LSOF_TMP1" = "X" # {
then
rm -f ${LSOF_TMPC}.x
$LSOF_CC ${LSOF_TMPC}.c -mlp64 -o ${LSOF_TMPC}.x > /dev/null 2>&1
if test $? -eq 0 # {
then
/bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
if test $? -eq 0 # {
then
LSOF_TMP1="-mlp64"
fi # }
fi # }
fi # }
rm -f ${LSOF_TMPC}.*
if test "X$LSOF_TMP1" = "X" # {
then
echo ""
echo "***************************************************"
echo "* *"
echo "* !!!!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!!! *"
echo "* *"
echo "* APPARENTLY GCC CANNOT BUILD 64 BIT EXECUTABLES. *"
echo "* A COMPILER MUST BE USED THAT CAN. SEE 00FAQ *"
echo "* FOR MORE INFORMATION. *"
echo "* *"
echo "***************************************************"
echo ""
rm -f $LSOF_HLP
exit 1
else
if test "X$LSOF_TMP1" != "X " # {
then
LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
fi # }
LSOF_CFGL="$LSOF_CFGL -lelf"
LSOF_CINFO="${LSOF_CINFO}, 64 bit HP-UX"
fi # }
else
# Set options for the HP-UX compiler.
LSOF_CFGF="$LSOF_CFGF +DD64"
LSOF_CFGL="$LSOF_CFGL -lelf"
LSOF_CINFO="${LSOF_CINFO}, 64 bit HP-UX"
fi # }
else
LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64"
LSOF_CINFO="${LSOF_CINFO}, 32 bit HP-UX"
echo $LSOF_CC | grep gcc > /dev/null
if test $? -ne 0 # {
then
LSOF_CFGF="$LSOF_CFGF +DAportable"
fi # }
fi # }
LSOF_CFGL="$LSOF_CFGL -lnsl"
else
# When HP-UX is less than 10.30, but greater than or equal to 10,
# check NFS3 rnode status.
if test $LSOF_VERS -ge 1000 # {
then
LSOF_TMP1=0
if test "X$HPUX_RNODE3" = "X" # {
then
nm -x $HPUX_BOOTFILE | grep -q nfs_vnodeops3
if test $? -eq 0 # {
then
if test -r ${LSOF_INCLUDE}/nfs/rnode.h # {
then
grep -q r_fh3 ${LSOF_INCLUDE}/nfs/rnode.h
if test $? -ne 0 # {
then
LSOF_TMP1=1
fi # }
fi # }
fi # }
else
if test "X$HPUX_RNODE3" = "X1" # {
then
LSOF_TMP1=1
fi # }
fi # }
if test $LSOF_TMP1 -eq 1 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASRNODE3"
fi # }
fi # }
fi # }
if test $LSOF_VERS -eq 1100 # {
then
# Test for the ipis_s structure. If it is present, set HAS_IPC_S_PATCH.
if test "X$HPUX_IPC_S_PATCH" = "X" # {
then
if test -x /usr/contrib/Q4/bin/q4exe # {
then
LSOF_TMP=/usr/contrib/Q4/bin/q4exe
else
LSOF_TMP=/usr/contrib/bin/q4
fi # }
if test -x $LSOF_TMP # {
then
rm -f ${LSOF_TMPC}.out
echo ""
echo $EO "Looking in $HPUX_BOOTFILE for ipis_s with $LSOF_TMP ... $EC"
echo "yes\\nfields -c struct ipis_s" | $LSOF_TMP $HPUX_BOOTFILE > ${LSOF_TMPC}.out 2>&1
if test $? -ne 0 # {
then
echo ""
echo ""
echo "!!!ERROR!!! $LSOF_TMP failed and produced the following output."
echo ""
cat ${LSOF_TMPC}.out
HPUX_IPC_S_PATCH=fail
else
grep ipis_s ${LSOF_TMPC}.out > /dev/null 2>&1
if test $? -eq 0 # {
then
echo "ipis_s exists."
# See if ipis_msgsqueued is present.
grep ipis_msgsqueued ${LSOF_TMPC}.out > /dev/null 2>&1
if test $? -eq 0 # {
then
HPUX_IPC_S_PATCH=2
else
HPUX_IPC_S_PATCH=1
fi # }
else
echo "ipis_s doesn't exist."
HPUX_IPC_S_PATCH=N
fi # }
fi # }
rm -f ${LSOF_TMPC}.out
else
echo "Can't locate or execute $LSOF_TMP"
echo $EO "ls says: $EC"
ls -ld $LSOF_TMP
HPUX_IPC_S_PATCH=fail
fi # }
fi # }
if test "X$HPUX_IPC_S_PATCH" = "Xfail" # {
then
echo ""
echo "!!!ERROR!!! !!!ERROR!!! !!!ERROR!!! !!!ERROR!!!"
echo "Configure can't use $LSOF_TMP to examine the ipis_s"
echo "structure. You must do that yourself, report the result in"
echo "the HPUX_IPC_S_PATCH environment variable, then repeat the"
echo "Configure step. Consult the Configure script's use of"
echo "$LSOF_TMP and the 00XCONFIG file for information"
echo "on ipis_s testing and the setting of HPUX_IPC_S_PATCH."
echo "!!!ERROR!!! !!!ERROR!!! !!!ERROR!!! !!!ERROR!!!"
echo ""
rm -f $LSOF_HLP
exit 1
fi # }
if test "X$HPUX_IPC_S_PATCH" = "X1" -o "X$HPUX_IPC_S_PATCH" = "X2" # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_IPC_S_PATCH=$HPUX_IPC_S_PATCH"
else
if test "X$HPUX_IPC_S_PATCH" != "Xn" -a "X$HPUX_IPC_S_PATCH" != "XN" # {
then
echo "Illegal value for HPUX_IPC_S_PATCH: $HPUX_IPC_S_PATCH"
rm -f $LSOF_HLP
exit 1
fi # }
fi # }
fi #}
# Manufacture an hpux_mount.h header file with a mount struct in it, as
# required.
if test -r ${LSOF_INCLUDE}/sys/mount.h # {
then
LSOF_TMP1="dialects/${LSOF_DIALECT_DIR}/hpux_mount.h"
rm -f $LSOF_TMP1
echo "#if !defined(MANUFACTURED_HPUX_SYS_MOUNT_H)" > $LSOF_TMP1
echo "#define MANUFACTURED_HPUX_SYS_MOUNT_H" >> $LSOF_TMP1
echo "/* By lsof Configure:" `date` " */" >> $LSOF_TMP1
echo "struct mount" >> $LSOF_TMP1
sed '1,/struct mount/d' ${LSOF_INCLUDE}/sys/mount.h | sed -n '1,/m_dev/p' >> $LSOF_TMP1
echo "};" >> $LSOF_TMP1
echo "#endif" >> $LSOF_TMP1
LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/${LSOF_DIALECT_DIR}"
fi # }
# Test for OnlineJFS.
if test $LSOF_VERS -ge 1100 # {
then
if test "X$HPUX_HASONLINEJFS" = "X" -a -x /sbin/fs/vxfs/subtype # {
then
LSOF_TMP1=`/sbin/fs/vxfs/subtype`
if test "X$LSOF_TMP1" = "Xvxfs3.3"
then
HPUX_HASONLINEJFS="Y"
fi # }
fi # }
if test "X$HPUX_HASONLINEJFS" = "XY" -o "X$HPUX_HASONLINEJFS" = "Xy"
# {
then
LSOF_CFGF="$LSOF_CFGF -DHASONLINEJFS"
fi # }
fi # }
# Test for AFS.
if test -r ${AFS_VICE}/etc/ThisCell # {
then
if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
then
if test -r ./AFSHeaders -a -r ./AFSVersion # {
then
LSOF_AFS="yes"
fi # }
else
if test ! -x ./AFSConfig # {
then
echo "Can't find or execute the AFSConfig script"
rm -f $LSOF_HLP
exit 1
fi # }
./AFSConfig
if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
then
LSOF_AFS="yes"
fi # }
fi # }
if test "X$LSOF_AFS" = "Xyes" # {
then
LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
fi # }
fi # }
else
echo "HP-UX base unrecognized: $HPUX_BASE"
rm -f $LSOF_HLP
exit 1
fi # }
fi # }
;;
# Configure for Linux.
linux)
LSOF_TSTBIGF="-D_FILE_OFFSET_BITS=64"
LSOF_TSTKMEM=0
if test "X$LSOF_CC" = "X" # {
then
LSOF_CC=cc
LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
fi # }
LSOF_DIALECT_DIR=""
if test "X$LSOF_VSTR" = "X" # {
then
LSOF_VSTR=`uname -r`
fi # }
if test "X$LSOF_VERS" = "X" # {
then
# If the Linux version isn't predefined, determine it.
LSOF_VERS=`echo $LSOF_VSTR | sed 's/\./ /g' | awk '{printf "%d%d%03d",\$1,\$2,\$3}'`
fi # }
LSOF_CFGF="$LSOF_CFGF -DLINUXV=$LSOF_VERS"
if test $LSOF_VERS -lt 21072 # {
then
echo ""
echo "!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!"
echo "! !"
echo "! THE /PROC-BASED LSOF SOURCES HAVE NOT BEEN TESTED ON !"
echo "! LINUX KERNELS BELOW 2.1.72, AND MAY NOT WORK ON THIS !"
echo "! KERNEL. IT SHOULD USE A /DEV/KMEM-BASED LSOF. !"
echo "! !"
echo "!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!"
echo ""
else
LSOF_UNSUP=""
fi # }
# If the Linux C library type isn't predefined, determine it.
if test "X$LINUX_CLIB" = "X" # {
then
echo -n "Testing C library type with $LSOF_CC ... "
rm -f ${LSOF_TMPC}.*
cat > $LSOF_TMPC.c << .LSOF_END_HERE_DOC1
#include <features.h>
main() {
#if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
printf("-DGLIBCV=%d\n",__GLIBC__*100+__GLIBC_MINOR__);
#elif defined(__GLIBC__)
printf("-DGLIBCV=%d00\n",__GLIBC__);
#else
printf("\n");
#endif
return(0); }
.LSOF_END_HERE_DOC1
$LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
if test -x ${LSOF_TMPC}.x # {
then
LINUX_CLIB=`${LSOF_TMPC}.x`
LSOF_TMP=$?
else
LINUX_CLIB=""
LSOF_TMP=1
fi # }
rm -f ${LSOF_TMPC}.*
echo "done"
if test $LSOF_TMP -ne 0 # {
then
echo "Cannot determine C library type; assuming it is not glibc."
LINUX_CLIB=""
else
if test "X$LINUX_CLIB" = "X" # {
then
echo "The C library type is not glibc."
else
echo "The C library type is glibc, version \"$LINUX_CLIB\"."
fi # }
fi # }
fi # }
if test "X$LINUX_CLIB" != "X" # {
then
LSOF_CFGF="$LSOF_CFGF $LINUX_CLIB"
fi # }
# Test for IPv6 support.
if test -r ${LSOF_INCLUDE}/netinet/ip6.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
fi # }
# Test for SELinux support.
LSOF_TMP1=0
if test "X$LINUX_HASSELINUX" = "X" # {
then
if test -r ${LSOF_INCLUDE}/selinux/selinux.h # {
then
LSOF_TMP1=1
fi # }
else
if test "X$LINUX_HASSELINUX" = "XY" -o "X$LINUX_HASSELINUX" = "Xy" # {
then
LSOF_TMP1=1
fi # }
fi # }
if test $LSOF_TMP1 -eq 1 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASSELINUX"
LSOF_CFGL="$LSOF_CFGL -lselinux"
fi # }
LSOF_DIALECT_DIR="linux"
LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
;;
# Configure for NetBSD.
netbsd)
if test "X$LSOF_CC" = "X" # {
then
LSOF_CC=cc
LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
fi # }
if test "X$LSOF_VSTR" = "X" # {
then
LSOF_VSTR=`uname -r`
fi # }
if test "X$LSOF_VERS" = "X" # {
then
# Validate the NetBSD version.
case $LSOF_VSTR in # {
1.2*)
LSOF_VERS="1002000"
;;
1.3*)
LSOF_VERS="1003000"
;;
1.4*)
LSOF_VERS="1004000"
;;
1.5*)
LSOF_TSTBIGF=" "
LSOF_VERS="1005000"
;;
1.6*)
LSOF_TSTBIGF=" "
LSOF_VERS="1006000"
;;
1*)
LSOF_VERS="1006000"
echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR"
echo "!!!WARNING!!! Configuring for NetBSD 1.6"
;;
2.0*)
LSOF_TSTBIGF=" "
LSOF_VERS="2000000"
;;
2.99.9)
LSOF_TSTBIGF=" "
LSOF_VERS="2099009"
;;
2.99.10)
LSOF_TSTBIGF=" "
LSOF_VERS="2099010"
;;
2.99.*)
LSOF_TSTBIGF=" "
LSOF_VERS="2099010"
;;
2*)
LSOF_VERS="2000000"
echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR"
echo "!!!WARNING!!! Configuring for NetBSD 2.0"
;;
3.0*)
LSOF_TSTBIGF=" "
LSOF_VERS="3000000"
;;
3.99.*)
LSOF_TSTBIGF=" "
LSOF_VERS="3099000"
;;
3*)
LSOF_VERS="3000000"
echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR"
echo "!!!WARNING!!! Configuring for NetBSD 3.0"
;;
*)
echo "Unknown NetBSD release: $LSOF_VSTR"
echo Assuming NetBSD 1.6
LSOF_VERS="1006000"
;;
esac # }
fi # }
# Test for legal NetBSD version.
case $LSOF_VERS in # {
1002000|1003000|1004000|1005000|1006000)
;;
2000000|2099009|2099010)
;;
3000000|3099000)
;;
*)
echo "Unknown NetBSD version: $LSOF_VERS"
rm -f $LSOF_HLP
exit 1
;;
esac # }
LSOF_CFGF="$LSOF_CFGF -DNETBSDV=$LSOF_VERS"
LSOF_TMP1="-DN_UNIXV=/netbsd"
if test -r ${LSOF_INCLUDE}/util.h # {
then
grep -q getbootfile ${LSOF_INCLUDE}/util.h
if test $? -eq 0 # {
then
LSOF_CFGL="$LSOF_CFGL -lutil"
LSOF_TMP1="-DHASGETBOOTFILE"
fi # }
fi # }
LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
if test -r ${LSOF_INCLUDE}/kvm.h # {
then
grep -q kvm_getproc2 ${LSOF_INCLUDE}/kvm.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASKVMGETPROC2"
fi # }
fi # }
# Here begin the dual tests on header files that may be in $LSOF_INCLUDE
# or $NETBSD_SYS.
#
# Note that $LSOF_TMP1 holds an indicator of the need for -I$NETBSD_SYS.
# LSOF_TMP4 contains a temporary indicator of the use of $NETBSD_SYS.
LSOF_TMP1=0
if test "X$NETBSD_SYS" = "X" # {
then
if test -d /usr/src # {
then
NETBSD_SYS="/usr/src/sys"
else
NETBSD_SYS=$LSOF_INCLUDE
fi # }
fi # }
LSOF_TMP2="nfs/nfsproto.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
LSOF_CFGF="$LSOF_CFGF -DHASNFSPROTO"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
LSOF_TMP2="netinet/ip6.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
else
LSOF_TMP2="netinet/in.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
grep -q IPV6_INRIA_VERSION $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASIPv6 -DHASINRIAIPv6"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
fi # }
fi # }
LSOF_TMP2="miscfs/fdesc/fdesc.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
grep -q Fctty $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
else
LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
fi # }
grep -q fd_link $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
fi # }
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
LSOF_TMP2="miscfs/nullfs/null.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
LSOF_TMP2="miscfs/procfs"
if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
if test -r ${LSOF_TMP3}/procfs.h # {
then
grep -q PFSroot ${LSOF_TMP3}/procfs.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASPROCFS_PFSROOT"
fi # }
fi # }
fi # }
LSOF_TMP2="sys/bufq.h"
LSOF_NBSD_BUFQH=0
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASBUFQ_H"
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
if test $NETBSD_SYS != $LSOF_INCLUDE # {
then
LSOF_CFGF="$LSOF_CFGF -DHASBUFQ_H"
LSOF_NBSD_BUFQH=1
fi # }
fi # }
fi # }
LSOF_TMP2="isofs/cd9660"
if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
else
LSOF_TMP2="fs/cd9660"
if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
fi # }
LSOF_TMP2="msdosfs"
if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=1"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
else
LSOF_TMP2="fs/msdosfs"
if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=2"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
fi # }
LSOF_TMP2="miscfs/kernfs/kernfs.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
grep -q "kt_name;" $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASKERNFS"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
grep -q "*kfs_kt;" $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASKERNFS_KFS_KT"
fi # }
fi # }
fi # }
LSOF_TMP2="sys/namei.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
grep -q nc_vpid $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
fi # }
LSOF_TMP2="ufs/ufs/inode.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
grep -q i_ffs_size $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASI_FFS"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
else
grep -q i_ffs1_size $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASI_FFS1"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
fi # }
grep -q i_ffs_effnlink $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_ffs_effnlink"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
fi # }
LSOF_TMP2="sys/vnode.h"
LSOF_NBSD_PTYFS=0
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "XLSOF_TMP3" != "X" # {
then
grep -q VT_EXT2FS $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASEXT2FS"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
LSOF_TMP2="ufs/ufs/inode.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP5="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP6=0
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP5="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP6=1
else
LSOF_TMP5=""
fi # }
fi # }
if test "X$LSOF_TMP5" != "X" # {
then
grep -q "*e2fs_din" $LSOF_TMP5
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASI_E2FS_PTR"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=$LSOF_TMP6
fi # }
fi # }
fi # }
fi # }
grep -q VT_LFS $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASLFS"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
grep -q VT_PTYFS $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_TMP2="fs/ptyfs/ptyfs.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASPTYFS"
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
if test $NETBSD_SYS != $LSOF_INCLUDE # {
then
LSOF_CFGF="$LSOF_CFGF -DHASPTYFS"
LSOF_NBSD_PTYFS=1
fi # }
fi # }
fi # }
fi # }
if test "X$NETBSD_UVM" = "X" # {
then
grep -q UVM $LSOF_TMP3
if test $? -ne 0 # {
then
egrep -q "v_uvm;|v_uobj;" $LSOF_TMP3
if test $? -eq 0 # {
then
NETBSD_UVM="Y"
fi # }
fi # }
fi # }
fi # }
LSOF_TMP2="nfs/nfsnode.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
grep -q "*n_vattr" $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASNFSVATTRP"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
fi # }
LSOF_TMP2="sys/lockf.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
grep -q vop_advlock_args $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_ADVLOCK_ARGS"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
grep -q lf_lwp $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_LF_LWP"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
fi # }
LSOF_TMP2="sys/lwp.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_LWP_H"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
LSOF_TMP2="sys/filedesc.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
grep -q "^struct cwdinfo {" $LSOF_TMP3
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASCWDINFO"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
fi # }
LSOF_TMP2="sys/pipe.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
LSOF_TMP4=0
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
LSOF_TMP4=1
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_PIPEH"
if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
then
LSOF_TMP1=1
fi # }
fi # }
if test -r ${LSOF_INCLUDE}/sys/statvfs.h # {
then
grep -q '^struct statvfs {' ${LSOF_INCLUDE}/sys/statvfs.h
if test $? -eq 0 # {
then
LSOF_CFGF="$LSOF_CFGF -DHASSTATVFS"
fi # }
fi # }
# Here end the dual NetBSD tests for header files in $LSOF_INCLUDE or
# NETBSD_SYS.
#
# After this LSOF_TMP1 may be reused.
if test $LSOF_TMP1 -eq 1 # {
then
LSOF_DINC="-I$LSOF_INCLUDE -I$NETBSD_SYS"
fi # }
# Build special header files, as required.
rm -rf dialects/n+obsd/include
if test "X$NETBSD_UVM" = "XY" -o "X$NETBSD_UVM" = "Xy" # {
then
mkdir dialects/n+obsd/include
touch dialects/n+obsd/include/opt_uvmhist.h
touch dialects/n+obsd/include/opt_lockdebug.h
LSOF_CFGF="$LSOF_CFGF -DUVM -I`pwd`/dialects/n+obsd/include"
if test -d ${LSOF_INCLUDE}/uvm # {
then
LSOF_CFGF="$LSOF_CFGF -DHAS_UVM_INCL"
fi # }
fi # }
LSOF_TMP2="sys/mount.h"
if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
then
LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
else
if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
then
LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
else
LSOF_TMP3=""
fi # }
fi # }
if test "X$LSOF_TMP3" != "X" # {
then
# Build a local NetBSD netexport.h header file for possible use by
# <msdosfs/msdosfsmount.h>. Make sure CFGL contains a -I for it.
LSOF_TMP1=${LSOF_TMPC}.edscr
LSOF_TMP2=${LSOF_TMPC}.netcred
LSOF_TMP3=${LSOF_TMPC}.netexport
LSOF_TMP4=dialects/n+obsd/include/netexport.h
if test ! -d dialects/n+obsd/include # {
then
mkdir dialects/n+obsd/include
fi # }
rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4
echo "/^struct netcred" > $LSOF_TMP1
echo "1,.-1d" >> $LSOF_TMP1
echo "/^};" >> $LSOF_TMP1
echo "1,.w $LSOF_TMP2" >> $LSOF_TMP1
ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
rm -f $LSOF_TMP1
echo "/^struct netexport" > $LSOF_TMP1
echo "1,.-1d" >> $LSOF_TMP1
echo "/^};" >> $LSOF_TMP1
echo "1,.w $LSOF_TMP3" >> $LSOF_TMP1
ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
echo "/*" > $LSOF_TMP4
echo " * netexport.h" >> $LSOF_TMP4
echo -n " * Created by Configure: " >> $LSOF_TMP4
echo `date` >> $LSOF_TMP4
echo " */" >> $LSOF_TMP4
echo "" >> $LSOF_TMP4
echo "#if !defined(NETEXPORT_H)" >> $LSOF_TMP4
echo "#define NETEXPORT_H" >> $LSOF_TMP4
echo "" >> $LSOF_TMP4
echo "#include <net/radix.h>" >> $LSOF_TMP4
echo "" >> $LSOF_TMP4
if test -r $LSOF_TMP2 # {
then
cat $LSOF_TMP2 >> $LSOF_TMP4
echo "" >> $LSOF_TMP4
fi # }
if test -r $LSOF_TMP3 # {
then
cat $LSOF_TMP3 >> $LSOF_TMP4
fi # }
echo "#endif /* !defined(NETEXPORT_H) */" >> $LSOF_TMP4
rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3
echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
if test $? -ne 0 # {
then
LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
fi # }
fi # }
if test $LSOF_NBSD_BUFQH -eq 1 # {
then
# Make a local copy of $NETBSD_SYS/sys/bufq.h.
if test ! -d dialects/n+obsd/include # {
then
mkdir dialects/n+obsd/include
fi # }
if test ! -d dialects/n+obsd/include/sys # {
then
mkdir dialects/n+obsd/include/sys
fi # }
cp $NETBSD_SYS/sys/bufq.h dialects/n+obsd/include/sys
echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
if test $? -ne 0 # {
then
LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
fi # }
fi # }
if test $LSOF_NBSD_PTYFS -eq 1 # {
then
# Make a local copy of $NETBSD_SYS/sys/fs/ptyfs/.
if test ! -d dialects/n+obsd/include # {
then
mkdir dialects/n+obsd/include
fi # }
if test ! -d dialects/n+obsd/include/fs # {
then
mkdir dialects/n+obsd/include/fs
fi # }
rm -rf dialects/n+obsd/include/fs/ptyfs
mkdir dialects/n+obsd/include/fs/ptyfs
cp $NETBSD_SYS/fs/ptyfs/*.h dialects/n+obsd/include/fs/ptyfs
echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
if test $? -ne 0 # {
then
LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
fi # }
fi # }
LSOF_CFGL="$LSOF_CFGL -lkvm"
LSOF_DIALECT_DIR=n+obsd
;;
# Configure for NeXTSTEP or OPENSTEP.
nextstep|next|ns|nxt|openstep|os)
LSOF_TGT="ns"
LSOF_TSTXO="../lib/snpf.o"
if test "X$LSOF_AR" = "X" # {
then
LSOF_AR="rm -f \${LIB}; ar cr"
fi # }
if test "X$LSOF_VSTR" = "X" # {
then
LSOF_VSTR=`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`
fi # }
if test "X$LSOF_VERS" = "X" # {
then
# If the NeXSTEP version isn't predefined, determine it.
LSOF_VERS=`echo $LSOF_VSTR | sed -n 's/\([0-9]*\)\.\([0-9]*\)/\1\2/p'`
fi # }
if test "X$LSOF_CC" = "X" # {
then
if test -x /usr/local/bin/gcc # {
then
LSOF_CC=/usr/local/bin/gcc
LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
else
LSOF_CC=cc
LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
fi # }
fi # }
echo $LSOF_CC | grep gcc > /dev/null
if test $? -eq 0 # {
then
LSOF_CFGL="$LSOF_CFGL -w"
LSOF_DEBUG="-pedantic -O"
fi # }
LSOF_CFGF="$LSOF_CFGF -DSTEPV=$LSOF_VERS"
LSOF_DIALECT_DIR=n+os
# Test for AFS.
if test -r ${AFS_VICE}/etc/ThisCell # {
then
if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
then
if test -r ./AFSHeaders -a -r ./AFSVersion # {
then
LSOF_AFS="yes"
fi # }
else
if test ! -x ./AFSConfig # {
then
echo "Can't find or execute the AFSConfig script"
rm -f $LSOF_HLP
exit 1
fi # }
./AFSConfig
if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
then
LSOF_AFS="yes"
fi # }
fi # }
if test "X$LSOF_AFS" = "Xyes" # {
then
LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
fi # }
fi # }
;;
# Configure for OpenBSD. (OpenBSD uses NetBSD dialect sources and version
# numbering.
openbsd)
if test "X$LSOF_CC" = "X" # {
then
LSOF_CC=cc
LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
fi # }
if test "X$LSOF_VSTR" = "X" # {
then
LSOF_VSTR=`uname -r`
fi # }
if test "X$LSOF_VERS" = "X" # {
then
# If the OpenBSD version isn't pre-defined, determine it.
case $LSOF_VSTR in # {
1*)
LSOF_VERS=1020
echo "!!!WARNING!!! Unsupported OpenBSD 1.x version: $LSOF_VSTR"
echo "!!!WARNING!!! Configuring for OpenBSD 1.2"
;;
2.5*)
LSOF_VERS=2050
;;
2.6*)
LSOF_VERS=2060
;;
2.7*)
LSOF_TSTBIGF=" "
LSOF_VERS=2070
;;
2.8*)
LSOF_TSTBIGF=" "
LSOF_VERS=2080
;;
2.9*)
LSOF_TSTBIGF=" "
LSOF_VERS=2090
;;
2*)
LSOF_TSTBIGF=" "
LSOF_VERS=2090
echo "!!!WARNING!!! Unsupported OpenBSD 2.x version: $LSOF_VSTR"
echo "!!!WARNING!!! Configuring for OpenBSD 2.9"
;;
3.0*)
LSOF_TSTBIGF=" "
LSOF_VERS=3000
;;
3.1*)
LSOF_TSTBIGF=" "
LSOF_VERS=3010
;;
3.2*)
LSOF_TSTBIGF=" "
LSOF_VERS=3020
;;
3.3*)
LSOF_TSTBIGF=" "
LSOF_VERS=3030
;;
3.4*)
LSOF_TSTBIGF=" "
LSOF_VERS=3040
;;
3.5*)
LSOF_TSTBIGF=" "
LSOF_VERS=3050
;;
3.6*)
LSOF_TSTBIGF=" "
LSOF_VERS=3060
;;
3.7*)
LSOF_TSTBIGF=" "
LSOF_VERS=3070
;;
3.8*)
LSOF_TSTBIGF=" "
LSOF_VERS=3080
;;
3.9*)
LSOF_TSTBIGF=" "
LSOF_VERS=3090
;;
3*)
LSOF_TSTBIGF=" "
LSOF_VERS=3090
echo "!!!WARNING!!! Unsupported OpenBSD 3.x version: $LSOF_VSTR"
echo "!!!WARNING!!! Configuring for OpenBSD 3.9"
;;
*)
echo "Unknown OpenBSD release: $LSOF_VSTR"
echo Assuming OpenBSD 3.9
LSOF_VERS=3090
;;
esac # }
fi # }
# Test for legal OpenBSD version.
case $LSOF_VERS in # {
1020|2050|2060|2070|2080|2090|3000|3010|3020|3030|3040|3050|3060|3070|3080|3090)
;;
*)
echo "Unknown OpenBSD version: $LSOF_VERS"
rm -f $LSOF_HLP
exit 1
;;
esac # }
LSOF_CFGF="$LSOF_CFGF -DOPENBSDV=$LSOF_VERS"
if test -r /dev/ksyms # {
then
LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=/dev/ksyms"
else
LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=/bsd"
fi
if test -r ${LSOF_INCLUDE}/nfs/nfsproto.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASNFSPROTO"
fi # }
if test -r ${LSOF_INCLUDE}/netinet6/in6.h # {
then
LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
fi # }
LSOF_TMP1=0
if test "X$OPENBSD_SYS" = "X" # {
then
OPENBSD_SYS="/sys"