3 # Configure -- configure lsof
5 # See the LSOF_HLP here document for usage.
7 # See the lsof distribution file 00XCONFIG for information on setting
8 # environment variables for cross-configuring lsof -- e.g., for configuring
9 # for Linux 2.3 on a machine running 2.4. Marty Leisner suggested this
10 # support and provided the Linux Configure stanza modifications.
12 # When configuring for a particular dialect, <target-dialect>, this script
13 # requires that the subdirectory ./dialects/<target-dialect> contain a
14 # shell script, named $LSOF_MK, that places its source modules in this
17 # $Id: Configure,v 1.162 2013/01/02 17:13:48 abe Exp $
19 # LSOF_CFLAGS_OVERRIDE=1 may be introduced through the environment to cause
20 # the library Makefile's CFLAGS definition to override any in the
23 # LSOF_DISTRIBKVM may be introduced through the environment to specify the
24 # Sun4 kernel virtual memory type of distrib.cf
26 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"
27 LSOF_HLP_BASE=./cfghlp.
28 LSOF_HLP=${LSOF_HLP_BASE}$$
30 # LSOF_LOCALSUFFIX may be introduced through the environment to select a local
31 # version of a Makefile. It is used as a suffix to $LSOF_MKF.
33 # LSOF_MAKE may be introduced through the environment to specify a path to the
34 # make command. It defaults to `which make`, if that is non-NULL;
35 # otherwise to the string "make".
37 if test "X$LSOF_MAKE" = "X" # {
39 LSOF_MAKE=`which make`
40 if test "X$LSOF_MAKE" = "X" # {
48 # LSOF_MKC is the dialect's Mksrc create command -- default "ln -s".
50 # LSOF_MKFC may be introduced though the environment to change the name
51 # used for the created make file.
53 if test "X$LSOF_MKFC" = "X" # {
61 LSOF_LIBMKFSKEL=Makefile.skel
65 # Make sure no other variable important to Makefile construction is
66 # already set in the environment.
68 # $AFS_VICE locatiion of AFS VICE directory
69 # (default = /usr/vice)
70 # $LSOF_AFS AFS temporary
71 # $LSOF_AFS_NQ AFS-not-qualified flag
72 # $LSOF_AFSV AFS version
73 # $LSOF_AR archive command and its arguments for making the
75 # $LSOF_ARCH Unix dialect architecture as a string (may be
76 # supplied externally)
77 # $LSOF_CC C compiler name (may be supplied externally)
78 # $LSOF_CCV C compiler version (may be supplied externally)
79 # $LSOF_CDIR configuration directory
80 # $LSOF_CFGD depend options
81 # $LSOF_CFGDN depend file name
82 # $LSOF_CFGF C flags -- e.g., -D's
83 # $LSOF_CFGL last lsof library loader flags -- e.g., -l's
84 # $LSOF_CINFO Configure information for LSOF_CINFO in version.h
85 # $LSOF_CTFH Solaris 10 and above libctf.h status
86 # $LSOF_CTFL Solaris 10 and above -lctf status
87 # $LSOF_DEBUG Makefile's DEBUG string
88 # $LSOF_DINC include flags -- -I's
89 # $LSOF_DINC_ADD include flags status
90 # $LSOF_DOC special document (man page) directory path
91 # $LSOF_ERR internal error flag
92 # $LSOF_FCFGL first lsof library loader flags -- e.g., -l's
93 # that must precede $LSOF_LIB
94 # $LSOF_FBSD_ZFS FreeBSD $LSOF_FBSD_ZFS_MKF status
95 # $LSOF_FBSD_ZFS_CFGF FreeBSD ZFS configure flags
96 # $LSOF_FBSD_ZFS_MKF FreeBSD ZFS Makefile name
97 # $LSOF_FBSD_ZFS_SYS FreeBSD ZFS system sources location
98 # $LSOF_HOST host name (e.g., from uname -n)
99 # $LSOF_INCLUDE directory where header files are found
100 # (default = /usr/include)
101 # $LSOF_LD loader name if not $LSOF_CC
102 # $LSOF_LIB_NO if "N" don't configure the lsof library
103 # $LSOF_LOCALSUFFIX local suffix for Makefile
104 # $LSOF_NBSD_BUFQH NetBSD <sys/bufq.h> copy status
105 # $LSOF_NBSD_PTYFS NetBSD ${NETBSD_SYS}/sys/fs/ptyfs/ copy status
106 # $LSOF_N_UNIXV *BSD system's kernel file
107 # $LSOF_PL patch level
108 # $LSOF_RANLIB randomizing command for the lsof library
109 # $LSOF_RANLIB_SUP if non-NULL $LSOF_RANLIB was supplied
110 # $LSOF_SCRIPT_CALL Customize and Inventory scripts call status
111 # $LSOF_SPMKF Special Makefile name
112 # $LSOF_TGT canonical target abbreviation (shortest)
113 # $LSOF_TMP internal temporary
114 # $LSOF_TMP1 internal temporary
115 # $LSOF_TMP2 internal temporary
116 # $LSOF_TMP3 internal temporary
117 # $LSOF_TMP4 internal temporary
118 # $LSOF_TMP5 internal temporary
119 # $LSOF_TMP6 internal temporary
120 # $LSOF_TMPC_BASE base name for $LSOF_TMPC
121 # $LSOF_TMPC temporary C source file base name
122 # $LSOF_TSTBIGF big file capability (for $LSOF_TSTCFLG)
123 # $LSOF_TSTCC tests CC file
124 # $LSOF_TSTCFLG tests CFLAGS file
125 # $LSOF_TSTDFLG dialect-specific values for $LSOF_TSTCFLG
126 # $LSOF_TSTK64 status of 64 bit kernel (for $LSOF_TSTCFLG)
127 # $LSOF_TSTKMEM /dev/kmem usage status (for $LSOF_TSTCFLG)
128 # $LSOF_TSTLFF tests LDFLAGS file
129 # $LSOF_TSTLFLG tests LDFLAGS values
130 # $LSOF_TSTSUBD test subdirectory
131 # $LSOF_TSTVPATH test v_path state (for $LSOF_TSTCFLG)
132 # $LSOF_TSTXO test extra objects (for $LSOF_TSTXOC)
133 # $LSOF_TSTXOC test extra objects file
134 # $LSOF_UNSUP Lsof is unsupported on this dialect
135 # $LSOF_VERS Unix dialect version as a decimal number (may
136 # be supplied externally)
137 # $LSOF_VSTR Unix dialect version as a string -- may be supplied
140 if test "X$AFS_VICE" = "X" # {
147 if test "X$LSOF_ARCH" = "X" # {
162 LSOF_FBSD_ZFS_CFGF=""
163 LSOF_FBSD_ZFS_MKF="Makefile.zfs"
166 if test "X$LSOF_INCLUDE" = "X" # {
169 LSOF_INCLUDE="/usr/include"
171 LSOF_DINC="-I$LSOF_INCLUDE"
176 if test "X$LSOF_RANLIB" = "X" # {
183 LSOF_SCRIPT_CALL="yes"
187 LSOF_TMPC_BASE=./lsof_Configure_tmp_
188 LSOF_TMPC=${LSOF_TMPC_BASE}$$
190 LSOF_TSTSUBD="./tests"
191 LSOF_TSTCC="${LSOF_TSTSUBD}/config.cc"
192 LSOF_TSTCFLG="${LSOF_TSTSUBD}/config.cflags"
196 LSOF_TSTLFF="${LSOF_TSTSUBD}/config.ldflags"
200 LSOF_TSTXOC="${LSOF_TSTSUBD}/config.xobj"
201 LSOF_UNSUP="WARNING: unsupported dialect or version"
202 if test "X$LSOF_VERS" = "X" # {
206 if test "X$LSOF_VSTR" = "X" # {
211 # Establish echo type -- Berkeley or SYSV.
214 if test "X$j" = "X-n "
223 # Make sure temporary files are removed before an abnormal exit.
225 trap 'rm -f ${LSOF_HLP_BASE}* ${LSOF_TMPC_BASE}*; exit 1' 1 2 3 15
228 cat > $LSOF_HLP << LSOF_HLP
229 Usage: Configure <options> <target-dialect>
230 <options>: -clean : clean up previous configuration
231 -d|-dialects : display a list of supported dialect versions
232 -h|-help : display help information
233 -n : avoid AFS, customization, and inventory checks
234 <target-dialect> (****USE -d TO GET TESTED DIALECT VERSION NUMBERS****):
235 aix|aixgcc : IBM AIX xlc (aix) or gcc (aixgcc)
236 darwin : Apple Darwin
238 digital_unix|du : Digital UNIX
240 hpux|hpuxgcc : HP-UX cc (hpux) or gcc (hpuxgcc)
243 nextstep|next|ns|nxt : NEXTSTEP
245 openstep|os : OPENSTEP
246 osr|sco : SCO OpenServer < 6.0.0, SCO devloper's compiler
247 osrgcc|scogcc : SCO OpenServer < 6.0.0, gcc compiler
248 osr6 : SCO OpenServer 6.0.0, SCO compiler
249 solaris|solariscc : Solaris gcc (solaris) or cc (solariscc)
251 unixware|uw : SCO|Caldera UnixWare
257 while test $args -gt 0 # {
261 if test -r $LSOF_MKFC # {
263 echo "$LSOF_MAKE -f $LSOF_MKFC clean"
264 $LSOF_MAKE -f $LSOF_MKFC clean
266 if test -r ${LSOF_LIB}/${LSOF_LIBMKF} # {
268 echo "(cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF} clean)"
269 (cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF} clean)
271 if test -r ${LSOF_LIB}/${LSOF_LIBMKF}.skel # {
273 echo "(cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF}.skel clean)"
274 (cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF}.skel clean)
278 if test -r ${LSOF_TSTSUBD}/Makefile # {
280 echo "(cd ${LSOF_TSTSUBD}; $LSOF_MAKE spotless)"
281 (cd ${LSOF_TSTSUBD}; $LSOF_MAKE spotless)
283 echo '(cd ${LSOF_TSTSUBD}; rm *.o config.*)'
284 (cd ${LSOF_TSTSUBD}; rm *.o config.*)
286 rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF ${LSOF_TMPC_BASE}*
287 echo rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF ${LSOF_TMPC_BASE}*
288 rm -rf AFSHeaders AFSVersion solaris11 version.h vnode_if.h
289 echo "rm -rf AFSHeaders AFSVersion solaris11 version.h vnode_if.h"
290 rm -f ${LSOF_HLP_BASE}* cd9660_node.h lockf_owner.h fbsd_minor.h
291 echo "rm -f ${LSOF_HLP_BASE}* cd9660_node.h lockf_owner.h fbsd_minor.h"
292 rm -f dialects/aix/aix5/j2/j2_snapshot.h
293 echo "rm -f dialects/aix/aix5/j2/j2_snapshot.h"
294 rm -f dialects/sun/solaris10 # DEBUG -- for s10_44
295 echo "rm -f dialects/sun/solaris10" # DEBUG -- for s10_44
296 rm -f dialects/du/du5_sys_malloc.h
297 echo "rm -f dialects/du/du5_sys_malloc.h"
298 rm -f dialects/hpux/kmem/hpux_mount.h
299 echo "rm -f dialects/hpux/kmem/hpux_mount.h"
300 rm -rf dialects/n+obsd/include
301 echo "rm -rf dialects/n+obsd/include"
302 rm -f dialects/uw/uw7/vm/swap.h
303 echo "rm -f dialects/uw/uw7/vm/swap.h"
304 rm -f ${LSOF_LIB}/${LSOF_LIBMKF}
305 echo "rm -f ${LSOF_LIB}/${LSOF_LIBMKF}"
310 if test -r ./00DIALECTS -a -r ./version # {
312 V=`sed '/VN/s/.ds VN \(.*\)/\1/' version`
313 echo "lsof $V has been *tested* on these UNIX dialect versions:"
315 echo Although "$V hasn't been tested on other versions of these dialects,"
316 echo "it may work. Try \`Configure <dialect>\` and \`make\` to see."
320 echo "Can't display UNIX dialect version information:"
321 if test ! -r ./00DIALECTS # {
323 echo " ./00DIALECTS is inaccessible."
325 if test ! -r ./version # {
327 echo " ./version is inaccessible."
334 -h|-help) cat $LSOF_HLP
340 LSOF_SCRIPT_CALL="no"
344 if test "X$LSOF_TGT" != "Xno-target" # {
346 echo "Only one dialect may be configured at a time."
347 echo 'Both "$LSOF_TGT" and "$1" were specified.'
357 args=`expr $args - 1`
360 case $LSOF_TGT in # {
362 echo "No target dialect was specified."
368 # Configure for AIX xlc and AIX gcc.
372 # AIXA stands for AIX architecture. It is assigned these values in this
375 # 0 The AIX version is < 5.0, or the AIX 5.0 architecture is
376 # Power and the kernel bit size is 32.
378 # 1 The AIX version is >= 5.0, the AIX architecture is Power,
379 # and the kernel bit size is 64.
381 # 2 The AIX version is >= 5.0 and the architecture is IA64.
383 if test "X$LSOF_RANLIB_SUP" = "X" # {
385 LSOF_RANLIB="@echo \\\\\\\\c" # AIX make doesn't like a null ${RANLIB}.
387 if test "X$LSOF_VSTR" = "X" # {
390 # If the AIX version isn't pre-defined, determine it.
393 if test "X$LSOF_TMP1" = "X5" # {
396 # If the AIX version is 5, build the version string with `uname -rv`
399 LSOF_VSTR=`uname -r | awk '{printf "5.%d.0.0\n",\$1}'`
400 echo "Uname reports the version is $LSOF_VSTR."
403 # See if oslevel can determine the version.
405 LSOF_TMP1=/usr/bin/oslevel
406 if test -x $LSOF_TMP1 # {
408 echo "Determining AIX version with $LSOF_TMP1."
409 echo "This may take a while, depending on your maintenance level."
410 LSOF_VSTR=`$LSOF_TMP1 | sed 's/[^0-9]*\([0-9\.]*\).*/\1/'`
411 echo "$LSOF_TMP1 reports the version is $LSOF_VSTR."
414 # If oslevel can't be used, build the version string with
415 # `uname -rv` and issue a warning.
417 LSOF_VSTR=`uname -rv | awk '{printf "%d.%d.0.0\n",\$2,\$1}'`
418 echo "WARNING: can't execute $LSOF_TMP1; uname -rv reports"
419 echo " the version is $LSOF_VSTR; edit CFGF in Makefile and"
420 echo " lib/Makefile to refine AIXV and LSOF_VSTR."
424 if test "X$LSOF_VERS" = "X" # {
426 LSOF_VERS=`echo $LSOF_VSTR | sed 's/\.//g'`
428 if test $LSOF_VERS -ge 4320 # {
432 if test "X$LSOF_CC" = "X" # {
434 if test "X$LSOF_TGT" = "Xaixgcc" # {
437 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
443 echo $LSOF_CC | grep gcc > /dev/null
447 # Prevent use of gcc for AIX below 4.1.
449 if test $LSOF_VERS -lt 4100 # {
451 echo "********************************************************"
452 echo "* Sorry, but gcc can't be used to compile lsof for AIX *"
453 echo "* versions less than 4.1, because of possible kernel *"
454 echo "* structure alignment differences between it and xlc. *"
455 echo "********************************************************"
463 if test "X$AIX_HAS_AFS" != "X" # {
465 LSOF_AFS=$AIX_HAS_AFS
467 if test "X$LSOF_AFS" != "Xno" # {
469 if test "X$LSOF_AFS" = "Xyes" -o -r ${AFS_VICE}/etc/ThisCell # {
471 if test "X$LSOF_AFS" != "Xyes" # {
473 if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
475 if test -r ./AFSHeaders -a -r ./AFSVersion # {
480 if test ! -x ./AFSConfig # {
482 echo "Can't find or execute the AFSConfig script"
487 if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
493 if test "X$LSOF_AFS" = "Xyes" # {
495 if test "X$LSOF_AFSV" = "X" # {
497 if test -r ./AFSVersion # {
499 LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
501 echo "!!!FATAL: no ./AFSVersion file. It should have been"
502 echo " created by a previous AFS configuration run."
507 if test $LSOF_VERS -gt 4330 -o LSOF_AFSV -gt 305 # {
509 echo "!!!FATAL: Lsof does not support AFS on this combination of"
510 echo " AIX ($LSOF_VERS) and AFS ($LSOF_AFSV) versions."
511 echo " To disable AFS, set the value of the AIX_HAS_AFS"
512 echo " environment variable to \"no\"."
516 LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
517 LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
518 if test -r ${LSOF_INCLUDE}/sys/inttypes.h # {
520 grep "^typedef.*int16;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
523 LSOF_CFGF="$LSOF_CFGF -DHASINT16TYPE"
525 grep "^typedef.*u_int32;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
528 LSOF_CFGF="$LSOF_CFGF -DHASUINT16TYPE"
530 grep "^typedef.*int32;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
533 LSOF_CFGF="$LSOF_CFGF -DHASINT32TYPE"
541 # Miscellaneous AIX tests
543 if test -d ${LSOF_INCLUDE}/nfs # {
545 LSOF_CFGF="$LSOF_CFGF -DHAS_NFS"
547 echo $LSOF_CC | grep cc | grep -v gcc > /dev/null
548 if test $? -eq 0 -a $LSOF_VERS -ge 4140 -a $LSOF_VERS -lt 5000 # {
550 LSOF_CFGL="$LSOF_CFGL -bnolibpath"
552 if test -r ${LSOF_INCLUDE}/sys/socket.h # {
554 grep AF_INET6 ${LSOF_INCLUDE}/sys/socket.h > /dev/null
557 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
560 if test -r ${LSOF_INCLUDE}/sys/stat.h # {
562 grep stat64 ${LSOF_INCLUDE}/sys/stat.h > /dev/null
565 LSOF_CFGF="$LSOF_CFGF -DHASSTAT64"
568 #DEBUG SANFS if test -r ${LSOF_INCLUDE}/sys/sanfs/sanfsnode.h??? # {
570 #DEBUG SANFS LSOF_CFGF="$LSOF_CFGF -DHAS_SANFS"
572 if test $LSOF_VERS -ge 5000 # {
575 # This is AIX 5 or greater.
577 if test -d ${LSOF_INCLUDE}/j2 # {
580 # The AIX > 5.0 system has jfs2 support. Make the necesssary definitions
583 rm -f dialects/aix/aix5/j2/j2_snapshot.h
584 (cd dialects/aix/aix5/j2; ln -s private_j2_snapshot.h j2_snapshot.h)
585 LSOF_CFGF="$LSOF_CFGF -DHAS_JFS2"
586 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/aix/aix5"
587 if test $LSOF_VERS -ge 5200 # {
589 if test -r ${LSOF_INCLUDE}/j2/j2_snapshot.h # {
592 # The system has its own j2_snapshot.h, so make sure the
593 # private lsof copy is discarded.
595 rm -f dialects/aix/aix5/j2/j2_snapshot.h
597 echo $LSOF_CC | grep gcc > /dev/null
601 # Test gcc version for AIX 5.2.
603 LSOF_TMP1=`echo $LSOF_CCV | awk -F . '{printf "%d%02d",$1,$2}'`
604 if test $LSOF_TMP1 -ge 303 # {
607 # Add gcc >= 3.3 option to handle use of i_dev from the wInode
608 # anonymous structure reference in the JFS2 inode structure of
611 LSOF_CFGF="$LSOF_CFGF -fms-extensions"
617 # Determine the AIX architecture type and set AIXA accordingly.
619 if test "X$AIX_ARCH" = "X" # {
621 uname -a | grep -i ia64 > /dev/null
629 if test "X$AIX_ARCH" = "Xia64" # {
632 # This is AIX >= 5 on ia64.
635 echo $LSOF_CC | grep gcc > /dev/null
639 # Quit if gcc was specified as the compiler, since the gcc options to
640 # do an ia64 lsof compilation are unknown.
642 echo "*************************************************************"
644 echo "* !!!!!!!!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!!!!!!!!! *"
646 echo "* Gcc can't be used to compile lsof for AIX 5 and above on *"
647 echo "* the ia64 architecture. Consult lsof's FAQ (in the file *"
648 echo "* 00FAQ) for more information. *"
650 echo "*************************************************************"
655 if test "X$LSOF_AR" = "X" # {
657 LSOF_AR="/usr/bin/ar cr"
659 LSOF_CFGF="$LSOF_CFGF -q64"
660 LSOF_CFGL="$LSOF_CFGL -lelf"
663 # This is AIX >= 5 on Power architecture.
665 echo $LSOF_CC | grep cc | grep -v gcc > /dev/null
668 LSOF_CFGL="$LSOF_CFGL -bnolibpath"
670 if test "X$AIX_KERNBITS" = "X" # {
673 # The kernel bit size wasn't predefined. Determine it by compiling
674 # and executing a test program.
677 echo "#include <sys/systemcfg.h>" > ${LSOF_TMPC}.c
678 echo 'main(){ if (__KERNEL_32()) printf("32\\n");' >> ${LSOF_TMPC}.c
679 echo 'else if (__KERNEL_64()) printf("64\\n");' >> ${LSOF_TMPC}.c
680 echo 'else printf("0\\n");' >> ${LSOF_TMPC}.c
681 echo "return(0); }" >> ${LSOF_TMPC}.c
682 echo "Testing kernel bit size with $LSOF_CC"
683 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x
684 if test ! -x ${LSOF_TMPC}.x # {
686 echo "!!!FATAL: can't compile test program, ${LSOF_TMPC}.c."
687 rm -f $LSOF_HLP rm -f ${LSOF_TMPC}.*
690 AIX_KERNBITS=`./${LSOF_TMPC}.x`
694 # Use the kernel bit size specification to select archiver and compiler
695 # options, and to update AIXA.
697 case $AIX_KERNBITS in # {
699 if test "X$LSOF_AR" = "X" # {
701 LSOF_AR="/usr/bin/ar cr"
706 if test "X$LSOF_AR" = "X" # {
708 LSOF_AR="/usr/bin/ar -X 64 -v -q"
712 echo $LSOF_CC | grep gcc > /dev/null
715 LSOF_CFGF="$LSOF_CFGF -maix64"
717 LSOF_CFGF="$LSOF_CFGF -q64"
721 echo "!!!FATAL: unrecognized kernel bit size: $AIX_KERNBITS"
726 # Put kernel bit size information in $LSOF_CINFO and $LSOF_CFGF.
728 echo "Kernel bit size: $AIX_KERNBITS"
729 LSOF_TMP2="${AIX_KERNBITS} bit kernel"
730 if test "X$LSOF_CINFO" != "X" # {
732 LSOF_CINFO="${LSOF_CINFO} ${LSOF_TMP2}"
734 LSOF_CINFO="${LSOF_TMP2}"
736 LSOF_CFGF="$LSOF_CFGF -DAIX_KERNBITS=${AIX_KERNBITS}"
738 LSOF_CFGF="$LSOF_CFGF -DAIXA=$LSOF_TMP1"
739 if test "X$LSOF_TSTDFLG" = "X" # {
741 LSOF_TSTDFLG="-DLT_AIXA=$LSOF_TMP1"
743 LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_AIXA=$LSOF_TMP1"
747 # AIX is < 5, so set AIXA accordingly.
749 LSOF_CFGF="$LSOF_CFGF -DAIXA=0"
750 if test "X$LSOF_TSTDFLG" = "X" # {
752 LSOF_TSTDFLG="-DLT_AIXA=0"
754 LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_AIXA=0"
757 LSOF_CFGF="$LSOF_CFGF -DAIXV=$LSOF_VERS"
759 echo $LSOF_CC | grep gcc > /dev/null
765 if test $LSOF_VERS -ge 4100 -a $LSOF_VERS -lt 4200 # {
767 if test "X$AIX_USHACK" = "X" # {
770 # Compile and run a gcc test program to evaluate the user structure.
773 echo "#include <stddef.h>" > ${LSOF_TMPC}.c
774 echo "#include <sys/user.h>" >> ${LSOF_TMPC}.c
775 echo "main(){exit((offsetof(struct user, U_irss) & 0x7) ? 1 : 0);}" >>${LSOF_TMPC}.c
776 echo "Testing user.h with $LSOF_CC"
777 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x
778 if ! ${LSOF_TMPC}.x # {
786 if test "$AIX_USHACK" = "Y" -o "$AIX_USHACK" = "y" # {
793 if test ${LSOF_TMP1} -eq 1 # {
795 echo "Applying gcc AIX 4.1+ user struct alignment hack"
796 rm -rf ./dialects/aix/aix$LSOF_VERS
797 mkdir ./dialects/aix/aix$LSOF_VERS
798 mkdir ./dialects/aix/aix${LSOF_VERS}/sys
799 sed 's/U_irss\[/dummy_for_alignment, U_irss\[/' < ${LSOF_INCLUDE}/sys/user.h > ./dialects/aix/aix${LSOF_VERS}/sys/user.h
800 LSOF_CFGF="$LSOF_CFGF -U_LONG_LONG -I`pwd`/dialects/aix/aix$LSOF_VERS"
805 # Get xlc version number
808 echo "main(){}" > ${LSOF_TMPC}.c
809 echo "Getting version number of ${LSOF_CC}."
810 $LSOF_CC -c ${LSOF_TMPC}.c -I${LSOF_INCLUDE} -o ${LSOF_TMPC}.o -qlist > /dev/null 2>&1
811 LSOF_CCV=`head -1 ${LSOF_TMPC}.lst | sed 's/\(.*\) ---.*/\1/'`
813 echo "The version is \"${LSOF_CCV}\"."
814 echo $LSOF_CCV | grep "Version [0-9]" > /dev/null
817 LSOF_TMP=`echo $LSOF_CCV | sed 's/.*Version \([0-9]*\).*/\1/'`
818 if test "X$LSOF_TMP" != "X" -a $LSOF_TMP -ge 4 # {
820 if test $LSOF_TMP -ge 6 # {
822 LSOF_CFGF="$LSOF_CFGF -qmaxmem=-1"
824 LSOF_CFGF="$LSOF_CFGF -qmaxmem=16384"
829 if test $LSOF_VERS -ge 5300 # {
835 # Configure for Apple Darwin.
838 if test "X$LSOF_CC" = "X" # {
841 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
843 if test "X$LSOF_VSTR" = "X" # {
847 if test "X$LSOF_VERS" = "X" # {
850 # If the Darwin / Mac OS X version isn't pre-defined, determine it.
852 case $LSOF_VSTR in # {
871 7.*) # Mac OS X 10.3 (Panther)
874 8.*) # Mac OS X 10.4 (Tiger)
877 9.*) # Mac OS X 10.5 (Leopard)
880 10.*) # Mac OS X 10.6 (SnowLeopard)
883 11.*) # Mac OS X 10.7 (Lion)
886 12.*) # Next Mac OS X
890 echo Unknown Darwin release: `uname -r`
891 echo Assuming Darwin 11.0
897 # Do Darwin version-specific stuff.
899 case $LSOF_VERS in # {
901 LSOF_TMP1="hfs/hfs.h hfs/hfs_macos_defs.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h"
904 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"
907 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"
910 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
911 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"
914 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
915 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"
918 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
919 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"
922 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
925 LSOF_TSTBIGF=" " # enable LTbigf test
926 if test $LSOF_VERS -eq 900 # {
928 LSOF_CFGF="$LSOF_CFGF -DNEEDS_MACH_PORT_T"
932 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
936 echo "Unsupported Darwin version: $LSOF_VERS"
944 LSOF_CFGF="$LSOF_CFGF -mdynamic-no-pic"
945 LSOF_CFGL="$LSOF_CFGL -lcurses"
947 if test "X$DARWIN_XNUDIR" != "X" # {
949 LSOF_TMP2="${DARWIN_XNUDIR}/bsd"
950 LSOF_TMP3="${DARWIN_XNUDIR}/osfmk"
953 LSOF_TMP2="${DARWIN_XNU_HEADERS}/System/Library/Frameworks/Kernel.framework/Versions/A/PrivateHeaders"
954 LSOF_TMP3="${DARWIN_XNU_HEADERS}/System/Library/Frameworks/System.framework/Versions/B/PrivateHeaders"
956 if test "X$DARWIN_XNU_HEADERS" != "X" # {
958 LSOF_TMP4="${DARWIN_XNU_HEADERS}/usr/include"
964 if test "X$DARWIN_BASE" = "X" -o "X$DARWIN_BASE" = "Xlibproc" # {
967 if test $LSOF_VERS -ge 800 -o "X$DARWIN_BASE" = "Xlibproc" # {
969 if test -r ${LSOF_INCLUDE}/libproc.h # {
971 DARWIN_BASE="libproc"
973 if test -r ${LSOF_INCLUDE}/../local/include/libproc.h # {
975 DARWIN_BASE="libproc"
976 LSOF_TMP5="-I${LSOF_INCLUDE}/../local/include"
978 echo "FATAL: can't find libproc.h"
985 # The default Darwin base is /dev/kmem.
987 DARWIN_BASE="/dev/kmem"
990 if test "X$DARWIN_BASE" = "Xlibproc" # {
993 # Configure for libproc-based Darwin lsof.
995 echo "Configuring libproc-based Darwin lsof"
996 LSOF_CINFO="libproc-based"
997 LSOF_DIALECT_DIR=darwin/libproc
998 if test $LSOF_VERS -lt 1000 # {
1000 LSOF_CFGL="$LSOF_CFGL -lproc"
1003 LSOF_DINC="$LSOF_DINC $LSOF_TMP5"
1004 if test ! -r ${LSOF_INCLUDE}/sys/proc_info.h # {
1006 if test "X$LSOF_TMP5" = "X" -o ! -r ${LSOF_TMP5}/sys/proc_info.h # {
1008 echo "FATAL: can't find sys/proc_info.h"
1014 # Add header file paths for libproc-based Darwin lsof.
1016 for i in $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1018 if test -d $i -a "X$i" != "X/usr/include" # {
1020 LSOF_DINC="$LSOF_DINC -I${i}"
1024 # Do other libproc-based Darwin lsof setups.
1026 if test -r ${LSOF_INCLUDE}/utmpx.h # {
1028 LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
1031 if test "X$DARWIN_BASE" != "X/dev/kmem" # {
1033 echo "Darwin base unrecognized: $DARWIN_BASE"
1038 # Configure for /dev/kmem-based Darwin lsof.
1040 echo "Configuring /dev/kmem-based Darwin lsof"
1041 LSOF_CINFO="/dev/kmem-based"
1042 LSOF_DIALECT_DIR=darwin/kmem
1044 # Make sure needed /dev/kmem-base XNU Darwin kernel header files are
1048 for i in $LSOF_TMP1 # {
1051 for j in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1053 if test "X${j}" != "X" -a -r ${j}/${i} # {
1059 if test $LSOF_TMP6 -ne 1 # {
1061 if test "X$LSOF_TMP5" = "X" # {
1065 LSOF_TMP5="$LSOF_TMP5 $i"
1069 if test "X$LSOF_TMP5" != "X" # {
1072 # If any Darwin XNU kernel header files are missing, call the
1073 # get-hdr-loc.sh script to find the path.
1075 LSOF_TMP6=`pwd`/dialects/darwin/get-hdr-loc.sh
1076 if test ! -x $LSOF_TMP6 # {
1078 echo "FATAL: can't execute: $LSOF_TMP6"
1082 DARWIN_XNUDIR=`$LSOF_TMP6 $LSOF_TMP5`
1083 if test $? -ne 0 # {
1085 echo "FATAL: $LSOF_TMP6 returns: $DARWIN_XNUDIR"
1089 LSOF_TMP2="${DARWIN_XNUDIR}/bsd"
1090 LSOF_TMP3="${DARWIN_XNUDIR}/osfmk"
1094 # Add header file paths for /dev/kmem-based Darwin lsof.
1096 for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1098 if test -d $i -a "X$i" != "X/usr/include" # {
1100 LSOF_DINC="$LSOF_DINC -I${i}"
1104 # Make conditional feature definitions for /dev/kmem-based Darwin lsof.
1106 for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1108 if test "X${i}" != "X" -a -r ${i}/sys/namei.h # {
1110 grep -q nc_vpid ${i}/sys/namei.h
1111 if test $? -eq 0 # {
1113 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
1118 for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1120 if test "X${i}" != "X" # {
1122 if test $LSOF_VERS -ge 800 # {
1124 if test -r ${i}/sys/file_internal.h # {
1126 grep -q DTYPE_KQUEUE ${i}/sys/file_internal.h
1127 if test $? -eq 0 # {
1129 LSOF_CFGF="$LSOF_CFGF -DHASKQUEUE"
1134 if test $LSOF_VERS -ge 700 # {
1136 if test -r ${i}/sys/file.h # {
1138 grep -q DTYPE_KQUEUE ${i}/sys/file.h
1139 if test $? -eq 0 # {
1141 LSOF_CFGF="$LSOF_CFGF -DHASKQUEUE"
1149 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS"
1151 LSOF_CFGF="$LSOF_CFGF -DDARWINV=$LSOF_VERS"
1152 LSOF_CFLAGS_OVERRIDE=1
1155 # Configure for DEC OSF/1, Digital UNIX, or Tru64 UNIX.
1157 digital_unix|du|decosf|tru64)
1161 if test "X$LSOF_DINC" = "X" # {
1163 LSOF_DINC="-I/usr/include"
1165 if test "X$LSOF_VSTR" = "X" # {
1167 LSOF_VSTR=`uname -r`
1169 if test "X$LSOF_VERS" = "X" # {
1172 # If the DEC OSF/1, Digital UNIX, or Tru64 UNIX version isn't
1173 # predefined, determine it.
1175 case $LSOF_VSTR in # {
1186 LSOF_TSTXO="../lib/snpf.o"
1196 echo "WARNING: unknown version; assuming version is 2.0"
1202 # Do DEC OSF/1, Digital UNIX, or Tru64 UNIX version specific stuff.
1204 case $LSOF_VERS in # {
1206 LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
1210 LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
1212 LSOF_TMP2=-DUSELOCALREADDIR
1215 LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
1217 LSOF_TMP2=-DUSELOCALREADDIR
1220 LSOF_TMP1="/usr/sys"
1223 LSOF_CFGF="$LSOF_CFGF -DUSE_STAT"
1224 LSOF_TMP1="/usr/sys"
1227 echo "WARNING: unknown version: $LSOF_VERS"
1232 if test "X$DU_SYSDIR" = "X" # {
1234 DU_SYSDIR=$LSOF_TMP1
1236 LSOF_HOST=`uname -n`
1237 if test "X$DU_CDIR" = "X" # {
1239 LSOF_CDIR=`expr $LSOF_HOST : '\([^\.]*\)\..*$'`
1240 if test "X$LSOF_CDIR" = "X" # {
1242 LSOF_CDIR=$LSOF_HOST
1244 LSOF_CDIR=`echo $LSOF_CDIR | tr a-z A-Z`
1249 while test $LSOF_LOOP = 1 # {
1251 if test -d ${DU_SYSDIR}/$LSOF_CDIR # {
1253 echo "Using header files in ${DU_SYSDIR}/$LSOF_CDIR"
1258 Please enter the name of the subdirectory in $DU_SYSDIR that contains the
1259 configuration files for this host. Usually its name would be $LSOF_CDIR, but
1260 that subdirectory doesn't seem to exist. The lsof compilation needs header
1261 files specific to this machine's configuration found in that directory.
1263 If you can't specify the appropriate configuration subdirectory, quit this
1264 Configure step now and generate a proper configuration subdirectory with the
1265 kernel generation process.
1269 echo "$DU_SYSDIR contains:"
1273 echo -n "Configuration subdirectory name? "
1274 read LSOF_CDIR LSOF_EXCESS
1275 if test "X$LSOF_CDIR" = "X" -o ! -d ${DU_SYSDIR}/$LSOF_CDIR # {
1278 echo Cannot access directory ${DU_SYSDIR}/$LSOF_CDIR.
1283 # Determine the ADVFS file system version.
1285 if test "X$DU_ADVFSV" = "X" # {
1287 echo "Determining the ADVFS version -- this will take a while."
1288 LSOF_ADVFSV=`/usr/sbin/setld -i | grep "^OSFADVFSBIN[0-9]" | sed 's/\([^ ]*\).*/\1/' | sort -u | tail -1 | sed 's/OSFADVFSBIN//'`
1290 LSOF_ADVFSV=$DU_ADVFSV
1292 case $LSOF_ADVFSV in # {
1295 echo "The ADVFS version is 1."
1299 echo "The ADVFS version is 2."
1303 echo "The ADVFS version is 3."
1307 echo "The ADVFS version is 4."
1311 echo "The ADVFS version is 5."
1314 echo "The ADVFS version is unknown; it will be assumed to be 1."
1318 LSOF_CFGF="$LSOF_CFGF -DDUV=$LSOF_VERS -DADVFSV=$LSOF_ADVFSV $LSOF_TMP2"
1319 if test "X$DU_SYSINC" = "X" # {
1321 DU_SYSINC="/usr/sys/include"
1323 LSOF_DINC="$LSOF_DINC -I${DU_SYSDIR}/$LSOF_CDIR -I$DU_SYSINC"
1324 LSOF_CFGL="$LSOF_CFGL -lmld"
1325 if test "X${DU_SHLIB}" = "X" # {
1329 if test -r ${DU_SHLIB}/libmsfs.so # {
1331 nm ${DU_SHLIB}/libmsfs.so | grep tag_to_path > /dev/null 2>&1
1332 if test $? -eq 0 # {
1334 LSOF_CFGF="$LSOF_CFGF -DHASTAGTOPATH"
1335 LSOF_CFGL="$LSOF_CFGL -lmsfs"
1338 grep "^struct spec_node {" ${DU_SYSDIR}/include/sys/specdev.h > /dev/null 2>&1
1339 if test $? -eq 0 # {
1341 LSOF_CFGF="$LSOF_CFGF -DHASSPECNODE"
1343 if test $LSOF_VERS -ge 50000 # {
1346 # Make du5_sys_malloc.h for DU 5.0 and above. Enable strict ANSI checking
1347 # on 5.0 and 5.1A, but not 5.1B. Enable IPv6 handling.
1350 if test $LSOF_VERS -ge 50100 # {
1353 if test -x /usr/sbin/sizer # {
1355 /usr/sbin/sizer -v | grep -q 5.1A
1356 if test $? -eq 0 # {
1362 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
1363 LSOF_TMP1=${LSOF_INCLUDE}/sys/malloc.h
1364 if test -r $LSOF_TMP1 # {
1366 LSOF_TMP2=dialects/du/du5_sys_malloc.h
1368 echo "#if !defined(MANUFACTURED_DU5_SYS_MALLOC_H)" > $LSOF_TMP2
1369 echo "/* By lsof Configure:" `date` " */" >> $LSOF_TMP2
1370 echo "#define MANUFACTURED_DU5_SYS_MALLOC_H" >> $LSOF_TMP2
1371 grep "^#define[ ]MALLOC_NUM_BUCKETS" $LSOF_TMP1 >> $LSOF_TMP2
1372 echo "struct percpukmembuckets {" >> $LSOF_TMP2
1373 sed '1,/^struct percpukmembuckets/d' $LSOF_TMP1 | sed -n '1,/^};/p' >> $LSOF_TMP2
1374 echo "#endif" >> $LSOF_TMP2
1375 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/du"
1378 # Enable IPv6 for Tru64 UNIX 5.0 and above.
1380 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
1382 if test -r ${LSOF_INCLUDE}/sys/namei.h
1384 grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
1385 if test $? -eq 0 # {
1387 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
1393 # Configure for FreeBSD.
1397 if test "X$LSOF_CC" = "X" # {
1400 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
1402 if test "X$LSOF_VSTR" = "X" # {
1404 LSOF_VSTR=`uname -r`
1406 if test "X$LSOF_VERS" = "X" # {
1409 # If the FreeBSD version isn't pre-defined, determine it.
1411 case $LSOF_VSTR in # {
1447 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1448 echo "!!!WARNING!!! Configuring for FreeBSD 3.5"
1500 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1501 echo "!!!WARNING!!! Configuring for FreeBSD 4.10"
1529 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1530 echo "!!!WARNING!!! Configuring for FreeBSD 5.5"
1554 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1555 echo "!!!WARNING!!! Configuring for FreeBSD 6.0"
1579 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1580 echo "!!!WARNING!!! Configuring for FreeBSD 7.0"
1607 echo Unknown FreeBSD release: `uname -r`
1614 # Clear LSOF_UNSUP message for supported versions of FreeBSD.
1616 case $LSOF_VERS in # {
1617 4090|8020|8030|9000|10000)
1622 # Get system CFLAGS from FREEBSD_MAKE_CONF (default=/etc/make.conf).
1624 if test "X$FREEBSD_MAKE_CONF" = "X" # {
1626 FREEBSD_MAKE_CONF="/etc/make.conf"
1628 if test -r $FREEBSD_MAKE_CONF # {
1630 LSOF_TMP1=`echo "all:\n.include <bsd.prog.mk>" | $LSOF_MAKE -f- -VCFLAGS`
1632 while test $LSOF_TMP -eq 1 # {
1634 echo $LSOF_TMP1 | grep -q -e '-O'
1635 if test $? -eq 0 # {
1637 if test "X$LSOF_DEBUG" = "X"
1639 LSOF_DEBUG=`echo $LSOF_TMP1 | sed 's/.*\(-O[^ $]*\).*/\1/'`
1641 LSOF_TMP1=`echo $LSOF_TMP1 | sed 's/\(.*\)-O[^ $]*\(.*\)/\1 \2/' | sed 's/^ *//g' | sed 's/ */ /g' | sed 's/ *$//'`
1645 LSOF_FBSD_ZFS_CFGF="$LSOF_CFGF $LSOF_TMP1"
1647 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
1650 # Determine path to FreeBSD sources.
1653 if test "X$FREEBSD_SYS" = "X" # {
1655 if test -d /usr/src/sys # {
1657 FREEBSD_SYS=/usr/src/sys
1663 echo "!!!WARNING!!! No kernel sources in /usr/src/sys or /sys"
1668 # Test for thread (task) support.
1670 if test -r ${LSOF_INCLUDE}/sys/user.h # {
1672 grep -q ki_numthreads ${LSOF_INCLUDE}/sys/user.h
1673 if test $? -eq 0 # {
1675 LSOF_CFGF="$LSOF_CFGF -DHASTASKS"
1678 echo "FATAL: can't find sys/user.h"
1683 # Do FreeBSD version-specific stuff.
1685 case $LSOF_VERS in # {
1687 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
1688 LSOF_CFGL="$LSOF_CFGL -lutil"
1689 LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/freebsd/include"
1690 if test "X$FREEBSD_KERNEL" = "X" # {
1692 LSOF_N_UNIXV="/386bsd"
1694 LSOF_N_UNIXV=$FREEBSD_KERNEL
1698 LSOF_CFGL="$LSOF_CFGL -lkvm"
1701 LSOF_CFGL="$LSOF_CFGL -lkvm"
1702 if test -r ${LSOF_INCLUDE}/vm/lock.h # {
1704 LSOF_CFGF="$LSOF_CFGF -DHASVMLOCKH"
1707 3000|3010|3020|3030|3040|3050)
1708 LSOF_CFGL="$LSOF_CFGL -lkvm"
1709 if test -r ${LSOF_INCLUDE}/nfs/rpcv2.h # {
1711 LSOF_CFGF="$LSOF_CFGF -DHASRPCV2H"
1713 if test -r ${LSOF_INCLUDE}/vm/lock.h # {
1715 LSOF_CFGF="$LSOF_CFGF -DHASVMLOCKH"
1719 if test -r ${LSOF_INCLUDE}/nfs/rpcv2.h # {
1721 LSOF_CFGF="$LSOF_CFGF -DHASRPCV2H"
1723 if test -r ${LSOF_INCLUDE}/sys/namei.h # {
1725 grep -q "^struct[ ]*namecache[ ]*{" ${LSOF_INCLUDE}/sys/namei.h
1726 if test $? -eq 0 # {
1728 LSOF_CFGF="$LSOF_CFGF -DHASNAMECACHE"
1731 if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
1733 grep -q i_effnlink ${LSOF_INCLUDE}/ufs/ufs/inode.h
1734 if test $? -eq 0 # {
1736 LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_effnlink"
1739 if test -r ${LSOF_INCLUDE}/sys/file.h # {
1741 grep -q f_vnode ${LSOF_INCLUDE}/sys/file.h
1742 if test $? -eq 0 # {
1744 LSOF_CFGF="$LSOF_CFGF -DHASF_VNODE"
1747 LSOF_CFGL="$LSOF_CFGL -lkvm"
1748 if test $LSOF_VERS -ge 5000 # {
1751 # Do FreeBSD 5 and higher version-specific stuff.
1753 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
1755 grep VT_FDESC ${LSOF_INCLUDE}/sys/vnode.h > /dev/null 2>&1
1756 if test $? -eq 0 # {
1758 if test ! -r ${LSOF_INCLUDE}/fs/devfs/devfs.h # {
1760 if test -r ${FREEBSD_SYS}/fs/devfs/devfs.h # {
1764 echo "!!!FATAL: lsof cannot locate the devfs.h header file"
1765 echo " in ${LSOF_INCLUDE}/fs/devfs/devfs.h or"
1766 echo " ${FREEBSD_SYS}/fs/devfs/devfs.h. Consult"
1767 echo " 00FAQ for an explanation."
1775 # Do FreeBSD 5.2 and higher version-specific stuff.
1777 if test -r ${LSOF_INCLUDE}/wctype.h # {
1779 LSOF_CFGF="$LSOF_CFGF -DHASWCTYPE_H"
1781 if test $LSOF_VERS -ge 5020 # {
1784 # Determine the status of the cpumask_t typedef.
1786 rm -f ${LSOF_TMPC}.*
1787 cat > ${LSOF_TMPC}.c << .LSOF_END_HERE_DOC3
1789 #include <sys/types.h>
1794 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
1796 rm -f ${LSOF_TMPC}.*
1797 if test $LSOF_TMP1 -ne 0 # {
1800 # The cpumask_t typedef is unknown when _KERNEL is not defined.
1802 if test -r ${LSOF_INCLUDE}/sys/types.h \
1803 -a -r ${LSOF_INCLUDE}/machine/_types.h # {
1805 grep -q cpumask_t ${LSOF_INCLUDE}/sys/types.h
1806 if test $? -eq 0 # {
1808 grep -q __cpumask_t ${LSOF_INCLUDE}/machine/_types.h
1809 if test $? -eq 0 # {
1811 LSOF_CFGF="$LSOF_CFGF -DHASCPUMASK_T"
1813 $LSOF_CC -E ${LSOF_INCLUDE}/machine/_types.h 2>/dev/null | grep -q __cpumask_t
1814 if test $? -eq 0 # {
1816 LSOF_CFGF="$LSOF_CFGF -DHASCPUMASK_T"
1822 if test -r ${LSOF_INCLUDE}/sys/socketvar.h # {
1824 grep -q SBS_CANT ${LSOF_INCLUDE}/sys/socketvar.h
1825 if test $? -eq 0 # {
1827 LSOF_CFGF="$LSOF_CFGF -DHASSBSTATE"
1831 if test $LSOF_VERS -ge 5030 # {
1834 # Do FreeBSD 5.3 and higher version-specific stuff.
1836 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
1838 grep -q "defined(_KVM_VNODE)" ${LSOF_INCLUDE}/sys/vnode.h
1839 if test $? -eq 0 # {
1841 LSOF_CFGF="$LSOF_CFGF -DHAS_KVM_VNODE"
1845 if test $LSOF_VERS -ge 6000 # {
1848 # Do FreeBSD 6.0 and higher version-specific stuff.
1850 if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
1852 grep -q i_din2 ${LSOF_INCLUDE}/ufs/ufs/inode.h
1853 if test $? -eq 0 # {
1855 LSOF_CFGF="$LSOF_CFGF -DHAS_UFS1_2"
1858 if test -r ${LSOF_INCLUDE}/sys/conf.h # {
1860 grep -q vm_memattr_t ${LSOF_INCLUDE}/sys/conf.h
1863 LSOF_CFGF="$LSOF_CFGF -DHAS_VM_MEMATTR_T"
1865 grep -q "^#define minor(" ${LSOF_INCLUDE}/sys/conf.h
1866 if test $? -eq 0 # {
1868 LSOF_CFGF="$LSOF_CFGF -DHAS_CONF_MINOR"
1870 if test -r ${LSOF_INCLUDE}/sys/types.h # {
1872 LSOF_TMP1=`grep "^#define[ ]minor(" ${LSOF_INCLUDE}/sys/types.h`
1873 if test "X$LSOF_TMP1" != "X" # {
1875 echo "Creating fbsd_minor.h"
1876 cat > fbsd_minor.h << FBSD_MINOR1
1878 * fbsd_minor.h -- created by lsof Configure script on
1880 echo $EO " * $EC" >> ./fbsd_minor.h
1881 date >> ./fbsd_minor.h
1882 cat >> ./fbsd_minor.h << FBSD_MINOR2
1885 #if !defined(FBSD_MINOR_H)
1886 #define FBSD_MINOR_H
1889 echo $EO "${LSOF_TMP1}${EC}" >> fbsd_minor.h
1890 cat >> ./fbsd_minor.h << FBSD_MINOR3
1892 #endif /* defined(FBSD_MINOR_H) */
1897 if test -r ${FREEBSD_SYS}/fs/devfs/devfs_int.h # {
1899 grep -q cdev2priv ${FREEBSD_SYS}/fs/devfs/devfs_int.h
1900 if test $? -eq 0 # {
1902 LSOF_CFGF="$LSOF_CFGF -DHAS_CDEV2PRIV"
1906 grep -q "si_udev;" ${LSOF_INCLUDE}/sys/conf.h
1907 if test $? -ne 0 # {
1909 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_SI_UDEV"
1911 grep -q si_priv ${LSOF_INCLUDE}/sys/conf.h
1912 if test $? -eq 0 # {
1914 LSOF_CFGF="$LSOF_CFGF -DHAS_SI_PRIV"
1917 if test -r ${LSOF_INCLUDE}/sys/sx.h # {
1919 LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_SX_H"
1922 # Do ZFS test. Try for the newer OpenSolaris files first -- i.e.,
1923 # the ones in ${FREEBSD_SYS}/cddl/contrib/opensolaris. If that fails,
1924 # try for the older ones in ${FREEBSD}/contrib/opensolaris.
1926 LSOF_FBSD_ZFS_SYS=${FREEBSD_SYS}/cddl
1927 if test ! -r ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h # {
1929 LSOF_FBSD_ZFS_SYS=${FREEBSD_SYS}
1930 if test ! -r ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h # {
1932 LSOF_FBSD_ZFS_SYS=""
1935 if test "X$LSOF_FBSD_ZFS_SYS" != "X" # {
1937 LSOF_CFGF="$LSOF_CFGF -DHAS_ZFS"
1939 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DFREEBSDV=$LSOF_VERS"
1940 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_ZFS"
1941 grep -q z_phys ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
1942 if test $? -eq 0 # {
1944 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_Z_PHYS"
1947 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
1950 # See if the vnode contains the byte level lock pointer.
1952 grep -q v_lockf ${LSOF_INCLUDE}/sys/vnode.h
1953 if test $? -eq 0 # {
1955 LSOF_CFGF="$LSOF_CFGF -DHAS_V_LOCKF"
1956 if test $LSOF_FBSD_ZFS -eq 1 # {
1958 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_V_LOCKF"
1962 if test -r ${LSOF_INCLUDE}/sys/lockf.h # {
1965 # Determine the type of locking structure to which the inode or
1968 grep -q "^struct lockf_entry" ${LSOF_INCLUDE}/sys/lockf.h
1969 if test $? -eq 0 # {
1972 # Build the ./lockf_owner.h header file.
1976 echo "Creating ./lockf_owner.h from ${FREEBSD_SYS}/kern/kern_lockf.c"
1977 rm -f ./lockf_owner.h
1978 if test -r ${FREEBSD_SYS}/kern/kern_lockf.c # {
1980 LSOF_TMP1=`grep -n "^struct lock_owner" ${FREEBSD_SYS}/kern/kern_lockf.c | sed 's/\([0-9]*\):.*$/\1/'`
1981 if test "X$LSOF_TMP1" != "X" # {
1984 for i in `grep -n "};" ${FREEBSD_SYS}/kern/kern_lockf.c | sed 's/\([0-9]*\):.*$/\1/'` # {
1986 if test $LSOF_TMP2 -eq 0 -a $i -gt $LSOF_TMP1 # {
1991 if test $LSOF_TMP2 -eq 0 # {
1995 cat > ./lockf_owner.h << LOCKF_OWNER1
1997 * lockf_owner.h -- created by lsof Configure script on
1999 echo $EO " * $EC" >> ./lockf_owner.h
2000 date >> ./lockf_owner.h
2001 cat >> ./lockf_owner.h << LOCKF_OWNER2
2004 #if !defined(LOCKF_OWNER_H)
2005 #define LOCKF_OWNER_H
2008 ed -s ${FREEBSD_SYS}/kern/kern_lockf.c >> ./lockf_owner.h << LOCKF_OWNER3
2009 ${LSOF_TMP1},${LSOF_TMP2}p
2011 if test $? -ne 0 # {
2015 cat >> ./lockf_owner.h << LOCKF_OWNER4
2017 #endif /* defined(LOCKF_OWNER_H) */
2023 echo "FATAL ERROR: can't read ${FREEBSD_SYS}/kern/kern_lockf.c"
2025 if test "X$LSOF_TMP1" != "X" -a "X$LSOF_TMP2" != "X0" # {
2027 echo "./lockf_owner.h creation succeeded."
2028 LSOF_CFGF="$LSOF_CFGF -DHAS_LOCKF_ENTRY"
2030 echo "FATAL ERROR: ./lockf_owner.h creation failed (see 00FAQ)"
2036 # Test for in6p_.port in inpcb structure.
2038 if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
2040 grep -q 'in6p_.port' ${LSOF_INCLUDE}/netinet/in_pcb.h
2041 if test $? -ne 0 # {
2043 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_6PORT"
2047 # Test for in6p_ppcb in inpcb structure.
2049 if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
2051 grep -q 'in6p_ppcb' ${LSOF_INCLUDE}/netinet/in_pcb.h
2052 if test $? -ne 0 # {
2054 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_6PPCB"
2057 if test -r ${LSOF_INCLUDE}/sys/conf.h # {
2059 grep -q 'doadump(boolean_t)' ${LSOF_INCLUDE}/sys/conf.h
2060 if test $? -eq 0 # {
2062 LSOF_CFGF="$LSOF_CFGF -DNEEDS_BOOLEAN_T"
2070 LSOF_CFGF="$LSOF_CFGF -DFREEBSDV=$LSOF_VERS"
2071 if test $LSOF_VERS -lt 2000 -a "X$FREEBSD_KERNEL" = "X" # {
2073 if test ! -x $LSOF_N_UNIXV # {
2075 echo "Hmmm -- $LSOF_N_UNIXV doesn't appear to be your kernel file."
2076 echo "Please enter the name of the file in / that contains"
2077 echo "the kernel for this host. It must be a regular file,"
2078 echo "not a directory, and must be executable."
2080 while test $LSOF_LOOP = 1 # {
2087 echo -n "Kernel file name? "
2088 read LSOF_N_UNIXV LSOF_EXCESS
2089 LSOF_N_UNIXV="/$LSOF_N_UNIXV"
2090 if test ! -d $LSOF_N_UNIXV -a -x $LSOF_N_UNIXV # {
2095 echo $LSOF_N_UNIXV is not a regular executable file.
2099 LSOF_N_UNIXV=`echo $LSOF_N_UNIXV | sed 's#^/*#/#'`
2100 LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=$LSOF_N_UNIXV"
2102 if test -r ${FREEBSD_SYS}/miscfs/fdesc/fdesc.h # {
2104 LSOF_TMP1=${FREEBSD_SYS}/miscfs/fdesc/fdesc.h
2106 if test $LSOF_VERS -ge 5000 -a -r ${LSOF_INCLUDE}/fs/fdescfs/fdesc.h # {
2108 LSOF_TMP1=${LSOF_INCLUDE}/fs/fdescfs/fdesc.h
2113 if test "X$LSOF_TMP1" != "X" # {
2115 grep -q Fctty $LSOF_TMP1
2116 if test $? -eq 0 # {
2118 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
2120 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
2122 grep -q fd_link $LSOF_TMP1
2123 if test $? -eq 0 # {
2125 LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
2129 if test $LSOF_VERS -ge 5000 # {
2135 if test $LSOF_VERS -lt 5000 # {
2137 if test -d ${FREEBSD_SYS}/${LSOF_TMP1}/procfs # {
2139 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
2143 if test -d ${FREEBSD_SYS}/${LSOF_TMP1}/pseudofs # {
2145 LSOF_CFGF="$LSOF_CFGF -DHASPSEUDOFS"
2149 if test -r ${LSOF_INCLUDE}/${LSOF_TMP1}/nullfs/null.h # {
2151 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
2153 if test -r ${FREEBSD_SYS}/${LSOF_TMP1}/nullfs/null.h # {
2155 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
2159 if test -r ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h # {
2162 grep -q "^#ifdef [_]*KERNEL" ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h
2163 if test $? -eq 0 # {
2165 ln -s ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h cd9660_node.h
2167 sed -e '/^ \* Prototypes for ISOFS vnode operations/,$c\
2168 \ The ISOFS prototypes were removed by Configure. */' \
2169 < ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h > cd9660_node.h
2170 echo "" >> cd9660_node.h
2172 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS"
2173 if test $LSOF_VERS -ge 6000 # {
2175 grep -q "i_dev;" cd9660_node.h
2176 if test $? -ne 0 # {
2178 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_ISO_DEV"
2182 if test -r ${LSOF_INCLUDE}/sys/namei.h
2184 grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
2185 if test $? -eq 0 # {
2187 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
2190 if test $LSOF_DINC_ADD -eq 1 # {
2192 if test "X$LSOF_DINC" = "X" # {
2194 LSOF_DINC="-I${FREEBSD_SYS}"
2196 LSOF_DINC="$LSOF_DINC -I${LSOF_INCLUDE} -I${FREEBSD_SYS}"
2199 if test -r ${LSOF_INCLUDE}/netinet/in.h # {
2201 grep IPV6_INRIA_VERSION ${LSOF_INCLUDE}/netinet/in.h > /dev/null
2202 if test $? -eq 0 # {
2204 LSOF_CFGF="$LSOF_CFGF -DHASIPv6 -DHASINRIAIPv6"
2207 echo $CFGF | grep HASIPv6 > /dev/null
2208 if test $? -ne 0 -a -r ${LSOF_INCLUDE}/netinet6/in6.h # {
2210 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2212 if test -r ${LSOF_INCLUDE}/utmpx.h # {
2214 LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
2216 LSOF_DIALECT_DIR=freebsd
2219 # Configure for HP-UX and HP-UX gcc.
2222 if test "X$LSOF_RANLIB_SUP" = "X" # {
2226 if test "X$LSOF_VSTR" = "X" # {
2228 LSOF_VSTR=`uname -r`
2230 if test "X$LSOF_VERS" = "X" # {
2233 # If the HP-UX version isn't pre-defined, determine it.
2235 LSOF_VERS=`echo $LSOF_VSTR | awk -F. '{printf "%d%02d",\$2,\$3}'`
2237 if test $LSOF_VERS -ge 1020 # {
2239 LSOF_TSTBIGF="-D_LARGEFILE64_SOURCE"
2242 # Determine compiler.
2244 if test "X$LSOF_CC" = "X" # {
2246 if test "X$LSOF_TGT" = "Xhpuxgcc" # {
2250 if test "X$HPUX_CCDIR1" = "X" # {
2254 if test "X$HPUX_CCDIR2" = "X" # {
2256 HPUX_CCDIR2="/usr/ccs/bin"
2258 if test -x ${HPUX_CCDIR1}/cc # {
2260 LSOF_CC=${HPUX_CCDIR1}/cc
2262 if test -x ${HPUX_CCDIR2}/cc # {
2264 LSOF_CC=${HPUX_CCDIR2}/cc
2266 echo "No executable cc in $HPUX_CCDIR1 or $HPUX_CCDIR2"
2271 $LSOF_CC -O < /dev/null 2>&1 | grep -q Bundled
2272 if test $? -eq 0 # {
2274 LSOF_DEBUG="No-O" # to disable -O
2275 if test "X$HPUX_LIBC1" = "X" # {
2277 HPUX_LIBC1="/usr/lib"
2279 if test -r ${HPUX_LIBC1}/libc.sl # {
2281 LSOF_FCFGL="-L$HPUX_LIBC -lc"
2283 if test "X$HPUX_LIBC2" = "X" # {
2285 HPUX_LIBC2="/usr/lib"
2287 if test -r ${HPUX_LIBC2}/libc.sl # {
2289 LSOF_FCFGL="-L$HPUX_LIBC2 -lc"
2295 echo $LSOF_CC | grep gcc > /dev/null
2296 if test $? -eq 0 # {
2298 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
2300 $LSOF_CC -O < /dev/null 2>&1 | grep -q Bundled
2301 if test $? -eq 0 # {
2303 LSOF_DEBUG="No-O" # to disable -O
2308 # Test for "const void" support.
2310 rm -f ${LSOF_TMPC}.*
2311 echo "main() { const void *x; return(0); }" >> $LSOF_TMPC.c
2312 $LSOF_CC $LSOF_TMPC.c -o $LSOF_TMPC.x > /dev/null 2>&1
2313 if test $? -eq 0 # {
2315 LSOF_CFGF="$LSOF_CFGF -DHAS_CONST"
2317 rm -f ${LSOF_TMPC}.*
2321 if test "X$HPUX_BASE" = "X" # {
2323 if test -d $LSOF_INCLUDE/sys/pstat -a $LSOF_VERS -ge 1111 # {
2327 HPUX_BASE="/dev/kmem"
2330 if test "X$HPUX_BASE" = "Xpstat" # {
2333 # Configure for pstat-based HP-UX lsof.
2335 LSOF_CINFO="PSTAT-based"
2336 echo "Configuring PSTAT-based HP-UX lsof"
2337 LSOF_DIALECT_DIR=hpux/pstat
2338 LSOF_CFGF="$LSOF_CFGF -DHPUXV=$LSOF_VERS -D_PSTAT64"
2339 LSOF_CFGL="$LSOF_CFGL -lnsl"
2342 ls -l $LSOF_CC | grep -q ansic
2344 ls -l $LSOF_CC | grep -q aCC
2345 if test $? -eq 0 -o $LSOF_TMP1 -eq 0 # {
2347 LSOF_CFGF="$LSOF_CFGF -Ae +DD32"
2349 echo $LSOF_CC | grep -q gcc
2350 if test $? -ne 0 # {
2352 LSOF_CFGF="$LSOF_CFGF +DD32"
2355 if test -r ${LSOF_INCLUDE}/netinet/in6.h # {
2357 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2359 if test -r ${LSOF_INCLUDE}/sys/pstat/stream_pstat_body.h # {
2361 grep -q PS_STR_XPORT_DATA ${LSOF_INCLUDE}/sys/pstat/stream_pstat_body.h
2362 if test $? -eq 0 # {
2364 LSOF_CFGF="$LSOF_CFGF -D_PSTAT_STREAM_GET_XPORT"
2367 if test $LSOF_VERS -ge 1123 # {
2369 LSOF_CFGF="$LSOF_CFGF -D_LARGEFILE64_SOURCE"
2372 if test "X$HPUX_BASE" = "X/dev/kmem" # {
2375 # Configure for /dev/kmem-based HP-UX lsof.
2377 if test "X$HPUX_BOOTFILE" = "X" # {
2379 HPUX_BOOTFILE="/stand/vmunix"
2381 if test $LSOF_VERS -gt 1100 # {
2384 echo "************************************************"
2386 echo "* !!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!! *"
2388 echo "* LSOF DOES NOT SUPPORT THIS VERSION OF HP-UX. *"
2390 echo "************************************************"
2395 LSOF_CFGF="$LSOF_CFGF -DHPUXV=$LSOF_VERS"
2396 LSOF_CINFO="/dev/kmem-based"
2397 LSOF_DIALECT_DIR=hpux/kmem
2398 echo "Configuring /dev/kmem-based HP-UX lsof"
2399 if test $LSOF_VERS -lt 1000 # {
2401 if test "X$HPUX_X25DIR" = "X" # {
2403 HPUX_X25DIR="/etc/conf"
2405 HPUX_X25DIR=$HPUX_X25DIR
2407 if test -r ${HPUX_X25DIR}/x25/x25addrstr.h # {
2409 LSOF_CFGF="$LSOF_CFGF -DHPUX_CCITT"
2410 LSOF_DINC="$LSOF_DINC -I$HPUX_X25DIR"
2413 if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h -a -r ${LSOF_INCLUDE}/sys/fs/vx_hpux.h # {
2415 LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
2417 if test $LSOF_VERS -ge 1030 # {
2419 if test "X$HPUX_KERNBITS" = "X" # {
2421 HPUX_KERNBITS=`getconf _SC_KERNEL_BITS`
2423 LSOF_CFGF="$LSOF_CFGF -DHPUXKERNBITS=${HPUX_KERNBITS} -I`pwd`/dialects/hpux/kmem/hpux11"
2424 if test $HPUX_KERNBITS -eq 64 # {
2428 echo "*****************************************"
2430 echo "* NOTICE! Configuring for 64 bit HP-UX *"
2432 echo "*****************************************"
2433 echo $LSOF_CC | grep gcc > /dev/null
2434 if test $? -eq 0 # {
2437 # Test gcc for 64 bit support, trying gcc with no options, then
2438 # with -mlp64, testing the result with file.
2441 echo "Testing $LSOF_CC for 64 bit support"
2442 rm -f ${LSOF_TMPC}.*
2443 echo "main(){}" > ${LSOF_TMPC}.c
2445 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
2446 if test $? -eq 0 # {
2448 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
2449 if test $? -eq 0 # {
2454 if test "X$LSOF_TMP1" = "X" # {
2456 rm -f ${LSOF_TMPC}.x
2457 $LSOF_CC ${LSOF_TMPC}.c -mlp64 -o ${LSOF_TMPC}.x > /dev/null 2>&1
2458 if test $? -eq 0 # {
2460 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
2461 if test $? -eq 0 # {
2467 rm -f ${LSOF_TMPC}.*
2468 if test "X$LSOF_TMP1" = "X" # {
2471 echo "***************************************************"
2473 echo "* !!!!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!!! *"
2475 echo "* APPARENTLY GCC CANNOT BUILD 64 BIT EXECUTABLES. *"
2476 echo "* A COMPILER MUST BE USED THAT CAN. SEE 00FAQ *"
2477 echo "* FOR MORE INFORMATION. *"
2479 echo "***************************************************"
2484 if test "X$LSOF_TMP1" != "X " # {
2486 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
2488 LSOF_CFGL="$LSOF_CFGL -lelf"
2489 LSOF_CINFO="${LSOF_CINFO}, 64 bit HP-UX"
2493 # Set options for the HP-UX compiler.
2495 LSOF_CFGF="$LSOF_CFGF +DD64"
2496 LSOF_CFGL="$LSOF_CFGL -lelf"
2497 LSOF_CINFO="${LSOF_CINFO}, 64 bit HP-UX"
2500 LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64"
2501 LSOF_CINFO="${LSOF_CINFO}, 32 bit HP-UX"
2502 echo $LSOF_CC | grep gcc > /dev/null
2503 if test $? -ne 0 # {
2505 LSOF_CFGF="$LSOF_CFGF +DAportable"
2508 LSOF_CFGL="$LSOF_CFGL -lnsl"
2511 # When HP-UX is less than 10.30, but greater than or equal to 10,
2512 # check NFS3 rnode status.
2514 if test $LSOF_VERS -ge 1000 # {
2517 if test "X$HPUX_RNODE3" = "X" # {
2519 nm -x $HPUX_BOOTFILE | grep -q nfs_vnodeops3
2520 if test $? -eq 0 # {
2522 if test -r ${LSOF_INCLUDE}/nfs/rnode.h # {
2524 grep -q r_fh3 ${LSOF_INCLUDE}/nfs/rnode.h
2525 if test $? -ne 0 # {
2532 if test "X$HPUX_RNODE3" = "X1" # {
2537 if test $LSOF_TMP1 -eq 1 # {
2539 LSOF_CFGF="$LSOF_CFGF -DHASRNODE3"
2543 if test $LSOF_VERS -eq 1100 # {
2546 # Test for the ipis_s structure. If it is present, set HAS_IPC_S_PATCH.
2548 if test "X$HPUX_IPC_S_PATCH" = "X" # {
2550 if test -x /usr/contrib/Q4/bin/q4exe # {
2552 LSOF_TMP=/usr/contrib/Q4/bin/q4exe
2554 LSOF_TMP=/usr/contrib/bin/q4
2556 if test -x $LSOF_TMP # {
2558 rm -f ${LSOF_TMPC}.out
2560 echo $EO "Looking in $HPUX_BOOTFILE for ipis_s with $LSOF_TMP ... $EC"
2561 echo "yes\\nfields -c struct ipis_s" | $LSOF_TMP $HPUX_BOOTFILE > ${LSOF_TMPC}.out 2>&1
2562 if test $? -ne 0 # {
2566 echo "!!!ERROR!!! $LSOF_TMP failed and produced the following output."
2568 cat ${LSOF_TMPC}.out
2569 HPUX_IPC_S_PATCH=fail
2571 grep ipis_s ${LSOF_TMPC}.out > /dev/null 2>&1
2572 if test $? -eq 0 # {
2574 echo "ipis_s exists."
2576 # See if ipis_msgsqueued is present.
2578 grep ipis_msgsqueued ${LSOF_TMPC}.out > /dev/null 2>&1
2579 if test $? -eq 0 # {
2586 echo "ipis_s doesn't exist."
2590 rm -f ${LSOF_TMPC}.out
2592 echo "Can't locate or execute $LSOF_TMP"
2593 echo $EO "ls says: $EC"
2595 HPUX_IPC_S_PATCH=fail
2598 if test "X$HPUX_IPC_S_PATCH" = "Xfail" # {
2601 echo "!!!ERROR!!! !!!ERROR!!! !!!ERROR!!! !!!ERROR!!!"
2602 echo "Configure can't use $LSOF_TMP to examine the ipis_s"
2603 echo "structure. You must do that yourself, report the result in"
2604 echo "the HPUX_IPC_S_PATCH environment variable, then repeat the"
2605 echo "Configure step. Consult the Configure script's use of"
2606 echo "$LSOF_TMP and the 00XCONFIG file for information"
2607 echo "on ipis_s testing and the setting of HPUX_IPC_S_PATCH."
2608 echo "!!!ERROR!!! !!!ERROR!!! !!!ERROR!!! !!!ERROR!!!"
2613 if test "X$HPUX_IPC_S_PATCH" = "X1" -o "X$HPUX_IPC_S_PATCH" = "X2" # {
2615 LSOF_CFGF="$LSOF_CFGF -DHAS_IPC_S_PATCH=$HPUX_IPC_S_PATCH"
2617 if test "X$HPUX_IPC_S_PATCH" != "Xn" -a "X$HPUX_IPC_S_PATCH" != "XN" # {
2619 echo "Illegal value for HPUX_IPC_S_PATCH: $HPUX_IPC_S_PATCH"
2626 # Manufacture an hpux_mount.h header file with a mount struct in it, as
2629 if test -r ${LSOF_INCLUDE}/sys/mount.h # {
2631 LSOF_TMP1="dialects/${LSOF_DIALECT_DIR}/hpux_mount.h"
2633 echo "#if !defined(MANUFACTURED_HPUX_SYS_MOUNT_H)" > $LSOF_TMP1
2634 echo "#define MANUFACTURED_HPUX_SYS_MOUNT_H" >> $LSOF_TMP1
2635 echo "/* By lsof Configure:" `date` " */" >> $LSOF_TMP1
2636 echo "struct mount" >> $LSOF_TMP1
2637 sed '1,/struct mount/d' ${LSOF_INCLUDE}/sys/mount.h | sed -n '1,/m_dev/p' >> $LSOF_TMP1
2638 echo "};" >> $LSOF_TMP1
2639 echo "#endif" >> $LSOF_TMP1
2640 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/${LSOF_DIALECT_DIR}"
2643 # Test for OnlineJFS.
2645 if test $LSOF_VERS -ge 1100 # {
2647 if test "X$HPUX_HASONLINEJFS" = "X" -a -x /sbin/fs/vxfs/subtype # {
2649 LSOF_TMP1=`/sbin/fs/vxfs/subtype`
2650 if test "X$LSOF_TMP1" = "Xvxfs3.3"
2652 HPUX_HASONLINEJFS="Y"
2655 if test "X$HPUX_HASONLINEJFS" = "XY" -o "X$HPUX_HASONLINEJFS" = "Xy"
2658 LSOF_CFGF="$LSOF_CFGF -DHASONLINEJFS"
2664 if test -r ${AFS_VICE}/etc/ThisCell # {
2666 if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
2668 if test -r ./AFSHeaders -a -r ./AFSVersion # {
2673 if test ! -x ./AFSConfig # {
2675 echo "Can't find or execute the AFSConfig script"
2680 if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
2685 if test "X$LSOF_AFS" = "Xyes" # {
2687 LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
2688 LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
2689 LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
2693 echo "HP-UX base unrecognized: $HPUX_BASE"
2700 # Configure for Linux.
2703 LSOF_TSTBIGF="-D_FILE_OFFSET_BITS=64"
2705 if test "X$LSOF_CC" = "X" # {
2708 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
2710 if test "X$LINUX_CONF_CC" = "X" # {
2712 LINUX_CONF_CC=$LSOF_CC
2715 if test "X$LINUX_INCL" = "X" # {
2717 LINUX_INCL=/usr/include
2719 LSOF_DINC="$LSOF_DINC -I${LINUX_INCL}"
2721 if test "X$LINUX_VERSION_CODE" = "X" # {
2723 if test -r "$LINUX_INCL/linux/version.h" # {
2725 LINUX_VERSION_CODE=`cat $LINUX_INCL/linux/version.h | sed -n 's/.\+LINUX_VERSION_CODE \([[:digit:]]\+\)$/\1/p'`
2728 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);'`
2729 if test "X$LSOF_VSTR" = "X" # {
2731 LSOF_VSTR=`uname -r`
2733 if test "X$LSOF_VERS" = "X" # {
2736 # If the Linux version isn't predefined, determine it.
2738 LSOF_VERS=`echo $LSOF_VSTR | sed 's/\./ /g' | awk '{printf "%d%d%03d",\$1,\$2,\$3}'`
2740 LSOF_CFGF="$LSOF_CFGF -DLINUXV=$LSOF_VERS"
2741 if test $LSOF_VERS -lt 21072 # {
2744 echo "!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!"
2746 echo "! THE /PROC-BASED LSOF SOURCES HAVE NOT BEEN TESTED ON !"
2747 echo "! LINUX KERNELS BELOW 2.1.72, AND MAY NOT WORK ON THIS !"
2748 echo "! KERNEL. IT SHOULD USE A /DEV/KMEM-BASED LSOF. !"
2750 echo "!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!"
2756 # If the Linux C library type isn't predefined, determine it.
2758 if test "X$LINUX_CLIB" = "X" # {
2760 echo -n "Testing C library type with $LINUX_CONF_CC ... "
2761 rm -f ${LSOF_TMPC}.*
2762 cat > $LSOF_TMPC.c << .LSOF_END_HERE_DOC1
2763 #include <features.h>
2765 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
2766 printf("-DGLIBCV=%d\n",__GLIBC__*100+__GLIBC_MINOR__);
2767 #elif defined(__GLIBC__)
2768 printf("-DGLIBCV=%d00\n",__GLIBC__);
2774 $LINUX_CONF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
2775 if test -x ${LSOF_TMPC}.x # {
2777 LINUX_CLIB=`${LSOF_TMPC}.x`
2783 rm -f ${LSOF_TMPC}.*
2785 if test $LSOF_TMP -ne 0 # {
2787 echo "Cannot determine C library type; assuming it is not glibc."
2790 if test "X$LINUX_CLIB" = "X" # {
2792 echo "The C library type is not glibc."
2794 echo "The C library type is glibc, version \"$LINUX_CLIB\"."
2798 if test "X$LINUX_CLIB" != "X" # {
2800 LSOF_CFGF="$LSOF_CFGF $LINUX_CLIB"
2803 # Test for IPv6 support.
2805 if test -r ${LSOF_INCLUDE}/netinet/ip6.h # {
2807 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2810 # Test for <rpc/rpc.h>.
2812 if ! test -r ${LSOF_INCLUDE}/rpc/rpc.h # {
2814 LSOF_CFGF="$LSOF_CFGF -DHASNORPC_H"
2817 # Test for SELinux support.
2820 if test "X$LINUX_HASSELINUX" = "X" # {
2822 if test -r ${LSOF_INCLUDE}/selinux/selinux.h # {
2827 if test "X$LINUX_HASSELINUX" = "XY" -o "X$LINUX_HASSELINUX" = "Xy" # {
2832 if test $LSOF_TMP1 -eq 1 # {
2834 LSOF_CFGF="$LSOF_CFGF -DHASSELINUX"
2835 LSOF_CFGL="$LSOF_CFGL -lselinux"
2837 LSOF_DIALECT_DIR="linux"
2838 LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
2841 # Configure for NetBSD.
2844 if test "X$LSOF_CC" = "X" # {
2847 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
2849 if test "X$LSOF_VSTR" = "X" # {
2851 LSOF_VSTR=`uname -r`
2853 if test "X$LSOF_VERS" = "X" # {
2856 # Validate the NetBSD version.
2858 case $LSOF_VSTR in # {
2878 echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR"
2879 echo "!!!WARNING!!! Configuring for NetBSD 1.6"
2899 echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR"
2900 echo "!!!WARNING!!! Configuring for NetBSD 2.0"
2912 echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR"
2913 echo "!!!WARNING!!! Configuring for NetBSD 3.0"
2916 echo "Unknown NetBSD release: $LSOF_VSTR"
2917 echo Assuming NetBSD 1.6
2923 # Test for legal NetBSD version.
2925 case $LSOF_VERS in # {
2926 1002000|1003000|1004000|1005000|1006000)
2928 2000000|2099009|2099010)
2933 echo "Unknown NetBSD version: $LSOF_VERS"
2938 LSOF_CFGF="$LSOF_CFGF -DNETBSDV=$LSOF_VERS"
2939 LSOF_TMP1="-DN_UNIXV=/netbsd"
2940 if test -r ${LSOF_INCLUDE}/util.h # {
2942 grep -q getbootfile ${LSOF_INCLUDE}/util.h
2943 if test $? -eq 0 # {
2945 LSOF_CFGL="$LSOF_CFGL -lutil"
2946 LSOF_TMP1="-DHASGETBOOTFILE"
2949 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
2950 if test -r ${LSOF_INCLUDE}/kvm.h # {
2952 grep -q kvm_getproc2 ${LSOF_INCLUDE}/kvm.h
2953 if test $? -eq 0 # {
2955 LSOF_CFGF="$LSOF_CFGF -DHASKVMGETPROC2"
2959 # Here begin the dual tests on header files that may be in $LSOF_INCLUDE
2962 # Note that $LSOF_TMP1 holds an indicator of the need for -I$NETBSD_SYS.
2963 # LSOF_TMP4 contains a temporary indicator of the use of $NETBSD_SYS.
2966 if test "X$NETBSD_SYS" = "X" # {
2968 if test -d /usr/src # {
2970 NETBSD_SYS="/usr/src/sys"
2972 NETBSD_SYS=$LSOF_INCLUDE
2975 LSOF_TMP2="nfs/nfsproto.h"
2976 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
2978 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
2981 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
2983 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
2989 if test "X$LSOF_TMP3" != "X" # {
2991 LSOF_CFGF="$LSOF_CFGF -DHASNFSPROTO"
2992 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
2997 LSOF_TMP2="netinet/ip6.h"
2998 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3000 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3003 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3005 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3011 if test "X$LSOF_TMP3" != "X" # {
3013 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
3014 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3019 LSOF_TMP2="netinet/in.h"
3020 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3022 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3025 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3027 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3033 if test "X$LSOF_TMP3" != "X" # {
3035 grep -q IPV6_INRIA_VERSION $LSOF_TMP3
3036 if test $? -eq 0 # {
3038 LSOF_CFGF="$LSOF_CFGF -DHASIPv6 -DHASINRIAIPv6"
3039 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3046 LSOF_TMP2="miscfs/fdesc/fdesc.h"
3047 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3049 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3051 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3053 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3059 if test "X$LSOF_TMP3" != "X" # {
3061 grep -q Fctty $LSOF_TMP3
3062 if test $? -eq 0 # {
3064 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
3066 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
3068 grep -q fd_link $LSOF_TMP3
3069 if test $? -eq 0 # {
3071 LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
3073 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3078 LSOF_TMP2="miscfs/nullfs/null.h"
3079 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3081 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3084 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3086 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3092 if test "X$LSOF_TMP3" != "X" # {
3094 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
3095 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3100 LSOF_TMP2="miscfs/procfs"
3101 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3103 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3106 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3108 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3114 if test "X$LSOF_TMP3" != "X" # {
3116 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
3117 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3121 if test -r ${LSOF_TMP3}/procfs.h # {
3123 grep -q PFSroot ${LSOF_TMP3}/procfs.h
3124 if test $? -eq 0 # {
3126 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS_PFSROOT"
3130 LSOF_TMP2="sys/bufq.h"
3132 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3134 LSOF_CFGF="$LSOF_CFGF -DHASBUFQ_H"
3136 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3138 if test $NETBSD_SYS != $LSOF_INCLUDE # {
3140 LSOF_CFGF="$LSOF_CFGF -DHASBUFQ_H"
3145 LSOF_TMP2="isofs/cd9660"
3146 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3148 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3151 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3153 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3159 if test "X$LSOF_TMP3" != "X" # {
3161 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
3162 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3167 LSOF_TMP2="fs/cd9660"
3168 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3170 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3173 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3175 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3181 if test "X$LSOF_TMP3" != "X" # {
3183 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
3184 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3191 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3193 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3196 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3198 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3204 if test "X$LSOF_TMP3" != "X" # {
3206 LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=1"
3207 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3212 LSOF_TMP2="fs/msdosfs"
3213 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3215 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3218 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3220 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3226 if test "X$LSOF_TMP3" != "X" # {
3228 LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=2"
3229 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3235 LSOF_TMP2="miscfs/kernfs/kernfs.h"
3236 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3238 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3241 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3243 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3249 if test "X$LSOF_TMP3" != "X" # {
3251 grep -q "kt_name;" $LSOF_TMP3
3252 if test $? -eq 0 # {
3254 LSOF_CFGF="$LSOF_CFGF -DHASKERNFS"
3255 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3259 grep -q "*kfs_kt;" $LSOF_TMP3
3260 if test $? -eq 0 # {
3262 LSOF_CFGF="$LSOF_CFGF -DHASKERNFS_KFS_KT"
3266 LSOF_TMP2="sys/namei.h"
3267 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3269 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3272 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3274 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3280 if test "X$LSOF_TMP3" != "X" # {
3282 grep -q nc_vpid $LSOF_TMP3
3283 if test $? -eq 0 # {
3285 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
3286 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3292 LSOF_TMP2="ufs/ufs/inode.h"
3293 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3295 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3298 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3300 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3306 if test "X$LSOF_TMP3" != "X" # {
3308 grep -q i_ffs_size $LSOF_TMP3
3309 if test $? -eq 0 # {
3311 LSOF_CFGF="$LSOF_CFGF -DHASI_FFS"
3312 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3317 grep -q i_ffs1_size $LSOF_TMP3
3318 if test $? -eq 0 # {
3320 LSOF_CFGF="$LSOF_CFGF -DHASI_FFS1"
3321 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3327 grep -q i_ffs_effnlink $LSOF_TMP3
3328 if test $? -eq 0 # {
3330 LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_ffs_effnlink"
3331 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3337 LSOF_TMP2="sys/vnode.h"
3339 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3341 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3344 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3346 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3352 if test "XLSOF_TMP3" != "X" # {
3354 grep -q VT_EXT2FS $LSOF_TMP3
3355 if test $? -eq 0 # {
3357 LSOF_CFGF="$LSOF_CFGF -DHASEXT2FS"
3358 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3362 LSOF_TMP2="ufs/ufs/inode.h"
3363 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3365 LSOF_TMP5="${LSOF_INCLUDE}/$LSOF_TMP2"
3368 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3370 LSOF_TMP5="${NETBSD_SYS}/$LSOF_TMP2"
3376 if test "X$LSOF_TMP5" != "X" # {
3378 grep -q "*e2fs_din" $LSOF_TMP5
3379 if test $? -eq 0 # {
3381 LSOF_CFGF="$LSOF_CFGF -DHASI_E2FS_PTR"
3382 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3384 LSOF_TMP1=$LSOF_TMP6
3389 grep -q VT_LFS $LSOF_TMP3
3390 if test $? -eq 0 # {
3392 LSOF_CFGF="$LSOF_CFGF -DHASLFS"
3393 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3398 grep -q VT_PTYFS $LSOF_TMP3
3399 if test $? -eq 0 # {
3401 LSOF_TMP2="fs/ptyfs/ptyfs.h"
3402 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3404 LSOF_CFGF="$LSOF_CFGF -DHASPTYFS"
3406 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3408 if test $NETBSD_SYS != $LSOF_INCLUDE # {
3410 LSOF_CFGF="$LSOF_CFGF -DHASPTYFS"
3416 if test "X$NETBSD_UVM" = "X" # {
3418 grep -q UVM $LSOF_TMP3
3419 if test $? -ne 0 # {
3421 egrep -q "v_uvm;|v_uobj;" $LSOF_TMP3
3422 if test $? -eq 0 # {
3429 LSOF_TMP2="nfs/nfsnode.h"
3430 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3432 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3435 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3437 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3443 if test "X$LSOF_TMP3" != "X" # {
3445 grep -q "*n_vattr" $LSOF_TMP3
3446 if test $? -eq 0 # {
3448 LSOF_CFGF="$LSOF_CFGF -DHASNFSVATTRP"
3449 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3455 LSOF_TMP2="sys/lockf.h"
3456 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3458 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3461 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3463 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3469 if test "X$LSOF_TMP3" != "X" # {
3471 grep -q vop_advlock_args $LSOF_TMP3
3472 if test $? -eq 0 # {
3474 LSOF_CFGF="$LSOF_CFGF -DHAS_ADVLOCK_ARGS"
3475 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3480 grep -q lf_lwp $LSOF_TMP3
3481 if test $? -eq 0 # {
3483 LSOF_CFGF="$LSOF_CFGF -DHAS_LF_LWP"
3484 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3490 LSOF_TMP2="sys/lwp.h"
3491 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3493 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3496 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3498 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3504 if test "X$LSOF_TMP3" != "X" # {
3506 LSOF_CFGF="$LSOF_CFGF -DHAS_LWP_H"
3507 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3512 LSOF_TMP2="sys/filedesc.h"
3513 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3515 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3518 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3520 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3526 if test "X$LSOF_TMP3" != "X" # {
3528 grep -q "^struct cwdinfo {" $LSOF_TMP3
3529 if test $? -eq 0 # {
3531 LSOF_CFGF="$LSOF_CFGF -DHASCWDINFO"
3532 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3538 LSOF_TMP2="sys/pipe.h"
3539 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3541 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3544 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3546 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3552 if test "X$LSOF_TMP3" != "X" # {
3554 LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_PIPEH"
3555 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3560 if test -r ${LSOF_INCLUDE}/sys/statvfs.h # {
3562 grep -q '^struct statvfs {' ${LSOF_INCLUDE}/sys/statvfs.h
3563 if test $? -eq 0 # {
3565 LSOF_CFGF="$LSOF_CFGF -DHASSTATVFS"
3569 # Here end the dual NetBSD tests for header files in $LSOF_INCLUDE or
3572 # After this LSOF_TMP1 may be reused.
3574 if test $LSOF_TMP1 -eq 1 # {
3576 LSOF_DINC="-I$LSOF_INCLUDE -I$NETBSD_SYS"
3579 # Build special header files, as required.
3581 rm -rf dialects/n+obsd/include
3582 if test "X$NETBSD_UVM" = "XY" -o "X$NETBSD_UVM" = "Xy" # {
3584 mkdir dialects/n+obsd/include
3585 touch dialects/n+obsd/include/opt_uvmhist.h
3586 touch dialects/n+obsd/include/opt_lockdebug.h
3587 LSOF_CFGF="$LSOF_CFGF -DUVM -I`pwd`/dialects/n+obsd/include"
3588 if test -d ${LSOF_INCLUDE}/uvm # {
3590 LSOF_CFGF="$LSOF_CFGF -DHAS_UVM_INCL"
3593 LSOF_TMP2="sys/mount.h"
3594 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3596 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3598 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3600 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3605 if test "X$LSOF_TMP3" != "X" # {
3608 # Build a local NetBSD netexport.h header file for possible use by
3609 # <msdosfs/msdosfsmount.h>. Make sure CFGL contains a -I for it.
3611 LSOF_TMP1=${LSOF_TMPC}.edscr
3612 LSOF_TMP2=${LSOF_TMPC}.netcred
3613 LSOF_TMP3=${LSOF_TMPC}.netexport
3614 LSOF_TMP4=dialects/n+obsd/include/netexport.h
3615 if test ! -d dialects/n+obsd/include # {
3617 mkdir dialects/n+obsd/include
3619 rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4
3620 echo "/^struct netcred" > $LSOF_TMP1
3621 echo "1,.-1d" >> $LSOF_TMP1
3622 echo "/^};" >> $LSOF_TMP1
3623 echo "1,.w $LSOF_TMP2" >> $LSOF_TMP1
3624 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
3626 echo "/^struct netexport" > $LSOF_TMP1
3627 echo "1,.-1d" >> $LSOF_TMP1
3628 echo "/^};" >> $LSOF_TMP1
3629 echo "1,.w $LSOF_TMP3" >> $LSOF_TMP1
3630 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
3631 echo "/*" > $LSOF_TMP4
3632 echo " * netexport.h" >> $LSOF_TMP4
3633 echo -n " * Created by Configure: " >> $LSOF_TMP4
3634 echo `date` >> $LSOF_TMP4
3635 echo " */" >> $LSOF_TMP4
3636 echo "" >> $LSOF_TMP4
3637 echo "#if !defined(NETEXPORT_H)" >> $LSOF_TMP4
3638 echo "#define NETEXPORT_H" >> $LSOF_TMP4
3639 echo "" >> $LSOF_TMP4
3640 echo "#include <net/radix.h>" >> $LSOF_TMP4
3641 echo "" >> $LSOF_TMP4
3642 if test -r $LSOF_TMP2 # {
3644 cat $LSOF_TMP2 >> $LSOF_TMP4
3645 echo "" >> $LSOF_TMP4
3647 if test -r $LSOF_TMP3 # {
3649 cat $LSOF_TMP3 >> $LSOF_TMP4
3651 echo "#endif /* !defined(NETEXPORT_H) */" >> $LSOF_TMP4
3652 rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3
3653 echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3654 if test $? -ne 0 # {
3656 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3659 if test $LSOF_NBSD_BUFQH -eq 1 # {
3662 # Make a local copy of $NETBSD_SYS/sys/bufq.h.
3664 if test ! -d dialects/n+obsd/include # {
3666 mkdir dialects/n+obsd/include
3668 if test ! -d dialects/n+obsd/include/sys # {
3670 mkdir dialects/n+obsd/include/sys
3672 cp $NETBSD_SYS/sys/bufq.h dialects/n+obsd/include/sys
3673 echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3674 if test $? -ne 0 # {
3676 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3679 if test $LSOF_NBSD_PTYFS -eq 1 # {
3682 # Make a local copy of $NETBSD_SYS/sys/fs/ptyfs/.
3684 if test ! -d dialects/n+obsd/include # {
3686 mkdir dialects/n+obsd/include
3688 if test ! -d dialects/n+obsd/include/fs # {
3690 mkdir dialects/n+obsd/include/fs
3692 rm -rf dialects/n+obsd/include/fs/ptyfs
3693 mkdir dialects/n+obsd/include/fs/ptyfs
3694 cp $NETBSD_SYS/fs/ptyfs/*.h dialects/n+obsd/include/fs/ptyfs
3695 echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3696 if test $? -ne 0 # {
3698 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3701 LSOF_CFGL="$LSOF_CFGL -lkvm"
3702 LSOF_DIALECT_DIR=n+obsd
3705 # Configure for NeXTSTEP or OPENSTEP.
3707 nextstep|next|ns|nxt|openstep|os)
3709 LSOF_TSTXO="../lib/snpf.o"
3710 if test "X$LSOF_AR" = "X" # {
3712 LSOF_AR="rm -f \${LIB}; ar cr"
3714 if test "X$LSOF_VSTR" = "X" # {
3716 LSOF_VSTR=`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`
3718 if test "X$LSOF_VERS" = "X" # {
3721 # If the NeXSTEP version isn't predefined, determine it.
3723 LSOF_VERS=`echo $LSOF_VSTR | sed -n 's/\([0-9]*\)\.\([0-9]*\)/\1\2/p'`
3725 if test "X$LSOF_CC" = "X" # {
3727 if test -x /usr/local/bin/gcc # {
3729 LSOF_CC=/usr/local/bin/gcc
3730 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3733 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3736 echo $LSOF_CC | grep gcc > /dev/null
3737 if test $? -eq 0 # {
3739 LSOF_CFGL="$LSOF_CFGL -w"
3740 LSOF_DEBUG="-pedantic -O"
3742 LSOF_CFGF="$LSOF_CFGF -DSTEPV=$LSOF_VERS"
3743 LSOF_DIALECT_DIR=n+os
3747 if test -r ${AFS_VICE}/etc/ThisCell # {
3749 if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
3751 if test -r ./AFSHeaders -a -r ./AFSVersion # {
3756 if test ! -x ./AFSConfig # {
3758 echo "Can't find or execute the AFSConfig script"
3763 if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
3768 if test "X$LSOF_AFS" = "Xyes" # {
3770 LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
3771 LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
3772 LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
3777 # Configure for OpenBSD. (OpenBSD uses NetBSD dialect sources and version
3781 if test "X$LSOF_CC" = "X" # {
3784 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3786 if test "X$LSOF_VSTR" = "X" # {
3788 LSOF_VSTR=`uname -r`
3790 if test "X$LSOF_VERS" = "X" # {
3793 # If the OpenBSD version isn't pre-defined, determine it.
3795 case $LSOF_VSTR in # {
3798 echo "!!!WARNING!!! Unsupported OpenBSD 1.x version: $LSOF_VSTR"
3799 echo "!!!WARNING!!! Configuring for OpenBSD 1.2"
3822 echo "!!!WARNING!!! Unsupported OpenBSD 2.x version: $LSOF_VSTR"
3823 echo "!!!WARNING!!! Configuring for OpenBSD 2.9"
3868 echo "!!!WARNING!!! Unsupported OpenBSD 3.x version: $LSOF_VSTR"
3869 echo "!!!WARNING!!! Configuring for OpenBSD 3.9"
3872 echo "Unknown OpenBSD release: $LSOF_VSTR"
3873 echo Assuming OpenBSD 3.9
3879 # Test for legal OpenBSD version.
3881 case $LSOF_VERS in # {
3882 1020|2050|2060|2070|2080|2090|3000|3010|3020|3030|3040|3050|3060|3070|3080|3090)
3885 echo "Unknown OpenBSD version: $LSOF_VERS"
3890 LSOF_CFGF="$LSOF_CFGF -DOPENBSDV=$LSOF_VERS"
3891 if test -r /dev/ksyms # {
3893 LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=/dev/ksyms"
3895 LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=/bsd"
3897 if test -r ${LSOF_INCLUDE}/nfs/nfsproto.h # {
3899 LSOF_CFGF="$LSOF_CFGF -DHASNFSPROTO"
3901 if test -r ${LSOF_INCLUDE}/netinet6/in6.h # {
3903 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
3906 if test "X$OPENBSD_SYS" = "X" # {
3910 if test -r ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h # {
3912 grep -q Fctty ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h
3913 if test $? -eq 0 # {
3915 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
3917 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
3919 grep -q fd_link ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h
3920 if test $? -eq 0 # {
3922 LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
3926 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
3928 grep -q VT_LFS ${LSOF_INCLUDE}/sys/vnode.h
3929 if test $? -eq 0 # {
3931 LSOF_CFGF="$LSOF_CFGF -DHASLFS"
3934 if test -r ${LSOF_INCLUDE}/miscfs/nullfs/null.h # {
3936 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
3938 if test -r ${OPENBSD_SYS}/miscfs/nullfs/null.h # {
3940 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
3944 if test -d ${OPENBSD_SYS}/miscfs/procfs # {
3946 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
3949 if test -d ${OPENBSD_SYS}/isofs/cd9660 # {
3951 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
3954 if test -d ${OPENBSD_SYS}/fs/cd9660 # {
3956 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=2"
3960 if test -d ${OPENBSD_SYS}/msdosfs # {
3962 LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=1"
3965 if test -d ${OPENBSD_SYS}/fs/msdosfs # {
3967 LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=2"
3971 if test -r ${OPENBSD_SYS}/miscfs/kernfs/kernfs.h # {
3973 grep -q "kt_name;" ${OPENBSD_SYS}/miscfs/kernfs/kernfs.h
3974 if test $? -eq 0 # {
3976 LSOF_CFGF="$LSOF_CFGF -DHASKERNFS"
3980 if test $LSOF_TMP1 -eq 1 -a "X$LSOF_INCLUDE" != "X$OPENBSD_SYS" # {
3982 LSOF_DINC="-I$LSOF_INCLUDE -I$OPENBSD_SYS"
3984 grep -q VT_EXT2FS ${LSOF_INCLUDE}/sys/vnode.h
3985 if test $? -eq 0 # {
3988 if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
3990 grep -q "*e2fs_din" ${LSOF_INCLUDE}/ufs/ufs/inode.h
3991 if test $? -eq 0 # {
3993 LSOF_CFGF="$LSOF_CFGF -DHASI_E2FS_PTR"
3995 grep -q "^#define[ ]i_e2din" ${LSOF_INCLUDE}/ufs/ufs/inode.h
3996 if test $? -eq 0 # {
4001 LSOF_CFGF="$LSOF_CFGF -DHASEXT2FS=$LSOF_TMP1"
4003 if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
4005 grep -q i_effnlink ${LSOF_INCLUDE}/ufs/ufs/inode.h
4006 if test $? -eq 0 # {
4008 LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_effnlink"
4010 grep -q dinode_u ${LSOF_INCLUDE}/ufs/ufs/inode.h
4011 if test $? -eq 0 # {
4013 LSOF_CFGF="$LSOF_CFGF -DHAS_DINODE_U"
4015 grep -q i_ffs1_size ${LSOF_INCLUDE}/ufs/ufs/inode.h
4016 if test $? -eq 0 # {
4018 LSOF_CFGF="$LSOF_CFGF -DHASI_FFS1"
4020 grep -q UM_UFS ${LSOF_INCLUDE}/ufs/ufs/inode.h
4021 if test $? -eq 0 # {
4023 LSOF_CFGF="$LSOF_CFGF -DHAS_UM_UFS"
4026 if test -r ${LSOF_INCLUDE}/sys/namei.h
4028 grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
4029 if test $? -eq 0 # {
4031 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
4034 if test "X$OPENBSD_UVM" = "X" # {
4036 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
4038 grep -q UVM ${LSOF_INCLUDE}/sys/vnode.h
4039 if test $? -ne 0 # {
4041 egrep -q "v_uvm;|v_uobj;" ${LSOF_INCLUDE}/sys/vnode.h
4042 if test $? -eq 0 # {
4049 if test "X$OPENBSD_UVM" = "XY" -o "X$OPENBSD_UVM" = "Xy" # {
4051 LSOF_CFGF="$LSOF_CFGF -DUVM"
4052 if test -d ${LSOF_INCLUDE}/uvm # {
4054 LSOF_CFGF="$LSOF_CFGF -DHAS_UVM_INCL"
4057 if test -r ${LSOF_INCLUDE}/sys/mount.h -a $LSOF_VERS -lt 3030 # {
4060 # Build a local OpenBSD netexport.h header file for possible use by
4061 # <msdosfs/msdosfsmount.h>. Make sure CFGL contains a -I for it.
4063 LSOF_TMP1=${LSOF_TMPC}.edscr
4064 LSOF_TMP2=${LSOF_TMPC}.netcred
4065 LSOF_TMP3=${LSOF_TMPC}.netexport
4066 LSOF_TMP4=dialects/n+obsd/include/netexport.h
4067 if test ! -d dialects/n+obsd/include # {
4069 mkdir dialects/n+obsd/include
4071 rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4
4072 echo "/^struct netcred" > $LSOF_TMP1
4073 echo "1,.-1d" >> $LSOF_TMP1
4074 echo "/^};" >> $LSOF_TMP1
4075 echo "1,.w $LSOF_TMP2" >> $LSOF_TMP1
4076 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
4078 echo "/^struct netexport" > $LSOF_TMP1
4079 echo "1,.-1d" >> $LSOF_TMP1
4080 echo "/^};" >> $LSOF_TMP1
4081 echo "1,.w $LSOF_TMP3" >> $LSOF_TMP1
4082 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
4083 echo "/*" > $LSOF_TMP4
4084 echo " * netexport.h" >> $LSOF_TMP4
4085 echo -n " * Created by Configure: " >> $LSOF_TMP4
4086 echo `date` >> $LSOF_TMP4
4087 echo " */" >> $LSOF_TMP4
4088 echo "" >> $LSOF_TMP4
4089 echo "#if !defined(NETEXPORT_H)" >> $LSOF_TMP4
4090 echo "#define NETEXPORT_H" >> $LSOF_TMP4
4091 echo "" >> $LSOF_TMP4
4092 echo "#include <net/radix.h>" >> $LSOF_TMP4
4093 echo "" >> $LSOF_TMP4
4094 if test -r $LSOF_TMP2 # {
4096 cat $LSOF_TMP2 >> $LSOF_TMP4
4097 echo "" >> $LSOF_TMP4
4099 if test -r $LSOF_TMP3 # {
4101 cat $LSOF_TMP3 >> $LSOF_TMP4
4103 echo "#endif /* !defined(NETEXPORT_H) */" >> $LSOF_TMP4
4104 rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3
4105 echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
4106 if test $? -ne 0 # {
4108 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
4111 if test -r ${LSOF_INCLUDE}/sys/lockf.h # {
4113 grep vop_advlock_args ${LSOF_INCLUDE}/sys/lockf.h > /dev/null
4114 if test $? -eq 0 # {
4116 LSOF_CFGF="$LSOF_CFGF -DHAS_ADVLOCK_ARGS"
4119 if test -r ${LSOF_INCLUDE}/sys/pipe.h # {
4121 LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_PIPEH"
4123 LSOF_CFGL="$LSOF_CFGL -lkvm"
4124 LSOF_DIALECT_DIR=n+obsd
4127 # Configure for SCO OpenServer.
4129 osr|osrgcc|sco|scogcc)
4130 if test "X$LSOF_RANLIB_SUP" = "X" # {
4134 if test "X$OSR_CFGF" != "X" # {
4137 # Adopt LSOF_CFGF from OSR_CFGF in environment.
4141 if test "X$OSR_CFGL" != "X" # {
4144 # Adopt LSOF_CFGL from OSR_CFGL in environment.
4149 # Evaluate compiler specification.
4151 if test "X$LSOF_CC" = "X" # {
4153 if test "X$LSOF_TGT" = "Xosr" -o "X$LSOF_TGT" = "Xsco" # {
4159 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
4167 # Determine version.
4169 if test "X$LSOF_VSTR" = "X" # {
4171 LSOF_VSTR="`LANG=C_C.C /bin/uname -X 2>/dev/null | grep Release | sed 's/Release = \(.*\)/\1/'`"
4173 if test "X$LSOF_VERS" = "X" # {
4176 # If the SCO OpenServer release version isn't predefined, determine it.
4178 case $LSOF_VSTR in # {
4195 LSOF_TSTLFLG="-lsocket"
4196 LSOF_VERS="`echo $LSOF_VSTR | sed 's/3\.2v//; s/\.//g'`"
4199 echo Unknown SCO OpenServer release: $LSOF_VSTR
4200 echo Assuming 3.2.0 or 3.2.1
4206 # Do SCO OpenServer specific stuff.
4208 case $LSOF_VERS in # {
4210 if test $LSOF_TMP1 -eq 1 # {
4212 LSOF_CFGF="$LSOF_CFGF -nointl"
4215 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4219 if test $LSOF_TMP1 -eq 1 # {
4223 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4227 if test $LSOF_TMP1 -eq 1 # {
4229 LSOF_CFGF="$LSOF_CFGF -nointl"
4232 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4236 if test $LSOF_TMP1 -eq 1 # {
4238 LSOF_CFGF="$LSOF_CFGF -nointl"
4241 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4244 if test $LSOF_TMP1 -eq 1 # {
4246 LSOF_CFGF="$LSOF_CFGF -nointl"
4249 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4252 if test $LSOF_TMP1 -eq 1 # {
4254 LSOF_CFGF="$LSOF_CFGF -nointl"
4257 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4260 if test $LSOF_TMP1 -eq 1 # {
4262 LSOF_CFGF="$LSOF_CFGF -belf"
4263 LSOF_DEBUG="-O3 -Kspace"
4265 LSOF_CFGL="$LSOF_CFGL -lsocket"
4268 echo "Unsupported SCO OpenServer release: $LSOF_VERS"
4273 LSOF_CFGF="$LSOF_CFGF -DOSRV=$LSOF_VERS"
4274 if test "X$OSR_STATLSTAT" = "X" # {
4276 echo "Testing libc.a for statlstat"
4277 /bin/nm /lib/libc.a | grep statlstat > /dev/null 2>&1
4278 if test $? -eq 0 # {
4280 LSOF_CFGF="$LSOF_CFGF -DHAS_STATLSTAT"
4283 if test "X$OSR_STATLSTAT" = "XY" -o "X$OSR_STATLSTAT" = "Xy" # {
4285 LSOF_CFGF="$LSOF_CFGF -DHAS_STATLSTAT"
4288 if test -r ${LSOF_INCLUDE}/sys/fs/nfs/rnode.h # {
4290 LSOF_CFGF="$LSOF_CFGF -DHAS_NFS"
4292 if test ! -r ${LSOF_INCLUDE}/netdb.h # {
4294 LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/osr/include"
4296 LSOF_DIALECT_DIR=osr
4299 # Configure for Sun Solaris, SunPro C and gcc.
4302 if test "X$LSOF_RANLIB_SUP" = "X" # {
4306 if test "X$LSOF_CC" = "X" # {
4308 if test "X$LSOF_TGT" = "Xsolariscc" # {
4310 if test "X$SOLARIS_CCDIR" = "X" # {
4312 SOLARIS_CCDIR="/opt/SUNWspro/bin"
4314 if test -x ${SOLARIS_CCDIR}/cc # {
4316 LSOF_CC=${SOLARIS_CCDIR}/cc
4318 if test -x /opt/SunStudioExpress/bin/cc # {
4320 LSOF_CC=/opt/SunStudioExpress/bin/cc
4322 echo "WARNING: no cc in ${SOLARIS_CCDIR}; using cc without path."
4326 LSOF_CCV=`$LSOF_CC -V 2>&1 | sed -n 's/^cc: \(.*\)/\1/p'`
4329 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
4333 if test "X$LSOF_VSTR" = "X" # {
4335 LSOF_VSTR=`uname -r`
4337 if test "X$LSOF_VERS" = "X" # {
4340 # If the Solaris version isn't predefined, determine it.
4342 case $LSOF_VSTR in # {
4359 LSOF_TSTLFLG="-lsocket -lnsl"
4364 LSOF_TSTLFLG="-lsocket -lnsl"
4369 LSOF_TSTLFLG="-lsocket -lnsl"
4374 LSOF_TSTLFLG="-lsocket -lnsl"
4379 LSOF_TSTLFLG="-lsocket -lnsl"
4384 LSOF_TSTLFLG="-lsocket -lnsl"
4388 echo Unknown Solaris version: $LSOF_VSTR
4394 # Clear LSOF_UNSUP message for selected Solaris versions.
4396 case $LSOF_VERS in # {
4397 90000|100000|110000)
4402 # Do Solaris version-specific stuff.
4404 case $LSOF_VERS in # {
4407 # Solaris patch 101318-32 creates a longer kernel tcp_s structure,
4408 # and 101318-45 changes the way the vnode's v_filocks member is
4409 # handled. The following code creates a symbol definition for
4410 # patch 101318 whose value is the patch level. No symbol is defined
4411 # if the patch level is not greater than zero.
4413 if test "X$SOLARIS_23P101318" = "X" # {
4415 LSOF_PL=`grep -h SUNW_PATCHID=101318 /var/sadm/pkg/SUNWcar*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4416 if test "X$LSOF_PL" = "X" # {
4421 LSOF_PL=$SOLARIS_23P101318
4423 if test $LSOF_PL -gt 0 # {
4425 LSOF_CFGF="$LSOF_CFGF -DP101318=$LSOF_PL"
4429 if test "X$SOLARIS_24P101945" = "X" # {
4431 LSOF_PL=`grep -h SUNW_PATCHID=101945 /var/sadm/pkg/SUNWcar*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4432 if test "X$LSOF_PL" = "X" # {
4437 LSOF_PL=$SOLARIS_24P101945
4439 if test $LSOF_PL -ge 32 # {
4441 if test "X$SOLARIS_24P102303" = "X" # {
4443 LSOF_PL=`grep -h SUNW_PATCHID=102303 /var/sadm/pkg/SUNWhea*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4444 if test "X$LSOF_PL" = "X" # {
4449 LSOF_PL=$SOLARIS_24P102303
4451 if test $LSOF_PL -ge 2 # {
4453 echo "WARNING: your Solaris 2.4 system appears to have patches 101945-32 and 102303-2"
4454 echo " installed. This probably means the NUM_*_VECTORS definitions in"
4455 echo " <sys/auxv.h> don't match the ones used to build your kernel. Consult"
4456 echo " the Sun Problems section of the 00FAQ file of the lsof distribution"
4457 echo " for more information on how to work around the problem."
4463 20600|70000|80000|90000|100000|110000)
4464 if test "X$SOLARIS_26PR_GWINDOWS" = "X" # {
4466 rm -f ${LSOF_TMPC}.*
4467 echo "#define _KMEMUSER" > ${LSOF_TMPC}.c
4468 echo "#include <sys/proc/prdata.h>" >> ${LSOF_TMPC}.c
4469 echo "main(){" >> ${LSOF_TMPC}.c
4470 echo "enum prnodetype p=PR_GWINDOWS;}" >> ${LSOF_TMPC}.c
4471 echo "Testing prdata.h for PR_GWINDOWS, using $LSOF_CC"
4472 echo $LSOF_CC | grep gcc > /dev/null
4473 if test $? -eq 0 # {
4475 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
4477 $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
4479 if test $? -eq 0 # {
4481 LSOF_CFGF="$LSOF_CFGF -DHASPR_GWINDOWS"
4484 if test "X$SOLARIS_26PR_GWINDOWS" = "XY" -o "X$SOLARIS_26PR_GWINDOWS" = "Xy" # {
4486 LSOF_CFGF="$LSOF_CFGF -DHASPR_GWINDOWS"
4489 if test "X$SOLARIS_26PR_LDT" = "X" # {
4491 rm -f ${LSOF_TMPC}.*
4492 echo "#define _KMEMUSER" > ${LSOF_TMPC}.c
4493 echo "#include <sys/proc/prdata.h>" >> ${LSOF_TMPC}.c
4494 echo "main(){" >> ${LSOF_TMPC}.c
4495 echo "enum prnodetype p=PR_LDT;}" >> ${LSOF_TMPC}.c
4496 echo "Testing prdata.h for PR_LDT, using $LSOF_CC"
4497 echo $LSOF_CC | grep gcc > /dev/null
4498 if test $? -eq 0 # {
4500 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
4502 $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
4504 if test $? -eq 0 # {
4506 LSOF_CFGF="$LSOF_CFGF -DHASPR_LDT"
4508 rm -f ${LSOF_TMPC}.*
4510 if test "X$SOLARIS_26PR_LDT" = "XY" -o "X$SOLARIS_26PR_LDT" = "Xy" # {
4512 LSOF_CFGF="$LSOF_CFGF -DHASPR_LDT"
4515 if test $LSOF_VERS -ge 70000 # {
4518 # Do tests for Solaris 7 and above.
4520 if test "X$SOLARIS_KERNBITS" = "X" # {
4522 SOLARIS_KERNBITS=`/bin/isainfo -kv`
4524 if test "X$SOLARIS_INSTR" = "X" # {
4526 SOLARIS_INSTR=`/bin/isainfo -k`
4528 echo $SOLARIS_KERNBITS | grep 64 > /dev/null
4529 if test $? -eq 0 # {
4531 echo $LSOF_CC | grep gcc > /dev/null
4532 if test $? -eq 0 # {
4535 # Test gcc for 64 bit support.
4537 echo "Testing $LSOF_CC for 64 bit support"
4538 rm -f ${LSOF_TMPC}.*
4539 echo "main(){}" > ${LSOF_TMPC}.c
4542 # First try gcc's -m64 option -- it's the most current possibility.
4544 $LSOF_CC ${LSOF_TMPC}.c -m64 -o ${LSOF_TMPC}.x > /dev/null 2>&1
4545 if test $? -eq 0 # {
4547 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
4548 if test $? -eq 0 # {
4553 rm -f ${LSOF_TMPC}.*
4554 if test "X$LSOF_TMP1" = "X" # {
4557 # Try using the older -mcpu=v9 option with gcc instead of -m64.
4559 echo "main(){}" > ${LSOF_TMPC}.c
4560 $LSOF_CC ${LSOF_TMPC}.c -mcpu=v9 -o ${LSOF_TMPC}.x > /dev/null 2>&1
4561 if test $? -eq 0 # {
4563 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
4564 if test $? -eq 0 # {
4566 LSOF_TMP1="-mcpu=v9"
4569 rm -f ${LSOF_TMPC}.*
4571 if test "X$LSOF_TMP1" = "X" # {
4574 echo "!!!WARNING!!!=========!!!WARNING!!!=========!!!WARNING!!!"
4576 echo "! LSOF NEEDS TO BE CONFIGURED FOR A 64 BIT KERNEL, BUT !"
4577 echo "! THIS GCC DOESN'T SUPPORT THE BUILDING OF 64 BIT !"
4578 echo "! SOLARIS EXECUTABLES. LSOF WILL BE CONFIGURED FOR A !"
4579 echo "! 32 BIT KERNEL. !"
4581 echo "!!!WARNING!!!=========!!!WARNING!!!=========!!!WARNING!!!"
4585 echo "*********************************"
4586 echo "* Configuring for 64 bit kernel *"
4587 echo "*********************************"
4589 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
4590 LSOF_CINFO="64 bit kernel"
4595 # Test Sun compiler for 64 bit support.
4597 case $SOLARIS_INSTR in # {
4610 if test "X$LSOF_TMP1" != "X" # {
4612 echo "Testing $LSOF_CC for 64 bit $LSOF_TMP2 support"
4613 rm -f ${LSOF_TMPC}.*
4614 LSOF_TMP3="-xarch=$LSOF_TMP1"
4615 echo "main(){}" > ${LSOF_TMPC}.c
4616 LSOF_TMP4=`$LSOF_CC ${LSOF_TMPC}.c $LSOF_TMP3 -o ${LSOF_TMPC}.x 2>&1`
4617 if test $? -eq 0 # {
4619 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
4620 if test $? -ne 0 # {
4624 echo "X$LSOF_TMP4" | grep "use -m64" > /dev/null 2>&1
4625 if test $? -eq 0 # {
4631 rm -f ${LSOF_TMPC}.*
4635 if test "X$LSOF_TMP3" != "X" # {
4638 echo "*********************************"
4639 echo "* Configuring for 64 bit kernel *"
4640 echo "*********************************"
4642 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP3"
4643 LSOF_CINFO="64 bit kernel"
4647 echo "!!!WARNING!!!==========!!!WARNING!!!==========!!!WARNING!!!"
4649 echo "! LSOF NEEDS TO BE CONFIGURED FOR A 64 BIT KERNEL, BUT"
4650 echo "! THE VERSION OF SUN C AVAILABLE DOESN'T SUPPORT THE"
4651 echo "! \"$LSOF_TMP2\" INSTRUCTION SET."
4653 echo "! LSOF WILL BE CONFIGURED FOR A 32 BIT KERNEL."
4655 echo "!!!WARNING!!!==========!!!WARNING!!!==========!!!WARNING!!!"
4661 echo "*********************************"
4662 echo "* Configuring for 32 bit kernel *"
4663 echo "*********************************"
4665 LSOF_CINFO="32 bit kernel"
4669 # Do tests specific to Solaris 8 and above.
4671 if test $LSOF_VERS -ge 80000 # {
4673 if test -r ${LSOF_INCLUDE}/netinet/ip6.h # {
4675 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
4679 # Do tests specific to Solaris 9 and above.
4681 if test $LSOF_VERS -ge 90000 # {
4683 if test -r ${LSOF_INCLUDE}/sys/socketvar.h # {
4685 grep soua_vp ${LSOF_INCLUDE}/sys/socketvar.h > /dev/null 2>&1
4686 if test $? -eq 0 # {
4688 LSOF_CFGF="$LSOF_CFGF -DHASSOUXSOUA"
4691 if test $LSOF_VERS -lt 110000 # {
4694 # Do tests specific to Solaris 9 and 10.
4696 if test -r ${LSOF_INCLUDE}/sys/lgrp_user.h # {
4698 if test -r ${LSOF_INCLUDE}/sys/lgrp.h # {
4700 grep lgrp_root ${LSOF_INCLUDE}/sys/lgrp_user.h > /dev/null 2>&1
4701 if test $? -eq 0 # {
4703 grep lgrp_root ${LSOF_INCLUDE}/sys/lgrp.h > /dev/null 2>&1
4706 LSOF_CFGF="$LSOF_CFGF -DHAS_LGRP_ROOT_CONFLICT"
4714 # Do tests specific to Solaris 10 and above.
4716 if test $LSOF_VERS -eq 100000 # {
4718 if test -r ${LSOF_INCLUDE}/sys/socket_proto.h # {
4720 LSOF_CFGF="$LSOF_CFGF -DHAS_SOCKET_PROTO_H"
4723 if test $LSOF_VERS -ge 100000 # {
4725 if test -r ${LSOF_INCLUDE}/inet/ipclassifier.h # {
4727 LSOF_CFGF="$LSOF_CFGF -DHAS_IPCLASSIFIER_H"
4728 grep conn_ixa ${LSOF_INCLUDE}/inet/ipclassifier.h > /dev/null 2>&1
4729 if test $? -eq 0 # {
4731 LSOF_CFGF="$LSOF_CFGF -DHAS_CONN_NEW"
4734 if test -r ${LSOF_INCLUDE}/sys/cred_impl.h # {
4736 LSOF_CFGF="$LSOF_CFGF -DHAS_CRED_IMPL_H"
4738 # DEBUG -- Begin temporary hack for Solaris 10, build s10_44.
4740 grep "c2/audit.h" ${LSOF_INCLUDE}/sys/cred_impl.h > /dev/null
4741 if test $? -eq 0 # {
4743 rm -rf `pwd`/dialects/sun/solaris10
4744 mkdir `pwd`/dialects/sun/solaris10
4745 mkdir `pwd`/dialects/sun/solaris10/c2
4746 touch `pwd`/dialects/sun/solaris10/c2/audit.h
4747 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/sun/solaris10"
4750 # DEBUG -- End temporary hack for Solaris 10, build s10_44.
4753 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
4755 grep v_path ${LSOF_INCLUDE}/sys/vnode.h > /dev/null 2>&1
4756 if test $? -eq 0 # {
4758 LSOF_CFGF="$LSOF_CFGF -DHAS_V_PATH"
4762 if test -r ${LSOF_INCLUDE}/sys/fs/pc_fs.h # {
4764 grep pc_direntpersec ${LSOF_INCLUDE}/sys/fs/pc_fs.h > /dev/null 2>&1
4765 if test $? -eq 0 # {
4767 LSOF_CFGF="$LSOF_CFGF -DHAS_PC_DIRENTPERSEC"
4771 if test -r ${LSOF_INCLUDE}/sys/zone.h # {
4773 LSOF_CFGF="$LSOF_CFGF -DHASZONES"
4776 # Check for Solaris 10 or higher CTF library and things that depend
4779 if test -r ${LSOF_INCLUDE}/libctf.h # {
4783 if test -r ${LSOF_INCLUDE}/sys/fs/zfs.h # {
4785 if test $LSOF_CTFH -eq 1 # {
4787 LSOF_CFGF="$LSOF_CFGF -DHAS_ZFS"
4790 echo "WARNING: ZFS support not enabled; libctf.h missing."
4793 if test $LSOF_VERS -ge 110000 # {
4796 # Do things specific to Solaris 11 and above.
4798 if test $LSOF_CTFH -eq 1 # {
4802 echo "WARNING: socket support not enabled; libctf.h missing."
4806 mkdir ./solaris11/sys
4807 touch ./solaris11/sys/extdirent.h
4808 echo "./solaris11/sys/extdirent.h created"
4809 LSOF_CFGF="$LSOF_CFGF -I`pwd`/solaris11"
4810 if test -r ${LSOF_INCLUDE}/sys/mutex.h # {
4813 # Check <sys/mutex.h> 'for pad_mutex_t;'.
4815 grep 'pad_mutex_t;' ${LSOF_INCLUDE}/sys/mutex.h > /dev/null 2>&1
4816 if test $? -eq 0 # {
4818 LSOF_CFGF="$LSOF_CFGF -DHAS_PAD_MUTEX"
4823 # If -lctf was added to LSOF_CFGL, define HAS_LIBCTF.
4825 if test $LSOF_CTFL -eq 1 # {
4827 LSOF_CFGF="$LSOF_CFGF -DHAS_LIBCTF"
4828 LSOF_CFGL="$LSOF_CFGL -lctf"
4832 echo "Unsupported Solaris version: $LSOF_VERS"
4837 LSOF_CFGF="$LSOF_CFGF -Dsolaris=$LSOF_VERS"
4839 # Test for <sys/fs/cachefs_fs.h>.
4841 if test -r ${LSOF_INCLUDE}/sys/fs/cachefs_fs.h # {
4843 LSOF_CFGF="$LSOF_CFGF -DHASCACHEFS"
4846 # Test for <utmpx.h>
4848 if test -r ${LSOF_INCLUDE}/utmpx.h # {
4850 LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
4855 if test "X$SOLARIS_VSOCK" = "X" # {
4857 rm -f ${LSOF_TMPC}.*
4858 echo "#include <sys/vnode.h>" > ${LSOF_TMPC}.c
4859 echo "main(){" >> ${LSOF_TMPC}.c
4860 echo "enum vtype p=VSOCK;}" >> ${LSOF_TMPC}.c
4861 echo "Testing vnode.h for VSOCK, using $LSOF_CC"
4862 echo $LSOF_CC | grep gcc > /dev/null
4863 if test $? -eq 0 # {
4865 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
4867 $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
4869 if test $? -eq 0 # {
4871 LSOF_CFGF="$LSOF_CFGF -DHAS_VSOCK"
4873 rm -f ${LSOF_TMPC}.*
4875 if test "X$SOLARIS_VSOCK" = "XY" -o "X$SOLARIS_VSOCK" = "Xy" # {
4877 LSOF_CFGF="$LSOF_CFGF -DHAS_VSOCK"
4883 if test -r ${AFS_VICE}/etc/ThisCell # {
4885 if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
4887 if test -r ./AFSHeaders -a -r ./AFSVersion # {
4892 if test ! -x ./AFSConfig # {
4894 echo "Can't find or execute the AFSConfig script"
4899 if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
4904 if test "X$LSOF_AFS" = "Xyes" # {
4906 if test "X$SUN_AFSAPATHDEF" = "X" # {
4908 ls /usr/vice/etc/modload/libafs > /dev/null 2>&1
4909 if test $? -ne 0 # {
4911 LSOF_TMP1=`ls /usr/vice/etc/modload/libafs* 2>/dev/null | wc -l`
4912 if test $LSOF_TMP1 -ne 0 # {
4914 SUN_AFSAPATHDEF=`ls -t /usr/vice/etc/modload/libafs* | head -1`
4918 if test "X$SUN_AFSAPATHDEF" != "X" # {
4920 LSOF_CFGF="$LSOF_CFGF -DAFSAPATHDEF=\\\"$SUN_AFSAPATHDEF\\\""
4922 LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
4923 LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
4924 LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
4930 # If the location of the VxFS header files hasn't been defined in the
4931 # environment, establish their likely locations.
4933 LSOF_TMP2=$SOLARIS_VXFSINCL
4934 if test -d /opt/VRTS/include # {
4936 LSOF_TMP2="$LSOF_TMP2 /opt/VRTS/include"
4938 if test -d /opt/VRTSvxfs/include # {
4940 LSOF_TMP2="$LSOF_TMP2 /opt/VRTSvxfs/include"
4943 for i in $LSOF_TMP2 # {
4945 if test -r ${i}/vxfsutil.h # {
4952 if test $LSOF_TMP1 -eq 1 # {
4955 # The VxFS header files are for VxFS version 3.4 or above. Enable VxFS
4956 # for those versions.
4958 LSOF_CFGF="$LSOF_CFGF -DHASVXFS -DHASVXFSUTIL -I$SOLARIS_VXFSINCL"
4960 # Determine which libvxfsutil.a is required -- 32 or 64 bit.
4962 LSOF_TMP2="" # assume 32 bit
4963 echo "X$LSOF_CINFO" | grep "^X64" > /dev/null 2>&1
4964 if test $? -eq 0-a "X$SOLARIS_INSTR" != "X" # {
4966 case $SOLARIS_INSTR in # {
4971 LSOF_TMP2="/sparcv9"
4976 # See if the correct library has been specified and exists.
4978 if test "X$SOLARIS_VXFSLIB" = "X" # {
4980 SOLARIS_VXFSLIB=`dirname $SOLARIS_VXFSINCL`/lib
4982 LSOF_TMP3="${SOLARIS_VXFSLIB}${LSOF_TMP2}/libvxfsutil.a"
4983 if test ! -r $LSOF_TMP3 # {
4985 echo "!!!FATAL: no VxFS $LSOF_TMP3"
4988 LSOF_CFGL="$LSOF_CFGL -L$SOLARIS_VXFSLIB${LSOF_TMP2} -lvxfsutil -ldl"
4990 # See if the library has the Reverse Name Lookup (RNL) function.
4992 nm $LSOF_TMP3 | grep vxfs_inotopath > /dev/null 2>&1
4993 if test $? -eq 0 # {
4995 LSOF_CFGF="$LSOF_CFGF -DHASVXFSRNL -DHASVXFSDNLC"
4999 # See if there are VxFS header files for VxFS versions below 3.4.
5001 if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h # {
5004 # Define VxFS for VxFS versions below 3.4. Make additional header
5007 LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5008 if test -r ${LSOF_INCLUDE}/sys/fs/vx_fs.h # {
5010 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_FS_H"
5012 if test -r ${LSOF_INCLUDE}/sys/fs/vx_sol.h # {
5014 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_SOL_H"
5016 if test -r ${LSOF_INCLUDE}/sys/fs/vx_machdep.h # {
5018 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_MACHDEP_H"
5020 if test -r ${LSOF_INCLUDE}/sys/fs/vx_solaris.h # {
5022 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_SOLARIS_H"
5023 grep "off32_t;" ${LSOF_INCLUDE}/sys/fs/vx_machdep.h > /dev/null
5024 if test $? -eq 0 # {
5026 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_OFF32_T"
5028 grep "off64_t;" ${LSOF_INCLUDE}/sys/fs/vx_solaris.h > /dev/null
5029 if test $? -eq 0 # {
5031 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_OFF64_T"
5033 grep "vx_u64_t;" ${LSOF_INCLUDE}/sys/fs/vx_solaris.h > /dev/null
5034 if test $? -eq 0 # {
5036 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_U64_T"
5039 egrep "struct[ ]vx_inode[ ]\{" ${LSOF_INCLUDE}/sys/fs/vx_inode.h > /dev/null
5040 # } (dummy '}' to match '{' in above egrep)
5041 if test $? -eq 0 # {
5043 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_VX_INODE"
5048 # Set libraries and dialect subdirectory.
5050 LSOF_CFGL="$LSOF_CFGL -lkvm -lelf -lsocket -lnsl"
5051 LSOF_DIALECT_DIR=sun
5053 # Set local-specific stuff.
5055 if test "X$LSOF_LOCALSUFFIX" = "XLOCAL" # {
5057 LSOF_DOC="\${DESTDIR}/usr/local/man"
5061 # Configure for SCO|Caldera OpenServer Release 6.0.0 and UnixWare.
5066 if test "X$LSOF_RANLIB_SUP" = "X" # {
5070 if test "X$LSOF_VSTR" = "X" # {
5072 LSOF_VSTR=`uname -v`
5074 if test "X$LSOF_VERS" = "X" # {
5077 # If the Openserver Release 6.0.0 or UnixWare version isn't pre-defined,
5080 LSOF_VERS=`echo $LSOF_VSTR | sed 's/\([0-9\.]*\).*/\1/; s/\./ /g' | awk '{printf "%d%02d%02d\n", $1, $2, $3;}'`
5082 if test $LSOF_TMP1 = "osr6" # {
5084 LSOF_CINFO="OSR6 support via UnixWare sources"
5086 # Convert the OpenServer Release 6.0.0 version number to a UnixWare one.
5088 case $LSOF_VERS in # {
5093 echo "Unknown OpenServer Release version: $LSOF_VERS"
5098 LSOF_CFGF="$LSOF_CFGF -DUNIXWAREV=$LSOF_VERS"
5100 # Do OpenServer Release 6.0.0 and UnixWare version-specific stuff.
5102 case $LSOF_VERS in # {
5103 20100|20101|20102|20103)
5104 if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h # {
5106 LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5108 LSOF_CFGL="$LSOF_CFGL -lsocket -lnsl -lelf -lgen"
5110 70000|70001|70100|70101|70103|70104)
5112 LSOF_TSTLFLG="-lsocket -lnsl"
5113 if test $LSOF_VERS -lt 70103 # {
5115 LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/uw/uw7"
5116 else # $LSOF_VERS -ge 70103
5118 # Process 7.1.3 and above.
5120 if test -r ${LSOF_INCLUDE}/netinet/in6.h # {
5122 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
5124 if test $LSOF_VERS -ge 70104 # {
5127 # Process 7.1.4 and above.
5130 if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
5132 grep INKERNEL ${LSOF_INCLUDE}/netinet/in_pcb.h > /dev/null 2>&1
5133 if test $? -eq 0 # {
5138 if test $LSOF_TMP1 -eq 0 -a -r ${LSOF_INCLUDE}/netinet/tcp_var.h # {
5140 grep INKERNEL ${LSOF_INCLUDE}/netinet/tcp_var.h > /dev/null 2>&1
5141 if test $? -eq 0 # {
5146 if test $LSOF_TMP1 -eq 1 # {
5148 LSOF_CFGF="$LSOF_CFGF -DHAS_INKERNEL"
5152 if test ! -r ${LSOF_INCLUDE}/vm/swap.h -a -r ${LSOF_INCLUDE}/sys/swap.h # {
5154 (cd ./dialects/uw/uw7/vm; rm -f swap.h; ln -s ${LSOF_INCLUDE}/sys/swap.h swap.h)
5156 if test -r ${LSOF_INCLUDE}/sys/fs/vx_gemini.h # {
5158 LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5160 LSOF_CFGL="$LSOF_CFGL -lsocket -lnsl -lelf -lgen"
5161 /bin/pkginfo 2> /dev/null | grep -i patch | grep -i ptf7038 > /dev/null
5162 if test -r ${LSOF_INCLUDE}/sys/file.h # {
5164 grep f_open ${LSOF_INCLUDE}/sys/file.h > /dev/null
5165 if test $? -eq 0 # {
5167 LSOF_CFGF="$LSOF_CFGF -DHAS_F_OPEN"
5170 if test -r ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h # {
5172 grep "cdfs_LogSecShift;" ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h > /dev/null 2>&1
5173 if test $? -eq 0 # {
5175 LSOF_TMP=`grep "cdfs_LogSecShift;" ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h | sed 's/^[ ]*\([^ ]*\).*/\1/'`
5176 if test "X$LSOF_TMP" != "X" # {
5178 LSOF_CFGF="$LSOF_CFGF -DTYPELOGSECSHIFT=$LSOF_TMP"
5182 if test -r ${LSOF_INCLUDE}/sys/proc.h # {
5184 grep p_pgid ${LSOF_INCLUDE}/sys/proc.h > /dev/null
5185 if test $? -eq 0 # {
5187 LSOF_CFGF="$LSOF_CFGF -DHAS_P_PGID"
5190 if test $LSOF_VERS -ge 70101 # {
5193 # Do OpenServer Release 6.0.0 and UnixWare 7.1.1 and above tests, as
5196 if test "X$UW_HAS_NSC" = "X" # {
5199 if test -x /bin/node_self # {
5201 /bin/node_self > /dev/null 2>&1
5202 if test $? -eq 0 # {
5208 if test "X$UW_HAS_NSC" = "XY" -o "X$UW_HAS_NSC" = "Xy" # {
5210 LSOF_CFGF="$LSOF_CFGF -DHAS_UW_NSC"
5211 LSOF_CFGL="$LSOF_CFGL -lcluster"
5213 if test -r ${LSOF_INCLUDE}/sys/nsc_synch.h # {
5215 LSOF_CFGF="$LSOF_CFGF -DHAS_UW_CFS"
5220 echo Unsupported UnixWare version: `uname -v`
5225 if test -r ${LSOF_INCLUDE}/sys/fs/xnamnode.h # {
5227 LSOF_CFGF="$LSOF_CFGF -DHASXNAMNODE"
5232 # Handle unknown abbreviation.
5235 echo "Can't configure for $LSOF_TGT."
5241 # End of LSOF_TGT cases
5245 # Do an inventory of the distribution, as required.
5247 if test "X$LSOF_SCRIPT_CALL" = "Xyes" -a ! -r ./.neverInv # {
5249 if test ! -f ./Inventory # Want -x, but Ultrix doesn't grok it. # {
5251 echo "Can't find Inventory script."
5258 # Make sure target directory exists.
5260 if test ! -d ./dialects/$LSOF_DIALECT_DIR # {
5262 echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR doesn't exist."
5267 # Make sure $LSOF_MK exists in the target directory.
5269 if test ! -r ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK # {
5271 echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK doesn't exist."
5276 # Make sure $LSOF_MKF, $LSOF_SPMKF, or $LSOF_MKF.$LSOF_LOCALSUFFIX) exists
5277 # in the target directory.
5279 if test "X$LSOF_SPMKF" != "X" # {
5281 LSOF_TMP1=$LSOF_SPMKF
5285 if test "X$LSOF_LOCALSUFFIX" != "X" # {
5287 LSOF_REST=$LSOF_TMP1.$LSOF_LOCALSUFFIX
5289 LSOF_REST=$LSOF_TMP1
5291 if test ! -r ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST # {
5293 echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST doesn't exist."
5298 # If this is FreeBSD, make sure $LSOF_FBSD_ZFS_MKF exists.
5300 if test $LSOF_FBSD_ZFS -eq 1 # {
5302 if test ! ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF # {
5304 echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF doesn't exist."
5310 # Make sure $LSOF_VF exists. Extract the version number from it.
5312 if test ! -r $LSOF_VF # {
5314 echo "Version number file, ./$LSOF_VF, doesn't exist."
5318 LSOF_VN=`sed "s/.ds VN \(.*\)/\1/" < $LSOF_VF`
5321 # Clean up in advance.
5323 rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF $LSOF_TSTCFLG $LSOF_TSTCC
5324 rm -f $LSOF_TSTXOC $LSOF_TSTLFF
5325 echo "rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF $LSOF_TSTCFLG"
5326 echo "rm -f $LSOF_TSTCC $LSOF_TSTXOC $LSOF_TSTLFF"
5328 # Make sure there's a C compiler name.
5330 if test "X$LSOF_CC" = "X" # {
5335 # Do common feature analyses.
5337 # Check for localtime(3) and strftime(3).
5339 rm -f ${LSOF_TMPC}.*
5340 cat > $LSOF_TMPC.c << .LSOF_END_HERE_DOC2
5346 if ((cl = time(NULL)) == (time_t)-1)
5348 ts = localtime(&cl);
5349 if (strftime(bf, sizeof(bf), "%D", ts) != 8)
5351 if ((bf[2] != '/') || (bf[5] != '/'))
5356 echo $EO "Testing C library for localtime() and strftime(), using $LSOF_CC ... $EC"
5357 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
5358 if test -x ${LSOF_TMPC}.x # {
5361 if test $? -eq 0 # }
5363 LSOF_CFGF="$LSOF_CFGF -DHAS_STRFTIME"
5371 rm -f ${LSOF_TMPC}.[cox]
5373 # Make the dialect sources.
5375 if test "X$LSOF_MKC" = "X" # {
5379 LSOF_MKC=$LSOF_MKC ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK $LSOF_TGT $LSOF_VERS
5381 # Make $LSOF_MKFC and ${LSOF_LIB}/$LSOF_LIBMKF.
5383 echo "# $LSOF_TGT Makefile for lsof revision $LSOF_VN" > $LSOF_MKFC
5384 echo "" >> $LSOF_MKFC
5385 echo "CC= $LSOF_CC" >> $LSOF_MKFC
5386 if test "X$LSOF_CCV" != "X" # {
5388 echo "" >> $LSOF_MKFC
5389 echo "CCV= $LSOF_CCV" >> $LSOF_MKFC
5391 if test "X$LSOF_LIB_NO" = "X" # {
5393 echo "" >> $LSOF_MKFC
5394 echo "LIB= ${LSOF_LIB}/liblsof.a" >> $LSOF_MKFC
5396 if test "X$LSOF_LD" != "X" # {
5398 echo "" >> $LSOF_MKFC
5399 echo "LD= $LSOF_LD" >> $LSOF_MKFC
5401 if test "X$LSOF_CINFO" != "X" # {
5403 echo "" >> $LSOF_MKFC
5404 echo "CINFO= $LSOF_CINFO" >> $LSOF_MKFC
5406 if test "X$LSOF_CFGD" != "X" # {
5408 echo "CFGD= $LSOF_CFGD" >> $LSOF_MKFC
5410 if test "X$LSOF_CFGDN" != "X" # {
5412 echo "CFGDN= $LSOF_CFGDN" >> $LSOF_MKFC
5414 if test "X$LSOF_ARCH" != "X" # {
5416 LSOF_CFGF="$LSOF_CFGF -DLSOF_ARCH=\\\"$LSOF_ARCH\\\""
5418 if test "X$LSOF_VSTR" != "X" # {
5420 LSOF_TMP=`echo $LSOF_VSTR | sed 's/(/\\\\(/g' | sed 's/)/\\\\)/g'`
5421 LSOF_CFGF="$LSOF_CFGF -DLSOF_VSTR=\\\"$LSOF_TMP\\\""
5423 echo "" >> $LSOF_MKFC
5424 echo "CFGF= $LSOF_CFGF" >> $LSOF_MKFC
5425 if test "X$LSOF_LIB_NO" = "X" # {
5427 echo "" >> $LSOF_MKFC
5428 echo "CFGL= $LSOF_FCFGL -L./$LSOF_LIB -llsof $LSOF_CFGL" >> $LSOF_MKFC
5430 echo "" >> $LSOF_MKFC
5431 if test "X$LSOF_DEBUG" = "X" # {
5435 if test "X$LSOF_DEBUG" = "XNo-O" # {
5440 echo "DEBUG= $LSOF_DEBUG" >> $LSOF_MKFC
5441 if test "X$LSOF_DINC" != "X" # {
5443 echo "" >> $LSOF_MKFC
5444 echo "DINC= $LSOF_DINC" >> $LSOF_MKFC
5446 if test "X$LSOF_DOC" != "X" # {
5448 echo "" >> $LSOF_MKFC
5449 echo "DOC=$LSOF_DOC" >> $LSOF_MKFC
5451 if test "X$LSOF_DISTRIBKVM" != "X" -a "X$LSOF_DISTRIBKVM" != "XKVM" # {
5453 echo "" >> $LSOF_MKFC
5454 echo "KVM= $LSOF_DISTRIBKVM" >> $LSOF_MKFC
5456 rm -f ${LSOF_LIB}/$LSOF_LIBMKF
5457 if test "X$LSOF_LIB_NO" = "X" # {
5459 cp $LSOF_MKFC ${LSOF_LIB}/$LSOF_LIBMKF
5461 cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST >> $LSOF_MKFC
5462 if test "X$LSOF_LIB_NO" = "X" # {
5465 # Put archiving and optional randomizing strings in ${LSOF_LIB}/$LSOF_LIBMKF.
5467 # Process optional CFLAGS override.
5469 # Add the library Makefile skeleton section.
5471 echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5472 if test "X$LSOF_AR" = "X" # {
5474 echo "AR= ar cr \${LIB} \${OBJ}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5476 echo "AR= $LSOF_AR \${LIB} \${OBJ}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5478 if test "X$LSOF_RANLIB" != "X" # {
5480 echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5481 echo "RANLIB= $LSOF_RANLIB \${LIB}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5483 echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5484 if test "X$LSOF_CFLAGS_OVERRIDE" = "X" # {
5486 echo "CFLAGS= \${CDEFS} \${INCL} \${DEBUG}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5488 echo "override CFLAGS=\${CDEFS} \${INCL} \${DEBUG}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5490 echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5491 cat ${LSOF_LIB}/$LSOF_LIBMKFSKEL >> ${LSOF_LIB}/$LSOF_LIBMKF
5492 echo $LSOF_MKFC and ${LSOF_LIB}/$LSOF_LIBMKF created.
5494 echo $LSOF_MKFC created.
5497 # If this is FreeBSD, create $LSOF_FBSD_ZFS_MKF.
5499 if test $LSOF_FBSD_ZFS -eq 1 # {
5501 rm -f $LSOF_FBSD_ZFS_MKF
5502 echo "# $LSOF_TGT ZFS Makefile for lsof revision $LSOF_VN" > $LSOF_FBSD_ZFS_MKF
5503 echo "" >> $LSOF_FBSD_ZFS_MKF
5504 echo "CC= $LSOF_CC" >> $LSOF_FBSD_ZFS_MKF
5505 echo "" >> $LSOF_FBSD_ZFS_MKF
5506 echo "CFLAGS= $LSOF_FBSD_ZFS_CFGF" >> $LSOF_FBSD_ZFS_MKF
5507 echo "" >> $LSOF_FBSD_ZFS_MKF
5508 if test "X$LSOF_DEBUG" = "X" # {
5512 if test "X$LSOF_DEBUG" = "XNo-O" # {
5517 echo "DEBUG= $LSOF_DEBUG" >> $LSOF_FBSD_ZFS_MKF
5518 echo "" >> $LSOF_FBSD_ZFS_MKF
5519 echo "OPENSOLARIS= $LSOF_FBSD_ZFS_SYS" >> $LSOF_FBSD_ZFS_MKF
5520 echo "" >> $LSOF_FBSD_ZFS_MKF
5521 cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF >> $LSOF_FBSD_ZFS_MKF
5522 echo $LSOF_FBSD_ZFS_MKF created.
5525 # Create test cc file.
5527 echo "$LSOF_CC" > $LSOF_TSTCC
5528 echo "$LSOF_TSTCC created"
5530 # Create test cflags file.
5532 echo "-DLT_DIAL_$LSOF_TGT" > $LSOF_TSTCFLG
5533 if test "X$LSOF_TSTBIGF" != "X" # {
5535 echo "-DLT_BIGF" >> $LSOF_TSTCFLG
5536 if test "X$LSOF_TSTBIGF" != "X " # {
5538 for i in $LSOF_TSTBIGF # {
5540 echo "$i" >> $LSOF_TSTCFLG
5544 if test "X$LSOF_TSTDFLG" != "X" # {
5546 for i in $LSOF_TSTDFLG # {
5548 echo "$i" >> $LSOF_TSTCFLG
5551 echo $LSOF_CC | grep gcc > /dev/null 2>&1
5552 if test $? -eq 0 # {
5554 echo "-DLT_GCC" >> $LSOF_TSTCFLG
5556 echo "-DLT_CC" >> $LSOF_TSTCFLG
5558 if test $LSOF_TSTKMEM -eq 1 # {
5560 echo "-DLT_KMEM" >> $LSOF_TSTCFLG
5562 if test $LSOF_TSTK64 -eq 1 # {
5564 echo "-DLT_K64" >> $LSOF_TSTCFLG
5566 echo "-DLT_VERS=$LSOF_VERS" >> $LSOF_TSTCFLG
5567 if test $LSOF_TSTVPATH -eq 1 # {
5569 echo "-DLT_VPATH" >> $LSOF_TSTCFLG
5571 echo "$LSOF_TSTCFLG created"
5573 # Create tests loader flags file.
5575 echo $LSOF_TSTLFLG > $LSOF_TSTLFF
5576 echo "$LSOF_TSTLFF created"
5578 # Create test extra objects file.
5580 echo "$LSOF_TSTXO" > $LSOF_TSTXOC
5581 echo "$LSOF_TSTXOC created"
5585 # Call Customize, as required.
5587 if test "X$LSOF_SCRIPT_CALL" = "Xyes" -a ! -r ./.neverCust # {
5589 if test ! -f ./Customize # { Want -x, but Ultrix doesn't grok it.
5591 echo "Can't find Customize script."
5594 ./Customize $LSOF_DIALECT_DIR
5597 # Issue unsupported warning, as appropriate.
5599 if test "X$LSOF_UNSUP" != "X" # {