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.163 2014/10/13 22:31:08 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_OPINC supplies additional -I/path arguments for the
109 # $LSOF_PL patch level
110 # $LSOF_RANLIB randomizing command for the lsof library
111 # $LSOF_RANLIB_SUP if non-NULL $LSOF_RANLIB was supplied
112 # $LSOF_SCRIPT_CALL Customize and Inventory scripts call status
113 # $LSOF_SPMKF Special Makefile name
114 # $LSOF_TGT canonical target abbreviation (shortest)
115 # $LSOF_TMP internal temporary
116 # $LSOF_TMP1 internal temporary
117 # $LSOF_TMP2 internal temporary
118 # $LSOF_TMP3 internal temporary
119 # $LSOF_TMP4 internal temporary
120 # $LSOF_TMP5 internal temporary
121 # $LSOF_TMP6 internal temporary
122 # $LSOF_TMPC_BASE base name for $LSOF_TMPC
123 # $LSOF_TMPC temporary C source file base name
124 # $LSOF_TSTBIGF big file capability (for $LSOF_TSTCFLG)
125 # $LSOF_TSTCC tests CC file
126 # $LSOF_TSTCFLG tests CFLAGS file
127 # $LSOF_TSTDFLG dialect-specific values for $LSOF_TSTCFLG
128 # $LSOF_TSTK64 status of 64 bit kernel (for $LSOF_TSTCFLG)
129 # $LSOF_TSTKMEM /dev/kmem usage status (for $LSOF_TSTCFLG)
130 # $LSOF_TSTLFF tests LDFLAGS file
131 # $LSOF_TSTLFLG tests LDFLAGS values
132 # $LSOF_TSTSUBD test subdirectory
133 # $LSOF_TSTVPATH test v_path state (for $LSOF_TSTCFLG)
134 # $LSOF_TSTXO test extra objects (for $LSOF_TSTXOC)
135 # $LSOF_TSTXOC test extra objects file
136 # $LSOF_UNSUP Lsof is unsupported on this dialect
137 # $LSOF_UNSUP2 Second message about lack of support
138 # $LSOF_VERS Unix dialect version as a decimal number (may
139 # be supplied externally)
140 # $LSOF_VSTR Unix dialect version as a string -- may be supplied
143 if test "X$AFS_VICE" = "X" # {
150 if test "X$LSOF_ARCH" = "X" # {
165 LSOF_FBSD_ZFS_CFGF=""
166 LSOF_FBSD_ZFS_MKF="Makefile.zfs"
169 if test "X$LSOF_INCLUDE" = "X" # {
172 LSOF_INCLUDE="/usr/include"
174 LSOF_DINC="-I$LSOF_INCLUDE"
179 if test "X$LSOF_RANLIB" = "X" # {
186 LSOF_SCRIPT_CALL="yes"
190 LSOF_TMPC_BASE=./lsof_Configure_tmp_
191 LSOF_TMPC=${LSOF_TMPC_BASE}$$
193 LSOF_TSTSUBD="./tests"
194 LSOF_TSTCC="${LSOF_TSTSUBD}/config.cc"
195 LSOF_TSTCFLG="${LSOF_TSTSUBD}/config.cflags"
199 LSOF_TSTLFF="${LSOF_TSTSUBD}/config.ldflags"
203 LSOF_TSTXOC="${LSOF_TSTSUBD}/config.xobj"
204 LSOF_UNSUP="WARNING: unsupported dialect or version"
206 if test "X$LSOF_VERS" = "X" # {
210 if test "X$LSOF_VSTR" = "X" # {
215 # Establish echo type -- Berkeley or SYSV.
218 if test "X$j" = "X-n "
227 # Make sure temporary files are removed before an abnormal exit.
229 trap 'rm -f ${LSOF_HLP_BASE}* ${LSOF_TMPC_BASE}*; exit 1' 1 2 3 15
232 cat > $LSOF_HLP << LSOF_HLP
233 Usage: Configure <options> <target-dialect>
234 <options>: -clean : clean up previous configuration
235 -d|-dialects : display a list of supported dialect versions
236 -h|-help : display help information
237 -n : avoid AFS, customization, and inventory checks
238 <target-dialect> (****USE -d TO GET TESTED DIALECT VERSION NUMBERS****):
239 aix|aixgcc : IBM AIX xlc (aix) or gcc (aixgcc)
240 darwin : Apple Darwin
242 digital_unix|du : Digital UNIX
244 hpux|hpuxgcc : HP-UX cc (hpux) or gcc (hpuxgcc)
247 nextstep|next|ns|nxt : NEXTSTEP
249 openstep|os : OPENSTEP
250 osr|sco : SCO OpenServer < 6.0.0, SCO devloper's compiler
251 osrgcc|scogcc : SCO OpenServer < 6.0.0, gcc compiler
252 osr6 : SCO OpenServer 6.0.0, SCO compiler
253 solaris|solariscc : Solaris gcc (solaris) or cc (solariscc)
255 unixware|uw : SCO|Caldera UnixWare
261 while test $args -gt 0 # {
265 if test -r $LSOF_MKFC # {
267 echo "$LSOF_MAKE -f $LSOF_MKFC clean"
268 $LSOF_MAKE -f $LSOF_MKFC clean
270 if test -r ${LSOF_LIB}/${LSOF_LIBMKF} # {
272 echo "(cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF} clean)"
273 (cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF} clean)
275 if test -r ${LSOF_LIB}/${LSOF_LIBMKF}.skel # {
277 echo "(cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF}.skel clean)"
278 (cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF}.skel clean)
282 if test -r ${LSOF_TSTSUBD}/Makefile # {
284 echo "(cd ${LSOF_TSTSUBD}; $LSOF_MAKE spotless)"
285 (cd ${LSOF_TSTSUBD}; $LSOF_MAKE spotless)
287 echo '(cd ${LSOF_TSTSUBD}; rm *.o config.*)'
288 (cd ${LSOF_TSTSUBD}; rm *.o config.*)
290 rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF ${LSOF_TMPC_BASE}*
291 echo rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF ${LSOF_TMPC_BASE}*
292 rm -rf AFSHeaders AFSVersion solaris11 version.h vnode_if.h
293 echo "rm -rf AFSHeaders AFSVersion solaris11 version.h vnode_if.h"
294 rm -f ${LSOF_HLP_BASE}* cd9660_node.h lockf_owner.h fbsd_minor.h
295 echo "rm -f ${LSOF_HLP_BASE}* cd9660_node.h lockf_owner.h fbsd_minor.h"
297 echo "rm -f opt_kdtrace.h"
298 rm -f dialects/aix/aix5/j2/j2_snapshot.h
299 echo "rm -f dialects/aix/aix5/j2/j2_snapshot.h"
300 rm -f dialects/sun/solaris10 # DEBUG -- for s10_44
301 echo "rm -f dialects/sun/solaris10" # DEBUG -- for s10_44
302 rm -f dialects/du/du5_sys_malloc.h
303 echo "rm -f dialects/du/du5_sys_malloc.h"
304 rm -f dialects/hpux/kmem/hpux_mount.h
305 echo "rm -f dialects/hpux/kmem/hpux_mount.h"
306 rm -rf dialects/n+obsd/include
307 echo "rm -rf dialects/n+obsd/include"
308 rm -f dialects/uw/uw7/vm/swap.h
309 echo "rm -f dialects/uw/uw7/vm/swap.h"
310 rm -f ${LSOF_LIB}/${LSOF_LIBMKF}
311 echo "rm -f ${LSOF_LIB}/${LSOF_LIBMKF}"
316 if test -r ./00DIALECTS -a -r ./version # {
318 V=`sed '/VN/s/.ds VN \(.*\)/\1/' version`
319 echo "lsof $V has been *tested* on these UNIX dialect versions:"
321 echo Although "$V hasn't been tested on other versions of these dialects,"
322 echo "it may work. Try \`Configure <dialect>\` and \`make\` to see."
326 echo "Can't display UNIX dialect version information:"
327 if test ! -r ./00DIALECTS # {
329 echo " ./00DIALECTS is inaccessible."
331 if test ! -r ./version # {
333 echo " ./version is inaccessible."
340 -h|-help) cat $LSOF_HLP
346 LSOF_SCRIPT_CALL="no"
350 if test "X$LSOF_TGT" != "Xno-target" # {
352 echo "Only one dialect may be configured at a time."
353 echo 'Both "$LSOF_TGT" and "$1" were specified.'
363 args=`expr $args - 1`
366 case $LSOF_TGT in # {
368 echo "No target dialect was specified."
374 # Configure for AIX xlc and AIX gcc.
378 # AIXA stands for AIX architecture. It is assigned these values in this
381 # 0 The AIX version is < 5.0, or the AIX 5.0 architecture is
382 # Power and the kernel bit size is 32.
384 # 1 The AIX version is >= 5.0, the AIX architecture is Power,
385 # and the kernel bit size is 64.
387 # 2 The AIX version is >= 5.0 and the architecture is IA64.
389 if test "X$LSOF_RANLIB_SUP" = "X" # {
391 LSOF_RANLIB="@echo \\\\\\\\c" # AIX make doesn't like a null ${RANLIB}.
393 if test "X$LSOF_VSTR" = "X" # {
396 # If the AIX version isn't pre-defined, determine it.
399 if test "X$LSOF_TMP1" = "X5" # {
402 # If the AIX version is 5, build the version string with `uname -rv`
405 LSOF_VSTR=`uname -r | awk '{printf "5.%d.0.0\n",\$1}'`
406 echo "Uname reports the version is $LSOF_VSTR."
409 # See if oslevel can determine the version.
411 LSOF_TMP1=/usr/bin/oslevel
412 if test -x $LSOF_TMP1 # {
414 echo "Determining AIX version with $LSOF_TMP1."
415 echo "This may take a while, depending on your maintenance level."
416 LSOF_VSTR=`$LSOF_TMP1 | sed 's/[^0-9]*\([0-9\.]*\).*/\1/'`
417 echo "$LSOF_TMP1 reports the version is $LSOF_VSTR."
420 # If oslevel can't be used, build the version string with
421 # `uname -rv` and issue a warning.
423 LSOF_VSTR=`uname -rv | awk '{printf "%d.%d.0.0\n",\$2,\$1}'`
424 echo "WARNING: can't execute $LSOF_TMP1; uname -rv reports"
425 echo " the version is $LSOF_VSTR; edit CFGF in Makefile and"
426 echo " lib/Makefile to refine AIXV and LSOF_VSTR."
430 if test "X$LSOF_VERS" = "X" # {
432 LSOF_VERS=`echo $LSOF_VSTR | sed 's/\.//g'`
434 if test $LSOF_VERS -ge 4320 # {
438 if test "X$LSOF_CC" = "X" # {
440 if test "X$LSOF_TGT" = "Xaixgcc" # {
443 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
449 echo $LSOF_CC | grep gcc > /dev/null
453 # Prevent use of gcc for AIX below 4.1.
455 if test $LSOF_VERS -lt 4100 # {
457 echo "********************************************************"
458 echo "* Sorry, but gcc can't be used to compile lsof for AIX *"
459 echo "* versions less than 4.1, because of possible kernel *"
460 echo "* structure alignment differences between it and xlc. *"
461 echo "********************************************************"
469 if test "X$AIX_HAS_AFS" != "X" # {
471 LSOF_AFS=$AIX_HAS_AFS
473 if test "X$LSOF_AFS" != "Xno" # {
475 if test "X$LSOF_AFS" = "Xyes" -o -r ${AFS_VICE}/etc/ThisCell # {
477 if test "X$LSOF_AFS" != "Xyes" # {
479 if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
481 if test -r ./AFSHeaders -a -r ./AFSVersion # {
486 if test ! -x ./AFSConfig # {
488 echo "Can't find or execute the AFSConfig script"
493 if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
499 if test "X$LSOF_AFS" = "Xyes" # {
501 if test "X$LSOF_AFSV" = "X" # {
503 if test -r ./AFSVersion # {
505 LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
507 echo "!!!FATAL: no ./AFSVersion file. It should have been"
508 echo " created by a previous AFS configuration run."
513 if test $LSOF_VERS -gt 4330 -o LSOF_AFSV -gt 305 # {
515 echo "!!!FATAL: Lsof does not support AFS on this combination of"
516 echo " AIX ($LSOF_VERS) and AFS ($LSOF_AFSV) versions."
517 echo " To disable AFS, set the value of the AIX_HAS_AFS"
518 echo " environment variable to \"no\"."
522 LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
523 LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
524 if test -r ${LSOF_INCLUDE}/sys/inttypes.h # {
526 grep "^typedef.*int16;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
529 LSOF_CFGF="$LSOF_CFGF -DHASINT16TYPE"
531 grep "^typedef.*u_int32;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
534 LSOF_CFGF="$LSOF_CFGF -DHASUINT16TYPE"
536 grep "^typedef.*int32;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
539 LSOF_CFGF="$LSOF_CFGF -DHASINT32TYPE"
547 # Miscellaneous AIX tests
549 if test -d ${LSOF_INCLUDE}/nfs # {
551 LSOF_CFGF="$LSOF_CFGF -DHAS_NFS"
553 echo $LSOF_CC | grep cc | grep -v gcc > /dev/null
554 if test $? -eq 0 -a $LSOF_VERS -ge 4140 -a $LSOF_VERS -lt 5000 # {
556 LSOF_CFGL="$LSOF_CFGL -bnolibpath"
558 if test -r ${LSOF_INCLUDE}/sys/socket.h # {
560 grep AF_INET6 ${LSOF_INCLUDE}/sys/socket.h > /dev/null
563 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
566 if test -r ${LSOF_INCLUDE}/sys/stat.h # {
568 grep stat64 ${LSOF_INCLUDE}/sys/stat.h > /dev/null
571 LSOF_CFGF="$LSOF_CFGF -DHASSTAT64"
574 #DEBUG SANFS if test -r ${LSOF_INCLUDE}/sys/sanfs/sanfsnode.h??? # {
576 #DEBUG SANFS LSOF_CFGF="$LSOF_CFGF -DHAS_SANFS"
578 if test $LSOF_VERS -ge 5000 # {
581 # This is AIX 5 or greater.
583 if test -d ${LSOF_INCLUDE}/j2 # {
586 # The AIX > 5.0 system has jfs2 support. Make the necesssary definitions
589 rm -f dialects/aix/aix5/j2/j2_snapshot.h
590 (cd dialects/aix/aix5/j2; ln -s private_j2_snapshot.h j2_snapshot.h)
591 LSOF_CFGF="$LSOF_CFGF -DHAS_JFS2"
592 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/aix/aix5"
593 if test $LSOF_VERS -ge 5200 # {
595 if test -r ${LSOF_INCLUDE}/j2/j2_snapshot.h # {
598 # The system has its own j2_snapshot.h, so make sure the
599 # private lsof copy is discarded.
601 rm -f dialects/aix/aix5/j2/j2_snapshot.h
603 echo $LSOF_CC | grep gcc > /dev/null
607 # Test gcc version for AIX 5.2.
609 LSOF_TMP1=`echo $LSOF_CCV | awk -F . '{printf "%d%02d",$1,$2}'`
610 if test $LSOF_TMP1 -ge 303 # {
613 # Add gcc >= 3.3 option to handle use of i_dev from the wInode
614 # anonymous structure reference in the JFS2 inode structure of
617 LSOF_CFGF="$LSOF_CFGF -fms-extensions"
623 # Determine the AIX architecture type and set AIXA accordingly.
625 if test "X$AIX_ARCH" = "X" # {
627 uname -a | grep -i ia64 > /dev/null
635 if test "X$AIX_ARCH" = "Xia64" # {
638 # This is AIX >= 5 on ia64.
641 echo $LSOF_CC | grep gcc > /dev/null
645 # Quit if gcc was specified as the compiler, since the gcc options to
646 # do an ia64 lsof compilation are unknown.
648 echo "*************************************************************"
650 echo "* !!!!!!!!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!!!!!!!!! *"
652 echo "* Gcc can't be used to compile lsof for AIX 5 and above on *"
653 echo "* the ia64 architecture. Consult lsof's FAQ (in the file *"
654 echo "* 00FAQ) for more information. *"
656 echo "*************************************************************"
661 if test "X$LSOF_AR" = "X" # {
663 LSOF_AR="/usr/bin/ar cr"
665 LSOF_CFGF="$LSOF_CFGF -q64"
666 LSOF_CFGL="$LSOF_CFGL -lelf"
669 # This is AIX >= 5 on Power architecture.
671 echo $LSOF_CC | grep cc | grep -v gcc > /dev/null
674 LSOF_CFGL="$LSOF_CFGL -bnolibpath"
676 if test "X$AIX_KERNBITS" = "X" # {
679 # The kernel bit size wasn't predefined. Determine it by compiling
680 # and executing a test program.
683 echo "#include <sys/systemcfg.h>" > ${LSOF_TMPC}.c
684 echo 'main(){ if (__KERNEL_32()) printf("32\\n");' >> ${LSOF_TMPC}.c
685 echo 'else if (__KERNEL_64()) printf("64\\n");' >> ${LSOF_TMPC}.c
686 echo 'else printf("0\\n");' >> ${LSOF_TMPC}.c
687 echo "return(0); }" >> ${LSOF_TMPC}.c
688 echo "Testing kernel bit size with $LSOF_CC"
689 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x
690 if test ! -x ${LSOF_TMPC}.x # {
692 echo "!!!FATAL: can't compile test program, ${LSOF_TMPC}.c."
693 rm -f $LSOF_HLP rm -f ${LSOF_TMPC}.*
696 AIX_KERNBITS=`./${LSOF_TMPC}.x`
700 # Use the kernel bit size specification to select archiver and compiler
701 # options, and to update AIXA.
703 case $AIX_KERNBITS in # {
705 if test "X$LSOF_AR" = "X" # {
707 LSOF_AR="/usr/bin/ar cr"
712 if test "X$LSOF_AR" = "X" # {
714 LSOF_AR="/usr/bin/ar -X 64 -v -q"
718 echo $LSOF_CC | grep gcc > /dev/null
721 LSOF_CFGF="$LSOF_CFGF -maix64"
723 LSOF_CFGF="$LSOF_CFGF -q64"
727 echo "!!!FATAL: unrecognized kernel bit size: $AIX_KERNBITS"
732 # Put kernel bit size information in $LSOF_CINFO and $LSOF_CFGF.
734 echo "Kernel bit size: $AIX_KERNBITS"
735 LSOF_TMP2="${AIX_KERNBITS} bit kernel"
736 if test "X$LSOF_CINFO" != "X" # {
738 LSOF_CINFO="${LSOF_CINFO} ${LSOF_TMP2}"
740 LSOF_CINFO="${LSOF_TMP2}"
742 LSOF_CFGF="$LSOF_CFGF -DAIX_KERNBITS=${AIX_KERNBITS}"
744 LSOF_CFGF="$LSOF_CFGF -DAIXA=$LSOF_TMP1"
745 if test "X$LSOF_TSTDFLG" = "X" # {
747 LSOF_TSTDFLG="-DLT_AIXA=$LSOF_TMP1"
749 LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_AIXA=$LSOF_TMP1"
753 # AIX is < 5, so set AIXA accordingly.
755 LSOF_CFGF="$LSOF_CFGF -DAIXA=0"
756 if test "X$LSOF_TSTDFLG" = "X" # {
758 LSOF_TSTDFLG="-DLT_AIXA=0"
760 LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_AIXA=0"
763 LSOF_CFGF="$LSOF_CFGF -DAIXV=$LSOF_VERS"
765 echo $LSOF_CC | grep gcc > /dev/null
771 if test $LSOF_VERS -ge 4100 -a $LSOF_VERS -lt 4200 # {
773 if test "X$AIX_USHACK" = "X" # {
776 # Compile and run a gcc test program to evaluate the user structure.
779 echo "#include <stddef.h>" > ${LSOF_TMPC}.c
780 echo "#include <sys/user.h>" >> ${LSOF_TMPC}.c
781 echo "main(){exit((offsetof(struct user, U_irss) & 0x7) ? 1 : 0);}" >>${LSOF_TMPC}.c
782 echo "Testing user.h with $LSOF_CC"
783 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x
784 if ! ${LSOF_TMPC}.x # {
792 if test "$AIX_USHACK" = "Y" -o "$AIX_USHACK" = "y" # {
799 if test ${LSOF_TMP1} -eq 1 # {
801 echo "Applying gcc AIX 4.1+ user struct alignment hack"
802 rm -rf ./dialects/aix/aix$LSOF_VERS
803 mkdir ./dialects/aix/aix$LSOF_VERS
804 mkdir ./dialects/aix/aix${LSOF_VERS}/sys
805 sed 's/U_irss\[/dummy_for_alignment, U_irss\[/' < ${LSOF_INCLUDE}/sys/user.h > ./dialects/aix/aix${LSOF_VERS}/sys/user.h
806 LSOF_CFGF="$LSOF_CFGF -U_LONG_LONG -I`pwd`/dialects/aix/aix$LSOF_VERS"
811 # Get xlc version number
814 echo "main(){}" > ${LSOF_TMPC}.c
815 echo "Getting version number of ${LSOF_CC}."
816 $LSOF_CC -c ${LSOF_TMPC}.c -I${LSOF_INCLUDE} -o ${LSOF_TMPC}.o -qlist > /dev/null 2>&1
817 LSOF_CCV=`head -1 ${LSOF_TMPC}.lst | sed 's/\(.*\) ---.*/\1/'`
819 echo "The version is \"${LSOF_CCV}\"."
820 echo $LSOF_CCV | grep "Version [0-9]" > /dev/null
823 LSOF_TMP=`echo $LSOF_CCV | sed 's/.*Version \([0-9]*\).*/\1/'`
824 if test "X$LSOF_TMP" != "X" -a $LSOF_TMP -ge 4 # {
826 if test $LSOF_TMP -ge 6 # {
828 LSOF_CFGF="$LSOF_CFGF -qmaxmem=-1"
830 LSOF_CFGF="$LSOF_CFGF -qmaxmem=16384"
835 if test $LSOF_VERS -ge 5300 # {
841 # Configure for Apple Darwin.
844 if test "X$LSOF_CC" = "X" # {
847 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
849 if test "X$LSOF_VSTR" = "X" # {
853 if test "X$LSOF_VERS" = "X" # {
856 # If the Darwin / Mac OS X version isn't pre-defined, determine it.
858 case $LSOF_VSTR in # {
877 7.*) # Mac OS X 10.3 (Panther)
880 8.*) # Mac OS X 10.4 (Tiger)
883 9.*) # Mac OS X 10.5 (Leopard)
886 10.*) # Mac OS X 10.6 (SnowLeopard)
889 11.*) # Mac OS X 10.7 (Lion)
892 12.*) # Next Mac OS X
896 echo Unknown Darwin release: `uname -r`
897 echo Assuming Darwin 11.0
903 # Do Darwin version-specific stuff.
905 case $LSOF_VERS in # {
907 LSOF_TMP1="hfs/hfs.h hfs/hfs_macos_defs.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h"
910 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"
913 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"
916 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
917 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"
920 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
921 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"
924 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
925 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"
928 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
931 LSOF_TSTBIGF=" " # enable LTbigf test
932 if test $LSOF_VERS -eq 900 # {
934 LSOF_CFGF="$LSOF_CFGF -DNEEDS_MACH_PORT_T"
938 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
942 echo "Unsupported Darwin version: $LSOF_VERS"
950 LSOF_CFGF="$LSOF_CFGF -mdynamic-no-pic"
951 LSOF_CFGL="$LSOF_CFGL -lcurses"
953 if test "X$DARWIN_XNUDIR" != "X" # {
955 LSOF_TMP2="${DARWIN_XNUDIR}/bsd"
956 LSOF_TMP3="${DARWIN_XNUDIR}/osfmk"
959 LSOF_TMP2="${DARWIN_XNU_HEADERS}/System/Library/Frameworks/Kernel.framework/Versions/A/PrivateHeaders"
960 LSOF_TMP3="${DARWIN_XNU_HEADERS}/System/Library/Frameworks/System.framework/Versions/B/PrivateHeaders"
962 if test "X$DARWIN_XNU_HEADERS" != "X" # {
964 LSOF_TMP4="${DARWIN_XNU_HEADERS}/usr/include"
970 if test "X$DARWIN_BASE" = "X" -o "X$DARWIN_BASE" = "Xlibproc" # {
973 if test $LSOF_VERS -ge 800 -o "X$DARWIN_BASE" = "Xlibproc" # {
975 if test -r ${LSOF_INCLUDE}/libproc.h # {
977 DARWIN_BASE="libproc"
979 if test -r ${LSOF_INCLUDE}/../local/include/libproc.h # {
981 DARWIN_BASE="libproc"
982 LSOF_TMP5="-I${LSOF_INCLUDE}/../local/include"
984 echo "FATAL: can't find libproc.h"
991 # The default Darwin base is /dev/kmem.
993 DARWIN_BASE="/dev/kmem"
996 if test "X$DARWIN_BASE" = "Xlibproc" # {
999 # Configure for libproc-based Darwin lsof.
1001 echo "Configuring libproc-based Darwin lsof"
1002 LSOF_CINFO="libproc-based"
1003 LSOF_DIALECT_DIR=darwin/libproc
1004 if test $LSOF_VERS -lt 1000 # {
1006 LSOF_CFGL="$LSOF_CFGL -lproc"
1009 LSOF_DINC="$LSOF_DINC $LSOF_TMP5"
1010 if test ! -r ${LSOF_INCLUDE}/sys/proc_info.h # {
1012 if test "X$LSOF_TMP5" = "X" -o ! -r ${LSOF_TMP5}/sys/proc_info.h # {
1014 echo "FATAL: can't find sys/proc_info.h"
1020 # Add header file paths for libproc-based Darwin lsof.
1022 for i in $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1024 if test -d $i -a "X$i" != "X/usr/include" # {
1026 LSOF_DINC="$LSOF_DINC -I${i}"
1030 # Do other libproc-based Darwin lsof setups.
1032 if test -r ${LSOF_INCLUDE}/utmpx.h # {
1034 LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
1037 if test "X$DARWIN_BASE" != "X/dev/kmem" # {
1039 echo "Darwin base unrecognized: $DARWIN_BASE"
1044 # Configure for /dev/kmem-based Darwin lsof.
1046 echo "Configuring /dev/kmem-based Darwin lsof"
1047 LSOF_CINFO="/dev/kmem-based"
1048 LSOF_DIALECT_DIR=darwin/kmem
1050 # Make sure needed /dev/kmem-base XNU Darwin kernel header files are
1054 for i in $LSOF_TMP1 # {
1057 for j in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1059 if test "X${j}" != "X" -a -r ${j}/${i} # {
1065 if test $LSOF_TMP6 -ne 1 # {
1067 if test "X$LSOF_TMP5" = "X" # {
1071 LSOF_TMP5="$LSOF_TMP5 $i"
1075 if test "X$LSOF_TMP5" != "X" # {
1078 # If any Darwin XNU kernel header files are missing, call the
1079 # get-hdr-loc.sh script to find the path.
1081 LSOF_TMP6=`pwd`/dialects/darwin/get-hdr-loc.sh
1082 if test ! -x $LSOF_TMP6 # {
1084 echo "FATAL: can't execute: $LSOF_TMP6"
1088 DARWIN_XNUDIR=`$LSOF_TMP6 $LSOF_TMP5`
1089 if test $? -ne 0 # {
1091 echo "FATAL: $LSOF_TMP6 returns: $DARWIN_XNUDIR"
1095 LSOF_TMP2="${DARWIN_XNUDIR}/bsd"
1096 LSOF_TMP3="${DARWIN_XNUDIR}/osfmk"
1100 # Add header file paths for /dev/kmem-based Darwin lsof.
1102 for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1104 if test -d $i -a "X$i" != "X/usr/include" # {
1106 LSOF_DINC="$LSOF_DINC -I${i}"
1110 # Make conditional feature definitions for /dev/kmem-based Darwin lsof.
1112 for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1114 if test "X${i}" != "X" -a -r ${i}/sys/namei.h # {
1116 grep -q nc_vpid ${i}/sys/namei.h
1117 if test $? -eq 0 # {
1119 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
1124 for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1126 if test "X${i}" != "X" # {
1128 if test $LSOF_VERS -ge 800 # {
1130 if test -r ${i}/sys/file_internal.h # {
1132 grep -q DTYPE_KQUEUE ${i}/sys/file_internal.h
1133 if test $? -eq 0 # {
1135 LSOF_CFGF="$LSOF_CFGF -DHASKQUEUE"
1140 if test $LSOF_VERS -ge 700 # {
1142 if test -r ${i}/sys/file.h # {
1144 grep -q DTYPE_KQUEUE ${i}/sys/file.h
1145 if test $? -eq 0 # {
1147 LSOF_CFGF="$LSOF_CFGF -DHASKQUEUE"
1155 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS"
1157 LSOF_CFGF="$LSOF_CFGF -DDARWINV=$LSOF_VERS"
1158 LSOF_CFLAGS_OVERRIDE=1
1161 # Configure for DEC OSF/1, Digital UNIX, or Tru64 UNIX.
1163 digital_unix|du|decosf|tru64)
1167 if test "X$LSOF_DINC" = "X" # {
1169 LSOF_DINC="-I/usr/include"
1171 if test "X$LSOF_VSTR" = "X" # {
1173 LSOF_VSTR=`uname -r`
1175 if test "X$LSOF_VERS" = "X" # {
1178 # If the DEC OSF/1, Digital UNIX, or Tru64 UNIX version isn't
1179 # predefined, determine it.
1181 case $LSOF_VSTR in # {
1192 LSOF_TSTXO="../lib/snpf.o"
1202 echo "WARNING: unknown version; assuming version is 2.0"
1208 # Do DEC OSF/1, Digital UNIX, or Tru64 UNIX version specific stuff.
1210 case $LSOF_VERS in # {
1212 LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
1216 LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
1218 LSOF_TMP2=-DUSELOCALREADDIR
1221 LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
1223 LSOF_TMP2=-DUSELOCALREADDIR
1226 LSOF_TMP1="/usr/sys"
1229 LSOF_CFGF="$LSOF_CFGF -DUSE_STAT"
1230 LSOF_TMP1="/usr/sys"
1233 echo "WARNING: unknown version: $LSOF_VERS"
1238 if test "X$DU_SYSDIR" = "X" # {
1240 DU_SYSDIR=$LSOF_TMP1
1242 LSOF_HOST=`uname -n`
1243 if test "X$DU_CDIR" = "X" # {
1245 LSOF_CDIR=`expr $LSOF_HOST : '\([^\.]*\)\..*$'`
1246 if test "X$LSOF_CDIR" = "X" # {
1248 LSOF_CDIR=$LSOF_HOST
1250 LSOF_CDIR=`echo $LSOF_CDIR | tr a-z A-Z`
1255 while test $LSOF_LOOP = 1 # {
1257 if test -d ${DU_SYSDIR}/$LSOF_CDIR # {
1259 echo "Using header files in ${DU_SYSDIR}/$LSOF_CDIR"
1264 Please enter the name of the subdirectory in $DU_SYSDIR that contains the
1265 configuration files for this host. Usually its name would be $LSOF_CDIR, but
1266 that subdirectory doesn't seem to exist. The lsof compilation needs header
1267 files specific to this machine's configuration found in that directory.
1269 If you can't specify the appropriate configuration subdirectory, quit this
1270 Configure step now and generate a proper configuration subdirectory with the
1271 kernel generation process.
1275 echo "$DU_SYSDIR contains:"
1279 echo -n "Configuration subdirectory name? "
1280 read LSOF_CDIR LSOF_EXCESS
1281 if test "X$LSOF_CDIR" = "X" -o ! -d ${DU_SYSDIR}/$LSOF_CDIR # {
1284 echo Cannot access directory ${DU_SYSDIR}/$LSOF_CDIR.
1289 # Determine the ADVFS file system version.
1291 if test "X$DU_ADVFSV" = "X" # {
1293 echo "Determining the ADVFS version -- this will take a while."
1294 LSOF_ADVFSV=`/usr/sbin/setld -i | grep "^OSFADVFSBIN[0-9]" | sed 's/\([^ ]*\).*/\1/' | sort -u | tail -1 | sed 's/OSFADVFSBIN//'`
1296 LSOF_ADVFSV=$DU_ADVFSV
1298 case $LSOF_ADVFSV in # {
1301 echo "The ADVFS version is 1."
1305 echo "The ADVFS version is 2."
1309 echo "The ADVFS version is 3."
1313 echo "The ADVFS version is 4."
1317 echo "The ADVFS version is 5."
1320 echo "The ADVFS version is unknown; it will be assumed to be 1."
1324 LSOF_CFGF="$LSOF_CFGF -DDUV=$LSOF_VERS -DADVFSV=$LSOF_ADVFSV $LSOF_TMP2"
1325 if test "X$DU_SYSINC" = "X" # {
1327 DU_SYSINC="/usr/sys/include"
1329 LSOF_DINC="$LSOF_DINC -I${DU_SYSDIR}/$LSOF_CDIR -I$DU_SYSINC"
1330 LSOF_CFGL="$LSOF_CFGL -lmld"
1331 if test "X${DU_SHLIB}" = "X" # {
1335 if test -r ${DU_SHLIB}/libmsfs.so # {
1337 nm ${DU_SHLIB}/libmsfs.so | grep tag_to_path > /dev/null 2>&1
1338 if test $? -eq 0 # {
1340 LSOF_CFGF="$LSOF_CFGF -DHASTAGTOPATH"
1341 LSOF_CFGL="$LSOF_CFGL -lmsfs"
1344 grep "^struct spec_node {" ${DU_SYSDIR}/include/sys/specdev.h > /dev/null 2>&1
1345 if test $? -eq 0 # {
1347 LSOF_CFGF="$LSOF_CFGF -DHASSPECNODE"
1349 if test $LSOF_VERS -ge 50000 # {
1352 # Make du5_sys_malloc.h for DU 5.0 and above. Enable strict ANSI checking
1353 # on 5.0 and 5.1A, but not 5.1B. Enable IPv6 handling.
1356 if test $LSOF_VERS -ge 50100 # {
1359 if test -x /usr/sbin/sizer # {
1361 /usr/sbin/sizer -v | grep -q 5.1A
1362 if test $? -eq 0 # {
1368 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
1369 LSOF_TMP1=${LSOF_INCLUDE}/sys/malloc.h
1370 if test -r $LSOF_TMP1 # {
1372 LSOF_TMP2=dialects/du/du5_sys_malloc.h
1374 echo "#if !defined(MANUFACTURED_DU5_SYS_MALLOC_H)" > $LSOF_TMP2
1375 echo "/* By lsof Configure:" `date` " */" >> $LSOF_TMP2
1376 echo "#define MANUFACTURED_DU5_SYS_MALLOC_H" >> $LSOF_TMP2
1377 grep "^#define[ ]MALLOC_NUM_BUCKETS" $LSOF_TMP1 >> $LSOF_TMP2
1378 echo "struct percpukmembuckets {" >> $LSOF_TMP2
1379 sed '1,/^struct percpukmembuckets/d' $LSOF_TMP1 | sed -n '1,/^};/p' >> $LSOF_TMP2
1380 echo "#endif" >> $LSOF_TMP2
1381 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/du"
1384 # Enable IPv6 for Tru64 UNIX 5.0 and above.
1386 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
1388 if test -r ${LSOF_INCLUDE}/sys/namei.h
1390 grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
1391 if test $? -eq 0 # {
1393 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
1399 # Configure for FreeBSD.
1403 if test "X$LSOF_CC" = "X" # {
1406 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
1408 if test "X$LSOF_VSTR" = "X" # {
1410 LSOF_VSTR=`uname -r`
1412 if test "X$LSOF_VERS" = "X" # {
1415 # If the FreeBSD version isn't pre-defined, determine it.
1417 case $LSOF_VSTR in # {
1453 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1454 echo "!!!WARNING!!! Configuring for FreeBSD 3.5"
1506 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1507 echo "!!!WARNING!!! Configuring for FreeBSD 4.10"
1535 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1536 echo "!!!WARNING!!! Configuring for FreeBSD 5.5"
1560 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1561 echo "!!!WARNING!!! Configuring for FreeBSD 6.0"
1585 echo "!!!WARNING!!! Unsupported FreeBSD version: $LSOF_VSTR"
1586 echo "!!!WARNING!!! Configuring for FreeBSD 7.0"
1621 echo Unknown FreeBSD release: `uname -r`
1628 # Clear LSOF_UNSUP message for supported versions of FreeBSD.
1630 case $LSOF_VERS in # {
1631 4090|8020|8030|8040|9000|10000|11000)
1636 # Get system CFLAGS from FREEBSD_MAKE_CONF (default=/etc/make.conf).
1638 if test "X$FREEBSD_MAKE_CONF" = "X" # {
1640 FREEBSD_MAKE_CONF="/etc/make.conf"
1642 if test -r $FREEBSD_MAKE_CONF # {
1644 LSOF_TMP1=`echo "all:\n.include <bsd.prog.mk>" | $LSOF_MAKE -f- -VCFLAGS`
1646 while test $LSOF_TMP -eq 1 # {
1648 echo $LSOF_TMP1 | grep -q -e '-O'
1649 if test $? -eq 0 # {
1651 if test "X$LSOF_DEBUG" = "X"
1653 LSOF_DEBUG=`echo $LSOF_TMP1 | sed 's/.*\(-O[^ $]*\).*/\1/'`
1655 LSOF_TMP1=`echo $LSOF_TMP1 | sed 's/\(.*\)-O[^ $]*\(.*\)/\1 \2/' | sed 's/^ *//g' | sed 's/ */ /g' | sed 's/ *$//'`
1659 LSOF_FBSD_ZFS_CFGF="$LSOF_CFGF $LSOF_TMP1"
1661 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
1664 # Determine path to FreeBSD sources.
1667 if test "X$FREEBSD_SYS" = "X" # {
1669 if test -d /usr/src/sys # {
1671 FREEBSD_SYS=/usr/src/sys
1677 echo "!!!WARNING!!! No kernel sources in /usr/src/sys or /sys"
1682 # Test for thread (task) support.
1684 if test -r ${LSOF_INCLUDE}/sys/user.h # {
1686 grep -q ki_numthreads ${LSOF_INCLUDE}/sys/user.h
1687 if test $? -eq 0 # {
1689 LSOF_CFGF="$LSOF_CFGF -DHASTASKS"
1692 echo "FATAL: can't find sys/user.h"
1697 # Test pause() status in system.h.
1699 if test -r ${FREEBSD_SYS}/sys/systm.h # {
1701 grep -q pause_sbt ${FREEBSD_SYS}/sys/systm.h
1702 if test $? -eq 0 # {
1704 LSOF_CFGF="$LSOF_CFGF -DHAS_PAUSE_SBT"
1708 # Do FreeBSD version-specific stuff.
1710 case $LSOF_VERS in # {
1712 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
1713 LSOF_CFGL="$LSOF_CFGL -lutil"
1714 LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/freebsd/include"
1715 if test "X$FREEBSD_KERNEL" = "X" # {
1717 LSOF_N_UNIXV="/386bsd"
1719 LSOF_N_UNIXV=$FREEBSD_KERNEL
1723 LSOF_CFGL="$LSOF_CFGL -lkvm"
1726 LSOF_CFGL="$LSOF_CFGL -lkvm"
1727 if test -r ${LSOF_INCLUDE}/vm/lock.h # {
1729 LSOF_CFGF="$LSOF_CFGF -DHASVMLOCKH"
1732 3000|3010|3020|3030|3040|3050)
1733 LSOF_CFGL="$LSOF_CFGL -lkvm"
1734 if test -r ${LSOF_INCLUDE}/nfs/rpcv2.h # {
1736 LSOF_CFGF="$LSOF_CFGF -DHASRPCV2H"
1738 if test -r ${LSOF_INCLUDE}/vm/lock.h # {
1740 LSOF_CFGF="$LSOF_CFGF -DHASVMLOCKH"
1744 if test -r ${LSOF_INCLUDE}/nfs/rpcv2.h # {
1746 LSOF_CFGF="$LSOF_CFGF -DHASRPCV2H"
1748 if test -r ${LSOF_INCLUDE}/sys/namei.h # {
1750 grep -q "^struct[ ]*namecache[ ]*{" ${LSOF_INCLUDE}/sys/namei.h
1751 if test $? -eq 0 # {
1753 LSOF_CFGF="$LSOF_CFGF -DHASNAMECACHE"
1756 if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
1758 grep -q i_effnlink ${LSOF_INCLUDE}/ufs/ufs/inode.h
1759 if test $? -eq 0 # {
1761 LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_effnlink"
1764 if test -r ${LSOF_INCLUDE}/sys/file.h # {
1766 grep -q f_vnode ${LSOF_INCLUDE}/sys/file.h
1767 if test $? -eq 0 # {
1769 LSOF_CFGF="$LSOF_CFGF -DHASF_VNODE"
1772 LSOF_CFGL="$LSOF_CFGL -lkvm"
1773 if test $LSOF_VERS -ge 5000 # {
1776 # Do FreeBSD 5 and higher version-specific stuff.
1778 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
1780 grep VT_FDESC ${LSOF_INCLUDE}/sys/vnode.h > /dev/null 2>&1
1781 if test $? -eq 0 # {
1783 if test ! -r ${LSOF_INCLUDE}/fs/devfs/devfs.h # {
1785 if test -r ${FREEBSD_SYS}/fs/devfs/devfs.h # {
1789 echo "!!!FATAL: lsof cannot locate the devfs.h header file"
1790 echo " in ${LSOF_INCLUDE}/fs/devfs/devfs.h or"
1791 echo " ${FREEBSD_SYS}/fs/devfs/devfs.h. Consult"
1792 echo " 00FAQ for an explanation."
1799 if test -r ${FREEBSD_SYS}/sys/filedesc.h # {
1801 grep -q filedescent ${FREEBSD_SYS}/sys/filedesc.h
1802 if test $? -eq 0 # {
1804 LSOF_CFGF="$LSOF_CFGF -DHAS_FILEDESCENT"
1807 if test -r ${FREEBSD_SYS}/fs/tmpfs/tmpfs.h # {
1809 LSOF_CFGF="$LSOF_CFGF -DHAS_TMPFS"
1812 # Do FreeBSD 5.2 and higher version-specific stuff.
1814 if test -r ${LSOF_INCLUDE}/wctype.h # {
1816 LSOF_CFGF="$LSOF_CFGF -DHASWCTYPE_H"
1818 if test $LSOF_VERS -ge 5020 # {
1821 # Determine the status of the cpumask_t typedef.
1823 rm -f ${LSOF_TMPC}.*
1824 cat > ${LSOF_TMPC}.c << .LSOF_END_HERE_DOC3
1826 #include <sys/types.h>
1831 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
1833 rm -f ${LSOF_TMPC}.*
1834 if test $LSOF_TMP1 -ne 0 # {
1837 # The cpumask_t typedef is unknown when _KERNEL is not defined.
1839 if test -r ${LSOF_INCLUDE}/sys/types.h \
1840 -a -r ${LSOF_INCLUDE}/machine/_types.h # {
1842 grep -q cpumask_t ${LSOF_INCLUDE}/sys/types.h
1843 if test $? -eq 0 # {
1845 grep -q __cpumask_t ${LSOF_INCLUDE}/machine/_types.h
1846 if test $? -eq 0 # {
1848 LSOF_CFGF="$LSOF_CFGF -DHASCPUMASK_T"
1850 $LSOF_CC -E ${LSOF_INCLUDE}/machine/_types.h 2>/dev/null | grep -q __cpumask_t
1851 if test $? -eq 0 # {
1853 LSOF_CFGF="$LSOF_CFGF -DHASCPUMASK_T"
1859 if test -r ${LSOF_INCLUDE}/sys/socketvar.h # {
1861 grep -q SBS_CANT ${LSOF_INCLUDE}/sys/socketvar.h
1862 if test $? -eq 0 # {
1864 LSOF_CFGF="$LSOF_CFGF -DHASSBSTATE"
1868 if test $LSOF_VERS -ge 5030 # {
1871 # Do FreeBSD 5.3 and higher version-specific stuff.
1873 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
1875 grep -q "defined(_KVM_VNODE)" ${LSOF_INCLUDE}/sys/vnode.h
1876 if test $? -eq 0 # {
1878 LSOF_CFGF="$LSOF_CFGF -DHAS_KVM_VNODE"
1882 if test $LSOF_VERS -ge 6000 # {
1885 # Do FreeBSD 6.0 and higher version-specific stuff.
1887 if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
1889 grep -q i_din2 ${LSOF_INCLUDE}/ufs/ufs/inode.h
1890 if test $? -eq 0 # {
1892 LSOF_CFGF="$LSOF_CFGF -DHAS_UFS1_2"
1895 if test -r ${LSOF_INCLUDE}/sys/conf.h # {
1897 grep -q vm_memattr_t ${LSOF_INCLUDE}/sys/conf.h
1900 LSOF_CFGF="$LSOF_CFGF -DHAS_VM_MEMATTR_T"
1902 grep -q "^#define minor(" ${LSOF_INCLUDE}/sys/conf.h
1903 if test $? -eq 0 # {
1905 LSOF_CFGF="$LSOF_CFGF -DHAS_CONF_MINOR"
1907 if test -r ${LSOF_INCLUDE}/sys/types.h # {
1909 LSOF_TMP1=`grep "^#define[ ]minor(" ${LSOF_INCLUDE}/sys/types.h`
1910 if test "X$LSOF_TMP1" != "X" # {
1912 echo "Creating fbsd_minor.h"
1913 cat > fbsd_minor.h << FBSD_MINOR1
1915 * fbsd_minor.h -- created by lsof Configure script on
1917 echo $EO " * $EC" >> ./fbsd_minor.h
1918 date >> ./fbsd_minor.h
1919 cat >> ./fbsd_minor.h << FBSD_MINOR2
1922 #if !defined(FBSD_MINOR_H)
1923 #define FBSD_MINOR_H
1926 echo $EO "${LSOF_TMP1}${EC}" >> fbsd_minor.h
1927 cat >> ./fbsd_minor.h << FBSD_MINOR3
1929 #endif /* defined(FBSD_MINOR_H) */
1934 if test -r ${FREEBSD_SYS}/fs/devfs/devfs_int.h # {
1936 grep -q cdev2priv ${FREEBSD_SYS}/fs/devfs/devfs_int.h
1937 if test $? -eq 0 # {
1939 LSOF_CFGF="$LSOF_CFGF -DHAS_CDEV2PRIV"
1943 grep -q "si_udev;" ${LSOF_INCLUDE}/sys/conf.h
1944 if test $? -ne 0 # {
1946 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_SI_UDEV"
1948 grep -q si_priv ${LSOF_INCLUDE}/sys/conf.h
1949 if test $? -eq 0 # {
1951 LSOF_CFGF="$LSOF_CFGF -DHAS_SI_PRIV"
1954 if test -r ${LSOF_INCLUDE}/sys/sx.h # {
1956 LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_SX_H"
1959 # Do ZFS test. Try for the newer OpenSolaris files first -- i.e.,
1960 # the ones in ${FREEBSD_SYS}/cddl/contrib/opensolaris. If that fails,
1961 # try for the older ones in ${FREEBSD}/contrib/opensolaris.
1963 LSOF_FBSD_ZFS_SYS=${FREEBSD_SYS}/cddl
1964 if test ! -r ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h # {
1966 LSOF_FBSD_ZFS_SYS=${FREEBSD_SYS}
1967 if test ! -r ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h # {
1969 LSOF_FBSD_ZFS_SYS=""
1972 if test "X$LSOF_FBSD_ZFS_SYS" != "X" # {
1974 LSOF_CFGF="$LSOF_CFGF -DHAS_ZFS"
1976 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DFREEBSDV=$LSOF_VERS"
1977 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_ZFS"
1978 grep -q z_phys ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
1979 if test $? -eq 0 # {
1981 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_Z_PHYS"
1983 if test -r ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/sdt.h #{
1985 grep -q opt_kdtrace.h ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/sdt.h
1986 if test $? -eq 0 # {
1992 if test -r ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/kcondvar.h #{
1994 grep -q cv_timedwait_sbt ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/kcondvar.h
1995 if test $? -eq 0 # {
1997 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_CV_TIMEDWAIT_SBT"
2001 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
2004 # See if the vnode contains the byte level lock pointer.
2006 grep -q v_lockf ${LSOF_INCLUDE}/sys/vnode.h
2007 if test $? -eq 0 # {
2009 LSOF_CFGF="$LSOF_CFGF -DHAS_V_LOCKF"
2010 if test $LSOF_FBSD_ZFS -eq 1 # {
2012 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_V_LOCKF"
2016 if test -r ${LSOF_INCLUDE}/sys/lockf.h # {
2019 # Determine the type of locking structure to which the inode or
2022 grep -q "^struct lockf_entry" ${LSOF_INCLUDE}/sys/lockf.h
2023 if test $? -eq 0 # {
2026 # Build the ./lockf_owner.h header file.
2030 echo "Creating ./lockf_owner.h from ${FREEBSD_SYS}/kern/kern_lockf.c"
2031 rm -f ./lockf_owner.h
2032 if test -r ${FREEBSD_SYS}/kern/kern_lockf.c # {
2034 LSOF_TMP1=`grep -n "^struct lock_owner" ${FREEBSD_SYS}/kern/kern_lockf.c | sed 's/\([0-9]*\):.*$/\1/'`
2035 if test "X$LSOF_TMP1" != "X" # {
2038 for i in `grep -n "};" ${FREEBSD_SYS}/kern/kern_lockf.c | sed 's/\([0-9]*\):.*$/\1/'` # {
2040 if test $LSOF_TMP2 -eq 0 -a $i -gt $LSOF_TMP1 # {
2045 if test $LSOF_TMP2 -eq 0 # {
2049 cat > ./lockf_owner.h << LOCKF_OWNER1
2051 * lockf_owner.h -- created by lsof Configure script on
2053 echo $EO " * $EC" >> ./lockf_owner.h
2054 date >> ./lockf_owner.h
2055 cat >> ./lockf_owner.h << LOCKF_OWNER2
2058 #if !defined(LOCKF_OWNER_H)
2059 #define LOCKF_OWNER_H
2062 ed -s ${FREEBSD_SYS}/kern/kern_lockf.c >> ./lockf_owner.h << LOCKF_OWNER3
2063 ${LSOF_TMP1},${LSOF_TMP2}p
2065 if test $? -ne 0 # {
2069 cat >> ./lockf_owner.h << LOCKF_OWNER4
2071 #endif /* defined(LOCKF_OWNER_H) */
2077 echo "FATAL ERROR: can't read ${FREEBSD_SYS}/kern/kern_lockf.c"
2079 if test "X$LSOF_TMP1" != "X" -a "X$LSOF_TMP2" != "X0" # {
2081 echo "./lockf_owner.h creation succeeded."
2082 LSOF_CFGF="$LSOF_CFGF -DHAS_LOCKF_ENTRY"
2084 echo "FATAL ERROR: ./lockf_owner.h creation failed (see 00FAQ)"
2090 # Test for in6p_.port in inpcb structure.
2092 if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
2094 grep -q 'in6p_.port' ${LSOF_INCLUDE}/netinet/in_pcb.h
2095 if test $? -ne 0 # {
2097 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_6PORT"
2101 # Test for in6p_ppcb in inpcb structure.
2103 if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
2105 grep -q 'in6p_ppcb' ${LSOF_INCLUDE}/netinet/in_pcb.h
2106 if test $? -ne 0 # {
2108 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_6PPCB"
2111 if test -r ${LSOF_INCLUDE}/sys/conf.h # {
2113 grep -q 'doadump(boolean_t)' ${LSOF_INCLUDE}/sys/conf.h
2114 if test $? -eq 0 # {
2116 LSOF_CFGF="$LSOF_CFGF -DNEEDS_BOOLEAN_T"
2124 LSOF_CFGF="$LSOF_CFGF -DFREEBSDV=$LSOF_VERS"
2125 if test $LSOF_VERS -lt 2000 -a "X$FREEBSD_KERNEL" = "X" # {
2127 if test ! -x $LSOF_N_UNIXV # {
2129 echo "Hmmm -- $LSOF_N_UNIXV doesn't appear to be your kernel file."
2130 echo "Please enter the name of the file in / that contains"
2131 echo "the kernel for this host. It must be a regular file,"
2132 echo "not a directory, and must be executable."
2134 while test $LSOF_LOOP = 1 # {
2141 echo -n "Kernel file name? "
2142 read LSOF_N_UNIXV LSOF_EXCESS
2143 LSOF_N_UNIXV="/$LSOF_N_UNIXV"
2144 if test ! -d $LSOF_N_UNIXV -a -x $LSOF_N_UNIXV # {
2149 echo $LSOF_N_UNIXV is not a regular executable file.
2153 LSOF_N_UNIXV=`echo $LSOF_N_UNIXV | sed 's#^/*#/#'`
2154 LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=$LSOF_N_UNIXV"
2156 if test -r ${FREEBSD_SYS}/miscfs/fdesc/fdesc.h # {
2158 LSOF_TMP1=${FREEBSD_SYS}/miscfs/fdesc/fdesc.h
2160 if test $LSOF_VERS -ge 5000 -a -r ${LSOF_INCLUDE}/fs/fdescfs/fdesc.h # {
2162 LSOF_TMP1=${LSOF_INCLUDE}/fs/fdescfs/fdesc.h
2167 if test "X$LSOF_TMP1" != "X" # {
2169 grep -q Fctty $LSOF_TMP1
2170 if test $? -eq 0 # {
2172 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
2174 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
2176 grep -q fd_link $LSOF_TMP1
2177 if test $? -eq 0 # {
2179 LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
2183 if test $LSOF_VERS -ge 5000 # {
2189 if test $LSOF_VERS -lt 5000 # {
2191 if test -d ${FREEBSD_SYS}/${LSOF_TMP1}/procfs # {
2193 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
2197 if test -d ${FREEBSD_SYS}/${LSOF_TMP1}/pseudofs # {
2199 LSOF_CFGF="$LSOF_CFGF -DHASPSEUDOFS"
2203 if test -r ${LSOF_INCLUDE}/${LSOF_TMP1}/nullfs/null.h # {
2205 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
2207 if test -r ${FREEBSD_SYS}/${LSOF_TMP1}/nullfs/null.h # {
2209 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
2213 if test -r ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h # {
2216 grep -q "^#ifdef [_]*KERNEL" ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h
2217 if test $? -eq 0 # {
2219 ln -s ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h cd9660_node.h
2221 sed -e '/^ \* Prototypes for ISOFS vnode operations/,$c\
2222 \ The ISOFS prototypes were removed by Configure. */' \
2223 < ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h > cd9660_node.h
2224 echo "" >> cd9660_node.h
2226 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS"
2227 if test $LSOF_VERS -ge 6000 # {
2229 grep -q "i_dev;" cd9660_node.h
2230 if test $? -ne 0 # {
2232 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_ISO_DEV"
2236 if test -r ${LSOF_INCLUDE}/sys/namei.h
2238 grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
2239 if test $? -eq 0 # {
2241 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
2244 if test $LSOF_DINC_ADD -eq 1 # {
2246 if test "X$LSOF_DINC" = "X" # {
2248 LSOF_DINC="-I${FREEBSD_SYS}"
2250 LSOF_DINC="$LSOF_DINC -I${LSOF_INCLUDE} -I${FREEBSD_SYS}"
2253 if test -r ${LSOF_INCLUDE}/netinet/in.h # {
2255 grep IPV6_INRIA_VERSION ${LSOF_INCLUDE}/netinet/in.h > /dev/null
2256 if test $? -eq 0 # {
2258 LSOF_CFGF="$LSOF_CFGF -DHASIPv6 -DHASINRIAIPv6"
2261 echo $CFGF | grep HASIPv6 > /dev/null
2262 if test $? -ne 0 -a -r ${LSOF_INCLUDE}/netinet6/in6.h # {
2264 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2266 if test -r ${LSOF_INCLUDE}/utmpx.h # {
2268 LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
2270 LSOF_DIALECT_DIR=freebsd
2273 # Configure for HP-UX and HP-UX gcc.
2276 if test "X$LSOF_RANLIB_SUP" = "X" # {
2280 if test "X$LSOF_VSTR" = "X" # {
2282 LSOF_VSTR=`uname -r`
2284 if test "X$LSOF_VERS" = "X" # {
2287 # If the HP-UX version isn't pre-defined, determine it.
2289 LSOF_VERS=`echo $LSOF_VSTR | awk -F. '{printf "%d%02d",\$2,\$3}'`
2291 if test $LSOF_VERS -ge 1020 # {
2293 LSOF_TSTBIGF="-D_LARGEFILE64_SOURCE"
2296 # Determine compiler.
2298 if test "X$LSOF_CC" = "X" # {
2300 if test "X$LSOF_TGT" = "Xhpuxgcc" # {
2304 if test "X$HPUX_CCDIR1" = "X" # {
2308 if test "X$HPUX_CCDIR2" = "X" # {
2310 HPUX_CCDIR2="/usr/ccs/bin"
2312 if test -x ${HPUX_CCDIR1}/cc # {
2314 LSOF_CC=${HPUX_CCDIR1}/cc
2316 if test -x ${HPUX_CCDIR2}/cc # {
2318 LSOF_CC=${HPUX_CCDIR2}/cc
2320 echo "No executable cc in $HPUX_CCDIR1 or $HPUX_CCDIR2"
2325 $LSOF_CC -O < /dev/null 2>&1 | grep -q Bundled
2326 if test $? -eq 0 # {
2328 LSOF_DEBUG="No-O" # to disable -O
2329 if test "X$HPUX_LIBC1" = "X" # {
2331 HPUX_LIBC1="/usr/lib"
2333 if test -r ${HPUX_LIBC1}/libc.sl # {
2335 LSOF_FCFGL="-L$HPUX_LIBC -lc"
2337 if test "X$HPUX_LIBC2" = "X" # {
2339 HPUX_LIBC2="/usr/lib"
2341 if test -r ${HPUX_LIBC2}/libc.sl # {
2343 LSOF_FCFGL="-L$HPUX_LIBC2 -lc"
2349 echo $LSOF_CC | grep gcc > /dev/null
2350 if test $? -eq 0 # {
2352 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
2354 $LSOF_CC -O < /dev/null 2>&1 | grep -q Bundled
2355 if test $? -eq 0 # {
2357 LSOF_DEBUG="No-O" # to disable -O
2362 # Test for "const void" support.
2364 rm -f ${LSOF_TMPC}.*
2365 echo "main() { const void *x; return(0); }" >> $LSOF_TMPC.c
2366 $LSOF_CC $LSOF_TMPC.c -o $LSOF_TMPC.x > /dev/null 2>&1
2367 if test $? -eq 0 # {
2369 LSOF_CFGF="$LSOF_CFGF -DHAS_CONST"
2371 rm -f ${LSOF_TMPC}.*
2375 if test "X$HPUX_BASE" = "X" # {
2377 if test -d $LSOF_INCLUDE/sys/pstat -a $LSOF_VERS -ge 1111 # {
2381 HPUX_BASE="/dev/kmem"
2384 if test "X$HPUX_BASE" = "Xpstat" # {
2387 # Configure for pstat-based HP-UX lsof.
2389 LSOF_CINFO="PSTAT-based"
2390 echo "Configuring PSTAT-based HP-UX lsof"
2391 LSOF_DIALECT_DIR=hpux/pstat
2392 LSOF_CFGF="$LSOF_CFGF -DHPUXV=$LSOF_VERS -D_PSTAT64"
2393 LSOF_CFGL="$LSOF_CFGL -lnsl"
2396 ls -l $LSOF_CC | grep -q ansic
2398 ls -l $LSOF_CC | grep -q aCC
2399 if test $? -eq 0 -o $LSOF_TMP1 -eq 0 # {
2401 LSOF_CFGF="$LSOF_CFGF -Ae +DD32"
2403 echo $LSOF_CC | grep -q gcc
2404 if test $? -ne 0 # {
2406 LSOF_CFGF="$LSOF_CFGF +DD32"
2409 if test -r ${LSOF_INCLUDE}/netinet/in6.h # {
2411 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2413 if test -r ${LSOF_INCLUDE}/sys/pstat/stream_pstat_body.h # {
2415 grep -q PS_STR_XPORT_DATA ${LSOF_INCLUDE}/sys/pstat/stream_pstat_body.h
2416 if test $? -eq 0 # {
2418 LSOF_CFGF="$LSOF_CFGF -D_PSTAT_STREAM_GET_XPORT"
2421 if test $LSOF_VERS -ge 1123 # {
2423 LSOF_CFGF="$LSOF_CFGF -D_LARGEFILE64_SOURCE"
2426 if test "X$HPUX_BASE" = "X/dev/kmem" # {
2429 # Configure for /dev/kmem-based HP-UX lsof.
2431 if test "X$HPUX_BOOTFILE" = "X" # {
2433 HPUX_BOOTFILE="/stand/vmunix"
2435 if test $LSOF_VERS -gt 1100 # {
2438 echo "************************************************"
2440 echo "* !!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!! *"
2442 echo "* LSOF DOES NOT SUPPORT THIS VERSION OF HP-UX. *"
2444 echo "************************************************"
2449 LSOF_CFGF="$LSOF_CFGF -DHPUXV=$LSOF_VERS"
2450 LSOF_CINFO="/dev/kmem-based"
2451 LSOF_DIALECT_DIR=hpux/kmem
2452 echo "Configuring /dev/kmem-based HP-UX lsof"
2453 if test $LSOF_VERS -lt 1000 # {
2455 if test "X$HPUX_X25DIR" = "X" # {
2457 HPUX_X25DIR="/etc/conf"
2459 HPUX_X25DIR=$HPUX_X25DIR
2461 if test -r ${HPUX_X25DIR}/x25/x25addrstr.h # {
2463 LSOF_CFGF="$LSOF_CFGF -DHPUX_CCITT"
2464 LSOF_DINC="$LSOF_DINC -I$HPUX_X25DIR"
2467 if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h -a -r ${LSOF_INCLUDE}/sys/fs/vx_hpux.h # {
2469 LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
2471 if test $LSOF_VERS -ge 1030 # {
2473 if test "X$HPUX_KERNBITS" = "X" # {
2475 HPUX_KERNBITS=`getconf _SC_KERNEL_BITS`
2477 LSOF_CFGF="$LSOF_CFGF -DHPUXKERNBITS=${HPUX_KERNBITS} -I`pwd`/dialects/hpux/kmem/hpux11"
2478 if test $HPUX_KERNBITS -eq 64 # {
2482 echo "*****************************************"
2484 echo "* NOTICE! Configuring for 64 bit HP-UX *"
2486 echo "*****************************************"
2487 echo $LSOF_CC | grep gcc > /dev/null
2488 if test $? -eq 0 # {
2491 # Test gcc for 64 bit support, trying gcc with no options, then
2492 # with -mlp64, testing the result with file.
2495 echo "Testing $LSOF_CC for 64 bit support"
2496 rm -f ${LSOF_TMPC}.*
2497 echo "main(){}" > ${LSOF_TMPC}.c
2499 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
2500 if test $? -eq 0 # {
2502 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
2503 if test $? -eq 0 # {
2508 if test "X$LSOF_TMP1" = "X" # {
2510 rm -f ${LSOF_TMPC}.x
2511 $LSOF_CC ${LSOF_TMPC}.c -mlp64 -o ${LSOF_TMPC}.x > /dev/null 2>&1
2512 if test $? -eq 0 # {
2514 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
2515 if test $? -eq 0 # {
2521 rm -f ${LSOF_TMPC}.*
2522 if test "X$LSOF_TMP1" = "X" # {
2525 echo "***************************************************"
2527 echo "* !!!!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!!! *"
2529 echo "* APPARENTLY GCC CANNOT BUILD 64 BIT EXECUTABLES. *"
2530 echo "* A COMPILER MUST BE USED THAT CAN. SEE 00FAQ *"
2531 echo "* FOR MORE INFORMATION. *"
2533 echo "***************************************************"
2538 if test "X$LSOF_TMP1" != "X " # {
2540 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
2542 LSOF_CFGL="$LSOF_CFGL -lelf"
2543 LSOF_CINFO="${LSOF_CINFO}, 64 bit HP-UX"
2547 # Set options for the HP-UX compiler.
2549 LSOF_CFGF="$LSOF_CFGF +DD64"
2550 LSOF_CFGL="$LSOF_CFGL -lelf"
2551 LSOF_CINFO="${LSOF_CINFO}, 64 bit HP-UX"
2554 LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64"
2555 LSOF_CINFO="${LSOF_CINFO}, 32 bit HP-UX"
2556 echo $LSOF_CC | grep gcc > /dev/null
2557 if test $? -ne 0 # {
2559 LSOF_CFGF="$LSOF_CFGF +DAportable"
2562 LSOF_CFGL="$LSOF_CFGL -lnsl"
2565 # When HP-UX is less than 10.30, but greater than or equal to 10,
2566 # check NFS3 rnode status.
2568 if test $LSOF_VERS -ge 1000 # {
2571 if test "X$HPUX_RNODE3" = "X" # {
2573 nm -x $HPUX_BOOTFILE | grep -q nfs_vnodeops3
2574 if test $? -eq 0 # {
2576 if test -r ${LSOF_INCLUDE}/nfs/rnode.h # {
2578 grep -q r_fh3 ${LSOF_INCLUDE}/nfs/rnode.h
2579 if test $? -ne 0 # {
2586 if test "X$HPUX_RNODE3" = "X1" # {
2591 if test $LSOF_TMP1 -eq 1 # {
2593 LSOF_CFGF="$LSOF_CFGF -DHASRNODE3"
2597 if test $LSOF_VERS -eq 1100 # {
2600 # Test for the ipis_s structure. If it is present, set HAS_IPC_S_PATCH.
2602 if test "X$HPUX_IPC_S_PATCH" = "X" # {
2604 if test -x /usr/contrib/Q4/bin/q4exe # {
2606 LSOF_TMP=/usr/contrib/Q4/bin/q4exe
2608 LSOF_TMP=/usr/contrib/bin/q4
2610 if test -x $LSOF_TMP # {
2612 rm -f ${LSOF_TMPC}.out
2614 echo $EO "Looking in $HPUX_BOOTFILE for ipis_s with $LSOF_TMP ... $EC"
2615 echo "yes\\nfields -c struct ipis_s" | $LSOF_TMP $HPUX_BOOTFILE > ${LSOF_TMPC}.out 2>&1
2616 if test $? -ne 0 # {
2620 echo "!!!ERROR!!! $LSOF_TMP failed and produced the following output."
2622 cat ${LSOF_TMPC}.out
2623 HPUX_IPC_S_PATCH=fail
2625 grep ipis_s ${LSOF_TMPC}.out > /dev/null 2>&1
2626 if test $? -eq 0 # {
2628 echo "ipis_s exists."
2630 # See if ipis_msgsqueued is present.
2632 grep ipis_msgsqueued ${LSOF_TMPC}.out > /dev/null 2>&1
2633 if test $? -eq 0 # {
2640 echo "ipis_s doesn't exist."
2644 rm -f ${LSOF_TMPC}.out
2646 echo "Can't locate or execute $LSOF_TMP"
2647 echo $EO "ls says: $EC"
2649 HPUX_IPC_S_PATCH=fail
2652 if test "X$HPUX_IPC_S_PATCH" = "Xfail" # {
2655 echo "!!!ERROR!!! !!!ERROR!!! !!!ERROR!!! !!!ERROR!!!"
2656 echo "Configure can't use $LSOF_TMP to examine the ipis_s"
2657 echo "structure. You must do that yourself, report the result in"
2658 echo "the HPUX_IPC_S_PATCH environment variable, then repeat the"
2659 echo "Configure step. Consult the Configure script's use of"
2660 echo "$LSOF_TMP and the 00XCONFIG file for information"
2661 echo "on ipis_s testing and the setting of HPUX_IPC_S_PATCH."
2662 echo "!!!ERROR!!! !!!ERROR!!! !!!ERROR!!! !!!ERROR!!!"
2667 if test "X$HPUX_IPC_S_PATCH" = "X1" -o "X$HPUX_IPC_S_PATCH" = "X2" # {
2669 LSOF_CFGF="$LSOF_CFGF -DHAS_IPC_S_PATCH=$HPUX_IPC_S_PATCH"
2671 if test "X$HPUX_IPC_S_PATCH" != "Xn" -a "X$HPUX_IPC_S_PATCH" != "XN" # {
2673 echo "Illegal value for HPUX_IPC_S_PATCH: $HPUX_IPC_S_PATCH"
2680 # Manufacture an hpux_mount.h header file with a mount struct in it, as
2683 if test -r ${LSOF_INCLUDE}/sys/mount.h # {
2685 LSOF_TMP1="dialects/${LSOF_DIALECT_DIR}/hpux_mount.h"
2687 echo "#if !defined(MANUFACTURED_HPUX_SYS_MOUNT_H)" > $LSOF_TMP1
2688 echo "#define MANUFACTURED_HPUX_SYS_MOUNT_H" >> $LSOF_TMP1
2689 echo "/* By lsof Configure:" `date` " */" >> $LSOF_TMP1
2690 echo "struct mount" >> $LSOF_TMP1
2691 sed '1,/struct mount/d' ${LSOF_INCLUDE}/sys/mount.h | sed -n '1,/m_dev/p' >> $LSOF_TMP1
2692 echo "};" >> $LSOF_TMP1
2693 echo "#endif" >> $LSOF_TMP1
2694 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/${LSOF_DIALECT_DIR}"
2697 # Test for OnlineJFS.
2699 if test $LSOF_VERS -ge 1100 # {
2701 if test "X$HPUX_HASONLINEJFS" = "X" -a -x /sbin/fs/vxfs/subtype # {
2703 LSOF_TMP1=`/sbin/fs/vxfs/subtype`
2704 if test "X$LSOF_TMP1" = "Xvxfs3.3"
2706 HPUX_HASONLINEJFS="Y"
2709 if test "X$HPUX_HASONLINEJFS" = "XY" -o "X$HPUX_HASONLINEJFS" = "Xy"
2712 LSOF_CFGF="$LSOF_CFGF -DHASONLINEJFS"
2718 if test -r ${AFS_VICE}/etc/ThisCell # {
2720 if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
2722 if test -r ./AFSHeaders -a -r ./AFSVersion # {
2727 if test ! -x ./AFSConfig # {
2729 echo "Can't find or execute the AFSConfig script"
2734 if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
2739 if test "X$LSOF_AFS" = "Xyes" # {
2741 LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
2742 LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
2743 LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
2747 echo "HP-UX base unrecognized: $HPUX_BASE"
2754 # Configure for Linux.
2757 LSOF_TSTBIGF="-D_FILE_OFFSET_BITS=64"
2759 if test "X$LSOF_CC" = "X" # {
2762 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
2764 if test "X$LINUX_CONF_CC" = "X" # {
2766 LINUX_CONF_CC=$LSOF_CC
2769 if test "X$LINUX_INCL" = "X" # {
2771 LINUX_INCL=/usr/include
2773 LSOF_DINC="$LSOF_DINC -I${LINUX_INCL}"
2775 if test "X$LINUX_VERSION_CODE" = "X" # {
2777 if test -r "$LINUX_INCL/linux/version.h" # {
2779 LINUX_VERSION_CODE=`cat $LINUX_INCL/linux/version.h | sed -n 's/.\+LINUX_VERSION_CODE \([[:digit:]]\+\)$/\1/p'`
2782 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);'`
2783 if test "X$LSOF_VSTR" = "X" # {
2785 LSOF_VSTR=`uname -r`
2787 if test "X$LSOF_VERS" = "X" # {
2790 # If the Linux version isn't predefined, determine it.
2792 LSOF_VERS=`echo $LSOF_VSTR | sed 's/\./ /g' | awk '{printf "%d%d%03d",\$1,\$2,\$3}'`
2794 LSOF_CFGF="$LSOF_CFGF -DLINUXV=$LSOF_VERS"
2795 if test $LSOF_VERS -lt 21072 # {
2798 echo "!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!"
2800 echo "! THE /PROC-BASED LSOF SOURCES HAVE NOT BEEN TESTED ON !"
2801 echo "! LINUX KERNELS BELOW 2.1.72, AND MAY NOT WORK ON THIS !"
2802 echo "! KERNEL. IT SHOULD USE A /DEV/KMEM-BASED LSOF. !"
2804 echo "!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!"
2810 # If the Linux C library type isn't predefined, determine it.
2812 if test "X$LINUX_CLIB" = "X" # {
2814 echo -n "Testing C library type with $LINUX_CONF_CC ... "
2815 rm -f ${LSOF_TMPC}.*
2816 cat > $LSOF_TMPC.c << .LSOF_END_HERE_DOC1
2817 #include <features.h>
2819 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
2820 printf("-DGLIBCV=%d\n",__GLIBC__*100+__GLIBC_MINOR__);
2821 #elif defined(__GLIBC__)
2822 printf("-DGLIBCV=%d00\n",__GLIBC__);
2828 $LINUX_CONF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
2829 if test -x ${LSOF_TMPC}.x # {
2831 LINUX_CLIB=`${LSOF_TMPC}.x`
2837 rm -f ${LSOF_TMPC}.*
2839 if test $LSOF_TMP -ne 0 # {
2841 echo "Cannot determine C library type; assuming it is not glibc."
2844 if test "X$LINUX_CLIB" = "X" # {
2846 echo "The C library type is not glibc."
2848 echo "The C library type is glibc, version \"$LINUX_CLIB\"."
2852 if test "X$LINUX_CLIB" != "X" # {
2854 LSOF_CFGF="$LSOF_CFGF $LINUX_CLIB"
2857 # Test for IPv6 support.
2859 if test -r ${LSOF_INCLUDE}/netinet/ip6.h # {
2861 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2864 # Test for <rpc/rpc.h>.
2866 if ! test -r ${LSOF_INCLUDE}/rpc/rpc.h # {
2868 LSOF_CFGF="$LSOF_CFGF -DHASNORPC_H"
2871 # Test for SELinux support.
2874 if test "X$LINUX_HASSELINUX" = "X" # {
2876 if test -r ${LSOF_INCLUDE}/selinux/selinux.h # {
2881 if test "X$LINUX_HASSELINUX" = "XY" -o "X$LINUX_HASSELINUX" = "Xy" # {
2886 if test $LSOF_TMP1 -eq 1 # {
2888 LSOF_CFGF="$LSOF_CFGF -DHASSELINUX"
2889 LSOF_CFGL="$LSOF_CFGL -lselinux"
2891 LSOF_DIALECT_DIR="linux"
2892 LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
2895 # Configure for NetBSD.
2898 if test "X$LSOF_CC" = "X" # {
2901 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
2903 if test "X$LSOF_VSTR" = "X" # {
2905 LSOF_VSTR=`uname -r`
2907 if test "X$LSOF_VERS" = "X" # {
2910 # Validate the NetBSD version.
2912 case $LSOF_VSTR in # {
2932 echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR"
2933 echo "!!!WARNING!!! Configuring for NetBSD 1.6"
2953 echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR"
2954 echo "!!!WARNING!!! Configuring for NetBSD 2.0"
2966 echo "!!!WARNING!!! Unsupported NetBSD version: $LSOF_VSTR"
2967 echo "!!!WARNING!!! Configuring for NetBSD 3.0"
2970 echo "Unknown NetBSD release: $LSOF_VSTR"
2971 echo Assuming NetBSD 1.6
2977 # Test for legal NetBSD version.
2979 case $LSOF_VERS in # {
2980 1002000|1003000|1004000|1005000|1006000)
2982 2000000|2099009|2099010)
2987 echo "Unknown NetBSD version: $LSOF_VERS"
2992 LSOF_CFGF="$LSOF_CFGF -DNETBSDV=$LSOF_VERS"
2993 LSOF_TMP1="-DN_UNIXV=/netbsd"
2994 if test -r ${LSOF_INCLUDE}/util.h # {
2996 grep -q getbootfile ${LSOF_INCLUDE}/util.h
2997 if test $? -eq 0 # {
2999 LSOF_CFGL="$LSOF_CFGL -lutil"
3000 LSOF_TMP1="-DHASGETBOOTFILE"
3003 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
3004 if test -r ${LSOF_INCLUDE}/kvm.h # {
3006 grep -q kvm_getproc2 ${LSOF_INCLUDE}/kvm.h
3007 if test $? -eq 0 # {
3009 LSOF_CFGF="$LSOF_CFGF -DHASKVMGETPROC2"
3013 # Here begin the dual tests on header files that may be in $LSOF_INCLUDE
3016 # Note that $LSOF_TMP1 holds an indicator of the need for -I$NETBSD_SYS.
3017 # LSOF_TMP4 contains a temporary indicator of the use of $NETBSD_SYS.
3020 if test "X$NETBSD_SYS" = "X" # {
3022 if test -d /usr/src # {
3024 NETBSD_SYS="/usr/src/sys"
3026 NETBSD_SYS=$LSOF_INCLUDE
3029 LSOF_TMP2="nfs/nfsproto.h"
3030 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3032 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3035 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3037 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3043 if test "X$LSOF_TMP3" != "X" # {
3045 LSOF_CFGF="$LSOF_CFGF -DHASNFSPROTO"
3046 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3051 LSOF_TMP2="netinet/ip6.h"
3052 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3054 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3057 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3059 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3065 if test "X$LSOF_TMP3" != "X" # {
3067 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
3068 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3073 LSOF_TMP2="netinet/in.h"
3074 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3076 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3079 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3081 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3087 if test "X$LSOF_TMP3" != "X" # {
3089 grep -q IPV6_INRIA_VERSION $LSOF_TMP3
3090 if test $? -eq 0 # {
3092 LSOF_CFGF="$LSOF_CFGF -DHASIPv6 -DHASINRIAIPv6"
3093 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3100 LSOF_TMP2="miscfs/fdesc/fdesc.h"
3101 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3103 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3105 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3107 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3113 if test "X$LSOF_TMP3" != "X" # {
3115 grep -q Fctty $LSOF_TMP3
3116 if test $? -eq 0 # {
3118 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
3120 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
3122 grep -q fd_link $LSOF_TMP3
3123 if test $? -eq 0 # {
3125 LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
3127 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3132 LSOF_TMP2="miscfs/nullfs/null.h"
3133 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3135 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3138 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3140 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3146 if test "X$LSOF_TMP3" != "X" # {
3148 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
3149 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3154 LSOF_TMP2="miscfs/procfs"
3155 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3157 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3160 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3162 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3168 if test "X$LSOF_TMP3" != "X" # {
3170 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
3171 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3175 if test -r ${LSOF_TMP3}/procfs.h # {
3177 grep -q PFSroot ${LSOF_TMP3}/procfs.h
3178 if test $? -eq 0 # {
3180 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS_PFSROOT"
3184 LSOF_TMP2="sys/bufq.h"
3186 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3188 LSOF_CFGF="$LSOF_CFGF -DHASBUFQ_H"
3190 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3192 if test $NETBSD_SYS != $LSOF_INCLUDE # {
3194 LSOF_CFGF="$LSOF_CFGF -DHASBUFQ_H"
3199 LSOF_TMP2="isofs/cd9660"
3200 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3202 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3205 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3207 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3213 if test "X$LSOF_TMP3" != "X" # {
3215 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
3216 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3221 LSOF_TMP2="fs/cd9660"
3222 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3224 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3227 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3229 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3235 if test "X$LSOF_TMP3" != "X" # {
3237 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
3238 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3245 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3247 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3250 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3252 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3258 if test "X$LSOF_TMP3" != "X" # {
3260 LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=1"
3261 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3266 LSOF_TMP2="fs/msdosfs"
3267 if test -d ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3269 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3272 if test -d ${NETBSD_SYS}/$LSOF_TMP2 # {
3274 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3280 if test "X$LSOF_TMP3" != "X" # {
3282 LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=2"
3283 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3289 LSOF_TMP2="miscfs/kernfs/kernfs.h"
3290 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3292 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3295 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3297 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3303 if test "X$LSOF_TMP3" != "X" # {
3305 grep -q "kt_name;" $LSOF_TMP3
3306 if test $? -eq 0 # {
3308 LSOF_CFGF="$LSOF_CFGF -DHASKERNFS"
3309 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3313 grep -q "*kfs_kt;" $LSOF_TMP3
3314 if test $? -eq 0 # {
3316 LSOF_CFGF="$LSOF_CFGF -DHASKERNFS_KFS_KT"
3320 LSOF_TMP2="sys/namei.h"
3321 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3323 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3326 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3328 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3334 if test "X$LSOF_TMP3" != "X" # {
3336 grep -q nc_vpid $LSOF_TMP3
3337 if test $? -eq 0 # {
3339 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
3340 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3346 LSOF_TMP2="ufs/ufs/inode.h"
3347 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3349 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3352 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3354 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3360 if test "X$LSOF_TMP3" != "X" # {
3362 grep -q i_ffs_size $LSOF_TMP3
3363 if test $? -eq 0 # {
3365 LSOF_CFGF="$LSOF_CFGF -DHASI_FFS"
3366 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3371 grep -q i_ffs1_size $LSOF_TMP3
3372 if test $? -eq 0 # {
3374 LSOF_CFGF="$LSOF_CFGF -DHASI_FFS1"
3375 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3381 grep -q i_ffs_effnlink $LSOF_TMP3
3382 if test $? -eq 0 # {
3384 LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_ffs_effnlink"
3385 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3391 LSOF_TMP2="sys/vnode.h"
3393 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3395 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3398 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3400 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3406 if test "XLSOF_TMP3" != "X" # {
3408 grep -q VT_EXT2FS $LSOF_TMP3
3409 if test $? -eq 0 # {
3411 LSOF_CFGF="$LSOF_CFGF -DHASEXT2FS"
3412 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3416 LSOF_TMP2="ufs/ufs/inode.h"
3417 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3419 LSOF_TMP5="${LSOF_INCLUDE}/$LSOF_TMP2"
3422 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3424 LSOF_TMP5="${NETBSD_SYS}/$LSOF_TMP2"
3430 if test "X$LSOF_TMP5" != "X" # {
3432 grep -q "*e2fs_din" $LSOF_TMP5
3433 if test $? -eq 0 # {
3435 LSOF_CFGF="$LSOF_CFGF -DHASI_E2FS_PTR"
3436 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3438 LSOF_TMP1=$LSOF_TMP6
3443 grep -q VT_LFS $LSOF_TMP3
3444 if test $? -eq 0 # {
3446 LSOF_CFGF="$LSOF_CFGF -DHASLFS"
3447 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3452 grep -q VT_PTYFS $LSOF_TMP3
3453 if test $? -eq 0 # {
3455 LSOF_TMP2="fs/ptyfs/ptyfs.h"
3456 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3458 LSOF_CFGF="$LSOF_CFGF -DHASPTYFS"
3460 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3462 if test $NETBSD_SYS != $LSOF_INCLUDE # {
3464 LSOF_CFGF="$LSOF_CFGF -DHASPTYFS"
3470 if test "X$NETBSD_UVM" = "X" # {
3472 grep -q UVM $LSOF_TMP3
3473 if test $? -ne 0 # {
3475 egrep -q "v_uvm;|v_uobj;" $LSOF_TMP3
3476 if test $? -eq 0 # {
3483 LSOF_TMP2="nfs/nfsnode.h"
3484 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3486 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3489 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3491 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3497 if test "X$LSOF_TMP3" != "X" # {
3499 grep -q "*n_vattr" $LSOF_TMP3
3500 if test $? -eq 0 # {
3502 LSOF_CFGF="$LSOF_CFGF -DHASNFSVATTRP"
3503 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3509 LSOF_TMP2="sys/lockf.h"
3510 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3512 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3515 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3517 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3523 if test "X$LSOF_TMP3" != "X" # {
3525 grep -q vop_advlock_args $LSOF_TMP3
3526 if test $? -eq 0 # {
3528 LSOF_CFGF="$LSOF_CFGF -DHAS_ADVLOCK_ARGS"
3529 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3534 grep -q lf_lwp $LSOF_TMP3
3535 if test $? -eq 0 # {
3537 LSOF_CFGF="$LSOF_CFGF -DHAS_LF_LWP"
3538 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3544 LSOF_TMP2="sys/lwp.h"
3545 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3547 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3550 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3552 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3558 if test "X$LSOF_TMP3" != "X" # {
3560 LSOF_CFGF="$LSOF_CFGF -DHAS_LWP_H"
3561 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3566 LSOF_TMP2="sys/filedesc.h"
3567 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3569 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3572 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3574 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3580 if test "X$LSOF_TMP3" != "X" # {
3582 grep -q "^struct cwdinfo {" $LSOF_TMP3
3583 if test $? -eq 0 # {
3585 LSOF_CFGF="$LSOF_CFGF -DHASCWDINFO"
3586 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3592 LSOF_TMP2="sys/pipe.h"
3593 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3595 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3598 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3600 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3606 if test "X$LSOF_TMP3" != "X" # {
3608 LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_PIPEH"
3609 if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1 # {
3614 if test -r ${LSOF_INCLUDE}/sys/statvfs.h # {
3616 grep -q '^struct statvfs {' ${LSOF_INCLUDE}/sys/statvfs.h
3617 if test $? -eq 0 # {
3619 LSOF_CFGF="$LSOF_CFGF -DHASSTATVFS"
3623 # Here end the dual NetBSD tests for header files in $LSOF_INCLUDE or
3626 # After this LSOF_TMP1 may be reused.
3628 if test $LSOF_TMP1 -eq 1 # {
3630 LSOF_DINC="-I$LSOF_INCLUDE -I$NETBSD_SYS"
3633 # Build special header files, as required.
3635 rm -rf dialects/n+obsd/include
3636 if test "X$NETBSD_UVM" = "XY" -o "X$NETBSD_UVM" = "Xy" # {
3638 mkdir dialects/n+obsd/include
3639 touch dialects/n+obsd/include/opt_uvmhist.h
3640 touch dialects/n+obsd/include/opt_lockdebug.h
3641 LSOF_CFGF="$LSOF_CFGF -DUVM -I`pwd`/dialects/n+obsd/include"
3642 if test -d ${LSOF_INCLUDE}/uvm # {
3644 LSOF_CFGF="$LSOF_CFGF -DHAS_UVM_INCL"
3647 LSOF_TMP2="sys/mount.h"
3648 if test -r ${LSOF_INCLUDE}/$LSOF_TMP2 # {
3650 LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3652 if test -r ${NETBSD_SYS}/$LSOF_TMP2 # {
3654 LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3659 if test "X$LSOF_TMP3" != "X" # {
3662 # Build a local NetBSD netexport.h header file for possible use by
3663 # <msdosfs/msdosfsmount.h>. Make sure CFGL contains a -I for it.
3665 LSOF_TMP1=${LSOF_TMPC}.edscr
3666 LSOF_TMP2=${LSOF_TMPC}.netcred
3667 LSOF_TMP3=${LSOF_TMPC}.netexport
3668 LSOF_TMP4=dialects/n+obsd/include/netexport.h
3669 if test ! -d dialects/n+obsd/include # {
3671 mkdir dialects/n+obsd/include
3673 rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4
3674 echo "/^struct netcred" > $LSOF_TMP1
3675 echo "1,.-1d" >> $LSOF_TMP1
3676 echo "/^};" >> $LSOF_TMP1
3677 echo "1,.w $LSOF_TMP2" >> $LSOF_TMP1
3678 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
3680 echo "/^struct netexport" > $LSOF_TMP1
3681 echo "1,.-1d" >> $LSOF_TMP1
3682 echo "/^};" >> $LSOF_TMP1
3683 echo "1,.w $LSOF_TMP3" >> $LSOF_TMP1
3684 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
3685 echo "/*" > $LSOF_TMP4
3686 echo " * netexport.h" >> $LSOF_TMP4
3687 echo -n " * Created by Configure: " >> $LSOF_TMP4
3688 echo `date` >> $LSOF_TMP4
3689 echo " */" >> $LSOF_TMP4
3690 echo "" >> $LSOF_TMP4
3691 echo "#if !defined(NETEXPORT_H)" >> $LSOF_TMP4
3692 echo "#define NETEXPORT_H" >> $LSOF_TMP4
3693 echo "" >> $LSOF_TMP4
3694 echo "#include <net/radix.h>" >> $LSOF_TMP4
3695 echo "" >> $LSOF_TMP4
3696 if test -r $LSOF_TMP2 # {
3698 cat $LSOF_TMP2 >> $LSOF_TMP4
3699 echo "" >> $LSOF_TMP4
3701 if test -r $LSOF_TMP3 # {
3703 cat $LSOF_TMP3 >> $LSOF_TMP4
3705 echo "#endif /* !defined(NETEXPORT_H) */" >> $LSOF_TMP4
3706 rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3
3707 echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3708 if test $? -ne 0 # {
3710 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3713 if test $LSOF_NBSD_BUFQH -eq 1 # {
3716 # Make a local copy of $NETBSD_SYS/sys/bufq.h.
3718 if test ! -d dialects/n+obsd/include # {
3720 mkdir dialects/n+obsd/include
3722 if test ! -d dialects/n+obsd/include/sys # {
3724 mkdir dialects/n+obsd/include/sys
3726 cp $NETBSD_SYS/sys/bufq.h dialects/n+obsd/include/sys
3727 echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3728 if test $? -ne 0 # {
3730 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3733 if test $LSOF_NBSD_PTYFS -eq 1 # {
3736 # Make a local copy of $NETBSD_SYS/sys/fs/ptyfs/.
3738 if test ! -d dialects/n+obsd/include # {
3740 mkdir dialects/n+obsd/include
3742 if test ! -d dialects/n+obsd/include/fs # {
3744 mkdir dialects/n+obsd/include/fs
3746 rm -rf dialects/n+obsd/include/fs/ptyfs
3747 mkdir dialects/n+obsd/include/fs/ptyfs
3748 cp $NETBSD_SYS/fs/ptyfs/*.h dialects/n+obsd/include/fs/ptyfs
3749 echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3750 if test $? -ne 0 # {
3752 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3755 LSOF_CFGL="$LSOF_CFGL -lkvm"
3756 LSOF_DIALECT_DIR=n+obsd
3759 # Configure for NeXTSTEP or OPENSTEP.
3761 nextstep|next|ns|nxt|openstep|os)
3763 LSOF_TSTXO="../lib/snpf.o"
3764 if test "X$LSOF_AR" = "X" # {
3766 LSOF_AR="rm -f \${LIB}; ar cr"
3768 if test "X$LSOF_VSTR" = "X" # {
3770 LSOF_VSTR=`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`
3772 if test "X$LSOF_VERS" = "X" # {
3775 # If the NeXSTEP version isn't predefined, determine it.
3777 LSOF_VERS=`echo $LSOF_VSTR | sed -n 's/\([0-9]*\)\.\([0-9]*\)/\1\2/p'`
3779 if test "X$LSOF_CC" = "X" # {
3781 if test -x /usr/local/bin/gcc # {
3783 LSOF_CC=/usr/local/bin/gcc
3784 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3787 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3790 echo $LSOF_CC | grep gcc > /dev/null
3791 if test $? -eq 0 # {
3793 LSOF_CFGL="$LSOF_CFGL -w"
3794 LSOF_DEBUG="-pedantic -O"
3796 LSOF_CFGF="$LSOF_CFGF -DSTEPV=$LSOF_VERS"
3797 LSOF_DIALECT_DIR=n+os
3801 if test -r ${AFS_VICE}/etc/ThisCell # {
3803 if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
3805 if test -r ./AFSHeaders -a -r ./AFSVersion # {
3810 if test ! -x ./AFSConfig # {
3812 echo "Can't find or execute the AFSConfig script"
3817 if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
3822 if test "X$LSOF_AFS" = "Xyes" # {
3824 LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
3825 LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
3826 LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
3831 # Configure for OpenBSD. (OpenBSD uses NetBSD dialect sources and version
3835 if test "X$LSOF_CC" = "X" # {
3838 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3840 if test "X$LSOF_VSTR" = "X" # {
3842 LSOF_VSTR=`uname -r`
3844 if test "X$LSOF_VERS" = "X" # {
3847 # If the OpenBSD version isn't pre-defined, determine it.
3849 case $LSOF_VSTR in # {
3852 echo "!!!WARNING!!! Unsupported OpenBSD 1.x version: $LSOF_VSTR"
3853 echo "!!!WARNING!!! Configuring for OpenBSD 1.2"
3876 echo "!!!WARNING!!! Unsupported OpenBSD 2.x version: $LSOF_VSTR"
3877 echo "!!!WARNING!!! Configuring for OpenBSD 2.9"
3922 echo "!!!WARNING!!! Unsupported OpenBSD 3.x version: $LSOF_VSTR"
3923 echo "!!!WARNING!!! Configuring for OpenBSD 3.9"
3926 echo "Unknown OpenBSD release: $LSOF_VSTR"
3927 echo Assuming OpenBSD 3.9
3933 # Test for legal OpenBSD version.
3935 case $LSOF_VERS in # {
3936 1020|2050|2060|2070|2080|2090|3000|3010|3020|3030|3040|3050|3060|3070|3080|3090)
3939 echo "Unknown OpenBSD version: $LSOF_VERS"
3944 LSOF_CFGF="$LSOF_CFGF -DOPENBSDV=$LSOF_VERS"
3945 if test -r /dev/ksyms # {
3947 LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=/dev/ksyms"
3949 LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=/bsd"
3951 if test -r ${LSOF_INCLUDE}/nfs/nfsproto.h # {
3953 LSOF_CFGF="$LSOF_CFGF -DHASNFSPROTO"
3955 if test -r ${LSOF_INCLUDE}/netinet6/in6.h # {
3957 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
3960 if test "X$OPENBSD_SYS" = "X" # {
3964 if test -r ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h # {
3966 grep -q Fctty ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h
3967 if test $? -eq 0 # {
3969 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
3971 LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
3973 grep -q fd_link ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h
3974 if test $? -eq 0 # {
3976 LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
3980 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
3982 grep -q VT_LFS ${LSOF_INCLUDE}/sys/vnode.h
3983 if test $? -eq 0 # {
3985 LSOF_CFGF="$LSOF_CFGF -DHASLFS"
3988 if test -r ${LSOF_INCLUDE}/miscfs/nullfs/null.h # {
3990 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
3992 if test -r ${OPENBSD_SYS}/miscfs/nullfs/null.h # {
3994 LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
3998 if test -d ${OPENBSD_SYS}/miscfs/procfs # {
4000 LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
4003 if test -d ${OPENBSD_SYS}/isofs/cd9660 # {
4005 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
4008 if test -d ${OPENBSD_SYS}/fs/cd9660 # {
4010 LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=2"
4014 if test -d ${OPENBSD_SYS}/msdosfs # {
4016 LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=1"
4019 if test -d ${OPENBSD_SYS}/fs/msdosfs # {
4021 LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=2"
4025 if test -r ${OPENBSD_SYS}/miscfs/kernfs/kernfs.h # {
4027 grep -q "kt_name;" ${OPENBSD_SYS}/miscfs/kernfs/kernfs.h
4028 if test $? -eq 0 # {
4030 LSOF_CFGF="$LSOF_CFGF -DHASKERNFS"
4034 if test $LSOF_TMP1 -eq 1 -a "X$LSOF_INCLUDE" != "X$OPENBSD_SYS" # {
4036 LSOF_DINC="-I$LSOF_INCLUDE -I$OPENBSD_SYS"
4038 grep -q VT_EXT2FS ${LSOF_INCLUDE}/sys/vnode.h
4039 if test $? -eq 0 # {
4042 if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
4044 grep -q "*e2fs_din" ${LSOF_INCLUDE}/ufs/ufs/inode.h
4045 if test $? -eq 0 # {
4047 LSOF_CFGF="$LSOF_CFGF -DHASI_E2FS_PTR"
4049 grep -q "^#define[ ]i_e2din" ${LSOF_INCLUDE}/ufs/ufs/inode.h
4050 if test $? -eq 0 # {
4055 LSOF_CFGF="$LSOF_CFGF -DHASEXT2FS=$LSOF_TMP1"
4057 if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h # {
4059 grep -q i_effnlink ${LSOF_INCLUDE}/ufs/ufs/inode.h
4060 if test $? -eq 0 # {
4062 LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_effnlink"
4064 grep -q dinode_u ${LSOF_INCLUDE}/ufs/ufs/inode.h
4065 if test $? -eq 0 # {
4067 LSOF_CFGF="$LSOF_CFGF -DHAS_DINODE_U"
4069 grep -q i_ffs1_size ${LSOF_INCLUDE}/ufs/ufs/inode.h
4070 if test $? -eq 0 # {
4072 LSOF_CFGF="$LSOF_CFGF -DHASI_FFS1"
4074 grep -q UM_UFS ${LSOF_INCLUDE}/ufs/ufs/inode.h
4075 if test $? -eq 0 # {
4077 LSOF_CFGF="$LSOF_CFGF -DHAS_UM_UFS"
4080 if test -r ${LSOF_INCLUDE}/sys/namei.h
4082 grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
4083 if test $? -eq 0 # {
4085 LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
4088 if test "X$OPENBSD_UVM" = "X" # {
4090 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
4092 grep -q UVM ${LSOF_INCLUDE}/sys/vnode.h
4093 if test $? -ne 0 # {
4095 egrep -q "v_uvm;|v_uobj;" ${LSOF_INCLUDE}/sys/vnode.h
4096 if test $? -eq 0 # {
4103 if test "X$OPENBSD_UVM" = "XY" -o "X$OPENBSD_UVM" = "Xy" # {
4105 LSOF_CFGF="$LSOF_CFGF -DUVM"
4106 if test -d ${LSOF_INCLUDE}/uvm # {
4108 LSOF_CFGF="$LSOF_CFGF -DHAS_UVM_INCL"
4111 if test -r ${LSOF_INCLUDE}/sys/mount.h -a $LSOF_VERS -lt 3030 # {
4114 # Build a local OpenBSD netexport.h header file for possible use by
4115 # <msdosfs/msdosfsmount.h>. Make sure CFGL contains a -I for it.
4117 LSOF_TMP1=${LSOF_TMPC}.edscr
4118 LSOF_TMP2=${LSOF_TMPC}.netcred
4119 LSOF_TMP3=${LSOF_TMPC}.netexport
4120 LSOF_TMP4=dialects/n+obsd/include/netexport.h
4121 if test ! -d dialects/n+obsd/include # {
4123 mkdir dialects/n+obsd/include
4125 rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4
4126 echo "/^struct netcred" > $LSOF_TMP1
4127 echo "1,.-1d" >> $LSOF_TMP1
4128 echo "/^};" >> $LSOF_TMP1
4129 echo "1,.w $LSOF_TMP2" >> $LSOF_TMP1
4130 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
4132 echo "/^struct netexport" > $LSOF_TMP1
4133 echo "1,.-1d" >> $LSOF_TMP1
4134 echo "/^};" >> $LSOF_TMP1
4135 echo "1,.w $LSOF_TMP3" >> $LSOF_TMP1
4136 ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
4137 echo "/*" > $LSOF_TMP4
4138 echo " * netexport.h" >> $LSOF_TMP4
4139 echo -n " * Created by Configure: " >> $LSOF_TMP4
4140 echo `date` >> $LSOF_TMP4
4141 echo " */" >> $LSOF_TMP4
4142 echo "" >> $LSOF_TMP4
4143 echo "#if !defined(NETEXPORT_H)" >> $LSOF_TMP4
4144 echo "#define NETEXPORT_H" >> $LSOF_TMP4
4145 echo "" >> $LSOF_TMP4
4146 echo "#include <net/radix.h>" >> $LSOF_TMP4
4147 echo "" >> $LSOF_TMP4
4148 if test -r $LSOF_TMP2 # {
4150 cat $LSOF_TMP2 >> $LSOF_TMP4
4151 echo "" >> $LSOF_TMP4
4153 if test -r $LSOF_TMP3 # {
4155 cat $LSOF_TMP3 >> $LSOF_TMP4
4157 echo "#endif /* !defined(NETEXPORT_H) */" >> $LSOF_TMP4
4158 rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3
4159 echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
4160 if test $? -ne 0 # {
4162 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
4165 if test -r ${LSOF_INCLUDE}/sys/lockf.h # {
4167 grep vop_advlock_args ${LSOF_INCLUDE}/sys/lockf.h > /dev/null
4168 if test $? -eq 0 # {
4170 LSOF_CFGF="$LSOF_CFGF -DHAS_ADVLOCK_ARGS"
4173 if test -r ${LSOF_INCLUDE}/sys/pipe.h # {
4175 LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_PIPEH"
4177 LSOF_CFGL="$LSOF_CFGL -lkvm"
4178 LSOF_DIALECT_DIR=n+obsd
4181 # Configure for SCO OpenServer.
4183 osr|osrgcc|sco|scogcc)
4184 if test "X$LSOF_RANLIB_SUP" = "X" # {
4188 if test "X$OSR_CFGF" != "X" # {
4191 # Adopt LSOF_CFGF from OSR_CFGF in environment.
4195 if test "X$OSR_CFGL" != "X" # {
4198 # Adopt LSOF_CFGL from OSR_CFGL in environment.
4203 # Evaluate compiler specification.
4205 if test "X$LSOF_CC" = "X" # {
4207 if test "X$LSOF_TGT" = "Xosr" -o "X$LSOF_TGT" = "Xsco" # {
4213 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
4221 # Determine version.
4223 if test "X$LSOF_VSTR" = "X" # {
4225 LSOF_VSTR="`LANG=C_C.C /bin/uname -X 2>/dev/null | grep Release | sed 's/Release = \(.*\)/\1/'`"
4227 if test "X$LSOF_VERS" = "X" # {
4230 # If the SCO OpenServer release version isn't predefined, determine it.
4232 case $LSOF_VSTR in # {
4249 LSOF_TSTLFLG="-lsocket"
4250 LSOF_VERS="`echo $LSOF_VSTR | sed 's/3\.2v//; s/\.//g'`"
4253 echo Unknown SCO OpenServer release: $LSOF_VSTR
4254 echo Assuming 3.2.0 or 3.2.1
4260 # Do SCO OpenServer specific stuff.
4262 case $LSOF_VERS in # {
4264 if test $LSOF_TMP1 -eq 1 # {
4266 LSOF_CFGF="$LSOF_CFGF -nointl"
4269 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4273 if test $LSOF_TMP1 -eq 1 # {
4277 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4281 if test $LSOF_TMP1 -eq 1 # {
4283 LSOF_CFGF="$LSOF_CFGF -nointl"
4286 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4290 if test $LSOF_TMP1 -eq 1 # {
4292 LSOF_CFGF="$LSOF_CFGF -nointl"
4295 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4298 if test $LSOF_TMP1 -eq 1 # {
4300 LSOF_CFGF="$LSOF_CFGF -nointl"
4303 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4306 if test $LSOF_TMP1 -eq 1 # {
4308 LSOF_CFGF="$LSOF_CFGF -nointl"
4311 LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4314 if test $LSOF_TMP1 -eq 1 # {
4316 LSOF_CFGF="$LSOF_CFGF -belf"
4317 LSOF_DEBUG="-O3 -Kspace"
4319 LSOF_CFGL="$LSOF_CFGL -lsocket"
4322 echo "Unsupported SCO OpenServer release: $LSOF_VERS"
4327 LSOF_CFGF="$LSOF_CFGF -DOSRV=$LSOF_VERS"
4328 if test "X$OSR_STATLSTAT" = "X" # {
4330 echo "Testing libc.a for statlstat"
4331 /bin/nm /lib/libc.a | grep statlstat > /dev/null 2>&1
4332 if test $? -eq 0 # {
4334 LSOF_CFGF="$LSOF_CFGF -DHAS_STATLSTAT"
4337 if test "X$OSR_STATLSTAT" = "XY" -o "X$OSR_STATLSTAT" = "Xy" # {
4339 LSOF_CFGF="$LSOF_CFGF -DHAS_STATLSTAT"
4342 if test -r ${LSOF_INCLUDE}/sys/fs/nfs/rnode.h # {
4344 LSOF_CFGF="$LSOF_CFGF -DHAS_NFS"
4346 if test ! -r ${LSOF_INCLUDE}/netdb.h # {
4348 LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/osr/include"
4350 LSOF_DIALECT_DIR=osr
4353 # Configure for Sun Solaris, SunPro C and gcc.
4356 if test "X$LSOF_RANLIB_SUP" = "X" # {
4360 if test "X$LSOF_CC" = "X" # {
4362 if test "X$LSOF_TGT" = "Xsolariscc" # {
4364 if test "X$SOLARIS_CCDIR" = "X" # {
4366 SOLARIS_CCDIR="/opt/SUNWspro/bin"
4368 if test -x ${SOLARIS_CCDIR}/cc # {
4370 LSOF_CC=${SOLARIS_CCDIR}/cc
4372 if test -x /opt/SunStudioExpress/bin/cc # {
4374 LSOF_CC=/opt/SunStudioExpress/bin/cc
4376 echo "WARNING: no cc in ${SOLARIS_CCDIR}; using cc without path."
4380 LSOF_CCV=`$LSOF_CC -V 2>&1 | sed -n 's/^cc: \(.*\)/\1/p'`
4383 LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
4387 if test "X$LSOF_VSTR" = "X" # {
4389 LSOF_VSTR=`uname -r`
4391 if test "X$LSOF_VERS" = "X" # {
4394 # If the Solaris version isn't predefined, determine it.
4396 case $LSOF_VSTR in # {
4413 LSOF_TSTLFLG="-lsocket -lnsl"
4418 LSOF_TSTLFLG="-lsocket -lnsl"
4423 LSOF_TSTLFLG="-lsocket -lnsl"
4428 LSOF_TSTLFLG="-lsocket -lnsl"
4433 LSOF_TSTLFLG="-lsocket -lnsl"
4438 LSOF_TSTLFLG="-lsocket -lnsl"
4442 echo Unknown Solaris version: $LSOF_VSTR
4448 # Clear LSOF_UNSUP message for selected Solaris versions.
4450 case $LSOF_VERS in # {
4451 90000|100000|110000)
4456 # Do Solaris version-specific stuff.
4458 case $LSOF_VERS in # {
4461 # Solaris patch 101318-32 creates a longer kernel tcp_s structure,
4462 # and 101318-45 changes the way the vnode's v_filocks member is
4463 # handled. The following code creates a symbol definition for
4464 # patch 101318 whose value is the patch level. No symbol is defined
4465 # if the patch level is not greater than zero.
4467 if test "X$SOLARIS_23P101318" = "X" # {
4469 LSOF_PL=`grep -h SUNW_PATCHID=101318 /var/sadm/pkg/SUNWcar*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4470 if test "X$LSOF_PL" = "X" # {
4475 LSOF_PL=$SOLARIS_23P101318
4477 if test $LSOF_PL -gt 0 # {
4479 LSOF_CFGF="$LSOF_CFGF -DP101318=$LSOF_PL"
4483 if test "X$SOLARIS_24P101945" = "X" # {
4485 LSOF_PL=`grep -h SUNW_PATCHID=101945 /var/sadm/pkg/SUNWcar*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4486 if test "X$LSOF_PL" = "X" # {
4491 LSOF_PL=$SOLARIS_24P101945
4493 if test $LSOF_PL -ge 32 # {
4495 if test "X$SOLARIS_24P102303" = "X" # {
4497 LSOF_PL=`grep -h SUNW_PATCHID=102303 /var/sadm/pkg/SUNWhea*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4498 if test "X$LSOF_PL" = "X" # {
4503 LSOF_PL=$SOLARIS_24P102303
4505 if test $LSOF_PL -ge 2 # {
4507 echo "WARNING: your Solaris 2.4 system appears to have patches 101945-32 and 102303-2"
4508 echo " installed. This probably means the NUM_*_VECTORS definitions in"
4509 echo " <sys/auxv.h> don't match the ones used to build your kernel. Consult"
4510 echo " the Sun Problems section of the 00FAQ file of the lsof distribution"
4511 echo " for more information on how to work around the problem."
4517 20600|70000|80000|90000|100000|110000)
4518 if test "X$SOLARIS_26PR_GWINDOWS" = "X" # {
4520 rm -f ${LSOF_TMPC}.*
4521 echo "#define _KMEMUSER" > ${LSOF_TMPC}.c
4522 echo "#include <sys/proc/prdata.h>" >> ${LSOF_TMPC}.c
4523 echo "main(){" >> ${LSOF_TMPC}.c
4524 echo "enum prnodetype p=PR_GWINDOWS;}" >> ${LSOF_TMPC}.c
4525 echo "Testing prdata.h for PR_GWINDOWS, using $LSOF_CC"
4526 echo $LSOF_CC | grep gcc > /dev/null
4527 if test $? -eq 0 # {
4529 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
4531 $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
4533 if test $? -eq 0 # {
4535 LSOF_CFGF="$LSOF_CFGF -DHASPR_GWINDOWS"
4538 if test "X$SOLARIS_26PR_GWINDOWS" = "XY" -o "X$SOLARIS_26PR_GWINDOWS" = "Xy" # {
4540 LSOF_CFGF="$LSOF_CFGF -DHASPR_GWINDOWS"
4543 if test "X$SOLARIS_26PR_LDT" = "X" # {
4545 rm -f ${LSOF_TMPC}.*
4546 echo "#define _KMEMUSER" > ${LSOF_TMPC}.c
4547 echo "#include <sys/proc/prdata.h>" >> ${LSOF_TMPC}.c
4548 echo "main(){" >> ${LSOF_TMPC}.c
4549 echo "enum prnodetype p=PR_LDT;}" >> ${LSOF_TMPC}.c
4550 echo "Testing prdata.h for PR_LDT, using $LSOF_CC"
4551 echo $LSOF_CC | grep gcc > /dev/null
4552 if test $? -eq 0 # {
4554 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
4556 $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
4558 if test $? -eq 0 # {
4560 LSOF_CFGF="$LSOF_CFGF -DHASPR_LDT"
4562 rm -f ${LSOF_TMPC}.*
4564 if test "X$SOLARIS_26PR_LDT" = "XY" -o "X$SOLARIS_26PR_LDT" = "Xy" # {
4566 LSOF_CFGF="$LSOF_CFGF -DHASPR_LDT"
4569 if test $LSOF_VERS -ge 70000 # {
4572 # Do tests for Solaris 7 and above.
4574 if test "X$SOLARIS_KERNBITS" = "X" # {
4576 SOLARIS_KERNBITS=`/bin/isainfo -kv`
4578 if test "X$SOLARIS_INSTR" = "X" # {
4580 SOLARIS_INSTR=`/bin/isainfo -k`
4582 echo $SOLARIS_KERNBITS | grep 64 > /dev/null
4583 if test $? -eq 0 # {
4585 echo $LSOF_CC | grep gcc > /dev/null
4586 if test $? -eq 0 # {
4589 # Test gcc for 64 bit support.
4591 echo "Testing $LSOF_CC for 64 bit support"
4592 rm -f ${LSOF_TMPC}.*
4593 echo "main(){}" > ${LSOF_TMPC}.c
4596 # First try gcc's -m64 option -- it's the most current possibility.
4598 $LSOF_CC ${LSOF_TMPC}.c -m64 -o ${LSOF_TMPC}.x > /dev/null 2>&1
4599 if test $? -eq 0 # {
4601 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
4602 if test $? -eq 0 # {
4607 rm -f ${LSOF_TMPC}.*
4608 if test "X$LSOF_TMP1" = "X" # {
4611 # Try using the older -mcpu=v9 option with gcc instead of -m64.
4613 echo "main(){}" > ${LSOF_TMPC}.c
4614 $LSOF_CC ${LSOF_TMPC}.c -mcpu=v9 -o ${LSOF_TMPC}.x > /dev/null 2>&1
4615 if test $? -eq 0 # {
4617 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
4618 if test $? -eq 0 # {
4620 LSOF_TMP1="-mcpu=v9"
4623 rm -f ${LSOF_TMPC}.*
4625 if test "X$LSOF_TMP1" = "X" # {
4628 echo "!!!WARNING!!!=========!!!WARNING!!!=========!!!WARNING!!!"
4630 echo "! LSOF NEEDS TO BE CONFIGURED FOR A 64 BIT KERNEL, BUT !"
4631 echo "! THIS GCC DOESN'T SUPPORT THE BUILDING OF 64 BIT !"
4632 echo "! SOLARIS EXECUTABLES. LSOF WILL BE CONFIGURED FOR A !"
4633 echo "! 32 BIT KERNEL. !"
4635 echo "!!!WARNING!!!=========!!!WARNING!!!=========!!!WARNING!!!"
4639 echo "*********************************"
4640 echo "* Configuring for 64 bit kernel *"
4641 echo "*********************************"
4643 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
4644 LSOF_CINFO="64 bit kernel"
4649 # Test Sun compiler for 64 bit support.
4651 case $SOLARIS_INSTR in # {
4664 if test "X$LSOF_TMP1" != "X" # {
4666 echo "Testing $LSOF_CC for 64 bit $LSOF_TMP2 support"
4667 rm -f ${LSOF_TMPC}.*
4668 LSOF_TMP3="-xarch=$LSOF_TMP1"
4669 echo "main(){}" > ${LSOF_TMPC}.c
4670 LSOF_TMP4=`$LSOF_CC ${LSOF_TMPC}.c $LSOF_TMP3 -o ${LSOF_TMPC}.x 2>&1`
4671 if test $? -eq 0 # {
4673 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
4674 if test $? -ne 0 # {
4678 echo "X$LSOF_TMP4" | grep "use -m64" > /dev/null 2>&1
4679 if test $? -eq 0 # {
4685 rm -f ${LSOF_TMPC}.*
4689 if test "X$LSOF_TMP3" != "X" # {
4692 echo "*********************************"
4693 echo "* Configuring for 64 bit kernel *"
4694 echo "*********************************"
4696 LSOF_CFGF="$LSOF_CFGF $LSOF_TMP3"
4697 LSOF_CINFO="64 bit kernel"
4701 echo "!!!WARNING!!!==========!!!WARNING!!!==========!!!WARNING!!!"
4703 echo "! LSOF NEEDS TO BE CONFIGURED FOR A 64 BIT KERNEL, BUT"
4704 echo "! THE VERSION OF SUN C AVAILABLE DOESN'T SUPPORT THE"
4705 echo "! \"$LSOF_TMP2\" INSTRUCTION SET."
4707 echo "! LSOF WILL BE CONFIGURED FOR A 32 BIT KERNEL."
4709 echo "!!!WARNING!!!==========!!!WARNING!!!==========!!!WARNING!!!"
4715 echo "*********************************"
4716 echo "* Configuring for 32 bit kernel *"
4717 echo "*********************************"
4719 LSOF_CINFO="32 bit kernel"
4723 # Do tests specific to Solaris 8 and above.
4725 if test $LSOF_VERS -ge 80000 # {
4727 if test -r ${LSOF_INCLUDE}/netinet/ip6.h # {
4729 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
4733 # Do tests specific to Solaris 9 and above.
4735 if test $LSOF_VERS -ge 90000 # {
4737 if test -r ${LSOF_INCLUDE}/sys/socketvar.h # {
4739 grep soua_vp ${LSOF_INCLUDE}/sys/socketvar.h > /dev/null 2>&1
4740 if test $? -eq 0 # {
4742 LSOF_CFGF="$LSOF_CFGF -DHASSOUXSOUA"
4745 if test $LSOF_VERS -lt 110000 # {
4748 # Do tests specific to Solaris 9 and 10.
4750 if test -r ${LSOF_INCLUDE}/sys/lgrp_user.h # {
4752 if test -r ${LSOF_INCLUDE}/sys/lgrp.h # {
4754 grep lgrp_root ${LSOF_INCLUDE}/sys/lgrp_user.h > /dev/null 2>&1
4755 if test $? -eq 0 # {
4757 grep lgrp_root ${LSOF_INCLUDE}/sys/lgrp.h > /dev/null 2>&1
4760 LSOF_CFGF="$LSOF_CFGF -DHAS_LGRP_ROOT_CONFLICT"
4768 # Do tests specific to Solaris 10 and above.
4770 if test $LSOF_VERS -eq 100000 # {
4772 if test -r ${LSOF_INCLUDE}/sys/socket_proto.h # {
4774 LSOF_CFGF="$LSOF_CFGF -DHAS_SOCKET_PROTO_H"
4777 if test $LSOF_VERS -ge 100000 # {
4779 if test -r ${LSOF_INCLUDE}/inet/ipclassifier.h # {
4781 LSOF_CFGF="$LSOF_CFGF -DHAS_IPCLASSIFIER_H"
4782 grep conn_ixa ${LSOF_INCLUDE}/inet/ipclassifier.h > /dev/null 2>&1
4783 if test $? -eq 0 # {
4785 LSOF_CFGF="$LSOF_CFGF -DHAS_CONN_NEW"
4788 if test -r ${LSOF_INCLUDE}/sys/cred_impl.h # {
4790 LSOF_CFGF="$LSOF_CFGF -DHAS_CRED_IMPL_H"
4792 # DEBUG -- Begin temporary hack for Solaris 10, build s10_44.
4794 grep "c2/audit.h" ${LSOF_INCLUDE}/sys/cred_impl.h > /dev/null
4795 if test $? -eq 0 # {
4797 rm -rf `pwd`/dialects/sun/solaris10
4798 mkdir `pwd`/dialects/sun/solaris10
4799 mkdir `pwd`/dialects/sun/solaris10/c2
4800 touch `pwd`/dialects/sun/solaris10/c2/audit.h
4801 LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/sun/solaris10"
4804 # DEBUG -- End temporary hack for Solaris 10, build s10_44.
4807 if test -r ${LSOF_INCLUDE}/sys/vnode.h # {
4809 grep v_path ${LSOF_INCLUDE}/sys/vnode.h > /dev/null 2>&1
4810 if test $? -eq 0 # {
4812 LSOF_CFGF="$LSOF_CFGF -DHAS_V_PATH"
4816 if test -r ${LSOF_INCLUDE}/sys/fs/pc_fs.h # {
4818 grep pc_direntpersec ${LSOF_INCLUDE}/sys/fs/pc_fs.h > /dev/null 2>&1
4819 if test $? -eq 0 # {
4821 LSOF_CFGF="$LSOF_CFGF -DHAS_PC_DIRENTPERSEC"
4825 if test -r ${LSOF_INCLUDE}/sys/zone.h # {
4827 LSOF_CFGF="$LSOF_CFGF -DHASZONES"
4830 # Check for Solaris 10 or higher CTF library and things that depend
4833 if test -r ${LSOF_INCLUDE}/libctf.h # {
4837 if test -r ${LSOF_INCLUDE}/sys/fs/zfs.h # {
4839 if test $LSOF_CTFH -eq 1 # {
4841 LSOF_CFGF="$LSOF_CFGF -DHAS_ZFS"
4844 echo "WARNING: ZFS support not enabled; libctf.h missing."
4847 if test $LSOF_VERS -ge 110000 # {
4850 # Do things specific to Solaris 11 and above.
4852 if test $LSOF_CTFH -eq 1 # {
4856 echo "WARNING: socket support not enabled; libctf.h missing."
4860 mkdir ./solaris11/sys
4861 touch ./solaris11/sys/extdirent.h
4862 echo "./solaris11/sys/extdirent.h created"
4863 LSOF_CFGF="$LSOF_CFGF -I`pwd`/solaris11"
4864 if test -r ${LSOF_INCLUDE}/sys/mutex.h # {
4867 # Check <sys/mutex.h> 'for pad_mutex_t;'.
4869 grep 'pad_mutex_t;' ${LSOF_INCLUDE}/sys/mutex.h > /dev/null 2>&1
4870 if test $? -eq 0 # {
4872 LSOF_CFGF="$LSOF_CFGF -DHAS_PAD_MUTEX"
4877 # If -lctf was added to LSOF_CFGL, define HAS_LIBCTF.
4879 if test $LSOF_CTFL -eq 1 # {
4881 LSOF_CFGF="$LSOF_CFGF -DHAS_LIBCTF"
4882 LSOF_CFGL="$LSOF_CFGL -lctf"
4886 echo "Unsupported Solaris version: $LSOF_VERS"
4891 LSOF_CFGF="$LSOF_CFGF -Dsolaris=$LSOF_VERS"
4893 # Test for <sys/fs/cachefs_fs.h>.
4895 if test -r ${LSOF_INCLUDE}/sys/fs/cachefs_fs.h # {
4897 LSOF_CFGF="$LSOF_CFGF -DHASCACHEFS"
4900 # Test for <utmpx.h>
4902 if test -r ${LSOF_INCLUDE}/utmpx.h # {
4904 LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
4909 if test "X$SOLARIS_VSOCK" = "X" # {
4911 rm -f ${LSOF_TMPC}.*
4912 echo "#include <sys/vnode.h>" > ${LSOF_TMPC}.c
4913 echo "main(){" >> ${LSOF_TMPC}.c
4914 echo "enum vtype p=VSOCK;}" >> ${LSOF_TMPC}.c
4915 echo "Testing vnode.h for VSOCK, using $LSOF_CC"
4916 echo $LSOF_CC | grep gcc > /dev/null
4917 if test $? -eq 0 # {
4919 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
4921 $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
4923 if test $? -eq 0 # {
4925 LSOF_CFGF="$LSOF_CFGF -DHAS_VSOCK"
4927 rm -f ${LSOF_TMPC}.*
4929 if test "X$SOLARIS_VSOCK" = "XY" -o "X$SOLARIS_VSOCK" = "Xy" # {
4931 LSOF_CFGF="$LSOF_CFGF -DHAS_VSOCK"
4937 if test -r ${AFS_VICE}/etc/ThisCell # {
4939 if test "X$LSOF_SCRIPT_CALL" = "Xno" # {
4941 if test -r ./AFSHeaders -a -r ./AFSVersion # {
4946 if test ! -x ./AFSConfig # {
4948 echo "Can't find or execute the AFSConfig script"
4953 if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion # {
4958 if test "X$LSOF_AFS" = "Xyes" # {
4960 if test "X$SUN_AFSAPATHDEF" = "X" # {
4962 ls /usr/vice/etc/modload/libafs > /dev/null 2>&1
4963 if test $? -ne 0 # {
4965 LSOF_TMP1=`ls /usr/vice/etc/modload/libafs* 2>/dev/null | wc -l`
4966 if test $LSOF_TMP1 -ne 0 # {
4968 SUN_AFSAPATHDEF=`ls -t /usr/vice/etc/modload/libafs* | head -1`
4972 if test "X$SUN_AFSAPATHDEF" != "X" # {
4974 LSOF_CFGF="$LSOF_CFGF -DAFSAPATHDEF=\\\"$SUN_AFSAPATHDEF\\\""
4976 LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
4977 LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
4978 LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
4984 # If the location of the VxFS header files hasn't been defined in the
4985 # environment, establish their likely locations.
4987 LSOF_TMP2=$SOLARIS_VXFSINCL
4988 if test -d /opt/VRTS/include # {
4990 LSOF_TMP2="$LSOF_TMP2 /opt/VRTS/include"
4992 if test -d /opt/VRTSvxfs/include # {
4994 LSOF_TMP2="$LSOF_TMP2 /opt/VRTSvxfs/include"
4997 for i in $LSOF_TMP2 # {
4999 if test -r ${i}/vxfsutil.h # {
5006 if test $LSOF_TMP1 -eq 1 # {
5009 # Warn that VxFS is unsupported.
5011 LSOF_UNSUP2="WARNING: VxFS is no longer supported by Solaris lsof."
5013 # The VxFS header files are for VxFS version 3.4 or above. Enable VxFS
5014 # for those versions.
5016 LSOF_CFGF="$LSOF_CFGF -DHASVXFS -DHASVXFSUTIL -I$SOLARIS_VXFSINCL"
5018 # Determine which libvxfsutil.a is required -- 32 or 64 bit.
5020 LSOF_TMP2="" # assume 32 bit
5021 echo "X$LSOF_CINFO" | grep "^X64" > /dev/null 2>&1
5022 if test $? -eq 0-a "X$SOLARIS_INSTR" != "X" # {
5024 case $SOLARIS_INSTR in # {
5029 LSOF_TMP2="/sparcv9"
5034 # See if the correct library has been specified and exists.
5036 if test "X$SOLARIS_VXFSLIB" = "X" # {
5038 SOLARIS_VXFSLIB=`dirname $SOLARIS_VXFSINCL`/lib
5040 LSOF_TMP3="${SOLARIS_VXFSLIB}${LSOF_TMP2}/libvxfsutil.a"
5041 if test ! -r $LSOF_TMP3 # {
5043 echo "!!!FATAL: no VxFS $LSOF_TMP3"
5046 LSOF_CFGL="$LSOF_CFGL -L$SOLARIS_VXFSLIB${LSOF_TMP2} -lvxfsutil -ldl"
5048 # See if the library has the Reverse Name Lookup (RNL) function.
5050 nm $LSOF_TMP3 | grep vxfs_inotopath > /dev/null 2>&1
5051 if test $? -eq 0 # {
5053 LSOF_CFGF="$LSOF_CFGF -DHASVXFSRNL -DHASVXFSDNLC"
5057 # See if there are VxFS header files for VxFS versions below 3.4.
5059 if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h # {
5062 # Define VxFS for VxFS versions below 3.4. Make additional header
5065 LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5066 if test -r ${LSOF_INCLUDE}/sys/fs/vx_fs.h # {
5068 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_FS_H"
5070 if test -r ${LSOF_INCLUDE}/sys/fs/vx_sol.h # {
5072 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_SOL_H"
5074 if test -r ${LSOF_INCLUDE}/sys/fs/vx_machdep.h # {
5076 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_MACHDEP_H"
5078 if test -r ${LSOF_INCLUDE}/sys/fs/vx_solaris.h # {
5080 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_SOLARIS_H"
5081 grep "off32_t;" ${LSOF_INCLUDE}/sys/fs/vx_machdep.h > /dev/null
5082 if test $? -eq 0 # {
5084 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_OFF32_T"
5086 grep "off64_t;" ${LSOF_INCLUDE}/sys/fs/vx_solaris.h > /dev/null
5087 if test $? -eq 0 # {
5089 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_OFF64_T"
5091 grep "vx_u64_t;" ${LSOF_INCLUDE}/sys/fs/vx_solaris.h > /dev/null
5092 if test $? -eq 0 # {
5094 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_U64_T"
5097 egrep "struct[ ]vx_inode[ ]\{" ${LSOF_INCLUDE}/sys/fs/vx_inode.h > /dev/null
5098 # } (dummy '}' to match '{' in above egrep)
5099 if test $? -eq 0 # {
5101 LSOF_CFGF="$LSOF_CFGF -DHASVXFS_VX_INODE"
5106 # Set libraries and dialect subdirectory.
5108 LSOF_CFGL="$LSOF_CFGL -lkvm -lelf -lsocket -lnsl"
5109 LSOF_DIALECT_DIR=sun
5111 # Set local-specific stuff.
5113 if test "X$LSOF_LOCALSUFFIX" = "XLOCAL" # {
5115 LSOF_DOC="\${DESTDIR}/usr/local/man"
5119 # Configure for SCO|Caldera OpenServer Release 6.0.0 and UnixWare.
5124 if test "X$LSOF_RANLIB_SUP" = "X" # {
5128 if test "X$LSOF_VSTR" = "X" # {
5130 LSOF_VSTR=`uname -v`
5132 if test "X$LSOF_VERS" = "X" # {
5135 # If the Openserver Release 6.0.0 or UnixWare version isn't pre-defined,
5138 LSOF_VERS=`echo $LSOF_VSTR | sed 's/\([0-9\.]*\).*/\1/; s/\./ /g' | awk '{printf "%d%02d%02d\n", $1, $2, $3;}'`
5140 if test $LSOF_TMP1 = "osr6" # {
5142 LSOF_CINFO="OSR6 support via UnixWare sources"
5144 # Convert the OpenServer Release 6.0.0 version number to a UnixWare one.
5146 case $LSOF_VERS in # {
5151 echo "Unknown OpenServer Release version: $LSOF_VERS"
5156 LSOF_CFGF="$LSOF_CFGF -DUNIXWAREV=$LSOF_VERS"
5158 # Do OpenServer Release 6.0.0 and UnixWare version-specific stuff.
5160 case $LSOF_VERS in # {
5161 20100|20101|20102|20103)
5162 if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h # {
5164 LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5166 LSOF_CFGL="$LSOF_CFGL -lsocket -lnsl -lelf -lgen"
5168 70000|70001|70100|70101|70103|70104)
5170 LSOF_TSTLFLG="-lsocket -lnsl"
5171 if test $LSOF_VERS -lt 70103 # {
5173 LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/uw/uw7"
5174 else # $LSOF_VERS -ge 70103
5176 # Process 7.1.3 and above.
5178 if test -r ${LSOF_INCLUDE}/netinet/in6.h # {
5180 LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
5182 if test $LSOF_VERS -ge 70104 # {
5185 # Process 7.1.4 and above.
5188 if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
5190 grep INKERNEL ${LSOF_INCLUDE}/netinet/in_pcb.h > /dev/null 2>&1
5191 if test $? -eq 0 # {
5196 if test $LSOF_TMP1 -eq 0 -a -r ${LSOF_INCLUDE}/netinet/tcp_var.h # {
5198 grep INKERNEL ${LSOF_INCLUDE}/netinet/tcp_var.h > /dev/null 2>&1
5199 if test $? -eq 0 # {
5204 if test $LSOF_TMP1 -eq 1 # {
5206 LSOF_CFGF="$LSOF_CFGF -DHAS_INKERNEL"
5210 if test ! -r ${LSOF_INCLUDE}/vm/swap.h -a -r ${LSOF_INCLUDE}/sys/swap.h # {
5212 (cd ./dialects/uw/uw7/vm; rm -f swap.h; ln -s ${LSOF_INCLUDE}/sys/swap.h swap.h)
5214 if test -r ${LSOF_INCLUDE}/sys/fs/vx_gemini.h # {
5216 LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5218 LSOF_CFGL="$LSOF_CFGL -lsocket -lnsl -lelf -lgen"
5219 /bin/pkginfo 2> /dev/null | grep -i patch | grep -i ptf7038 > /dev/null
5220 if test -r ${LSOF_INCLUDE}/sys/file.h # {
5222 grep f_open ${LSOF_INCLUDE}/sys/file.h > /dev/null
5223 if test $? -eq 0 # {
5225 LSOF_CFGF="$LSOF_CFGF -DHAS_F_OPEN"
5228 if test -r ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h # {
5230 grep "cdfs_LogSecShift;" ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h > /dev/null 2>&1
5231 if test $? -eq 0 # {
5233 LSOF_TMP=`grep "cdfs_LogSecShift;" ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h | sed 's/^[ ]*\([^ ]*\).*/\1/'`
5234 if test "X$LSOF_TMP" != "X" # {
5236 LSOF_CFGF="$LSOF_CFGF -DTYPELOGSECSHIFT=$LSOF_TMP"
5240 if test -r ${LSOF_INCLUDE}/sys/proc.h # {
5242 grep p_pgid ${LSOF_INCLUDE}/sys/proc.h > /dev/null
5243 if test $? -eq 0 # {
5245 LSOF_CFGF="$LSOF_CFGF -DHAS_P_PGID"
5248 if test $LSOF_VERS -ge 70101 # {
5251 # Do OpenServer Release 6.0.0 and UnixWare 7.1.1 and above tests, as
5254 if test "X$UW_HAS_NSC" = "X" # {
5257 if test -x /bin/node_self # {
5259 /bin/node_self > /dev/null 2>&1
5260 if test $? -eq 0 # {
5266 if test "X$UW_HAS_NSC" = "XY" -o "X$UW_HAS_NSC" = "Xy" # {
5268 LSOF_CFGF="$LSOF_CFGF -DHAS_UW_NSC"
5269 LSOF_CFGL="$LSOF_CFGL -lcluster"
5271 if test -r ${LSOF_INCLUDE}/sys/nsc_synch.h # {
5273 LSOF_CFGF="$LSOF_CFGF -DHAS_UW_CFS"
5278 echo Unsupported UnixWare version: `uname -v`
5283 if test -r ${LSOF_INCLUDE}/sys/fs/xnamnode.h # {
5285 LSOF_CFGF="$LSOF_CFGF -DHASXNAMNODE"
5290 # Handle unknown abbreviation.
5293 echo "Can't configure for $LSOF_TGT."
5299 # End of LSOF_TGT cases
5303 # Do an inventory of the distribution, as required.
5305 if test "X$LSOF_SCRIPT_CALL" = "Xyes" -a ! -r ./.neverInv # {
5307 if test ! -f ./Inventory # Want -x, but Ultrix doesn't grok it. # {
5309 echo "Can't find Inventory script."
5316 # Make sure target directory exists.
5318 if test ! -d ./dialects/$LSOF_DIALECT_DIR # {
5320 echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR doesn't exist."
5325 # Make sure $LSOF_MK exists in the target directory.
5327 if test ! -r ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK # {
5329 echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK doesn't exist."
5334 # Make sure $LSOF_MKF, $LSOF_SPMKF, or $LSOF_MKF.$LSOF_LOCALSUFFIX) exists
5335 # in the target directory.
5337 if test "X$LSOF_SPMKF" != "X" # {
5339 LSOF_TMP1=$LSOF_SPMKF
5343 if test "X$LSOF_LOCALSUFFIX" != "X" # {
5345 LSOF_REST=$LSOF_TMP1.$LSOF_LOCALSUFFIX
5347 LSOF_REST=$LSOF_TMP1
5349 if test ! -r ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST # {
5351 echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST doesn't exist."
5356 # If this is FreeBSD, make sure $LSOF_FBSD_ZFS_MKF exists.
5358 if test $LSOF_FBSD_ZFS -eq 1 # {
5360 if test ! ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF # {
5362 echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF doesn't exist."
5368 # Make sure $LSOF_VF exists. Extract the version number from it.
5370 if test ! -r $LSOF_VF # {
5372 echo "Version number file, ./$LSOF_VF, doesn't exist."
5376 LSOF_VN=`sed "s/.ds VN \(.*\)/\1/" < $LSOF_VF`
5379 # Clean up in advance.
5381 rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF $LSOF_TSTCFLG $LSOF_TSTCC
5382 rm -f $LSOF_TSTXOC $LSOF_TSTLFF
5383 echo "rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF $LSOF_TSTCFLG"
5384 echo "rm -f $LSOF_TSTCC $LSOF_TSTXOC $LSOF_TSTLFF"
5386 # Make sure there's a C compiler name.
5388 if test "X$LSOF_CC" = "X" # {
5393 # Do common feature analyses.
5395 # Check for localtime(3) and strftime(3).
5397 rm -f ${LSOF_TMPC}.*
5398 cat > $LSOF_TMPC.c << .LSOF_END_HERE_DOC2
5404 if ((cl = time(NULL)) == (time_t)-1)
5406 ts = localtime(&cl);
5407 if (strftime(bf, sizeof(bf), "%D", ts) != 8)
5409 if ((bf[2] != '/') || (bf[5] != '/'))
5414 echo $EO "Testing C library for localtime() and strftime(), using $LSOF_CC ... $EC"
5415 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
5416 if test -x ${LSOF_TMPC}.x # {
5419 if test $? -eq 0 # }
5421 LSOF_CFGF="$LSOF_CFGF -DHAS_STRFTIME"
5429 rm -f ${LSOF_TMPC}.[cox]
5431 # Make the dialect sources.
5433 if test "X$LSOF_MKC" = "X" # {
5437 LSOF_MKC=$LSOF_MKC ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK $LSOF_TGT $LSOF_VERS
5439 # Make $LSOF_MKFC and ${LSOF_LIB}/$LSOF_LIBMKF.
5441 echo "# $LSOF_TGT Makefile for lsof revision $LSOF_VN" > $LSOF_MKFC
5442 echo "" >> $LSOF_MKFC
5443 echo "CC= $LSOF_CC" >> $LSOF_MKFC
5444 if test "X$LSOF_CCV" != "X" # {
5446 echo "" >> $LSOF_MKFC
5447 echo "CCV= $LSOF_CCV" >> $LSOF_MKFC
5449 if test "X$LSOF_LIB_NO" = "X" # {
5451 echo "" >> $LSOF_MKFC
5452 echo "LIB= ${LSOF_LIB}/liblsof.a" >> $LSOF_MKFC
5454 if test "X$LSOF_LD" != "X" # {
5456 echo "" >> $LSOF_MKFC
5457 echo "LD= $LSOF_LD" >> $LSOF_MKFC
5459 if test "X$LSOF_CINFO" != "X" # {
5461 echo "" >> $LSOF_MKFC
5462 echo "CINFO= $LSOF_CINFO" >> $LSOF_MKFC
5464 if test "X$LSOF_CFGD" != "X" # {
5466 echo "CFGD= $LSOF_CFGD" >> $LSOF_MKFC
5468 if test "X$LSOF_CFGDN" != "X" # {
5470 echo "CFGDN= $LSOF_CFGDN" >> $LSOF_MKFC
5472 if test "X$LSOF_ARCH" != "X" # {
5474 LSOF_CFGF="$LSOF_CFGF -DLSOF_ARCH=\\\"$LSOF_ARCH\\\""
5476 if test "X$LSOF_VSTR" != "X" # {
5478 LSOF_TMP=`echo $LSOF_VSTR | sed 's/(/\\\\(/g' | sed 's/)/\\\\)/g'`
5479 LSOF_CFGF="$LSOF_CFGF -DLSOF_VSTR=\\\"$LSOF_TMP\\\""
5481 echo "" >> $LSOF_MKFC
5482 echo "CFGF= $LSOF_CFGF" >> $LSOF_MKFC
5483 if test "X$LSOF_LIB_NO" = "X" # {
5485 echo "" >> $LSOF_MKFC
5486 echo "CFGL= $LSOF_FCFGL -L./$LSOF_LIB -llsof $LSOF_CFGL" >> $LSOF_MKFC
5488 echo "" >> $LSOF_MKFC
5489 if test "X$LSOF_DEBUG" = "X" # {
5493 if test "X$LSOF_DEBUG" = "XNo-O" # {
5498 echo "DEBUG= $LSOF_DEBUG" >> $LSOF_MKFC
5499 if test "X$LSOF_OPINC" != "X" # {
5501 LSOF_DINC="$LSOF_DINC $LSOF_OPINC"
5503 if test "X$LSOF_DINC" != "X" # {
5505 echo "" >> $LSOF_MKFC
5506 echo "DINC= $LSOF_DINC" >> $LSOF_MKFC
5508 if test "X$LSOF_DOC" != "X" # {
5510 echo "" >> $LSOF_MKFC
5511 echo "DOC=$LSOF_DOC" >> $LSOF_MKFC
5513 if test "X$LSOF_DISTRIBKVM" != "X" -a "X$LSOF_DISTRIBKVM" != "XKVM" # {
5515 echo "" >> $LSOF_MKFC
5516 echo "KVM= $LSOF_DISTRIBKVM" >> $LSOF_MKFC
5518 rm -f ${LSOF_LIB}/$LSOF_LIBMKF
5519 if test "X$LSOF_LIB_NO" = "X" # {
5521 cp $LSOF_MKFC ${LSOF_LIB}/$LSOF_LIBMKF
5523 cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST >> $LSOF_MKFC
5524 if test "X$LSOF_LIB_NO" = "X" # {
5527 # Put archiving and optional randomizing strings in ${LSOF_LIB}/$LSOF_LIBMKF.
5529 # Process optional CFLAGS override.
5531 # Add the library Makefile skeleton section.
5533 echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5534 if test "X$LSOF_AR" = "X" # {
5536 echo "AR= ar cr \${LIB} \${OBJ}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5538 echo "AR= $LSOF_AR \${LIB} \${OBJ}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5540 if test "X$LSOF_RANLIB" != "X" # {
5542 echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5543 echo "RANLIB= $LSOF_RANLIB \${LIB}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5545 echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5546 if test "X$LSOF_CFLAGS_OVERRIDE" = "X" # {
5548 echo "CFLAGS= \${CDEFS} \${INCL} \${DEBUG}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5550 echo "override CFLAGS=\${CDEFS} \${INCL} \${DEBUG}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5552 echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5553 cat ${LSOF_LIB}/$LSOF_LIBMKFSKEL >> ${LSOF_LIB}/$LSOF_LIBMKF
5554 echo $LSOF_MKFC and ${LSOF_LIB}/$LSOF_LIBMKF created.
5556 echo $LSOF_MKFC created.
5559 # If this is FreeBSD, create $LSOF_FBSD_ZFS_MKF.
5561 if test $LSOF_FBSD_ZFS -eq 1 # {
5563 rm -f $LSOF_FBSD_ZFS_MKF
5564 echo "# $LSOF_TGT ZFS Makefile for lsof revision $LSOF_VN" > $LSOF_FBSD_ZFS_MKF
5565 echo "" >> $LSOF_FBSD_ZFS_MKF
5566 echo "CC= $LSOF_CC" >> $LSOF_FBSD_ZFS_MKF
5567 echo "" >> $LSOF_FBSD_ZFS_MKF
5568 echo "CFLAGS= $LSOF_FBSD_ZFS_CFGF" >> $LSOF_FBSD_ZFS_MKF
5569 echo "" >> $LSOF_FBSD_ZFS_MKF
5570 if test "X$LSOF_DEBUG" = "X" # {
5574 if test "X$LSOF_DEBUG" = "XNo-O" # {
5579 echo "DEBUG= $LSOF_DEBUG" >> $LSOF_FBSD_ZFS_MKF
5580 echo "" >> $LSOF_FBSD_ZFS_MKF
5581 echo "OPENSOLARIS= $LSOF_FBSD_ZFS_SYS" >> $LSOF_FBSD_ZFS_MKF
5582 echo "" >> $LSOF_FBSD_ZFS_MKF
5583 cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF >> $LSOF_FBSD_ZFS_MKF
5584 echo $LSOF_FBSD_ZFS_MKF created.
5587 # Create test cc file.
5589 echo "$LSOF_CC" > $LSOF_TSTCC
5590 echo "$LSOF_TSTCC created"
5592 # Create test cflags file.
5594 echo "-DLT_DIAL_$LSOF_TGT" > $LSOF_TSTCFLG
5595 if test "X$LSOF_TSTBIGF" != "X" # {
5597 echo "-DLT_BIGF" >> $LSOF_TSTCFLG
5598 if test "X$LSOF_TSTBIGF" != "X " # {
5600 for i in $LSOF_TSTBIGF # {
5602 echo "$i" >> $LSOF_TSTCFLG
5606 if test "X$LSOF_TSTDFLG" != "X" # {
5608 for i in $LSOF_TSTDFLG # {
5610 echo "$i" >> $LSOF_TSTCFLG
5613 echo $LSOF_CC | grep gcc > /dev/null 2>&1
5614 if test $? -eq 0 # {
5616 echo "-DLT_GCC" >> $LSOF_TSTCFLG
5618 echo "-DLT_CC" >> $LSOF_TSTCFLG
5620 if test $LSOF_TSTKMEM -eq 1 # {
5622 echo "-DLT_KMEM" >> $LSOF_TSTCFLG
5624 if test $LSOF_TSTK64 -eq 1 # {
5626 echo "-DLT_K64" >> $LSOF_TSTCFLG
5628 echo "-DLT_VERS=$LSOF_VERS" >> $LSOF_TSTCFLG
5629 if test $LSOF_TSTVPATH -eq 1 # {
5631 echo "-DLT_VPATH" >> $LSOF_TSTCFLG
5633 echo "$LSOF_TSTCFLG created"
5635 # Create tests loader flags file.
5637 echo $LSOF_TSTLFLG > $LSOF_TSTLFF
5638 echo "$LSOF_TSTLFF created"
5640 # Create test extra objects file.
5642 echo "$LSOF_TSTXO" > $LSOF_TSTXOC
5643 echo "$LSOF_TSTXOC created"
5647 # Call Customize, as required.
5649 if test "X$LSOF_SCRIPT_CALL" = "Xyes" -a ! -r ./.neverCust # {
5651 if test ! -f ./Customize # { Want -x, but Ultrix doesn't grok it.
5653 echo "Can't find Customize script."
5656 ./Customize $LSOF_DIALECT_DIR
5659 # Issue unsupported warnings, as appropriate.
5661 if test "X$LSOF_UNSUP" != "X" # {
5665 if test "X$LSOF_UNSUP2" != "X" # {