| #!/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.160 2011/09/27 17:27:20 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_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_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.*) # Mac OS X 10.6 (SnowLeopard) |
| LSOF_VERS=1000 |
| ;; |
| *) |
| echo Unknown Darwin release: `uname -r` |
| echo Assuming Darwin 10.0 |
| LSOF_VERS=1000 |
| ;; |
| 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|1000) |
| LSOF_CFGF="$LSOF_CFGF -DHASIPv6" |
| LSOF_TMP1="" |
| LSOF_UNSUP="" |
| LSOF_TSTBIGF=" " # enable LTbigf test |
| ;; |
| *) |
| 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.4*) |
| LSOF_TSTBIGF=" " |
| LSOF_VERS=7040 |
| ;; |
| 7*) |
| LSOF_VERS=7000 |
| echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR" |
| echo "!!!WARNING!!! Configuring for FreeBSD 7.0" |
| ;; |
| 8.0*) |
| LSOF_TSTBIGF=" " |
| LSOF_VERS=8000 |
| ;; |
| 8.1*) |
| LSOF_TSTBIGF=" " |
| LSOF_VERS=8010 |
| ;; |
| 8.2*) |
| LSOF_TSTBIGF=" " |
| LSOF_VERS=8020 |
| ;; |
| 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|6040|8000|8020|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|7040|8000|8010|8020|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" |
| grep -q z_phys ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h |
| if test $? -eq 0 # { |
| then |
| LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_Z_PHYS" |
| fi # } |
| 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 # } |
| if test -r ${LSOF_INCLUDE}/sys/conf.h # { |
| then |
| grep -q 'doadump(boolean_t)' ${LSOF_INCLUDE}/sys/conf.h |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DNEEDS_BOOLEAN_T" |
| 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 # } |
| if test "X$LINUX_CONF_CC" = "X" # { |
| then |
| LINUX_CONF_CC=$LSOF_CC |
| fi #} |
| LSOF_DIALECT_DIR="" |
| if test "X$LINUX_INCL" = "X" # { |
| then |
| LINUX_INCL=/usr/include |
| else |
| LSOF_DINC="$LSOF_DINC -I${LINUX_INCL}" |
| fi # } |
| if test "X$LINUX_VERSION_CODE" = "X" # { |
| then |
| if test -r "$LINUX_INCL/linux/version.h" # { |
| then |
| LINUX_VERSION_CODE=`cat $LINUX_INCL/linux/version.h | sed -n 's/.\+LINUX_VERSION_CODE \([[:digit:]]\+\)$/\1/p'` |
| fi # } |
| fi # } |
| LSOF_VSTR=`echo $LINUX_VERSION_CODE | perl -e '$version=<STDIN>; chomp($version); printf("%d.%d.%d\n", ($version >> 16) & 0xFF, ($version >> 8) & 0xFF, $version & 0xFF);'` |
| 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 $LINUX_CONF_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 |
| $LINUX_CONF_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 <rpc/rpc.h>. |
| |
| if ! test -r ${LSOF_INCLUDE}/rpc/rpc.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASNORPC_H" |
| 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="" |
|