| #!/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="" |
| 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" |
| fi # } |
| if test -r ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h # { |
| then |
| grep -q Fctty ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1" |
| else |
| LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2" |
| fi # } |
| grep -q fd_link ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASFDLINK" |
| fi # } |
| LSOF_TMP1=1 |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/vnode.h # { |
| then |
| grep -q VT_LFS ${LSOF_INCLUDE}/sys/vnode.h |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASLFS" |
| fi # } |
| fi # } |
| if test -r ${LSOF_INCLUDE}/miscfs/nullfs/null.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASNULLFS" |
| else |
| if test -r ${OPENBSD_SYS}/miscfs/nullfs/null.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASNULLFS" |
| LSOF_TMP1=1 |
| fi # } |
| fi # } |
| if test -d ${OPENBSD_SYS}/miscfs/procfs # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASPROCFS" |
| LSOF_TMP1=1 |
| fi # } |
| if test -d ${OPENBSD_SYS}/isofs/cd9660 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1" |
| LSOF_TMP1=1 |
| else |
| if test -d ${OPENBSD_SYS}/fs/cd9660 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=2" |
| LSOF_TMP1=1 |
| fi # } |
| fi # } |
| if test -d ${OPENBSD_SYS}/msdosfs # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=1" |
| LSOF_TMP1=1 |
| else |
| if test -d ${OPENBSD_SYS}/fs/msdosfs # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=2" |
| LSOF_TMP1=1 |
| fi # } |
| fi # } |
| if test -r ${OPENBSD_SYS}/miscfs/kernfs/kernfs.h # { |
| then |
| grep -q "kt_name;" ${OPENBSD_SYS}/miscfs/kernfs/kernfs.h |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASKERNFS" |
| LSOF_TMP1=1 |
| fi # } |
| fi # } |
| if test $LSOF_TMP1 -eq 1 -a "X$LSOF_INCLUDE" != "X$OPENBSD_SYS" # { |
| then |
| LSOF_DINC="-I$LSOF_INCLUDE -I$OPENBSD_SYS" |
| fi # } |
| grep -q VT_EXT2FS ${LSOF_INCLUDE}/sys/vnode.h |
| if test $? -eq 0 # { |
| then |
| LSOF_TMP1=1 |
| if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # { |
| then |
| grep -q "*e2fs_din" ${LSOF_INCLUDE}/ufs/ufs/inode.h |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASI_E2FS_PTR" |
| fi # } |
| grep -q "^#define[ ]i_e2din" ${LSOF_INCLUDE}/ufs/ufs/inode.h |
| if test $? -eq 0 # { |
| then |
| LSOF_TMP1=2 |
| fi # } |
| fi # } |
| LSOF_CFGF="$LSOF_CFGF -DHASEXT2FS=$LSOF_TMP1" |
| 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 # } |
| grep -q dinode_u ${LSOF_INCLUDE}/ufs/ufs/inode.h |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_DINODE_U" |
| fi # } |
| grep -q i_ffs1_size ${LSOF_INCLUDE}/ufs/ufs/inode.h |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASI_FFS1" |
| fi # } |
| grep -q UM_UFS ${LSOF_INCLUDE}/ufs/ufs/inode.h |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_UM_UFS" |
| 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 "X$OPENBSD_UVM" = "X" # { |
| then |
| if test -r ${LSOF_INCLUDE}/sys/vnode.h # { |
| then |
| grep -q UVM ${LSOF_INCLUDE}/sys/vnode.h |
| if test $? -ne 0 # { |
| then |
| egrep -q "v_uvm;|v_uobj;" ${LSOF_INCLUDE}/sys/vnode.h |
| if test $? -eq 0 # { |
| then |
| OPENBSD_UVM="Y" |
| fi # } |
| fi # } |
| fi # } |
| fi # } |
| if test "X$OPENBSD_UVM" = "XY" -o "X$OPENBSD_UVM" = "Xy" # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DUVM" |
| if test -d ${LSOF_INCLUDE}/uvm # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_UVM_INCL" |
| fi # } |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/mount.h -a $LSOF_VERS -lt 3030 # { |
| then |
| |
| # Build a local OpenBSD 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 -r ${LSOF_INCLUDE}/sys/lockf.h # { |
| then |
| grep vop_advlock_args ${LSOF_INCLUDE}/sys/lockf.h > /dev/null |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_ADVLOCK_ARGS" |
| fi # } |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/pipe.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_PIPEH" |
| fi # } |
| LSOF_CFGL="$LSOF_CFGL -lkvm" |
| LSOF_DIALECT_DIR=n+obsd |
| ;; |
| |
| # Configure for SCO OpenServer. |
| |
| osr|osrgcc|sco|scogcc) |
| if test "X$LSOF_RANLIB_SUP" = "X" # { |
| then |
| LSOF_RANLIB="" |
| fi # } |
| if test "X$OSR_CFGF" != "X" # { |
| then |
| |
| # Adopt LSOF_CFGF from OSR_CFGF in environment. |
| |
| LSOF_CFGF=$OSR_CFGF |
| fi # } |
| if test "X$OSR_CFGL" != "X" # { |
| then |
| |
| # Adopt LSOF_CFGL from OSR_CFGL in environment. |
| |
| LSOF_CFGL=$OSR_CFGL |
| fi # } |
| |
| # Evaluate compiler specification. |
| |
| if test "X$LSOF_CC" = "X" # { |
| then |
| if test "X$LSOF_TGT" = "Xosr" -o "X$LSOF_TGT" = "Xsco" # { |
| then |
| LSOF_CC=cc |
| LSOF_TMP1=1 |
| else |
| LSOF_CC=gcc |
| LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'` |
| LSOF_TMP1=2 |
| fi # } |
| else |
| LSOF_TMP1=0 |
| fi # } |
| LSOF_TGT="osr" |
| |
| # Determine version. |
| |
| if test "X$LSOF_VSTR" = "X" # { |
| then |
| LSOF_VSTR="`LANG=C_C.C /bin/uname -X 2>/dev/null | grep Release | sed 's/Release = \(.*\)/\1/'`" |
| fi # } |
| if test "X$LSOF_VERS" = "X" # { |
| then |
| |
| # If the SCO OpenServer release version isn't predefined, determine it. |
| |
| case $LSOF_VSTR in # { |
| 3.2v2.0) |
| LSOF_VERS="20" |
| ;; |
| 3.2v2.1) |
| LSOF_VERS="21" |
| ;; |
| 3.2v4.0) |
| LSOF_VERS="40" |
| ;; |
| 3.2v4.1) |
| LSOF_VERS="41" |
| ;; |
| 3.2v4.2) |
| LSOF_VERS="42" |
| ;; |
| 3.2v5.*) |
| LSOF_TSTLFLG="-lsocket" |
| LSOF_VERS="`echo $LSOF_VSTR | sed 's/3\.2v//; s/\.//g'`" |
| ;; |
| *) |
| echo Unknown SCO OpenServer release: $LSOF_VSTR |
| echo Assuming 3.2.0 or 3.2.1 |
| LSOF_VERS="0" |
| ;; |
| esac # } |
| fi # } |
| |
| # Do SCO OpenServer specific stuff. |
| |
| case $LSOF_VERS in # { |
| 0) |
| if test $LSOF_TMP1 -eq 1 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -nointl" |
| LSOF_DEBUG="-Ox" |
| fi # } |
| LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s" |
| LSOF_MKC="cp" |
| ;; |
| 20) |
| if test $LSOF_TMP1 -eq 1 # { |
| then |
| LSOF_DEBUG="-Ox" |
| fi # } |
| LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s" |
| LSOF_MKC="cp" |
| ;; |
| 21) |
| if test $LSOF_TMP1 -eq 1 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -nointl" |
| LSOF_DEBUG="-Ox" |
| fi # } |
| LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s" |
| LSOF_MKC="cp" |
| ;; |
| 40) |
| if test $LSOF_TMP1 -eq 1 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -nointl" |
| LSOF_DEBUG="-Ox" |
| fi # } |
| LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s" |
| ;; |
| 41) |
| if test $LSOF_TMP1 -eq 1 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -nointl" |
| LSOF_DEBUG="-Ox" |
| fi # } |
| LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s" |
| ;; |
| 42) |
| if test $LSOF_TMP1 -eq 1 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -nointl" |
| LSOF_DEBUG="-Ox" |
| fi # } |
| LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s" |
| ;; |
| 5*) |
| if test $LSOF_TMP1 -eq 1 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -belf" |
| LSOF_DEBUG="-O3 -Kspace" |
| fi # } |
| LSOF_CFGL="$LSOF_CFGL -lsocket" |
| ;; |
| *) |
| echo "Unsupported SCO OpenServer release: $LSOF_VERS" |
| rm -f $LSOF_HLP |
| exit 1 |
| ;; |
| esac # } |
| LSOF_CFGF="$LSOF_CFGF -DOSRV=$LSOF_VERS" |
| if test "X$OSR_STATLSTAT" = "X" # { |
| then |
| echo "Testing libc.a for statlstat" |
| /bin/nm /lib/libc.a | grep statlstat > /dev/null 2>&1 |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_STATLSTAT" |
| fi # } |
| else |
| if test "X$OSR_STATLSTAT" = "XY" -o "X$OSR_STATLSTAT" = "Xy" # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_STATLSTAT" |
| fi # } |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/fs/nfs/rnode.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_NFS" |
| fi # } |
| if test ! -r ${LSOF_INCLUDE}/netdb.h # { |
| then |
| LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/osr/include" |
| fi # } |
| LSOF_DIALECT_DIR=osr |
| ;; |
| |
| # Configure for Sun Solaris, SunPro C and gcc. |
| |
| solaris|solariscc) |
| if test "X$LSOF_RANLIB_SUP" = "X" # { |
| then |
| LSOF_RANLIB="" |
| fi # } |
| if test "X$LSOF_CC" = "X" # { |
| then |
| if test "X$LSOF_TGT" = "Xsolariscc" # { |
| then |
| if test "X$SOLARIS_CCDIR" = "X" # { |
| then |
| SOLARIS_CCDIR="/opt/SUNWspro/bin" |
| fi # } |
| if test -x ${SOLARIS_CCDIR}/cc # { |
| then |
| LSOF_CC=${SOLARIS_CCDIR}/cc |
| else |
| if test -x /opt/SunStudioExpress/bin/cc # { |
| then |
| LSOF_CC=/opt/SunStudioExpress/bin/cc |
| else |
| echo "WARNING: no cc in ${SOLARIS_CCDIR}; using cc without path." |
| LSOF_CC=cc |
| fi # } |
| fi # } |
| LSOF_CCV=`$LSOF_CC -V 2>&1 | sed -n 's/^cc: \(.*\)/\1/p'` |
| else |
| LSOF_CC=gcc |
| LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'` |
| fi # } |
| fi # } |
| LSOF_TGT="solaris" |
| if test "X$LSOF_VSTR" = "X" # { |
| then |
| LSOF_VSTR=`uname -r` |
| fi # } |
| if test "X$LSOF_VERS" = "X" # { |
| then |
| |
| # If the Solaris version isn't predefined, determine it. |
| |
| case $LSOF_VSTR in # { |
| 5.[0-2]) |
| LSOF_VERS="20300" |
| ;; |
| 5.3) |
| LSOF_VERS="20300" |
| ;; |
| 5.4) |
| LSOF_VERS="20400" |
| ;; |
| 5.5) |
| LSOF_VERS="20500" |
| ;; |
| 5.5.1) |
| LSOF_VERS="20501" |
| ;; |
| 5.6*) |
| LSOF_TSTLFLG="-lsocket -lnsl" |
| LSOF_VERS="20600" |
| ;; |
| 5.7*) |
| LSOF_TSTBIGF=" " |
| LSOF_TSTLFLG="-lsocket -lnsl" |
| LSOF_VERS="70000" |
| ;; |
| 5.8*) |
| LSOF_TSTBIGF=" " |
| LSOF_TSTLFLG="-lsocket -lnsl" |
| LSOF_VERS="80000" |
| ;; |
| 5.9*) |
| LSOF_TSTBIGF=" " |
| LSOF_TSTLFLG="-lsocket -lnsl" |
| LSOF_VERS="90000" |
| ;; |
| 5.10*) |
| LSOF_TSTBIGF=" " |
| LSOF_TSTLFLG="-lsocket -lnsl" |
| LSOF_VERS="100000" |
| ;; |
| 5.11*) |
| LSOF_TSTBIGF=" " |
| LSOF_TSTLFLG="-lsocket -lnsl" |
| LSOF_VERS="110000" |
| ;; |
| *) |
| echo Unknown Solaris version: $LSOF_VSTR |
| rm -f $LSOF_HLP |
| exit 1 |
| esac # } |
| fi # } |
| |
| # Clear LSOF_UNSUP message for selected Solaris versions. |
| |
| case $LSOF_VERS in # { |
| 90000|100000|110000) |
| LSOF_UNSUP="" |
| ;; |
| esac # } |
| |
| # Do Solaris version-specific stuff. |
| |
| case $LSOF_VERS in # { |
| 20300) |
| |
| # Solaris patch 101318-32 creates a longer kernel tcp_s structure, |
| # and 101318-45 changes the way the vnode's v_filocks member is |
| # handled. The following code creates a symbol definition for |
| # patch 101318 whose value is the patch level. No symbol is defined |
| # if the patch level is not greater than zero. |
| |
| if test "X$SOLARIS_23P101318" = "X" # { |
| then |
| LSOF_PL=`grep -h SUNW_PATCHID=101318 /var/sadm/pkg/SUNWcar*/pkginfo | sed 's/.*-//' | sort -u | tail -1` |
| if test "X$LSOF_PL" = "X" # { |
| then |
| LSOF_PL=0 |
| fi # } |
| else |
| LSOF_PL=$SOLARIS_23P101318 |
| fi # } |
| if test $LSOF_PL -gt 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DP101318=$LSOF_PL" |
| fi # } |
| ;; |
| 20400) |
| if test "X$SOLARIS_24P101945" = "X" # { |
| then |
| LSOF_PL=`grep -h SUNW_PATCHID=101945 /var/sadm/pkg/SUNWcar*/pkginfo | sed 's/.*-//' | sort -u | tail -1` |
| if test "X$LSOF_PL" = "X" # { |
| then |
| LSOF_PL=0 |
| fi # } |
| else |
| LSOF_PL=$SOLARIS_24P101945 |
| fi # } |
| if test $LSOF_PL -ge 32 # { |
| then |
| if test "X$SOLARIS_24P102303" = "X" # { |
| then |
| LSOF_PL=`grep -h SUNW_PATCHID=102303 /var/sadm/pkg/SUNWhea*/pkginfo | sed 's/.*-//' | sort -u | tail -1` |
| if test "X$LSOF_PL" = "X" # { |
| then |
| LSOF_PL=0 |
| fi # } |
| else |
| LSOF_PL=$SOLARIS_24P102303 |
| fi # } |
| if test $LSOF_PL -ge 2 # { |
| then |
| echo "WARNING: your Solaris 2.4 system appears to have patches 101945-32 and 102303-2" |
| echo " installed. This probably means the NUM_*_VECTORS definitions in" |
| echo " <sys/auxv.h> don't match the ones used to build your kernel. Consult" |
| echo " the Sun Problems section of the 00FAQ file of the lsof distribution" |
| echo " for more information on how to work around the problem." |
| fi # } |
| fi # } |
| ;; |
| 20500|20501) |
| ;; |
| 20600|70000|80000|90000|100000|110000) |
| if test "X$SOLARIS_26PR_GWINDOWS" = "X" # { |
| then |
| rm -f ${LSOF_TMPC}.* |
| echo "#define _KMEMUSER" > ${LSOF_TMPC}.c |
| echo "#include <sys/proc/prdata.h>" >> ${LSOF_TMPC}.c |
| echo "main(){" >> ${LSOF_TMPC}.c |
| echo "enum prnodetype p=PR_GWINDOWS;}" >> ${LSOF_TMPC}.c |
| echo "Testing prdata.h for PR_GWINDOWS, using $LSOF_CC" |
| echo $LSOF_CC | grep gcc > /dev/null |
| if test $? -eq 0 # { |
| then |
| $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1 |
| else |
| $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1 |
| fi # } |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASPR_GWINDOWS" |
| fi # } |
| else |
| if test "X$SOLARIS_26PR_GWINDOWS" = "XY" -o "X$SOLARIS_26PR_GWINDOWS" = "Xy" # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASPR_GWINDOWS" |
| fi # } |
| fi # } |
| if test "X$SOLARIS_26PR_LDT" = "X" # { |
| then |
| rm -f ${LSOF_TMPC}.* |
| echo "#define _KMEMUSER" > ${LSOF_TMPC}.c |
| echo "#include <sys/proc/prdata.h>" >> ${LSOF_TMPC}.c |
| echo "main(){" >> ${LSOF_TMPC}.c |
| echo "enum prnodetype p=PR_LDT;}" >> ${LSOF_TMPC}.c |
| echo "Testing prdata.h for PR_LDT, using $LSOF_CC" |
| echo $LSOF_CC | grep gcc > /dev/null |
| if test $? -eq 0 # { |
| then |
| $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1 |
| else |
| $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1 |
| fi # } |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASPR_LDT" |
| fi # } |
| rm -f ${LSOF_TMPC}.* |
| else |
| if test "X$SOLARIS_26PR_LDT" = "XY" -o "X$SOLARIS_26PR_LDT" = "Xy" # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASPR_LDT" |
| fi # } |
| fi # } |
| if test $LSOF_VERS -ge 70000 # { |
| then |
| |
| # Do tests for Solaris 7 and above. |
| |
| if test "X$SOLARIS_KERNBITS" = "X" # { |
| then |
| SOLARIS_KERNBITS=`/bin/isainfo -kv` |
| fi # } |
| if test "X$SOLARIS_INSTR" = "X" # { |
| then |
| SOLARIS_INSTR=`/bin/isainfo -k` |
| fi #} |
| echo $SOLARIS_KERNBITS | grep 64 > /dev/null |
| if test $? -eq 0 # { |
| then |
| echo $LSOF_CC | grep gcc > /dev/null |
| if test $? -eq 0 # { |
| then |
| |
| # Test gcc for 64 bit support. |
| |
| echo "Testing $LSOF_CC for 64 bit support" |
| rm -f ${LSOF_TMPC}.* |
| echo "main(){}" > ${LSOF_TMPC}.c |
| LSOF_TMP1="" |
| |
| # First try gcc's -m64 option -- it's the most current possibility. |
| |
| $LSOF_CC ${LSOF_TMPC}.c -m64 -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="-m64" |
| fi # } |
| fi # } |
| rm -f ${LSOF_TMPC}.* |
| if test "X$LSOF_TMP1" = "X" # { |
| then |
| |
| # Try using the older -mcpu=v9 option with gcc instead of -m64. |
| |
| echo "main(){}" > ${LSOF_TMPC}.c |
| $LSOF_CC ${LSOF_TMPC}.c -mcpu=v9 -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="-mcpu=v9" |
| fi # } |
| fi # } |
| rm -f ${LSOF_TMPC}.* |
| fi # } |
| if test "X$LSOF_TMP1" = "X" # { |
| then |
| echo "" |
| echo "!!!WARNING!!!=========!!!WARNING!!!=========!!!WARNING!!!" |
| echo "! !" |
| echo "! LSOF NEEDS TO BE CONFIGURED FOR A 64 BIT KERNEL, BUT !" |
| echo "! THIS GCC DOESN'T SUPPORT THE BUILDING OF 64 BIT !" |
| echo "! SOLARIS EXECUTABLES. LSOF WILL BE CONFIGURED FOR A !" |
| echo "! 32 BIT KERNEL. !" |
| echo "! !" |
| echo "!!!WARNING!!!=========!!!WARNING!!!=========!!!WARNING!!!" |
| echo "" |
| else |
| echo "" |
| echo "*********************************" |
| echo "* Configuring for 64 bit kernel *" |
| echo "*********************************" |
| echo "" |
| LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1" |
| LSOF_CINFO="64 bit kernel" |
| LSOF_TSTK64=1 |
| fi # } |
| else |
| |
| # Test Sun compiler for 64 bit support. |
| |
| case $SOLARIS_INSTR in # { |
| amd64*) |
| LSOF_TMP1="amd64" |
| LSOF_TMP2="amd64" |
| ;; |
| sparc*) |
| LSOF_TMP1="v9" |
| LSOF_TMP2="sparcv9" |
| ;; |
| *) |
| LSOF_TMP1="" |
| ;; |
| esac # } |
| if test "X$LSOF_TMP1" != "X" # { |
| then |
| echo "Testing $LSOF_CC for 64 bit $LSOF_TMP2 support" |
| rm -f ${LSOF_TMPC}.* |
| LSOF_TMP3="-xarch=$LSOF_TMP1" |
| echo "main(){}" > ${LSOF_TMPC}.c |
| LSOF_TMP4=`$LSOF_CC ${LSOF_TMPC}.c $LSOF_TMP3 -o ${LSOF_TMPC}.x 2>&1` |
| if test $? -eq 0 # { |
| then |
| /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null |
| if test $? -ne 0 # { |
| then |
| LSOF_TMP3="" |
| else |
| echo "X$LSOF_TMP4" | grep "use -m64" > /dev/null 2>&1 |
| if test $? -eq 0 # { |
| then |
| LSOF_TMP3=-m64 |
| fi # } |
| fi # } |
| fi # } |
| rm -f ${LSOF_TMPC}.* |
| else |
| LSOF_TMP3="" |
| fi # } |
| if test "X$LSOF_TMP3" != "X" # { |
| then |
| echo "" |
| echo "*********************************" |
| echo "* Configuring for 64 bit kernel *" |
| echo "*********************************" |
| echo "" |
| LSOF_CFGF="$LSOF_CFGF $LSOF_TMP3" |
| LSOF_CINFO="64 bit kernel" |
| LSOF_TSTK64=1 |
| else |
| echo "" |
| echo "!!!WARNING!!!==========!!!WARNING!!!==========!!!WARNING!!!" |
| echo "!" |
| echo "! LSOF NEEDS TO BE CONFIGURED FOR A 64 BIT KERNEL, BUT" |
| echo "! THE VERSION OF SUN C AVAILABLE DOESN'T SUPPORT THE" |
| echo "! \"$LSOF_TMP2\" INSTRUCTION SET." |
| echo "!" |
| echo "! LSOF WILL BE CONFIGURED FOR A 32 BIT KERNEL." |
| echo "!" |
| echo "!!!WARNING!!!==========!!!WARNING!!!==========!!!WARNING!!!" |
| echo "" |
| fi # } |
| fi # } |
| else |
| echo "" |
| echo "*********************************" |
| echo "* Configuring for 32 bit kernel *" |
| echo "*********************************" |
| echo "" |
| LSOF_CINFO="32 bit kernel" |
| fi # } |
| fi # } |
| |
| # Do tests specific to Solaris 8 and above. |
| |
| if test $LSOF_VERS -ge 80000 # { |
| then |
| if test -r ${LSOF_INCLUDE}/netinet/ip6.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASIPv6" |
| fi # } |
| fi # } |
| |
| # Do tests specific to Solaris 9 and above. |
| |
| if test $LSOF_VERS -ge 90000 # { |
| then |
| if test -r ${LSOF_INCLUDE}/sys/socketvar.h # { |
| then |
| grep soua_vp ${LSOF_INCLUDE}/sys/socketvar.h > /dev/null 2>&1 |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASSOUXSOUA" |
| fi # } |
| fi # } |
| if test $LSOF_VERS -lt 110000 # { |
| then |
| |
| # Do tests specific to Solaris 9 and 10. |
| |
| if test -r ${LSOF_INCLUDE}/sys/lgrp_user.h # { |
| then |
| if test -r ${LSOF_INCLUDE}/sys/lgrp.h # { |
| then |
| grep lgrp_root ${LSOF_INCLUDE}/sys/lgrp_user.h > /dev/null 2>&1 |
| if test $? -eq 0 # { |
| then |
| grep lgrp_root ${LSOF_INCLUDE}/sys/lgrp.h > /dev/null 2>&1 |
| if test $? -eq 0 |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_LGRP_ROOT_CONFLICT" |
| fi # } |
| fi # } |
| fi # } |
| fi # } |
| fi # } |
| fi # } |
| |
| # Do tests specific to Solaris 10 and above. |
| |
| if test $LSOF_VERS -eq 100000 # { |
| then |
| if test -r ${LSOF_INCLUDE}/sys/socket_proto.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_SOCKET_PROTO_H" |
| fi # } |
| fi # } |
| if test $LSOF_VERS -ge 100000 # { |
| then |
| if test -r ${LSOF_INCLUDE}/inet/ipclassifier.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_IPCLASSIFIER_H" |
| grep conn_ixa ${LSOF_INCLUDE}/inet/ipclassifier.h > /dev/null 2>&1 |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_CONN_NEW" |
| fi #} |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/cred_impl.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_CRED_IMPL_H" |
| |
| # DEBUG -- Begin temporary hack for Solaris 10, build s10_44. |
| |
| grep "c2/audit.h" ${LSOF_INCLUDE}/sys/cred_impl.h > /dev/null |
| if test $? -eq 0 # { |
| then |
| rm -rf `pwd`/dialects/sun/solaris10 |
| mkdir `pwd`/dialects/sun/solaris10 |
| mkdir `pwd`/dialects/sun/solaris10/c2 |
| touch `pwd`/dialects/sun/solaris10/c2/audit.h |
| LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/sun/solaris10" |
| fi # } |
| |
| # DEBUG -- End temporary hack for Solaris 10, build s10_44. |
| |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/vnode.h # { |
| then |
| grep v_path ${LSOF_INCLUDE}/sys/vnode.h > /dev/null 2>&1 |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_V_PATH" |
| LSOF_TSTVPATH=1 |
| fi # } |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/fs/pc_fs.h # { |
| then |
| grep pc_direntpersec ${LSOF_INCLUDE}/sys/fs/pc_fs.h > /dev/null 2>&1 |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_PC_DIRENTPERSEC" |
| fi # } |
| fi # } |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/zone.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASZONES" |
| fi # } |
| |
| # Check for Solaris 10 or higher CTF library and things that depend |
| # on it. |
| |
| if test -r ${LSOF_INCLUDE}/libctf.h # { |
| then |
| LSOF_CTFH=1 |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/fs/zfs.h # { |
| then |
| if test $LSOF_CTFH -eq 1 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_ZFS" |
| LSOF_CTFL=1 |
| else |
| echo "WARNING: ZFS support not enabled; libctf.h missing." |
| fi # } |
| fi # } |
| if test $LSOF_VERS -ge 110000 # { |
| then |
| |
| # Do things specific to Solaris 11 and above. |
| |
| if test $LSOF_CTFH -eq 1 # { |
| then |
| LSOF_CTFL=1 |
| else |
| echo "WARNING: socket support not enabled; libctf.h missing." |
| fi # } |
| rm -rf ./solaris11 |
| mkdir ./solaris11 |
| mkdir ./solaris11/sys |
| touch ./solaris11/sys/extdirent.h |
| echo "./solaris11/sys/extdirent.h created" |
| LSOF_CFGF="$LSOF_CFGF -I`pwd`/solaris11" |
| if test -r ${LSOF_INCLUDE}/sys/mutex.h # { |
| then |
| |
| # Check <sys/mutex.h> 'for pad_mutex_t;'. |
| |
| grep 'pad_mutex_t;' ${LSOF_INCLUDE}/sys/mutex.h > /dev/null 2>&1 |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_PAD_MUTEX" |
| fi # } |
| fi # ) |
| fi # } |
| |
| # If -lctf was added to LSOF_CFGL, define HAS_LIBCTF. |
| |
| if test $LSOF_CTFL -eq 1 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_LIBCTF" |
| LSOF_CFGL="$LSOF_CFGL -lctf" |
| fi # } |
| ;; |
| *) |
| echo "Unsupported Solaris version: $LSOF_VERS" |
| rm -f $LSOF_HLP |
| exit 1 |
| ;; |
| esac # } |
| LSOF_CFGF="$LSOF_CFGF -Dsolaris=$LSOF_VERS" |
| |
| # Test for <utmpx.h> |
| if test -r ${LSOF_INCLUDE}/utmpx.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASUTMPX" |
| fi # } |
| |
| # Test for VSOCK. |
| |
| if test "X$SOLARIS_VSOCK" = "X" # { |
| then |
| rm -f ${LSOF_TMPC}.* |
| echo "#include <sys/vnode.h>" > ${LSOF_TMPC}.c |
| echo "main(){" >> ${LSOF_TMPC}.c |
| echo "enum vtype p=VSOCK;}" >> ${LSOF_TMPC}.c |
| echo "Testing vnode.h for VSOCK, using $LSOF_CC" |
| echo $LSOF_CC | grep gcc > /dev/null |
| if test $? -eq 0 # { |
| then |
| $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1 |
| else |
| $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1 |
| fi # } |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_VSOCK" |
| fi # } |
| rm -f ${LSOF_TMPC}.* |
| else |
| if test "X$SOLARIS_VSOCK" = "XY" -o "X$SOLARIS_VSOCK" = "Xy" # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_VSOCK" |
| 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 |
| if test "X$SUN_AFSAPATHDEF" = "X" # { |
| then |
| ls /usr/vice/etc/modload/libafs > /dev/null 2>&1 |
| if test $? -ne 0 # { |
| then |
| LSOF_TMP1=`ls /usr/vice/etc/modload/libafs* 2>/dev/null | wc -l` |
| if test $LSOF_TMP1 -ne 0 # { |
| then |
| SUN_AFSAPATHDEF=`ls -t /usr/vice/etc/modload/libafs* | head -1` |
| fi # } |
| fi # } |
| fi # } |
| if test "X$SUN_AFSAPATHDEF" != "X" # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DAFSAPATHDEF=\\\"$SUN_AFSAPATHDEF\\\"" |
| fi # } |
| 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 # } |
| |
| # Test for VxFS. |
| # |
| # If the location of the VxFS header files hasn't been defined in the |
| # environment, establish their likely locations. |
| |
| LSOF_TMP2=$SOLARIS_VXFSINCL |
| if test -d /opt/VRTS/include # { |
| then |
| LSOF_TMP2="$LSOF_TMP2 /opt/VRTS/include" |
| fi # } |
| if test -d /opt/VRTSvxfs/include # { |
| then |
| LSOF_TMP2="$LSOF_TMP2 /opt/VRTSvxfs/include" |
| fi # } |
| LSOF_TMP1=0 |
| for i in $LSOF_TMP2 # { |
| do |
| if test -r ${i}/vxfsutil.h # { |
| then |
| LSOF_TMP1=1 |
| SOLARIS_VXFSINCL=$i |
| break |
| fi # } |
| done # } |
| if test $LSOF_TMP1 -eq 1 # { |
| then |
| |
| # The VxFS header files are for VxFS version 3.4 or above. Enable VxFS |
| # for those versions. |
| |
| LSOF_CFGF="$LSOF_CFGF -DHASVXFS -DHASVXFSUTIL -I$SOLARIS_VXFSINCL" |
| |
| # Determine which libvxfsutil.a is required -- 32 or 64 bit. |
| |
| LSOF_TMP2="" # assume 32 bit |
| echo "X$LSOF_CINFO" | grep "^X64" > /dev/null 2>&1 |
| if test $? -eq 0-a "X$SOLARIS_INSTR" != "X" # { |
| then |
| case $SOLARIS_INSTR in # { |
| amd64*) |
| LSOF_TMP2="/amd64" |
| ;; |
| sparcv9*) |
| LSOF_TMP2="/sparcv9" |
| ;; |
| esac # } |
| fi # } |
| |
| # See if the correct library has been specified and exists. |
| |
| if test "X$SOLARIS_VXFSLIB" = "X" # { |
| then |
| SOLARIS_VXFSLIB=`dirname $SOLARIS_VXFSINCL`/lib |
| fi # } |
| LSOF_TMP3="${SOLARIS_VXFSLIB}${LSOF_TMP2}/libvxfsutil.a" |
| if test ! -r $LSOF_TMP3 # { |
| then |
| echo "!!!FATAL: no VxFS $LSOF_TMP3" |
| exit 1 |
| fi # } |
| LSOF_CFGL="$LSOF_CFGL -L$SOLARIS_VXFSLIB${LSOF_TMP2} -lvxfsutil -ldl" |
| |
| # See if the library has the Reverse Name Lookup (RNL) function. |
| |
| nm $LSOF_TMP3 | grep vxfs_inotopath > /dev/null 2>&1 |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASVXFSRNL -DHASVXFSDNLC" |
| fi # } |
| else |
| |
| # See if there are VxFS header files for VxFS versions below 3.4. |
| |
| if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h # { |
| then |
| |
| # Define VxFS for VxFS versions below 3.4. Make additional header |
| # file tests. |
| |
| LSOF_CFGF="$LSOF_CFGF -DHASVXFS" |
| if test -r ${LSOF_INCLUDE}/sys/fs/vx_fs.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASVXFS_FS_H" |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/fs/vx_sol.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASVXFS_SOL_H" |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/fs/vx_machdep.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASVXFS_MACHDEP_H" |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/fs/vx_solaris.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASVXFS_SOLARIS_H" |
| grep "off32_t;" ${LSOF_INCLUDE}/sys/fs/vx_machdep.h > /dev/null |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASVXFS_OFF32_T" |
| fi # } |
| grep "off64_t;" ${LSOF_INCLUDE}/sys/fs/vx_solaris.h > /dev/null |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASVXFS_OFF64_T" |
| fi # } |
| grep "vx_u64_t;" ${LSOF_INCLUDE}/sys/fs/vx_solaris.h > /dev/null |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASVXFS_U64_T" |
| fi # } |
| fi # } |
| egrep "struct[ ]vx_inode[ ]\{" ${LSOF_INCLUDE}/sys/fs/vx_inode.h > /dev/null |
| # } (dummy '}' to match '{' in above egrep) |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASVXFS_VX_INODE" |
| fi # } |
| fi # } |
| fi # } |
| |
| # Set libraries and dialect subdirectory. |
| |
| LSOF_CFGL="$LSOF_CFGL -lkvm -lelf -lsocket -lnsl" |
| LSOF_DIALECT_DIR=sun |
| |
| # Set local-specific stuff. |
| |
| if test "X$LSOF_LOCALSUFFIX" = "XLOCAL" # { |
| then |
| LSOF_DOC="\${DESTDIR}/usr/local/man" |
| fi # } |
| ;; |
| |
| # Configure for SCO|Caldera OpenServer Release 6.0.0 and UnixWare. |
| |
| osr6|unixware|uw) |
| LSOF_TMP1=$LSOF_TGT |
| LSOF_TGT="uw" |
| if test "X$LSOF_RANLIB_SUP" = "X" # { |
| then |
| LSOF_RANLIB="" |
| fi # } |
| if test "X$LSOF_VSTR" = "X" # { |
| then |
| LSOF_VSTR=`uname -v` |
| fi # } |
| if test "X$LSOF_VERS" = "X" # { |
| then |
| |
| # If the Openserver Release 6.0.0 or UnixWare version isn't pre-defined, |
| # determine it. |
| |
| LSOF_VERS=`echo $LSOF_VSTR | sed 's/\([0-9\.]*\).*/\1/; s/\./ /g' | awk '{printf "%d%02d%02d\n", $1, $2, $3;}'` |
| fi # } |
| if test $LSOF_TMP1 = "osr6" # { |
| then |
| LSOF_CINFO="OSR6 support via UnixWare sources" |
| |
| # Convert the OpenServer Release 6.0.0 version number to a UnixWare one. |
| |
| case $LSOF_VERS in # { |
| 60000) |
| LSOF_VERS=70104 |
| ;; |
| *) |
| echo "Unknown OpenServer Release version: $LSOF_VERS" |
| rm -f $LSOF_HLP |
| exit 1 |
| esac # } |
| fi # } |
| LSOF_CFGF="$LSOF_CFGF -DUNIXWAREV=$LSOF_VERS" |
| |
| # Do OpenServer Release 6.0.0 and UnixWare version-specific stuff. |
| |
| case $LSOF_VERS in # { |
| 20100|20101|20102|20103) |
| if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASVXFS" |
| fi # } |
| LSOF_CFGL="$LSOF_CFGL -lsocket -lnsl -lelf -lgen" |
| ;; |
| 70000|70001|70100|70101|70103|70104) |
| LSOF_TSTBIGF=" " |
| LSOF_TSTLFLG="-lsocket -lnsl" |
| if test $LSOF_VERS -lt 70103 # { |
| then |
| LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/uw/uw7" |
| else # $LSOF_VERS -ge 70103 |
| |
| # Process 7.1.3 and above. |
| |
| if test -r ${LSOF_INCLUDE}/netinet/in6.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASIPv6" |
| fi # } |
| if test $LSOF_VERS -ge 70104 # { |
| then |
| |
| # Process 7.1.4 and above. |
| |
| LSOF_TMP1=0 |
| if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # { |
| then |
| grep INKERNEL ${LSOF_INCLUDE}/netinet/in_pcb.h > /dev/null 2>&1 |
| if test $? -eq 0 # { |
| then |
| LSOF_TMP1=1 |
| fi # } |
| fi # } |
| if test $LSOF_TMP1 -eq 0 -a -r ${LSOF_INCLUDE}/netinet/tcp_var.h # { |
| then |
| grep INKERNEL ${LSOF_INCLUDE}/netinet/tcp_var.h > /dev/null 2>&1 |
| if test $? -eq 0 # { |
| then |
| LSOF_TMP1=1 |
| fi # } |
| fi # } |
| if test $LSOF_TMP1 -eq 1 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_INKERNEL" |
| fi # } |
| fi # } |
| fi # } |
| if test ! -r ${LSOF_INCLUDE}/vm/swap.h -a -r ${LSOF_INCLUDE}/sys/swap.h # { |
| then |
| (cd ./dialects/uw/uw7/vm; rm -f swap.h; ln -s ${LSOF_INCLUDE}/sys/swap.h swap.h) |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/fs/vx_gemini.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASVXFS" |
| fi # } |
| LSOF_CFGL="$LSOF_CFGL -lsocket -lnsl -lelf -lgen" |
| /bin/pkginfo 2> /dev/null | grep -i patch | grep -i ptf7038 > /dev/null |
| if test -r ${LSOF_INCLUDE}/sys/file.h # { |
| then |
| grep f_open ${LSOF_INCLUDE}/sys/file.h > /dev/null |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_F_OPEN" |
| fi # } |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h # { |
| then |
| grep "cdfs_LogSecShift;" ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h > /dev/null 2>&1 |
| if test $? -eq 0 # { |
| then |
| LSOF_TMP=`grep "cdfs_LogSecShift;" ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h | sed 's/^[ ]*\([^ ]*\).*/\1/'` |
| if test "X$LSOF_TMP" != "X" # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DTYPELOGSECSHIFT=$LSOF_TMP" |
| fi # } |
| fi # } |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/proc.h # { |
| then |
| grep p_pgid ${LSOF_INCLUDE}/sys/proc.h > /dev/null |
| if test $? -eq 0 # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_P_PGID" |
| fi # } |
| fi # } |
| if test $LSOF_VERS -ge 70101 # { |
| then |
| |
| # Do OpenServer Release 6.0.0 and UnixWare 7.1.1 and above tests, as |
| # required. |
| |
| if test "X$UW_HAS_NSC" = "X" # { |
| then |
| UW_HAS_NSC=N |
| if test -x /bin/node_self # { |
| then |
| /bin/node_self > /dev/null 2>&1 |
| if test $? -eq 0 # { |
| then |
| UW_HAS_NSC=Y |
| fi # } |
| fi # } |
| fi # } |
| if test "X$UW_HAS_NSC" = "XY" -o "X$UW_HAS_NSC" = "Xy" # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_UW_NSC" |
| LSOF_CFGL="$LSOF_CFGL -lcluster" |
| fi # } |
| if test -r ${LSOF_INCLUDE}/sys/nsc_synch.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_UW_CFS" |
| fi # } |
| fi # } |
| ;; |
| *) |
| echo Unsupported UnixWare version: `uname -v` |
| rm -f $LSOF_HLP |
| exit 1 |
| ;; |
| esac # } |
| if test -r ${LSOF_INCLUDE}/sys/fs/xnamnode.h # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHASXNAMNODE" |
| fi # } |
| LSOF_DIALECT_DIR=uw |
| ;; |
| |
| # Handle unknown abbreviation. |
| |
| *) |
| echo "Can't configure for $LSOF_TGT." |
| cat $LSOF_HLP |
| rm -f $LSOF_HLP |
| exit 1 |
| ;; |
| |
| # End of LSOF_TGT cases |
| |
| esac # } |
| |
| # Do an inventory of the distribution, as required. |
| |
| if test "X$LSOF_SCRIPT_CALL" = "Xyes" -a ! -r ./.neverInv # { |
| then |
| if test ! -f ./Inventory # Want -x, but Ultrix doesn't grok it. # { |
| then |
| echo "Can't find Inventory script." |
| rm -f $LSOF_HLP |
| exit 1 |
| fi # } |
| ./Inventory |
| fi # } |
| |
| # Make sure target directory exists. |
| |
| if test ! -d ./dialects/$LSOF_DIALECT_DIR # { |
| then |
| echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR doesn't exist." |
| rm -f $LSOF_HLP |
| exit 1 |
| fi # } |
| |
| # Make sure $LSOF_MK exists in the target directory. |
| |
| if test ! -r ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK # { |
| then |
| echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK doesn't exist." |
| rm -f $LSOF_HLP |
| exit 1 |
| fi # } |
| |
| # Make sure $LSOF_MKF, $LSOF_SPMKF, or $LSOF_MKF.$LSOF_LOCALSUFFIX) exists |
| # in the target directory. |
| |
| if test "X$LSOF_SPMKF" != "X" # { |
| then |
| LSOF_TMP1=$LSOF_SPMKF |
| else |
| LSOF_TMP1=$LSOF_MKF |
| fi # } |
| if test "X$LSOF_LOCALSUFFIX" != "X" # { |
| then |
| LSOF_REST=$LSOF_TMP1.$LSOF_LOCALSUFFIX |
| else |
| LSOF_REST=$LSOF_TMP1 |
| fi # } |
| if test ! -r ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST # { |
| then |
| echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST doesn't exist." |
| rm -f $LSOF_HLP |
| exit 1 |
| fi # } |
| |
| # If this is FreeBSD, make sure $LSOF_FBSD_ZFS_MKF exists. |
| |
| if test $LSOF_FBSD_ZFS -eq 1 # { |
| then |
| if test ! ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF # { |
| then |
| echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF doesn't exist." |
| rm -f $LSOF_HLP |
| exit 1 |
| fi # } |
| fi # }} |
| |
| # Make sure $LSOF_VF exists. Extract the version number from it. |
| |
| if test ! -r $LSOF_VF # { |
| then |
| echo "Version number file, ./$LSOF_VF, doesn't exist." |
| rm -f $LSOF_HLP |
| exit 1 |
| else |
| LSOF_VN=`sed "s/.ds VN \(.*\)/\1/" < $LSOF_VF` |
| fi # } |
| |
| # Clean up in advance. |
| |
| rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF $LSOF_TSTCFLG $LSOF_TSTCC |
| rm -f $LSOF_TSTXOC $LSOF_TSTLFF |
| echo "rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF $LSOF_TSTCFLG" |
| echo "rm -f $LSOF_TSTCC $LSOF_TSTXOC $LSOF_TSTLFF" |
| |
| # Make sure there's a C compiler name. |
| |
| if test "X$LSOF_CC" = "X" # { |
| then |
| LSOF_CC=cc |
| fi # } |
| |
| # Do common feature analyses. |
| |
| # Check for localtime(3) and strftime(3). |
| |
| rm -f ${LSOF_TMPC}.* |
| cat > $LSOF_TMPC.c << .LSOF_END_HERE_DOC2 |
| #include <time.h> |
| main(){ |
| time_t cl; |
| struct tm *ts; |
| char bf[32]; |
| if ((cl = time(NULL)) == (time_t)-1) |
| return(1); |
| ts = localtime(&cl); |
| if (strftime(bf, sizeof(bf), "%D", ts) != 8) |
| return(1); |
| if ((bf[2] != '/') || (bf[5] != '/')) |
| return (1); |
| return(0); |
| } |
| .LSOF_END_HERE_DOC2 |
| echo $EO "Testing C library for localtime() and strftime(), using $LSOF_CC ... $EC" |
| $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1 |
| if test -x ${LSOF_TMPC}.x # { |
| then |
| ./${LSOF_TMPC}.x > /dev/null 2>&1 |
| if test $? -eq 0 || test "X$LINUX_CLIB" != "X" # } |
| then |
| LSOF_CFGF="$LSOF_CFGF -DHAS_STRFTIME" |
| echo "present" |
| else |
| echo "unusable" |
| fi # } |
| else |
| echo "missing" |
| fi # } |
| rm -f ${LSOF_TMPC}.[cox] |
| |
| # Make the dialect sources. |
| |
| if test "X$LSOF_MKC" = "X" # { |
| then |
| LSOF_MKC="ln -s" |
| fi # } |
| LSOF_MKC=$LSOF_MKC ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK $LSOF_TGT $LSOF_VERS |
| |
| # Make $LSOF_MKFC and ${LSOF_LIB}/$LSOF_LIBMKF. |
| |
| echo "# $LSOF_TGT Makefile for lsof revision $LSOF_VN" > $LSOF_MKFC |
| echo "" >> $LSOF_MKFC |
| echo "CC= $LSOF_CC" >> $LSOF_MKFC |
| if test "X$LSOF_CCV" != "X" # { |
| then |
| echo "" >> $LSOF_MKFC |
| echo "CCV= $LSOF_CCV" >> $LSOF_MKFC |
| fi # } |
| if test "X$LSOF_LIB_NO" = "X" # { |
| then |
| echo "" >> $LSOF_MKFC |
| echo "LIB= ${LSOF_LIB}/liblsof.a" >> $LSOF_MKFC |
| fi # } |
| if test "X$LSOF_LD" != "X" # { |
| then |
| echo "" >> $LSOF_MKFC |
| echo "LD= $LSOF_LD" >> $LSOF_MKFC |
| fi # } |
| if test "X$LSOF_CINFO" != "X" # { |
| then |
| echo "" >> $LSOF_MKFC |
| echo "CINFO= $LSOF_CINFO" >> $LSOF_MKFC |
| fi # } |
| if test "X$LSOF_CFGD" != "X" # { |
| then |
| echo "CFGD= $LSOF_CFGD" >> $LSOF_MKFC |
| fi # } |
| if test "X$LSOF_CFGDN" != "X" # { |
| then |
| echo "CFGDN= $LSOF_CFGDN" >> $LSOF_MKFC |
| fi # } |
| if test "X$LSOF_ARCH" != "X" # { |
| then |
| LSOF_CFGF="$LSOF_CFGF -DLSOF_ARCH=\\\"$LSOF_ARCH\\\"" |
| fi # } |
| if test "X$LSOF_VSTR" != "X" # { |
| then |
| LSOF_TMP=`echo $LSOF_VSTR | sed 's/(/\\\\(/g' | sed 's/)/\\\\)/g'` |
| LSOF_CFGF="$LSOF_CFGF -DLSOF_VSTR=\\\"$LSOF_TMP\\\"" |
| fi # } |
| echo "" >> $LSOF_MKFC |
| echo "CFGF= $LSOF_CFGF" >> $LSOF_MKFC |
| if test "X$LSOF_LIB_NO" = "X" # { |
| then |
| echo "" >> $LSOF_MKFC |
| echo "CFGL= $LSOF_FCFGL -L./$LSOF_LIB -llsof $LSOF_CFGL" >> $LSOF_MKFC |
| fi # } |
| echo "" >> $LSOF_MKFC |
| if test "X$LSOF_DEBUG" = "X" # { |
| then |
| LSOF_DEBUG="-O" |
| else |
| if test "X$LSOF_DEBUG" = "XNo-O" # { |
| then |
| LSOF_DEBUG="" |
| fi # } |
| fi # } |
| echo "DEBUG= $LSOF_DEBUG" >> $LSOF_MKFC |
| if test "X$LSOF_DINC" != "X" # { |
| then |
| echo "" >> $LSOF_MKFC |
| echo "DINC= $LSOF_DINC" >> $LSOF_MKFC |
| fi # } |
| if test "X$LSOF_DOC" != "X" # { |
| then |
| echo "" >> $LSOF_MKFC |
| echo "DOC=$LSOF_DOC" >> $LSOF_MKFC |
| fi # } |
| if test "X$LSOF_DISTRIBKVM" != "X" -a "X$LSOF_DISTRIBKVM" != "XKVM" # { |
| then |
| echo "" >> $LSOF_MKFC |
| echo "KVM= $LSOF_DISTRIBKVM" >> $LSOF_MKFC |
| fi # } |
| rm -f ${LSOF_LIB}/$LSOF_LIBMKF |
| if test "X$LSOF_LIB_NO" = "X" # { |
| then |
| cp $LSOF_MKFC ${LSOF_LIB}/$LSOF_LIBMKF |
| fi # } |
| cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST >> $LSOF_MKFC |
| if test "X$LSOF_LIB_NO" = "X" # { |
| then |
| |
| # Put archiving and optional randomizing strings in ${LSOF_LIB}/$LSOF_LIBMKF. |
| # |
| # Process optional CFLAGS override. |
| # |
| # Add the library Makefile skeleton section. |
| |
| echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF |
| if test "X$LSOF_AR" = "X" # { |
| then |
| echo "AR= ar cr \${LIB} \${OBJ}" >> ${LSOF_LIB}/$LSOF_LIBMKF |
| else |
| echo "AR= $LSOF_AR \${LIB} \${OBJ}" >> ${LSOF_LIB}/$LSOF_LIBMKF |
| fi # } |
| if test "X$LSOF_RANLIB" != "X" # { |
| then |
| echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF |
| echo "RANLIB= $LSOF_RANLIB \${LIB}" >> ${LSOF_LIB}/$LSOF_LIBMKF |
| fi # } |
| echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF |
| if test "X$LSOF_CFLAGS_OVERRIDE" = "X" # { |
| then |
| echo "CFLAGS= \${CDEFS} \${INCL} \${DEBUG}" >> ${LSOF_LIB}/$LSOF_LIBMKF |
| else |
| echo "override CFLAGS=\${CDEFS} \${INCL} \${DEBUG}" >> ${LSOF_LIB}/$LSOF_LIBMKF |
| fi # } |
| echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF |
| cat ${LSOF_LIB}/$LSOF_LIBMKFSKEL >> ${LSOF_LIB}/$LSOF_LIBMKF |
| echo $LSOF_MKFC and ${LSOF_LIB}/$LSOF_LIBMKF created. |
| else |
| echo $LSOF_MKFC created. |
| fi # } |
| |
| # If this is FreeBSD, create $LSOF_FBSD_ZFS_MKF. |
| |
| if test $LSOF_FBSD_ZFS -eq 1 # { |
| then |
| rm -f $LSOF_FBSD_ZFS_MKF |
| echo "# $LSOF_TGT ZFS Makefile for lsof revision $LSOF_VN" > $LSOF_FBSD_ZFS_MKF |
| echo "" >> $LSOF_FBSD_ZFS_MKF |
| echo "CC= $LSOF_CC" >> $LSOF_FBSD_ZFS_MKF |
| echo "" >> $LSOF_FBSD_ZFS_MKF |
| echo "CFLAGS= $LSOF_FBSD_ZFS_CFGF" >> $LSOF_FBSD_ZFS_MKF |
| echo "" >> $LSOF_FBSD_ZFS_MKF |
| if test "X$LSOF_DEBUG" = "X" # { |
| then |
| LSOF_DEBUG="-O" |
| else |
| if test "X$LSOF_DEBUG" = "XNo-O" # { |
| then |
| LSOF_DEBUG="" |
| fi # } |
| fi # } |
| echo "DEBUG= $LSOF_DEBUG" >> $LSOF_FBSD_ZFS_MKF |
| echo "" >> $LSOF_FBSD_ZFS_MKF |
| echo "OPENSOLARIS= $LSOF_FBSD_ZFS_SYS" >> $LSOF_FBSD_ZFS_MKF |
| echo "" >> $LSOF_FBSD_ZFS_MKF |
| cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF >> $LSOF_FBSD_ZFS_MKF |
| echo $LSOF_FBSD_ZFS_MKF created. |
| fi # } |
| |
| # Create test cc file. |
| |
| echo "$LSOF_CC" > $LSOF_TSTCC |
| echo "$LSOF_TSTCC created" |
| |
| # Create test cflags file. |
| |
| echo "-DLT_DIAL_$LSOF_TGT" > $LSOF_TSTCFLG |
| if test "X$LSOF_TSTBIGF" != "X" # { |
| then |
| echo "-DLT_BIGF" >> $LSOF_TSTCFLG |
| if test "X$LSOF_TSTBIGF" != "X " # { |
| then |
| for i in $LSOF_TSTBIGF # { |
| do |
| echo "$i" >> $LSOF_TSTCFLG |
| done # } |
| fi # } |
| fi # } |
| if test "X$LSOF_TSTDFLG" != "X" # { |
| then |
| for i in $LSOF_TSTDFLG # { |
| do |
| echo "$i" >> $LSOF_TSTCFLG |
| done # } |
| fi # } |
| echo $LSOF_CC | grep gcc > /dev/null 2>&1 |
| if test $? -eq 0 # { |
| then |
| echo "-DLT_GCC" >> $LSOF_TSTCFLG |
| else |
| echo "-DLT_CC" >> $LSOF_TSTCFLG |
| fi # r} |
| if test $LSOF_TSTKMEM -eq 1 # { |
| then |
| echo "-DLT_KMEM" >> $LSOF_TSTCFLG |
| fi # } |
| if test $LSOF_TSTK64 -eq 1 # { |
| then |
| echo "-DLT_K64" >> $LSOF_TSTCFLG |
| fi # } |
| echo "-DLT_VERS=$LSOF_VERS" >> $LSOF_TSTCFLG |
| if test $LSOF_TSTVPATH -eq 1 # { |
| then |
| echo "-DLT_VPATH" >> $LSOF_TSTCFLG |
| fi # } |
| echo "$LSOF_TSTCFLG created" |
| |
| # Create tests loader flags file. |
| |
| echo $LSOF_TSTLFLG > $LSOF_TSTLFF |
| echo "$LSOF_TSTLFF created" |
| |
| # Create test extra objects file. |
| |
| echo "$LSOF_TSTXO" > $LSOF_TSTXOC |
| echo "$LSOF_TSTXOC created" |
| |
| rm -f $LSOF_HLP |
| |
| # Call Customize, as required. |
| |
| if test "X$LSOF_SCRIPT_CALL" = "Xyes" -a ! -r ./.neverCust # { |
| then |
| if test ! -f ./Customize # { Want -x, but Ultrix doesn't grok it. |
| then |
| echo "Can't find Customize script." |
| exit 1 |
| fi # } |
| ./Customize $LSOF_DIALECT_DIR |
| fi # } |
| |
| # Issue unsupported warning, as appropriate. |
| |
| if test "X$LSOF_UNSUP" != "X" # { |
| then |
| echo "$LSOF_UNSUP" |
| fi #} |
| exit 0 |