Imported Upstream version 4.87
[platform/upstream/lsof.git] / Configure
1 #!/bin/sh 
2 #
3 # Configure -- configure lsof
4 #
5 # See the LSOF_HLP here document for usage.
6 #
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.
11 #
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
15 # directory.
16 #
17 # $Id: Configure,v 1.162 2013/01/02 17:13:48 abe Exp $
18
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
21 #       environment.
22
23 # LSOF_DISTRIBKVM may be introduced through the environment to specify the
24 #       Sun4 kernel virtual memory type of distrib.cf
25
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}$$
29
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.
32
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".
36
37 if test "X$LSOF_MAKE" = "X"     # {
38 then
39   LSOF_MAKE=`which make`
40   if test "X$LSOF_MAKE" = "X"   # {
41   then
42     LSOF_MAKE=make
43   fi    # }
44 fi      # }
45
46 LSOF_MK=Mksrc
47
48 # LSOF_MKC is the dialect's Mksrc create command -- default "ln -s".
49
50 # LSOF_MKFC may be introduced though the environment to change the name
51 # used for the created make file.
52
53 if test "X$LSOF_MKFC" = "X"     # {
54 then
55   LSOF_MKFC=Makefile
56 fi      # }
57
58 LSOF_LIB=lib
59 LSOF_MKF=Makefile
60 LSOF_LIBMKF=Makefile
61 LSOF_LIBMKFSKEL=Makefile.skel
62
63 LSOF_VF=version
64
65 # Make sure no other variable important to Makefile construction is
66 # already set in the environment.
67 #
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
74 #                           lsof library
75 #       $LSOF_ARCH          Unix dialect architecture as a string (may be
76 #                           supplied externally)
77 #       $LSOF_CC            C compiler name (may be supplied externally)
78 #       $LSOF_CCV           C compiler version (may be supplied externally)
79 #       $LSOF_CDIR          configuration directory
80 #       $LSOF_CFGD          depend options
81 #       $LSOF_CFGDN         depend file name
82 #       $LSOF_CFGF          C flags -- e.g., -D's
83 #       $LSOF_CFGL          last lsof library loader flags -- e.g., -l's
84 #       $LSOF_CINFO         Configure information for LSOF_CINFO in version.h
85 #       $LSOF_CTFH          Solaris 10 and above libctf.h status
86 #       $LSOF_CTFL          Solaris 10 and above -lctf status
87 #       $LSOF_DEBUG         Makefile's DEBUG string
88 #       $LSOF_DINC          include flags -- -I's
89 #       $LSOF_DINC_ADD      include flags status
90 #       $LSOF_DOC           special document (man page) directory path
91 #       $LSOF_ERR           internal error flag
92 #       $LSOF_FCFGL         first lsof library loader flags -- e.g., -l's
93 #                           that must precede $LSOF_LIB
94 #       $LSOF_FBSD_ZFS      FreeBSD $LSOF_FBSD_ZFS_MKF status
95 #       $LSOF_FBSD_ZFS_CFGF FreeBSD ZFS configure flags
96 #       $LSOF_FBSD_ZFS_MKF  FreeBSD ZFS Makefile name
97 #       $LSOF_FBSD_ZFS_SYS  FreeBSD ZFS system sources location
98 #       $LSOF_HOST          host name (e.g., from uname -n)
99 #       $LSOF_INCLUDE       directory where header files are found
100 #                           (default = /usr/include)
101 #       $LSOF_LD            loader name if not $LSOF_CC
102 #       $LSOF_LIB_NO        if "N" don't configure the lsof library
103 #       $LSOF_LOCALSUFFIX   local suffix for Makefile
104 #       $LSOF_NBSD_BUFQH    NetBSD <sys/bufq.h> copy status
105 #       $LSOF_NBSD_PTYFS    NetBSD ${NETBSD_SYS}/sys/fs/ptyfs/ copy status
106 #       $LSOF_N_UNIXV       *BSD system's kernel file
107 #       $LSOF_PL            patch level
108 #       $LSOF_RANLIB        randomizing command for the lsof library
109 #       $LSOF_RANLIB_SUP    if non-NULL $LSOF_RANLIB was supplied
110 #       $LSOF_SCRIPT_CALL   Customize and Inventory scripts call status
111 #       $LSOF_SPMKF         Special Makefile name
112 #       $LSOF_TGT           canonical target abbreviation (shortest)
113 #       $LSOF_TMP           internal temporary
114 #       $LSOF_TMP1          internal temporary
115 #       $LSOF_TMP2          internal temporary
116 #       $LSOF_TMP3          internal temporary
117 #       $LSOF_TMP4          internal temporary
118 #       $LSOF_TMP5          internal temporary
119 #       $LSOF_TMP6          internal temporary
120 #       $LSOF_TMPC_BASE     base name for $LSOF_TMPC
121 #       $LSOF_TMPC          temporary C source file base name
122 #       $LSOF_TSTBIGF       big file capability (for $LSOF_TSTCFLG)
123 #       $LSOF_TSTCC         tests CC file
124 #       $LSOF_TSTCFLG       tests CFLAGS file
125 #       $LSOF_TSTDFLG       dialect-specific values for $LSOF_TSTCFLG
126 #       $LSOF_TSTK64        status of 64 bit kernel (for $LSOF_TSTCFLG)
127 #       $LSOF_TSTKMEM       /dev/kmem usage status (for $LSOF_TSTCFLG)
128 #       $LSOF_TSTLFF        tests LDFLAGS file
129 #       $LSOF_TSTLFLG       tests LDFLAGS values
130 #       $LSOF_TSTSUBD       test subdirectory
131 #       $LSOF_TSTVPATH      test v_path state (for $LSOF_TSTCFLG)
132 #       $LSOF_TSTXO         test extra objects (for $LSOF_TSTXOC)
133 #       $LSOF_TSTXOC        test extra objects file
134 #       $LSOF_UNSUP         Lsof is unsupported on this dialect
135 #       $LSOF_VERS          Unix dialect version as a decimal number (may
136 #                           be supplied externally)
137 #       $LSOF_VSTR          Unix dialect version as a string -- may be supplied
138 #                           externally
139
140 if test "X$AFS_VICE" = "X"      # {
141 then
142   AFS_VICE="/usr/vice"
143 fi      # }
144 LSOF_AFS=""
145 LSOF_AFS_NQ=""
146 LSOF_AFSV=""
147 if test "X$LSOF_ARCH" = "X"     # {
148 then
149   LSOF_ARCH=""
150 fi      # }
151 LSOF_CDIR=""
152 LSOF_CFGD=""
153 LSOF_CFGDN=""
154 LSOF_CINFO=""
155 LSOF_CTFH=0
156 LSOF_CTFL=0
157 LSOF_DEBUG=""
158 LSOF_DOC=""
159 LSOF_ERR=""
160 LSOF_FCFGL=""
161 LSOF_FBSD_ZFS=0
162 LSOF_FBSD_ZFS_CFGF=""
163 LSOF_FBSD_ZFS_MKF="Makefile.zfs"
164 LSOF_FBSD_ZFS_SYS=""
165 LSOF_HOST=""
166 if test "X$LSOF_INCLUDE" = "X"  # {
167 then
168   LSOF_DINC=""
169   LSOF_INCLUDE="/usr/include"
170 else
171   LSOF_DINC="-I$LSOF_INCLUDE"
172 fi      # }
173 LSOF_LD=""
174 LSOF_LIB_NO=""
175 LSOF_PL=""
176 if test "X$LSOF_RANLIB" = "X"   # {
177 then
178   LSOF_RANLIB="ranlib"
179   LSOF_RANLIB_SUP=""
180 else
181   LSOF_RANLIB_SUP="Y"
182 fi      # }
183 LSOF_SCRIPT_CALL="yes"
184 LSOF_SPMKF=""
185 LSOF_TMP1=""
186 LSOF_TMP2=""
187 LSOF_TMPC_BASE=./lsof_Configure_tmp_
188 LSOF_TMPC=${LSOF_TMPC_BASE}$$
189 LSOF_TSTBIGF=""
190 LSOF_TSTSUBD="./tests"
191 LSOF_TSTCC="${LSOF_TSTSUBD}/config.cc"
192 LSOF_TSTCFLG="${LSOF_TSTSUBD}/config.cflags"
193 LSOF_TSTDFLG=""
194 LSOF_TSTK64=0
195 LSOF_TSTKMEM=1
196 LSOF_TSTLFF="${LSOF_TSTSUBD}/config.ldflags"
197 LSOF_TSTLFLG=""
198 LSOF_TSTVPATH=0
199 LSOF_TSTXO=""
200 LSOF_TSTXOC="${LSOF_TSTSUBD}/config.xobj"
201 LSOF_UNSUP="WARNING: unsupported dialect or version"
202 if test "X$LSOF_VERS" = "X"     # {
203 then
204   LSOF_VERS=""
205 fi      # }
206 if test "X$LSOF_VSTR" = "X"     # {
207 then
208   LSOF_VSTR=""
209 fi      # }
210
211 # Establish echo type -- Berkeley or SYSV.
212
213 j=`echo -n ""`
214 if test "X$j" = "X-n "
215 then
216   EC="\c"
217   EO=""
218 else
219   EC=""
220   EO="-n"
221 fi
222
223 # Make sure temporary files are removed before an abnormal exit.
224
225 trap 'rm -f ${LSOF_HLP_BASE}* ${LSOF_TMPC_BASE}*; exit 1' 1 2 3 15
226
227 rm -f $LSOF_HLP
228 cat > $LSOF_HLP << LSOF_HLP
229 Usage: Configure <options> <target-dialect>
230   <options>:  -clean        : clean up previous configuration
231               -d|-dialects  : display a list of supported dialect versions
232               -h|-help      : display help information
233               -n            : avoid AFS, customization, and inventory checks
234   <target-dialect> (****USE -d TO GET TESTED DIALECT VERSION NUMBERS****):
235     aix|aixgcc              : IBM AIX xlc (aix) or gcc (aixgcc)
236     darwin                  : Apple Darwin
237     decosf                  : DEC OSF/1
238     digital_unix|du         : Digital UNIX
239     freebsd                 : FreeBSD
240     hpux|hpuxgcc            : HP-UX cc (hpux) or gcc (hpuxgcc)
241     linux                   : Linux
242     netbsd                  : NetBSD
243     nextstep|next|ns|nxt    : NEXTSTEP
244     openbsd                 : OpenBSD
245     openstep|os             : OPENSTEP
246     osr|sco                 : SCO OpenServer < 6.0.0, SCO devloper's compiler
247     osrgcc|scogcc           : SCO OpenServer < 6.0.0, gcc compiler
248     osr6                    : SCO OpenServer 6.0.0, SCO compiler
249     solaris|solariscc       : Solaris gcc (solaris) or cc (solariscc)
250     tru64                   : Tru64 UNIX
251     unixware|uw             : SCO|Caldera UnixWare
252 LSOF_HLP
253
254 LSOF_TGT="no-target"
255
256 args=$#
257 while test $args -gt 0  # {
258 do
259   case $1 in    # {
260     -clean)
261       if test -r $LSOF_MKFC     # {
262       then
263         echo "$LSOF_MAKE -f $LSOF_MKFC clean"
264         $LSOF_MAKE -f $LSOF_MKFC clean
265       else
266         if test -r ${LSOF_LIB}/${LSOF_LIBMKF}   # {
267         then
268           echo "(cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF} clean)"
269           (cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF} clean)
270         else
271           if test -r ${LSOF_LIB}/${LSOF_LIBMKF}.skel    # {
272           then
273             echo "(cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF}.skel clean)"
274             (cd ${LSOF_LIB}; $LSOF_MAKE -f ${LSOF_LIBMKF}.skel clean)
275           fi    # }
276         fi      # }
277       fi        # }
278       if test -r ${LSOF_TSTSUBD}/Makefile       # {
279       then
280         echo "(cd ${LSOF_TSTSUBD}; $LSOF_MAKE spotless)"
281         (cd ${LSOF_TSTSUBD}; $LSOF_MAKE spotless)
282       else
283         echo '(cd ${LSOF_TSTSUBD}; rm *.o config.*)'
284         (cd ${LSOF_TSTSUBD}; rm *.o config.*)
285       fi        # }
286       rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF ${LSOF_TMPC_BASE}*
287       echo rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF ${LSOF_TMPC_BASE}*
288       rm -rf AFSHeaders AFSVersion solaris11 version.h vnode_if.h
289       echo "rm -rf AFSHeaders AFSVersion solaris11 version.h vnode_if.h"
290       rm -f ${LSOF_HLP_BASE}* cd9660_node.h lockf_owner.h fbsd_minor.h
291       echo "rm -f ${LSOF_HLP_BASE}* cd9660_node.h lockf_owner.h fbsd_minor.h"
292       rm -f dialects/aix/aix5/j2/j2_snapshot.h
293       echo "rm -f dialects/aix/aix5/j2/j2_snapshot.h"
294       rm -f dialects/sun/solaris10      # DEBUG -- for s10_44
295       echo "rm -f dialects/sun/solaris10"       # DEBUG -- for s10_44
296       rm -f dialects/du/du5_sys_malloc.h
297       echo "rm -f dialects/du/du5_sys_malloc.h"
298       rm -f dialects/hpux/kmem/hpux_mount.h
299       echo "rm -f dialects/hpux/kmem/hpux_mount.h"
300       rm -rf dialects/n+obsd/include
301       echo "rm -rf dialects/n+obsd/include"
302       rm -f dialects/uw/uw7/vm/swap.h
303       echo "rm -f dialects/uw/uw7/vm/swap.h"
304       rm -f ${LSOF_LIB}/${LSOF_LIBMKF}
305       echo "rm -f ${LSOF_LIB}/${LSOF_LIBMKF}"
306       exit 0
307       ;;
308  
309     -d|-dialects)
310       if test -r ./00DIALECTS -a -r ./version   # {
311       then
312         V=`sed '/VN/s/.ds VN \(.*\)/\1/' version`
313         echo "lsof $V has been *tested* on these UNIX dialect versions:"
314         cat 00DIALECTS
315         echo Although "$V hasn't been tested on other versions of these dialects,"
316         echo "it may work.  Try \`Configure <dialect>\` and \`make\` to see."
317         rm -f $LSOF_HLP
318         exit 0
319       else
320         echo "Can't display UNIX dialect version information:"
321         if test ! -r ./00DIALECTS       # {
322         then
323           echo "        ./00DIALECTS is inaccessible."
324         fi      # }
325         if test ! -r ./version  # {
326         then
327           echo "        ./version is inaccessible."
328         fi      # }
329         rm -f $LSOF_HLP
330         exit 1
331       fi        # }
332       ;;
333
334     -h|-help) cat $LSOF_HLP
335       rm -f $LSOF_HLP
336       exit 0
337       ;;
338
339     -n*)
340       LSOF_SCRIPT_CALL="no"
341       ;;
342
343     *)
344       if test "X$LSOF_TGT" != "Xno-target"      # {
345       then
346         echo "Only one dialect may be configured at a time."
347         echo 'Both "$LSOF_TGT" and "$1" were specified.'
348         cat $LSOF_HLP
349         rm -f $LSOF_HLP
350         exit 1
351       else
352         LSOF_TGT=$1
353       fi        # }
354       ;;
355   esac  # }
356   shift
357   args=`expr $args - 1`
358 done    # }
359
360 case $LSOF_TGT in       # {
361  no-target)
362    echo "No target dialect was specified."
363    cat $LSOF_HLP
364    rm -f $LSOF_HLP
365    exit 1
366    ;;
367
368 # Configure for AIX xlc and AIX gcc.
369
370   aix|aixgcc)
371
372   # AIXA stands for AIX architecture.  It is assigned these values in this
373   # stanza:
374   #
375   #    0        The AIX version is < 5.0, or the AIX 5.0 architecture is
376   #             Power and the kernel bit size is 32.
377   #
378   #    1        The AIX version is >= 5.0, the AIX architecture is Power,
379   #             and the kernel bit size is 64.
380   #
381   #    2        The AIX version is >= 5.0 and the architecture is IA64.
382
383     if test "X$LSOF_RANLIB_SUP" = "X"   # {
384     then
385       LSOF_RANLIB="@echo \\\\\\\\c"    # AIX make doesn't like a null ${RANLIB}.
386     fi  # }
387     if test "X$LSOF_VSTR" = "X" # {
388     then
389
390       # If the AIX version isn't pre-defined, determine it.
391
392       LSOF_TMP1=`uname -v`
393       if test "X$LSOF_TMP1" = "X5"      # {
394       then
395
396         # If the AIX version is 5, build the version string with `uname -rv`
397         # output.
398
399           LSOF_VSTR=`uname -r | awk '{printf "5.%d.0.0\n",\$1}'`
400           echo "Uname reports the version is $LSOF_VSTR."
401       else
402
403         # See if oslevel can determine the version.
404
405         LSOF_TMP1=/usr/bin/oslevel
406         if test -x $LSOF_TMP1   # {
407         then
408           echo "Determining AIX version with $LSOF_TMP1."
409           echo "This may take a while, depending on your maintenance level."
410           LSOF_VSTR=`$LSOF_TMP1 | sed 's/[^0-9]*\([0-9\.]*\).*/\1/'`
411           echo "$LSOF_TMP1 reports the version is $LSOF_VSTR."
412         else
413
414           # If oslevel can't be used, build the version string with
415           # `uname -rv` and issue a warning.
416
417           LSOF_VSTR=`uname -rv | awk '{printf "%d.%d.0.0\n",\$2,\$1}'`
418           echo "WARNING: can't execute $LSOF_TMP1; uname -rv reports"
419           echo "         the version is $LSOF_VSTR; edit CFGF in Makefile and"
420           echo "         lib/Makefile to refine AIXV and LSOF_VSTR."
421         fi      # }
422       fi        # }
423     fi  # }
424     if test "X$LSOF_VERS" = "X" # {
425     then
426       LSOF_VERS=`echo $LSOF_VSTR | sed 's/\.//g'`
427     fi  # }
428     if test $LSOF_VERS -ge 4320 # {
429     then
430       LSOF_TSTBIGF=" "
431     fi  # }
432     if test "X$LSOF_CC" = "X"   # {
433     then
434       if test "X$LSOF_TGT" = "Xaixgcc"  # {
435       then
436         LSOF_CC=gcc
437         LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
438       else
439         LSOF_CC=cc
440       fi        # }
441     fi  # }
442     LSOF_TGT="aix"
443     echo $LSOF_CC | grep gcc > /dev/null
444     if test $? -eq 0    # {
445     then
446
447     # Prevent use of gcc for AIX below 4.1.
448
449       if test $LSOF_VERS -lt 4100       # {
450       then
451         echo "********************************************************"
452         echo "* Sorry, but gcc can't be used to compile lsof for AIX *"
453         echo "* versions less than 4.1, because of possible kernel   *"
454         echo "* structure alignment differences between it and xlc.  *"
455         echo "********************************************************"
456         rm -f $LSOF_HLP
457         exit 1
458       fi        # }
459     fi  # }
460
461     # Test for AFS.
462
463     if test "X$AIX_HAS_AFS" != "X"      # {
464     then
465       LSOF_AFS=$AIX_HAS_AFS
466     fi  # }
467     if test "X$LSOF_AFS" != "Xno"       # {
468     then
469       if test "X$LSOF_AFS" = "Xyes" -o -r ${AFS_VICE}/etc/ThisCell      # {
470       then
471         if test "X$LSOF_AFS" != "Xyes"  # {
472         then
473           if test "X$LSOF_SCRIPT_CALL" = "Xno"  # {
474           then
475             if test -r ./AFSHeaders -a -r ./AFSVersion  # {
476             then
477               LSOF_AFS="yes"
478             fi  # }
479           else
480             if test ! -x ./AFSConfig    # {
481             then
482               echo "Can't find or execute the AFSConfig script"
483               rm -f $LSOF_HLP
484               exit 1
485             fi  # }
486             ./AFSConfig
487             if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion      # {
488             then
489               LSOF_AFS="yes"
490             fi  # }
491           fi    # }
492         fi      # }
493         if test "X$LSOF_AFS" = "Xyes"   # {
494         then
495           if test "X$LSOF_AFSV" = "X"   # {
496           then
497             if test -r ./AFSVersion     # {
498             then
499               LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
500             else
501               echo "!!!FATAL: no ./AFSVersion file.  It should have been"
502               echo "          created by a previous AFS configuration run."
503               rm -f $LSOF_HLP
504               exit 1
505             fi  # }
506           fi    # }
507           if test $LSOF_VERS -gt 4330 -o LSOF_AFSV -gt 305      # {
508           then
509             echo "!!!FATAL: Lsof does not support AFS on this combination of"
510             echo "          AIX ($LSOF_VERS) and AFS ($LSOF_AFSV) versions."
511             echo "          To disable AFS, set the value of the AIX_HAS_AFS"
512             echo "          environment variable to \"no\"."
513             rm -f $LSOF_HLP
514             exit 1
515           else
516             LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
517             LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
518             if test -r ${LSOF_INCLUDE}/sys/inttypes.h  # {
519             then
520               grep "^typedef.*int16;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
521               if test $? -eq 0      # {
522               then
523                 LSOF_CFGF="$LSOF_CFGF -DHASINT16TYPE"
524               fi    # }
525               grep "^typedef.*u_int32;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
526               if test $? -eq 0      # {
527               then
528                 LSOF_CFGF="$LSOF_CFGF -DHASUINT16TYPE"
529               fi    # }
530               grep "^typedef.*int32;" ${LSOF_INCLUDE}/sys/inttypes.h > /dev/null
531               if test $? -eq 0      # {
532               then
533                 LSOF_CFGF="$LSOF_CFGF -DHASINT32TYPE"
534               fi    # }
535             fi  # }
536           fi      # }
537         fi      # }
538       fi        # }
539     fi  # }
540
541     # Miscellaneous AIX tests
542
543     if test -d ${LSOF_INCLUDE}/nfs      # {
544     then
545       LSOF_CFGF="$LSOF_CFGF -DHAS_NFS"
546     fi  # }
547     echo $LSOF_CC | grep cc | grep -v gcc > /dev/null
548     if test $? -eq 0 -a $LSOF_VERS -ge 4140 -a $LSOF_VERS -lt 5000      # {
549     then
550       LSOF_CFGL="$LSOF_CFGL -bnolibpath"
551     fi  # }
552     if test -r ${LSOF_INCLUDE}/sys/socket.h     # {
553     then
554       grep AF_INET6 ${LSOF_INCLUDE}/sys/socket.h > /dev/null
555       if test $? -eq 0  # {
556       then
557         LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
558       fi        # }
559     fi  # }
560     if test -r ${LSOF_INCLUDE}/sys/stat.h       # {
561     then
562       grep stat64 ${LSOF_INCLUDE}/sys/stat.h > /dev/null
563       if test $? -eq 0 # {
564       then
565         LSOF_CFGF="$LSOF_CFGF -DHASSTAT64"
566       fi        # }
567     fi  # }
568 #DEBUG SANFS    if test -r ${LSOF_INCLUDE}/sys/sanfs/sanfsnode.h???     # {
569 #DEBUG SANFS    then
570 #DEBUG SANFS      LSOF_CFGF="$LSOF_CFGF -DHAS_SANFS"
571 #DEBUG SANFS    fi      # }
572     if test $LSOF_VERS -ge 5000 # {
573     then
574
575     # This is AIX 5 or greater.
576
577       if test -d ${LSOF_INCLUDE}/j2     # {
578       then
579
580       # The AIX > 5.0 system has jfs2 support.  Make the necesssary definitions
581       # and adjustments.
582
583         rm -f dialects/aix/aix5/j2/j2_snapshot.h
584         (cd dialects/aix/aix5/j2; ln -s private_j2_snapshot.h j2_snapshot.h)
585         LSOF_CFGF="$LSOF_CFGF -DHAS_JFS2"
586         LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/aix/aix5"
587         if test $LSOF_VERS -ge 5200     # {
588         then
589           if test -r ${LSOF_INCLUDE}/j2/j2_snapshot.h   # {
590           then
591
592           # The system has its own j2_snapshot.h, so make sure the
593           # private lsof copy is discarded.
594
595             rm -f dialects/aix/aix5/j2/j2_snapshot.h
596           fi    # }
597           echo $LSOF_CC | grep gcc > /dev/null
598           if test $? -eq 0      # {
599           then
600
601           # Test gcc version for AIX 5.2.
602
603             LSOF_TMP1=`echo $LSOF_CCV | awk -F . '{printf "%d%02d",$1,$2}'`
604             if test $LSOF_TMP1 -ge 303  # {
605             then
606
607             # Add gcc >= 3.3 option to handle use of i_dev from the wInode
608             # anonymous structure reference in the JFS2 inode structure of
609             # <j2/j2_inode.h>.
610
611               LSOF_CFGF="$LSOF_CFGF -fms-extensions"
612             fi  # }
613           fi    #}
614         fi      # }
615       fi        # }
616
617       # Determine the AIX architecture type and set AIXA accordingly.
618
619       if test "X$AIX_ARCH" = "X"        # {
620       then
621         uname -a | grep -i ia64 > /dev/null
622         if test $? -eq 0        # {
623         then
624           AIX_ARCH="ia64"
625         else
626           AIX_ARCH=""
627         fi      # }
628       fi        # }
629       if test "X$AIX_ARCH" = "Xia64"    # {
630       then
631
632       # This is AIX >= 5 on ia64.
633
634         LSOF_TSTK64=1
635         echo $LSOF_CC | grep gcc > /dev/null
636         if test $? -eq 0        # {
637         then
638
639         # Quit if gcc was specified as the compiler, since the gcc options to
640         # do an ia64 lsof compilation are unknown.
641
642           echo "*************************************************************"
643           echo "*                                                           *"
644           echo "* !!!!!!!!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!!!!!!!!! *"
645           echo "*                                                           *"
646           echo "* Gcc can't be used to compile lsof for AIX 5 and above on  *"
647           echo "* the ia64 architecture.  Consult lsof's FAQ (in the file   *"
648           echo "* 00FAQ) for more information.                              *"
649           echo "*                                                           *"
650           echo "*************************************************************"
651           rm -f $LSOF_HLP
652           exit 1
653         fi      # }
654         LSOF_TMP1=2
655         if test "X$LSOF_AR" = "X"       # {
656         then
657           LSOF_AR="/usr/bin/ar cr"
658         fi      # }
659         LSOF_CFGF="$LSOF_CFGF -q64"
660         LSOF_CFGL="$LSOF_CFGL -lelf"
661       else
662
663       # This is AIX >= 5 on Power architecture.
664
665         echo $LSOF_CC | grep cc | grep -v gcc > /dev/null
666         if test $? -eq 0        # {
667         then
668           LSOF_CFGL="$LSOF_CFGL -bnolibpath"
669         fi      # }
670         if test "X$AIX_KERNBITS" = "X"  # {
671         then
672
673         # The kernel bit size wasn't predefined.  Determine it by compiling
674         # and executing a test program.
675
676           rm -f ${LSOF_TMPC}.*
677           echo "#include <sys/systemcfg.h>" > ${LSOF_TMPC}.c
678           echo 'main(){ if (__KERNEL_32()) printf("32\\n");' >> ${LSOF_TMPC}.c
679           echo 'else if (__KERNEL_64()) printf("64\\n");' >> ${LSOF_TMPC}.c
680           echo 'else printf("0\\n");' >> ${LSOF_TMPC}.c
681           echo "return(0); }" >> ${LSOF_TMPC}.c
682           echo "Testing kernel bit size with $LSOF_CC"
683           $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x
684           if test ! -x ${LSOF_TMPC}.x   # {
685           then
686             echo "!!!FATAL: can't compile test program, ${LSOF_TMPC}.c."
687             rm -f $LSOF_HLP rm -f ${LSOF_TMPC}.*
688             exit 1
689           fi    # }
690           AIX_KERNBITS=`./${LSOF_TMPC}.x`
691           rm -f ${LSOF_TMPC}.*
692         fi      # }
693
694       # Use the kernel bit size specification to select archiver and compiler
695       # options, and to update AIXA.
696
697         case $AIX_KERNBITS in   # {
698         32)
699           if test "X$LSOF_AR" = "X"     # {
700           then
701             LSOF_AR="/usr/bin/ar cr"
702           fi    # }
703           LSOF_TMP1=0
704           ;;
705         64)
706           if test "X$LSOF_AR" = "X"     # {
707           then
708             LSOF_AR="/usr/bin/ar -X 64 -v -q"
709           fi    # }
710           LSOF_TSTK64=1
711           LSOF_TMP1=1
712           echo $LSOF_CC | grep gcc > /dev/null
713           if test $? -eq 0      # {
714           then
715             LSOF_CFGF="$LSOF_CFGF -maix64"
716           else
717             LSOF_CFGF="$LSOF_CFGF -q64"
718           fi    # }
719           ;;
720         *)
721           echo "!!!FATAL: unrecognized kernel bit size: $AIX_KERNBITS"
722           rm -f $LSOF_HLP
723           exit 1
724         esac    # }
725
726       # Put kernel bit size information in $LSOF_CINFO and $LSOF_CFGF.
727
728         echo "Kernel bit size: $AIX_KERNBITS"
729         LSOF_TMP2="${AIX_KERNBITS} bit kernel"
730         if test "X$LSOF_CINFO" != "X"   # {
731         then
732           LSOF_CINFO="${LSOF_CINFO}  ${LSOF_TMP2}"
733         else
734           LSOF_CINFO="${LSOF_TMP2}"
735         fi      # }
736         LSOF_CFGF="$LSOF_CFGF -DAIX_KERNBITS=${AIX_KERNBITS}"
737       fi        # }
738       LSOF_CFGF="$LSOF_CFGF -DAIXA=$LSOF_TMP1"
739       if test "X$LSOF_TSTDFLG" = "X"    # {
740       then
741         LSOF_TSTDFLG="-DLT_AIXA=$LSOF_TMP1"
742       else
743         LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_AIXA=$LSOF_TMP1"
744       fi        # }
745     else
746
747     # AIX is < 5, so set AIXA accordingly.
748
749       LSOF_CFGF="$LSOF_CFGF -DAIXA=0"
750       if test "X$LSOF_TSTDFLG" = "X"    # {
751       then
752         LSOF_TSTDFLG="-DLT_AIXA=0"
753       else
754         LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_AIXA=0"
755       fi        # }
756     fi  #}
757     LSOF_CFGF="$LSOF_CFGF -DAIXV=$LSOF_VERS"
758     LSOF_DIALECT_DIR=aix
759     echo $LSOF_CC | grep gcc > /dev/null
760     if test $? -eq 0    # {
761     then
762
763     # Do gcc tests.
764
765       if test $LSOF_VERS -ge 4100 -a $LSOF_VERS -lt 4200        # {
766       then
767         if test "X$AIX_USHACK" = "X"    # {
768         then
769
770           # Compile and run a gcc test program to evaluate the user structure.
771
772           rm -f ${LSOF_TMPC}.*
773           echo "#include <stddef.h>" > ${LSOF_TMPC}.c
774           echo "#include <sys/user.h>" >> ${LSOF_TMPC}.c
775           echo "main(){exit((offsetof(struct user, U_irss) & 0x7) ? 1 : 0);}" >>${LSOF_TMPC}.c
776           echo "Testing user.h with $LSOF_CC"
777           $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x
778           if ! ${LSOF_TMPC}.x   # {
779           then
780             LSOF_TMP1=1
781           else
782             LSOF_TMP1=0
783           fi    # }
784           rm -f ${LSOF_TMPC}.*
785         else
786           if test "$AIX_USHACK" = "Y" -o "$AIX_USHACK" = "y"    # {
787           then
788             LSOF_TMP1=1
789           else
790             LSOF_TMP1=0
791           fi    # }
792         fi      # }
793         if test ${LSOF_TMP1} -eq 1      # {
794         then
795           echo "Applying gcc AIX 4.1+ user struct alignment hack"
796           rm -rf ./dialects/aix/aix$LSOF_VERS
797           mkdir ./dialects/aix/aix$LSOF_VERS
798           mkdir ./dialects/aix/aix${LSOF_VERS}/sys
799             sed 's/U_irss\[/dummy_for_alignment, U_irss\[/' < ${LSOF_INCLUDE}/sys/user.h > ./dialects/aix/aix${LSOF_VERS}/sys/user.h
800             LSOF_CFGF="$LSOF_CFGF -U_LONG_LONG -I`pwd`/dialects/aix/aix$LSOF_VERS"
801         fi      # }
802       fi        # }
803     else
804
805       # Get xlc version number
806
807       rm -f ${LSOF_TMPC}.*
808       echo "main(){}" > ${LSOF_TMPC}.c
809       echo "Getting version number of ${LSOF_CC}."
810       $LSOF_CC -c ${LSOF_TMPC}.c -I${LSOF_INCLUDE} -o ${LSOF_TMPC}.o -qlist > /dev/null 2>&1
811       LSOF_CCV=`head -1 ${LSOF_TMPC}.lst | sed 's/\(.*\) ---.*/\1/'`
812       rm ${LSOF_TMPC}.*
813       echo "The version is \"${LSOF_CCV}\"."
814       echo $LSOF_CCV | grep "Version [0-9]" > /dev/null
815       if test $? -eq 0  # {
816       then
817         LSOF_TMP=`echo $LSOF_CCV | sed 's/.*Version \([0-9]*\).*/\1/'`
818         if test "X$LSOF_TMP" != "X" -a $LSOF_TMP -ge 4    # {
819         then
820           if test $LSOF_TMP -ge 6       # {
821           then
822             LSOF_CFGF="$LSOF_CFGF -qmaxmem=-1"
823           else
824             LSOF_CFGF="$LSOF_CFGF -qmaxmem=16384"
825           fi    # }
826         fi      # }
827       fi        # }
828     fi  # }
829     if test $LSOF_VERS -ge 5300 # {
830     then
831       LSOF_UNSUP=""
832     fi  # }
833     ;;
834
835 # Configure for Apple Darwin.
836
837   darwin)
838     if test "X$LSOF_CC" = "X"   # {
839     then
840       LSOF_CC=cc
841       LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
842     fi  # }
843     if test "X$LSOF_VSTR" = "X" # {
844     then
845       LSOF_VSTR=`uname -r`
846     fi  # }
847     if test "X$LSOF_VERS" = "X" # {
848     then
849
850     # If the Darwin / Mac OS X version isn't pre-defined, determine it.
851
852       case $LSOF_VSTR in        # {
853       1.2*)
854         LSOF_VERS=120
855         ;;
856       1.3*)
857         LSOF_VERS=130
858         ;;
859       1.4*)
860         LSOF_VERS=140
861         ;;
862       5.[012]*)
863         LSOF_VERS=500
864         ;;
865       5.[3-9]*)
866         LSOF_VERS=530
867         ;;
868       6.*)
869         LSOF_VERS=600
870         ;;
871       7.*)                      # Mac OS X 10.3 (Panther)
872         LSOF_VERS=700
873         ;;
874       8.*)                      # Mac OS X 10.4 (Tiger)
875         LSOF_VERS=800
876         ;;
877       9.*)                      # Mac OS X 10.5 (Leopard)
878         LSOF_VERS=900
879         ;;
880       10.*)                     # Mac OS X 10.6 (SnowLeopard)
881         LSOF_VERS=1000
882         ;;
883       11.*)                     # Mac OS X 10.7 (Lion)
884         LSOF_VERS=1100
885         ;;
886       12.*)                     # Next Mac OS X
887         LSOF_VERS=1200
888         ;;
889       *)
890         echo Unknown Darwin release: `uname -r`
891         echo Assuming Darwin 11.0
892         LSOF_VERS=1100
893         ;;
894       esac      # }
895     fi  # }
896
897     # Do Darwin version-specific stuff.
898
899     case $LSOF_VERS in  # {
900     120|130)
901       LSOF_TMP1="hfs/hfs.h hfs/hfs_macos_defs.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h"
902       ;;
903     140|500)
904       LSOF_TMP1="hfs/hfs.h hfs/hfs_macos_defs.h hfs/rangelist.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h"
905       ;;
906     530)
907       LSOF_TMP1="hfs/hfs.h hfs/hfs_macos_defs.h hfs/rangelist.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h net/ndrv.h net/ndrv_var.h"
908       ;;
909     600)
910       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
911       LSOF_TMP1="hfs/hfs.h hfs/hfs_catalog.h hfs/hfs_cnode.h hfs/hfs_macos_defs.h hfs/rangelist.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h net/ndrv_var.h net/raw_cb.h netinet/ip_var.h netinet/tcp_var.h"
912       ;;
913     700)
914       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
915       LSOF_TMP1="hfs/hfs.h hfs/hfs_catalog.h hfs/hfs_cnode.h hfs/hfs_macos_defs.h hfs/rangelist.h miscfs/devfs/devfsdefs.h miscfs/devfs/devfs_proto.h miscfs/fdesc/fdesc.h net/ndrv_var.h net/raw_cb.h netinet/ip_var.h netinet/tcp_var.h sys/eventvar.h"
916       ;;
917     800)
918       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
919       LSOF_TMP1="net/ndrv_var.h net/raw_cb.h netinet/ip_var.h netinet/tcp_var.h sys/eventvar.h sys/file_internal.h sys/mount_internal.h sys/proc_internal.h sys/vnode_internal.h"
920       ;;
921     900|1000|1100)
922       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
923       LSOF_TMP1=""
924       LSOF_UNSUP=""
925       LSOF_TSTBIGF=" "                  # enable LTbigf test
926       if test $LSOF_VERS -eq 900        # {
927       then
928         LSOF_CFGF="$LSOF_CFGF -DNEEDS_MACH_PORT_T"
929       fi        # }
930       ;;
931     1200)
932       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
933       LSOF_TMP1=""
934       ;;
935     *)
936       echo "Unsupported Darwin version: $LSOF_VERS"
937       rm -f $LSOF_HLP
938       exit 1
939       ;;
940     esac        # }
941     LSOF_TMP2=""
942     LSOF_TMP3=""
943     LSOF_TMP4=""
944     LSOF_CFGF="$LSOF_CFGF -mdynamic-no-pic"
945     LSOF_CFGL="$LSOF_CFGL -lcurses"
946
947     if test "X$DARWIN_XNUDIR" != "X"    # {
948     then
949       LSOF_TMP2="${DARWIN_XNUDIR}/bsd"
950       LSOF_TMP3="${DARWIN_XNUDIR}/osfmk"
951       LSOF_TMP4=""
952     else
953       LSOF_TMP2="${DARWIN_XNU_HEADERS}/System/Library/Frameworks/Kernel.framework/Versions/A/PrivateHeaders"
954       LSOF_TMP3="${DARWIN_XNU_HEADERS}/System/Library/Frameworks/System.framework/Versions/B/PrivateHeaders"
955       LSOF_TMP4=""
956       if test "X$DARWIN_XNU_HEADERS" != "X"     # {
957       then
958         LSOF_TMP4="${DARWIN_XNU_HEADERS}/usr/include"
959       fi        # }
960     fi  # }
961
962     # Test Darwin base.
963
964     if test "X$DARWIN_BASE" = "X" -o "X$DARWIN_BASE" = "Xlibproc"       # {
965     then
966       LSOF_TMP5=""
967       if test $LSOF_VERS -ge 800 -o "X$DARWIN_BASE" = "Xlibproc"        # {
968       then
969         if test -r ${LSOF_INCLUDE}/libproc.h    # {
970         then
971             DARWIN_BASE="libproc"
972         else
973           if test -r ${LSOF_INCLUDE}/../local/include/libproc.h # {
974           then
975             DARWIN_BASE="libproc"
976             LSOF_TMP5="-I${LSOF_INCLUDE}/../local/include"
977           else
978             echo "FATAL: can't find libproc.h"
979             rm -f $LSOF_HLP
980             exit 1
981           fi    # }
982         fi      # }
983       else
984
985       # The default Darwin base is /dev/kmem.
986
987         DARWIN_BASE="/dev/kmem"
988       fi        # }
989     fi  # }
990     if test "X$DARWIN_BASE" = "Xlibproc"        # {
991     then
992
993     # Configure for libproc-based Darwin lsof.
994
995       echo "Configuring libproc-based Darwin lsof"
996       LSOF_CINFO="libproc-based"
997       LSOF_DIALECT_DIR=darwin/libproc
998       if test $LSOF_VERS -lt 1000       # {
999       then
1000         LSOF_CFGL="$LSOF_CFGL -lproc"
1001       fi        # }
1002       LSOF_TSTKMEM=0
1003       LSOF_DINC="$LSOF_DINC $LSOF_TMP5"
1004       if test ! -r ${LSOF_INCLUDE}/sys/proc_info.h      # {
1005       then
1006         if test "X$LSOF_TMP5" = "X" -o ! -r ${LSOF_TMP5}/sys/proc_info.h # {
1007         then
1008           echo "FATAL: can't find sys/proc_info.h"
1009           rm -f $LSOF_HLP
1010           exit 1
1011         fi      # }
1012       fi        # }
1013
1014     # Add header file paths for libproc-based Darwin lsof.
1015
1016       for i in $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE      # {
1017       do
1018         if test -d $i -a "X$i" != "X/usr/include"       # {
1019         then
1020           LSOF_DINC="$LSOF_DINC -I${i}"
1021         fi      # }
1022       done      # }
1023
1024     # Do other libproc-based Darwin lsof setups.
1025       
1026       if test -r ${LSOF_INCLUDE}/utmpx.h        # {
1027       then
1028         LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
1029       fi        # }
1030     else
1031       if test "X$DARWIN_BASE" != "X/dev/kmem"   # {
1032       then
1033         echo "Darwin base unrecognized: $DARWIN_BASE"
1034         rm -f $LSOF_HLP
1035         exit 1
1036       fi        # }
1037     
1038     # Configure for /dev/kmem-based Darwin lsof.
1039
1040       echo "Configuring /dev/kmem-based Darwin lsof"
1041       LSOF_CINFO="/dev/kmem-based"
1042       LSOF_DIALECT_DIR=darwin/kmem
1043
1044     # Make sure needed /dev/kmem-base XNU Darwin kernel header files are
1045     # present.
1046
1047       LSOF_TMP5=""
1048       for i in $LSOF_TMP1       # {
1049       do
1050         LSOF_TMP6=0
1051         for j in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE # {
1052         do
1053           if test "X${j}" != "X" -a -r ${j}/${i}  # {
1054           then
1055             LSOF_TMP6=1
1056             break
1057           fi    # }
1058         done    # }
1059         if test $LSOF_TMP6 -ne 1        # {
1060         then
1061           if test "X$LSOF_TMP5" = "X"   # {
1062           then
1063             LSOF_TMP5=$i
1064           else
1065             LSOF_TMP5="$LSOF_TMP5 $i"
1066           fi    # }
1067         fi                      # }
1068       done      # }
1069       if test "X$LSOF_TMP5" != "X"      # {
1070       then
1071
1072       # If any Darwin XNU kernel header files are missing, call the
1073       # get-hdr-loc.sh script to find the path.
1074
1075         LSOF_TMP6=`pwd`/dialects/darwin/get-hdr-loc.sh
1076         if test ! -x $LSOF_TMP6 # {
1077         then
1078           echo "FATAL: can't execute: $LSOF_TMP6"
1079           rm -f $LSOF_HLP
1080           exit 1
1081         fi      # }
1082         DARWIN_XNUDIR=`$LSOF_TMP6 $LSOF_TMP5`
1083         if test $? -ne 0        # {
1084         then
1085           echo "FATAL: $LSOF_TMP6 returns: $DARWIN_XNUDIR"
1086           rm -f $LSOF_HLP
1087           exit 1
1088         fi      # }
1089         LSOF_TMP2="${DARWIN_XNUDIR}/bsd"
1090         LSOF_TMP3="${DARWIN_XNUDIR}/osfmk"
1091         LSOF_TMP4=""
1092       fi        # }
1093
1094     # Add header file paths for /dev/kmem-based Darwin lsof.
1095
1096       for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE   # {
1097       do
1098         if test -d $i -a "X$i" != "X/usr/include"       # {
1099         then
1100           LSOF_DINC="$LSOF_DINC -I${i}"
1101         fi      # }
1102       done      # }
1103
1104     # Make conditional feature definitions for /dev/kmem-based Darwin lsof.
1105
1106       for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE      # {
1107       do
1108         if test "X${i}" != "X" -a -r ${i}/sys/namei.h   # {
1109         then
1110           grep -q nc_vpid ${i}/sys/namei.h
1111           if test $? -eq 0      # {
1112           then
1113             LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
1114           fi    # }
1115           break
1116         fi      # }
1117       done      # }
1118       for i in $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 $LSOF_INCLUDE   # {
1119       do
1120         if test "X${i}" != "X"  # {
1121         then
1122           if test $LSOF_VERS -ge 800    # {
1123           then
1124             if test -r ${i}/sys/file_internal.h # {
1125             then
1126               grep -q DTYPE_KQUEUE ${i}/sys/file_internal.h
1127               if test $? -eq 0  # {
1128               then
1129                 LSOF_CFGF="$LSOF_CFGF -DHASKQUEUE"
1130               fi        # }
1131               break
1132             fi  # }
1133           else
1134             if test $LSOF_VERS -ge 700  # {
1135             then
1136               if test -r ${i}/sys/file.h        # {
1137               then
1138                 grep -q DTYPE_KQUEUE ${i}/sys/file.h
1139                 if test $? -eq 0        # {
1140                 then
1141                   LSOF_CFGF="$LSOF_CFGF -DHASKQUEUE"
1142                 fi      # }
1143               fi        # }
1144               break
1145             fi  # }
1146           fi    # }
1147         fi      # }
1148       done      # }
1149       LSOF_CFGF="$LSOF_CFGF -DHAS9660FS"
1150     fi  # }
1151     LSOF_CFGF="$LSOF_CFGF -DDARWINV=$LSOF_VERS"
1152     LSOF_CFLAGS_OVERRIDE=1
1153     ;;
1154
1155 # Configure for DEC OSF/1, Digital UNIX, or Tru64 UNIX.
1156
1157   digital_unix|du|decosf|tru64)
1158     LSOF_TGT="du"
1159     LSOF_TSTBIGF=" "
1160     LSOF_TSTK64=1
1161     if test "X$LSOF_DINC" = "X" # {
1162     then
1163       LSOF_DINC="-I/usr/include"
1164     fi  # }
1165     if test "X$LSOF_VSTR" = "X" # {
1166     then
1167       LSOF_VSTR=`uname -r`
1168     fi  # }
1169     if test "X$LSOF_VERS" = "X" # {
1170     then
1171
1172       # If the DEC OSF/1, Digital UNIX, or Tru64 UNIX version isn't
1173       # predefined, determine it.
1174
1175       case $LSOF_VSTR in        # {
1176       V2.0)
1177         LSOF_VERS=20000
1178         ;;
1179       V3.0)
1180         LSOF_VERS=30000
1181         ;;
1182       V3.2)
1183         LSOF_VERS=30200
1184         ;;
1185       ?4.0)
1186         LSOF_TSTXO="../lib/snpf.o"
1187         LSOF_VERS=40000
1188         ;;
1189       ?5.0)
1190         LSOF_VERS=50000
1191         ;;
1192       ?5.1)
1193         LSOF_VERS=50100
1194         ;;
1195       *)
1196         echo "WARNING: unknown version; assuming version is 2.0"
1197         LSOF_VERS=20000
1198         ;;
1199       esac      # }
1200     fi  # }
1201
1202     # Do DEC OSF/1, Digital UNIX, or Tru64 UNIX version specific stuff.
1203
1204     case $LSOF_VERS in  # {
1205       20000)
1206         LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
1207         LSOF_TMP1="/sys"
1208         ;;
1209       30000)
1210         LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
1211         LSOF_TMP1="/sys"
1212         LSOF_TMP2=-DUSELOCALREADDIR
1213         ;;
1214       30200)
1215         LSOF_CFGF="$LSOF_CFGF -Olimit 1024"
1216         LSOF_TMP1="/sys"
1217         LSOF_TMP2=-DUSELOCALREADDIR
1218         ;;
1219       40000)
1220         LSOF_TMP1="/usr/sys"
1221         ;;
1222       50000|50100)
1223         LSOF_CFGF="$LSOF_CFGF -DUSE_STAT"
1224         LSOF_TMP1="/usr/sys"
1225         ;;
1226       *)
1227         echo "WARNING: unknown version: $LSOF_VERS"
1228         rm -f $LSOF_HLP
1229         exit 1
1230         ;;
1231     esac        # }
1232     if test "X$DU_SYSDIR" = "X" # {
1233     then
1234       DU_SYSDIR=$LSOF_TMP1
1235     fi  # }
1236     LSOF_HOST=`uname -n`
1237     if test "X$DU_CDIR" = "X"   # {
1238     then
1239       LSOF_CDIR=`expr $LSOF_HOST : '\([^\.]*\)\..*$'`
1240       if test "X$LSOF_CDIR" = "X"       # {
1241       then
1242         LSOF_CDIR=$LSOF_HOST
1243       fi        # }
1244       LSOF_CDIR=`echo $LSOF_CDIR | tr a-z A-Z`
1245     else
1246       LSOF_CDIR=$DU_CDIR
1247     fi  # }
1248     LSOF_LOOP=1
1249     while test $LSOF_LOOP = 1   # {
1250     do
1251       if test -d ${DU_SYSDIR}/$LSOF_CDIR        # {
1252       then
1253         echo "Using header files in ${DU_SYSDIR}/$LSOF_CDIR"
1254         LSOF_LOOP=0
1255       else
1256         cat << .CAT_MARK
1257
1258 Please enter the name of the subdirectory in $DU_SYSDIR that contains the
1259 configuration files for this host.  Usually its name would be $LSOF_CDIR, but
1260 that subdirectory doesn't seem to exist.  The lsof compilation needs header
1261 files specific to this machine's configuration found in that directory.
1262
1263 If you can't specify the appropriate configuration subdirectory, quit this
1264 Configure step now and generate a proper configuration subdirectory with the
1265 kernel generation process.
1266
1267 .CAT_MARK
1268
1269         echo "$DU_SYSDIR contains:"
1270         echo ""
1271         ls -CF $DU_SYSDIR
1272         echo ""
1273         echo -n "Configuration subdirectory name? "
1274         read LSOF_CDIR LSOF_EXCESS
1275         if test "X$LSOF_CDIR" = "X" -o ! -d ${DU_SYSDIR}/$LSOF_CDIR     # {
1276         then
1277           echo ""
1278           echo Cannot access directory ${DU_SYSDIR}/$LSOF_CDIR.
1279         fi      # }
1280       fi        # }
1281     done        # }
1282
1283     # Determine the ADVFS file system version.
1284
1285     if test "X$DU_ADVFSV" = "X" # {
1286     then
1287       echo "Determining the ADVFS version -- this will take a while."
1288       LSOF_ADVFSV=`/usr/sbin/setld -i | grep "^OSFADVFSBIN[0-9]" | sed 's/\([^ ]*\).*/\1/' | sort -u | tail -1 | sed 's/OSFADVFSBIN//'`
1289     else
1290       LSOF_ADVFSV=$DU_ADVFSV
1291     fi  # }
1292     case $LSOF_ADVFSV in        # {
1293     1*)
1294       LSOF_ADVFSV=100
1295       echo "The ADVFS version is 1."
1296       ;;
1297     2*)
1298       LSOF_ADVFSV=200
1299       echo "The ADVFS version is 2."
1300       ;;
1301     3*)
1302       LSOF_ADVFSV=300
1303       echo "The ADVFS version is 3."
1304       ;;
1305     4*)
1306       LSOF_ADVFSV=400
1307       echo "The ADVFS version is 4."
1308       ;;
1309     5*)
1310       LSOF_ADVFSV=500
1311       echo "The ADVFS version is 5."
1312       ;;
1313     *)
1314       echo "The ADVFS version is unknown; it will be assumed to be 1."
1315       LSOF_ADVFSV=100
1316       ;;
1317     esac        # }
1318     LSOF_CFGF="$LSOF_CFGF -DDUV=$LSOF_VERS -DADVFSV=$LSOF_ADVFSV $LSOF_TMP2"
1319     if test "X$DU_SYSINC" = "X" # {
1320     then
1321       DU_SYSINC="/usr/sys/include"
1322     fi  # }
1323     LSOF_DINC="$LSOF_DINC -I${DU_SYSDIR}/$LSOF_CDIR -I$DU_SYSINC"
1324     LSOF_CFGL="$LSOF_CFGL -lmld"
1325     if test "X${DU_SHLIB}" = "X"        # {
1326     then
1327       DU_SHLIB=/usr/shlib
1328     fi  # }
1329     if test -r ${DU_SHLIB}/libmsfs.so   # {
1330     then
1331       nm ${DU_SHLIB}/libmsfs.so | grep tag_to_path > /dev/null 2>&1
1332       if test $? -eq 0  # {
1333       then
1334         LSOF_CFGF="$LSOF_CFGF -DHASTAGTOPATH"
1335         LSOF_CFGL="$LSOF_CFGL -lmsfs"
1336       fi        # }
1337     fi  # }
1338     grep "^struct spec_node {" ${DU_SYSDIR}/include/sys/specdev.h > /dev/null 2>&1
1339     if test $? -eq 0    # {
1340     then
1341       LSOF_CFGF="$LSOF_CFGF -DHASSPECNODE"
1342     fi  # }
1343     if test $LSOF_VERS -ge 50000        # {
1344     then
1345
1346     # Make du5_sys_malloc.h for DU 5.0 and above.  Enable strict ANSI checking
1347     # on 5.0 and 5.1A, but not 5.1B.  Enable IPv6 handling.
1348
1349       LSOF_TMP1="-std1"
1350       if test $LSOF_VERS -ge 50100      # {
1351       then
1352         LSOF_TMP1="-std"
1353         if test -x /usr/sbin/sizer      # {
1354         then
1355           /usr/sbin/sizer -v | grep -q 5.1A
1356           if test $? -eq 0      # {
1357           then
1358             LSOF_TMP1="-std1"
1359           fi    # }
1360         fi      # }
1361       fi        # }
1362       LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
1363       LSOF_TMP1=${LSOF_INCLUDE}/sys/malloc.h
1364       if test -r $LSOF_TMP1     # {
1365       then
1366         LSOF_TMP2=dialects/du/du5_sys_malloc.h
1367         rm -f $LSOF_TMP2
1368         echo "#if !defined(MANUFACTURED_DU5_SYS_MALLOC_H)" > $LSOF_TMP2
1369         echo "/* By lsof Configure:" `date` " */" >> $LSOF_TMP2
1370         echo "#define MANUFACTURED_DU5_SYS_MALLOC_H" >> $LSOF_TMP2
1371         grep "^#define[         ]MALLOC_NUM_BUCKETS" $LSOF_TMP1 >> $LSOF_TMP2
1372         echo "struct percpukmembuckets {" >> $LSOF_TMP2
1373         sed '1,/^struct percpukmembuckets/d' $LSOF_TMP1 | sed -n '1,/^};/p' >> $LSOF_TMP2
1374         echo "#endif" >> $LSOF_TMP2
1375         LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/du"
1376       fi        # }
1377
1378     # Enable IPv6 for Tru64 UNIX 5.0 and above.
1379
1380       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
1381     fi  # }
1382     if test -r ${LSOF_INCLUDE}/sys/namei.h
1383     then
1384       grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
1385       if test $? -eq 0  # {
1386       then
1387         LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
1388       fi        # }
1389     fi  # }
1390     LSOF_DIALECT_DIR=du
1391     ;;
1392
1393 # Configure for FreeBSD.
1394
1395   freebsd)
1396     LSOF_FBSD_ZFS=0
1397     if test "X$LSOF_CC" = "X"   # {
1398     then
1399       LSOF_CC=cc
1400       LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
1401     fi  # }
1402     if test "X$LSOF_VSTR" = "X" # {
1403     then
1404       LSOF_VSTR=`uname -r`
1405     fi  # }
1406     if test "X$LSOF_VERS" = "X" # {
1407     then
1408
1409     # If the FreeBSD version isn't pre-defined, determine it.
1410
1411       case $LSOF_VSTR in        # {
1412       1.*)
1413         LSOF_VERS=1000
1414         ;;
1415       2.0-*)
1416         LSOF_VERS=2000
1417         ;;
1418       2.0.5-*)
1419         LSOF_VERS=2005
1420         ;;
1421       2.1*)
1422         LSOF_VERS=2010
1423         ;;
1424       2.2*)
1425         LSOF_VERS=2020
1426         ;;
1427       3.0*)
1428         LSOF_VERS=3000
1429         ;;
1430       3.1*)
1431         LSOF_VERS=3010
1432         ;;
1433       3.2*)
1434         LSOF_VERS=3020
1435         ;;
1436       3.3*)
1437         LSOF_VERS=3030
1438         ;;
1439       3.4*)
1440         LSOF_VERS=3040
1441         ;;
1442       3.5*)
1443         LSOF_VERS=3050
1444         ;;
1445       3*)
1446         LSOF_VERS=3050
1447         echo "!!!WARNING!!!  Unsupported FreeBSD version: $LSOF_VSTR"
1448         echo "!!!WARNING!!!  Configuring for FreeBSD 3.5"
1449         ;;
1450       4.0*)
1451         LSOF_TSTBIGF=" "
1452         LSOF_VERS=4000
1453         ;;
1454       4.1-*)
1455         LSOF_TSTBIGF=" "
1456         LSOF_VERS=4010
1457         ;;
1458       4.2*)
1459         LSOF_TSTBIGF=" "
1460         LSOF_VERS=4020
1461         ;;
1462       4.3*)
1463         LSOF_TSTBIGF=" "
1464         LSOF_VERS=4030
1465         ;;
1466       4.4*)
1467         LSOF_TSTBIGF=" "
1468         LSOF_VERS=4040
1469         ;;
1470       4.5*)
1471         LSOF_TSTBIGF=" "
1472         LSOF_VERS=4050
1473         ;;
1474       4.6*)
1475         LSOF_TSTBIGF=" "
1476         LSOF_VERS=4060
1477         ;;
1478       4.7*)
1479         LSOF_TSTBIGF=" "
1480         LSOF_VERS=4070
1481         ;;
1482       4.8*)
1483         LSOF_TSTBIGF=" "
1484         LSOF_VERS=4080
1485         ;;
1486       4.9*)
1487         LSOF_TSTBIGF=" "
1488         LSOF_VERS=4090
1489         ;;
1490       4.10*)
1491         LSOF_TSTBIGF=" "
1492         LSOF_VERS=4100
1493         ;;
1494       4.11*)
1495         LSOF_TSTBIGF=" "
1496         LSOF_VERS=4110
1497         ;;
1498       4*)
1499         LSOF_VERS=4100
1500         echo "!!!WARNING!!!  Unsupported FreeBSD version: $LSOF_VSTR"
1501         echo "!!!WARNING!!!  Configuring for FreeBSD 4.10"
1502         ;;
1503       5.0*)
1504         LSOF_TSTBIGF=" "
1505         LSOF_VERS=5000
1506         ;;
1507       5.1*)
1508         LSOF_TSTBIGF=" "
1509         LSOF_VERS=5010
1510         ;;
1511       5.2*)
1512         LSOF_TSTBIGF=" "
1513         LSOF_VERS=5020
1514         ;;
1515       5.3*)
1516         LSOF_TSTBIGF=" "
1517         LSOF_VERS=5030
1518         ;;
1519       5.4*)
1520         LSOF_TSTBIGF=" "
1521         LSOF_VERS=5040
1522         ;;
1523       5.5*)
1524         LSOF_TSTBIGF=" "
1525         LSOF_VERS=5050
1526         ;;
1527       5*)
1528         LSOF_VERS=5050
1529         echo "!!!WARNING!!!  Unsupported FreeBSD version: $LSOF_VSTR"
1530         echo "!!!WARNING!!!  Configuring for FreeBSD 5.5"
1531         ;;
1532       6.0*)
1533         LSOF_TSTBIGF=" "
1534         LSOF_VERS=6000
1535         ;;
1536       6.1*)
1537         LSOF_TSTBIGF=" "
1538         LSOF_VERS=6010
1539         ;;
1540       6.2*)
1541         LSOF_TSTBIGF=" "
1542         LSOF_VERS=6020
1543         ;;
1544       6.3*)
1545         LSOF_TSTBIGF=" "
1546         LSOF_VERS=6030
1547         ;;
1548       6.4*)
1549         LSOF_TSTBIGF=" "
1550         LSOF_VERS=6040
1551         ;;
1552       6*)
1553         LSOF_VERS=6000
1554         echo "!!!WARNING!!!  Unsupported FreeBSD version: $LSOF_VSTR"
1555         echo "!!!WARNING!!!  Configuring for FreeBSD 6.0"
1556         ;;
1557       7.0*)
1558         LSOF_TSTBIGF=" "
1559         LSOF_VERS=7000
1560         ;;
1561       7.1*)
1562         LSOF_TSTBIGF=" "
1563         LSOF_VERS=7010
1564         ;;
1565       7.2*)
1566         LSOF_TSTBIGF=" "
1567         LSOF_VERS=7020
1568         ;;
1569       7.3*)
1570         LSOF_TSTBIGF=" "
1571         LSOF_VERS=7030
1572         ;;
1573       7.4*)
1574         LSOF_TSTBIGF=" "
1575         LSOF_VERS=7040
1576         ;;
1577       7*)
1578         LSOF_VERS=7000
1579         echo "!!!WARNING!!!  Unsupported FreeBSD version: $LSOF_VSTR"
1580         echo "!!!WARNING!!!  Configuring for FreeBSD 7.0"
1581         ;;
1582       8.0*)
1583         LSOF_TSTBIGF=" "
1584         LSOF_VERS=8000
1585         ;;
1586       8.1*)
1587         LSOF_TSTBIGF=" "
1588         LSOF_VERS=8010
1589         ;;
1590       8.2*)
1591         LSOF_TSTBIGF=" "
1592         LSOF_VERS=8020
1593         ;;
1594       8.3*)
1595         LSOF_TSTBIGF=" "
1596         LSOF_VERS=8030
1597         ;;
1598       9*)
1599         LSOF_TSTBIGF=" "
1600         LSOF_VERS=9000
1601         ;;
1602       10*)
1603         LSOF_TSTBIGF=" "
1604         LSOF_VERS=10000
1605         ;;
1606       *)
1607         echo Unknown FreeBSD release: `uname -r`
1608         rm -f $LSOF_HLP
1609         exit 1
1610         ;;
1611       esac      # }
1612     fi  # }
1613
1614     # Clear LSOF_UNSUP message for supported versions of FreeBSD.
1615     
1616     case $LSOF_VERS in  # {
1617     4090|8020|8030|9000|10000)
1618       LSOF_UNSUP=""
1619       ;;
1620     esac        # }
1621
1622     # Get system CFLAGS from FREEBSD_MAKE_CONF (default=/etc/make.conf).
1623
1624     if test "X$FREEBSD_MAKE_CONF" = "X" # {
1625     then
1626       FREEBSD_MAKE_CONF="/etc/make.conf"
1627     fi  # }
1628     if test -r $FREEBSD_MAKE_CONF       # {
1629     then
1630       LSOF_TMP1=`echo "all:\n.include <bsd.prog.mk>" | $LSOF_MAKE -f- -VCFLAGS`
1631       LSOF_TMP=1
1632       while test $LSOF_TMP -eq 1        # {
1633       do
1634         echo $LSOF_TMP1 | grep -q -e '-O'
1635         if test $? -eq 0        # {
1636         then
1637           if test "X$LSOF_DEBUG" = "X"
1638           then  # {
1639             LSOF_DEBUG=`echo $LSOF_TMP1 | sed 's/.*\(-O[^ $]*\).*/\1/'`
1640           fi    # }
1641           LSOF_TMP1=`echo $LSOF_TMP1 | sed 's/\(.*\)-O[^ $]*\(.*\)/\1 \2/' | sed 's/^  *//g' | sed 's/  */ /g' | sed 's/  *$//'`
1642         else
1643           LSOF_TMP=0
1644         fi      # }
1645         LSOF_FBSD_ZFS_CFGF="$LSOF_CFGF $LSOF_TMP1"
1646       done      # }
1647       LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
1648     fi  # }
1649
1650     # Determine path to FreeBSD sources.
1651
1652     LSOF_DINC_ADD=0
1653     if test "X$FREEBSD_SYS" = "X"       # {
1654     then
1655       if test -d /usr/src/sys   # {
1656       then
1657         FREEBSD_SYS=/usr/src/sys
1658       else
1659         if test -d /sys # {
1660         then
1661           FREEBSD_SYS="/sys"
1662         else
1663           echo "!!!WARNING!!!  No kernel sources in /usr/src/sys or /sys"
1664         fi      # }
1665       fi        # }
1666     fi  # }
1667
1668     # Test for thread (task) support.
1669
1670     if test -r ${LSOF_INCLUDE}/sys/user.h       # {
1671     then
1672       grep -q ki_numthreads ${LSOF_INCLUDE}/sys/user.h
1673       if test $? -eq 0  # {
1674       then
1675         LSOF_CFGF="$LSOF_CFGF -DHASTASKS"
1676       fi        # }
1677     else
1678       echo "FATAL: can't find sys/user.h"
1679       rm -f $LSOF_HLP
1680       exit 1
1681     fi  # }
1682
1683     # Do FreeBSD version-specific stuff.
1684
1685     case $LSOF_VERS in  # {
1686     1000)
1687       LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
1688       LSOF_CFGL="$LSOF_CFGL -lutil"
1689       LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/freebsd/include"
1690       if test "X$FREEBSD_KERNEL" = "X"  # {
1691       then
1692         LSOF_N_UNIXV="/386bsd"
1693       else
1694         LSOF_N_UNIXV=$FREEBSD_KERNEL
1695       fi        # }
1696       ;;
1697     2000|2005|2010)
1698       LSOF_CFGL="$LSOF_CFGL -lkvm"
1699       ;;
1700     2020)
1701       LSOF_CFGL="$LSOF_CFGL -lkvm"
1702       if test -r ${LSOF_INCLUDE}/vm/lock.h      # {
1703       then
1704         LSOF_CFGF="$LSOF_CFGF -DHASVMLOCKH"
1705       fi        # }
1706       ;;
1707     3000|3010|3020|3030|3040|3050)
1708       LSOF_CFGL="$LSOF_CFGL -lkvm"
1709       if test -r ${LSOF_INCLUDE}/nfs/rpcv2.h    # {
1710       then
1711         LSOF_CFGF="$LSOF_CFGF -DHASRPCV2H"
1712       fi        # }
1713       if test -r ${LSOF_INCLUDE}/vm/lock.h      # {
1714       then
1715         LSOF_CFGF="$LSOF_CFGF -DHASVMLOCKH"
1716       fi        # }
1717       ;;
1718     *)
1719       if test -r ${LSOF_INCLUDE}/nfs/rpcv2.h    # {
1720       then
1721         LSOF_CFGF="$LSOF_CFGF -DHASRPCV2H"
1722       fi        # }
1723       if test -r ${LSOF_INCLUDE}/sys/namei.h    # {
1724       then
1725         grep -q "^struct[       ]*namecache[    ]*{" ${LSOF_INCLUDE}/sys/namei.h
1726         if test $? -eq 0        # {
1727         then
1728           LSOF_CFGF="$LSOF_CFGF -DHASNAMECACHE"
1729         fi      # }
1730       fi        # }
1731       if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h        # {
1732       then
1733         grep -q i_effnlink ${LSOF_INCLUDE}/ufs/ufs/inode.h
1734         if test $? -eq 0        # {
1735         then
1736           LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_effnlink"
1737         fi      # }
1738       fi        # }
1739       if test -r ${LSOF_INCLUDE}/sys/file.h     # {
1740       then
1741         grep -q f_vnode ${LSOF_INCLUDE}/sys/file.h
1742         if test $? -eq 0        # {
1743         then
1744           LSOF_CFGF="$LSOF_CFGF -DHASF_VNODE"
1745         fi      # }
1746       fi        # }
1747       LSOF_CFGL="$LSOF_CFGL -lkvm"
1748       if test $LSOF_VERS -ge 5000       # {
1749       then
1750
1751       # Do FreeBSD 5 and higher version-specific stuff.
1752
1753         if test -r ${LSOF_INCLUDE}/sys/vnode.h  # {
1754         then
1755           grep VT_FDESC ${LSOF_INCLUDE}/sys/vnode.h > /dev/null 2>&1
1756           if test $? -eq 0      # {
1757           then
1758             if test ! -r ${LSOF_INCLUDE}/fs/devfs/devfs.h       # {
1759             then
1760               if test -r ${FREEBSD_SYS}/fs/devfs/devfs.h        # {
1761               then
1762                 LSOF_DINC_ADD=1
1763               else
1764                 echo "!!!FATAL: lsof cannot locate the devfs.h header file"
1765                 echo "          in ${LSOF_INCLUDE}/fs/devfs/devfs.h or"
1766                 echo "          ${FREEBSD_SYS}/fs/devfs/devfs.h.  Consult"
1767                 echo "          00FAQ for an explanation."
1768                 rm -f $LSOF_HLP
1769                 exit 1
1770               fi        # }
1771             fi  # }
1772           fi    # }
1773         fi      # }
1774
1775       # Do FreeBSD 5.2 and higher version-specific stuff.
1776
1777         if test -r ${LSOF_INCLUDE}/wctype.h     # {
1778         then
1779           LSOF_CFGF="$LSOF_CFGF -DHASWCTYPE_H"
1780         fi      # }
1781         if test $LSOF_VERS -ge 5020     # {
1782         then
1783
1784         # Determine the status of the cpumask_t typedef.
1785
1786           rm -f ${LSOF_TMPC}.*
1787           cat > ${LSOF_TMPC}.c << .LSOF_END_HERE_DOC3
1788 #undef _KERNEL
1789 #include <sys/types.h>
1790 main() {
1791 cpumask_t c;
1792 }
1793 .LSOF_END_HERE_DOC3
1794           $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
1795           LSOF_TMP1=$?
1796           rm -f ${LSOF_TMPC}.*
1797           if test $LSOF_TMP1 -ne 0      # {
1798           then
1799
1800           # The cpumask_t typedef is unknown when _KERNEL is not defined.
1801
1802             if test -r ${LSOF_INCLUDE}/sys/types.h \
1803                     -a -r ${LSOF_INCLUDE}/machine/_types.h      # {
1804             then
1805               grep -q cpumask_t ${LSOF_INCLUDE}/sys/types.h
1806               if test $? -eq 0  # {
1807               then
1808                 grep -q __cpumask_t ${LSOF_INCLUDE}/machine/_types.h
1809                 if test $? -eq 0        # {
1810                 then
1811                   LSOF_CFGF="$LSOF_CFGF -DHASCPUMASK_T"
1812                 else
1813                   $LSOF_CC -E ${LSOF_INCLUDE}/machine/_types.h 2>/dev/null | grep -q __cpumask_t
1814                   if test $? -eq 0  # {
1815                   then
1816                     LSOF_CFGF="$LSOF_CFGF -DHASCPUMASK_T"
1817                   fi    # }
1818                 fi      # }
1819               fi        # }
1820             fi  # }
1821           fi    # }
1822           if test -r ${LSOF_INCLUDE}/sys/socketvar.h    # {
1823           then
1824             grep -q SBS_CANT ${LSOF_INCLUDE}/sys/socketvar.h
1825             if test $? -eq 0    # {
1826             then
1827                 LSOF_CFGF="$LSOF_CFGF -DHASSBSTATE"
1828             fi  # }
1829           fi    # }
1830         fi      # }
1831         if test $LSOF_VERS -ge 5030     # {
1832         then
1833
1834         # Do FreeBSD 5.3 and higher version-specific stuff.
1835
1836           if test -r ${LSOF_INCLUDE}/sys/vnode.h        # {
1837           then
1838             grep -q "defined(_KVM_VNODE)" ${LSOF_INCLUDE}/sys/vnode.h
1839             if test $? -eq 0    # {
1840             then
1841                 LSOF_CFGF="$LSOF_CFGF -DHAS_KVM_VNODE"
1842             fi  #}
1843           fi    # }
1844         fi      # }
1845         if test $LSOF_VERS -ge 6000     # {
1846         then
1847
1848         # Do FreeBSD 6.0 and higher version-specific stuff.
1849
1850           if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h    # {
1851           then
1852             grep -q i_din2 ${LSOF_INCLUDE}/ufs/ufs/inode.h
1853             if test $? -eq 0    # {
1854             then
1855               LSOF_CFGF="$LSOF_CFGF -DHAS_UFS1_2"
1856             fi  # }
1857           fi    # }
1858           if test -r ${LSOF_INCLUDE}/sys/conf.h # {
1859           then
1860             grep -q vm_memattr_t ${LSOF_INCLUDE}/sys/conf.h
1861             if test $? -eq 0    #{
1862             then
1863               LSOF_CFGF="$LSOF_CFGF -DHAS_VM_MEMATTR_T"
1864             fi  # }
1865             grep -q "^#define   minor(" ${LSOF_INCLUDE}/sys/conf.h
1866             if test $? -eq 0    # {
1867             then
1868               LSOF_CFGF="$LSOF_CFGF -DHAS_CONF_MINOR"
1869               rm -f fbsd_minor.h
1870               if test -r ${LSOF_INCLUDE}/sys/types.h    # {
1871               then
1872                 LSOF_TMP1=`grep "^#define[      ]minor(" ${LSOF_INCLUDE}/sys/types.h`
1873                 if test "X$LSOF_TMP1" != "X"    # {
1874                 then
1875                   echo "Creating fbsd_minor.h"
1876                   cat > fbsd_minor.h << FBSD_MINOR1
1877 /*
1878  * fbsd_minor.h -- created by lsof Configure script on
1879 FBSD_MINOR1
1880                   echo $EO " * $EC" >> ./fbsd_minor.h
1881                   date >> ./fbsd_minor.h
1882                   cat >> ./fbsd_minor.h << FBSD_MINOR2
1883  */
1884
1885 #if     !defined(FBSD_MINOR_H)
1886 #define FBSD_MINOR_H
1887
1888 FBSD_MINOR2
1889                   echo $EO "${LSOF_TMP1}${EC}" >> fbsd_minor.h
1890                   cat >> ./fbsd_minor.h << FBSD_MINOR3
1891
1892 #endif  /* defined(FBSD_MINOR_H) */
1893 FBSD_MINOR3
1894                 fi      # }
1895               fi        # }
1896             else
1897               if test -r ${FREEBSD_SYS}/fs/devfs/devfs_int.h    # {
1898               then
1899                 grep -q cdev2priv ${FREEBSD_SYS}/fs/devfs/devfs_int.h
1900                 if test $? -eq 0        # {
1901                 then
1902                   LSOF_CFGF="$LSOF_CFGF -DHAS_CDEV2PRIV"
1903                 fi      # }
1904               fi        # }
1905             fi  # }
1906             grep -q "si_udev;" ${LSOF_INCLUDE}/sys/conf.h
1907             if test $? -ne 0    # {
1908             then
1909               LSOF_CFGF="$LSOF_CFGF -DHAS_NO_SI_UDEV"
1910             fi  # }
1911             grep -q si_priv ${LSOF_INCLUDE}/sys/conf.h
1912             if test $? -eq 0    # {
1913             then
1914               LSOF_CFGF="$LSOF_CFGF -DHAS_SI_PRIV"
1915             fi  # }
1916           fi    # }
1917           if test -r ${LSOF_INCLUDE}/sys/sx.h   # {
1918           then
1919             LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_SX_H"
1920           fi    # }
1921
1922         # Do ZFS test.  Try for the newer OpenSolaris files first -- i.e.,
1923         # the ones in ${FREEBSD_SYS}/cddl/contrib/opensolaris.  If that fails,
1924         # try for the older ones in ${FREEBSD}/contrib/opensolaris.
1925
1926           LSOF_FBSD_ZFS_SYS=${FREEBSD_SYS}/cddl
1927           if test ! -r ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h       # {
1928           then
1929             LSOF_FBSD_ZFS_SYS=${FREEBSD_SYS}
1930             if test ! -r ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h     # {
1931             then
1932               LSOF_FBSD_ZFS_SYS=""
1933             fi  # }
1934           fi    # }
1935           if test "X$LSOF_FBSD_ZFS_SYS" != "X"  # {
1936           then
1937             LSOF_CFGF="$LSOF_CFGF -DHAS_ZFS"
1938             LSOF_FBSD_ZFS=1
1939             LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DFREEBSDV=$LSOF_VERS"
1940             LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_ZFS"
1941             grep -q z_phys ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
1942             if test $? -eq 0    # {
1943             then
1944               LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_Z_PHYS"
1945             fi  # }
1946           fi    # }
1947           if test -r ${LSOF_INCLUDE}/sys/vnode.h        # {
1948           then
1949
1950           # See if the vnode contains the byte level lock pointer.
1951
1952             grep -q v_lockf ${LSOF_INCLUDE}/sys/vnode.h
1953             if test $? -eq 0    # {
1954             then
1955               LSOF_CFGF="$LSOF_CFGF -DHAS_V_LOCKF"
1956               if test $LSOF_FBSD_ZFS -eq 1      # {
1957               then
1958                 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_V_LOCKF"
1959               fi        # }
1960             fi  # }
1961           fi    # }
1962           if test -r ${LSOF_INCLUDE}/sys/lockf.h        # {
1963           then
1964
1965           # Determine the type of locking structure to which the inode or
1966           # vnode points.
1967
1968             grep -q "^struct lockf_entry" ${LSOF_INCLUDE}/sys/lockf.h
1969             if test $? -eq 0    # {
1970             then
1971
1972             # Build the ./lockf_owner.h header file.
1973
1974               LSOF_TMP1=""
1975               LSOF_TMP2=0
1976               echo "Creating ./lockf_owner.h from ${FREEBSD_SYS}/kern/kern_lockf.c"
1977               rm -f ./lockf_owner.h
1978               if test -r ${FREEBSD_SYS}/kern/kern_lockf.c       # {
1979               then
1980                 LSOF_TMP1=`grep -n "^struct lock_owner" ${FREEBSD_SYS}/kern/kern_lockf.c | sed 's/\([0-9]*\):.*$/\1/'`
1981                 if test "X$LSOF_TMP1" != "X"    # {
1982                 then
1983                   LSOF_TMP2=0
1984                   for i in `grep -n "};" ${FREEBSD_SYS}/kern/kern_lockf.c | sed 's/\([0-9]*\):.*$/\1/'` # {
1985                   do
1986                     if test $LSOF_TMP2 -eq 0 -a $i -gt $LSOF_TMP1       # {
1987                     then
1988                       LSOF_TMP2=$i
1989                     fi  # }
1990                   done  # }
1991                   if test $LSOF_TMP2 -eq 0      # {
1992                   then
1993                     LSOF_TMP1=""
1994                   else
1995                     cat > ./lockf_owner.h << LOCKF_OWNER1
1996 /*
1997  * lockf_owner.h -- created by lsof Configure script on
1998 LOCKF_OWNER1
1999                     echo $EO " * $EC" >> ./lockf_owner.h
2000                     date >> ./lockf_owner.h
2001                     cat >> ./lockf_owner.h << LOCKF_OWNER2
2002  */
2003
2004 #if     !defined(LOCKF_OWNER_H)
2005 #define LOCKF_OWNER_H
2006
2007 LOCKF_OWNER2
2008                     ed -s ${FREEBSD_SYS}/kern/kern_lockf.c >> ./lockf_owner.h << LOCKF_OWNER3
2009 ${LSOF_TMP1},${LSOF_TMP2}p
2010 LOCKF_OWNER3
2011                     if test $? -ne 0    # {
2012                     then
2013                       LSOF_TMP1=""
2014                     else
2015                       cat >> ./lockf_owner.h << LOCKF_OWNER4
2016
2017 #endif  /* defined(LOCKF_OWNER_H) */
2018 LOCKF_OWNER4
2019                     fi  # }
2020                   fi    # }
2021                 fi      # }
2022               else
2023                 echo "FATAL ERROR: can't read ${FREEBSD_SYS}/kern/kern_lockf.c"
2024               fi        # }
2025               if test "X$LSOF_TMP1" != "X" -a "X$LSOF_TMP2" != "X0" # {
2026               then
2027                 echo "./lockf_owner.h creation succeeded."
2028                 LSOF_CFGF="$LSOF_CFGF -DHAS_LOCKF_ENTRY"
2029               else
2030                 echo "FATAL ERROR: ./lockf_owner.h creation failed (see 00FAQ)"
2031                 rm -f $LSOF_HLP
2032                 exit 1
2033               fi        # }
2034             fi  # }
2035
2036           # Test for in6p_.port in inpcb structure.
2037
2038             if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
2039             then
2040               grep -q 'in6p_.port' ${LSOF_INCLUDE}/netinet/in_pcb.h
2041               if test $? -ne 0  # {
2042               then
2043                 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_6PORT"
2044               fi        # }
2045             fi  # }
2046
2047           # Test for in6p_ppcb in inpcb structure.
2048
2049             if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
2050             then
2051               grep -q 'in6p_ppcb' ${LSOF_INCLUDE}/netinet/in_pcb.h
2052               if test $? -ne 0  # {
2053               then
2054                 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_6PPCB"
2055               fi        # }
2056             fi  # }
2057             if test -r ${LSOF_INCLUDE}/sys/conf.h       # {
2058             then
2059               grep -q 'doadump(boolean_t)' ${LSOF_INCLUDE}/sys/conf.h
2060               if test $? -eq 0  # {
2061               then
2062                 LSOF_CFGF="$LSOF_CFGF -DNEEDS_BOOLEAN_T"
2063               fi        # }
2064             fi  # |
2065           fi    # }
2066         fi      # }
2067       fi        # }
2068       ;;
2069     esac        # }
2070     LSOF_CFGF="$LSOF_CFGF -DFREEBSDV=$LSOF_VERS"
2071     if test $LSOF_VERS -lt 2000 -a "X$FREEBSD_KERNEL" = "X"     # {
2072     then
2073       if test ! -x $LSOF_N_UNIXV        # {
2074       then
2075         echo "Hmmm -- $LSOF_N_UNIXV doesn't appear to be your kernel file."
2076         echo "Please enter the name of the file in / that contains"
2077         echo "the kernel for this host.  It must be a regular file,"
2078         echo "not a directory, and must be executable."
2079         LSOF_LOOP=1
2080         while test $LSOF_LOOP = 1       # {
2081         do
2082           echo ""
2083           echo "/ contains:"
2084           echo ""
2085           ls -CF /
2086           echo ""
2087           echo -n "Kernel file name? "
2088           read LSOF_N_UNIXV LSOF_EXCESS
2089           LSOF_N_UNIXV="/$LSOF_N_UNIXV"
2090           if test ! -d $LSOF_N_UNIXV -a -x $LSOF_N_UNIXV        # {
2091           then
2092             LSOF_LOOP=0
2093           else
2094             echo ""
2095             echo $LSOF_N_UNIXV is not a regular executable file.
2096           fi    # }
2097         done    # }
2098       fi        # }
2099       LSOF_N_UNIXV=`echo $LSOF_N_UNIXV | sed 's#^/*#/#'`
2100       LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=$LSOF_N_UNIXV"
2101     fi  # }
2102     if test -r ${FREEBSD_SYS}/miscfs/fdesc/fdesc.h      # {
2103     then
2104       LSOF_TMP1=${FREEBSD_SYS}/miscfs/fdesc/fdesc.h
2105     else
2106       if test $LSOF_VERS -ge 5000 -a -r ${LSOF_INCLUDE}/fs/fdescfs/fdesc.h  # {
2107       then
2108         LSOF_TMP1=${LSOF_INCLUDE}/fs/fdescfs/fdesc.h
2109       else
2110         LSOF_TMP1=""
2111       fi        # }
2112     fi  # }
2113     if test "X$LSOF_TMP1" != "X"        # {
2114     then
2115       grep -q Fctty $LSOF_TMP1
2116       if test $? -eq 0  # {
2117       then
2118         LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
2119       else
2120         LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
2121       fi        # }
2122       grep -q fd_link $LSOF_TMP1
2123       if test $? -eq 0  # {
2124       then
2125         LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
2126       fi        # }
2127       LSOF_DINC_ADD=1
2128     fi  # }
2129     if test $LSOF_VERS -ge 5000 # {
2130     then
2131       LSOF_TMP1="fs"
2132     else
2133       LSOF_TMP1="miscfs"
2134     fi  # }
2135     if test $LSOF_VERS -lt 5000 # {
2136       then
2137       if test -d ${FREEBSD_SYS}/${LSOF_TMP1}/procfs     # {
2138       then
2139         LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
2140         LSOF_DINC_ADD=1
2141       fi        # }
2142     else
2143       if test -d ${FREEBSD_SYS}/${LSOF_TMP1}/pseudofs   # {
2144       then
2145         LSOF_CFGF="$LSOF_CFGF -DHASPSEUDOFS"
2146         LSOF_DINC_ADD=1
2147       fi        # }
2148     fi  # }
2149     if test -r ${LSOF_INCLUDE}/${LSOF_TMP1}/nullfs/null.h       # {
2150     then
2151       LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
2152     else
2153       if test -r ${FREEBSD_SYS}/${LSOF_TMP1}/nullfs/null.h      # {
2154       then
2155         LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
2156         LSOF_DINC_ADD=1
2157       fi        # }
2158     fi  # }
2159     if test -r ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h        # {
2160     then
2161       rm -f cd9660_node.h
2162       grep -q "^#ifdef [_]*KERNEL" ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h
2163       if test $? -eq 0  # {
2164       then
2165         ln -s ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h cd9660_node.h
2166       else
2167         sed -e '/^ \* Prototypes for ISOFS vnode operations/,$c\
2168         \ The ISOFS prototypes were removed by Configure. */' \
2169         < ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h > cd9660_node.h
2170         echo "" >> cd9660_node.h
2171       fi        # }
2172       LSOF_CFGF="$LSOF_CFGF -DHAS9660FS"
2173       if test $LSOF_VERS -ge 6000       # {
2174       then
2175         grep -q "i_dev;" cd9660_node.h
2176         if test $? -ne 0        # {
2177         then
2178           LSOF_CFGF="$LSOF_CFGF -DHAS_NO_ISO_DEV"
2179         fi      # }
2180       fi        # }
2181     fi  # }
2182     if test -r ${LSOF_INCLUDE}/sys/namei.h
2183     then
2184       grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
2185       if test $? -eq 0  # {
2186       then
2187         LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
2188       fi        # }
2189     fi  # }
2190     if test $LSOF_DINC_ADD -eq 1        # {
2191     then
2192       if test "X$LSOF_DINC" = "X"       # {
2193       then
2194         LSOF_DINC="-I${FREEBSD_SYS}"
2195       else
2196         LSOF_DINC="$LSOF_DINC -I${LSOF_INCLUDE} -I${FREEBSD_SYS}"
2197       fi        # }
2198     fi  # }
2199     if test -r ${LSOF_INCLUDE}/netinet/in.h     # {
2200     then
2201       grep IPV6_INRIA_VERSION ${LSOF_INCLUDE}/netinet/in.h > /dev/null
2202       if test $? -eq 0  # {
2203       then
2204         LSOF_CFGF="$LSOF_CFGF -DHASIPv6 -DHASINRIAIPv6"
2205       fi        # }
2206     fi  # }
2207     echo $CFGF | grep HASIPv6 > /dev/null
2208     if test $? -ne 0 -a -r ${LSOF_INCLUDE}/netinet6/in6.h       # {
2209     then
2210       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2211     fi  # }
2212     if test -r ${LSOF_INCLUDE}/utmpx.h # {
2213     then
2214       LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
2215     fi  # }
2216     LSOF_DIALECT_DIR=freebsd
2217     ;;
2218
2219 # Configure for HP-UX and HP-UX gcc.
2220
2221   hpux|hpuxgcc)
2222     if test "X$LSOF_RANLIB_SUP" = "X"   # {
2223     then
2224       LSOF_RANLIB=""
2225     fi  # }
2226     if test "X$LSOF_VSTR" = "X" # {
2227     then
2228       LSOF_VSTR=`uname -r`
2229     fi  # }
2230     if test "X$LSOF_VERS" = "X" # {
2231     then
2232
2233       # If the HP-UX version isn't pre-defined, determine it.
2234
2235       LSOF_VERS=`echo $LSOF_VSTR | awk -F. '{printf "%d%02d",\$2,\$3}'`
2236     fi  # }
2237     if test $LSOF_VERS -ge 1020 # {
2238     then
2239       LSOF_TSTBIGF="-D_LARGEFILE64_SOURCE"
2240     fi  # }
2241
2242     # Determine compiler.
2243
2244     if test "X$LSOF_CC" = "X"   # {
2245     then
2246       if test "X$LSOF_TGT" = "Xhpuxgcc" # {
2247       then
2248         LSOF_CC=gcc
2249       else
2250         if test "X$HPUX_CCDIR1" = "X"   # {
2251         then
2252           HPUX_CCDIR1="/bin"
2253         fi      # }
2254         if test "X$HPUX_CCDIR2" = "X"   # {
2255         then
2256           HPUX_CCDIR2="/usr/ccs/bin"
2257         fi      # }
2258         if test -x ${HPUX_CCDIR1}/cc    # {
2259         then
2260           LSOF_CC=${HPUX_CCDIR1}/cc
2261         else
2262           if test -x ${HPUX_CCDIR2}/cc  # {
2263           then
2264             LSOF_CC=${HPUX_CCDIR2}/cc
2265           else
2266             echo "No executable cc in $HPUX_CCDIR1 or $HPUX_CCDIR2"
2267             rm -f $LSOF_HLP
2268             exit 1
2269           fi    # }
2270         fi      # }
2271         $LSOF_CC -O < /dev/null 2>&1 | grep -q Bundled
2272         if test $? -eq 0        # {
2273         then
2274           LSOF_DEBUG="No-O"                     # to disable -O
2275           if test "X$HPUX_LIBC1" = "X"  # {
2276           then
2277             HPUX_LIBC1="/usr/lib"
2278           fi    # }
2279           if test -r ${HPUX_LIBC1}/libc.sl      # {
2280           then
2281             LSOF_FCFGL="-L$HPUX_LIBC -lc"
2282           else
2283             if test "X$HPUX_LIBC2" = "X"        # {
2284             then
2285               HPUX_LIBC2="/usr/lib"
2286             fi  # }
2287             if test -r ${HPUX_LIBC2}/libc.sl    # {
2288             then
2289               LSOF_FCFGL="-L$HPUX_LIBC2 -lc"
2290             fi  # }
2291           fi    # }
2292         fi      # }
2293       fi        # }
2294     fi  # }
2295     echo $LSOF_CC | grep gcc > /dev/null
2296     if test $? -eq 0    # {
2297     then
2298       LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
2299     else
2300       $LSOF_CC -O < /dev/null 2>&1 | grep -q Bundled
2301       if test $? -eq 0  # {
2302       then
2303         LSOF_DEBUG="No-O"                       # to disable -O
2304       fi        # }
2305     fi  # }
2306     LSOF_TGT=hpux
2307
2308     # Test for "const void" support.
2309
2310     rm -f ${LSOF_TMPC}.*
2311     echo "main() { const void *x; return(0); }" >> $LSOF_TMPC.c
2312     $LSOF_CC $LSOF_TMPC.c -o $LSOF_TMPC.x > /dev/null 2>&1
2313     if test $? -eq 0    # {
2314     then
2315       LSOF_CFGF="$LSOF_CFGF -DHAS_CONST"
2316     fi  # }
2317     rm -f ${LSOF_TMPC}.*
2318
2319     # Test HP-UX base.
2320
2321     if test "X$HPUX_BASE" = "X" # {
2322     then
2323       if test -d $LSOF_INCLUDE/sys/pstat -a $LSOF_VERS -ge 1111         # {
2324       then
2325         HPUX_BASE="pstat"
2326       else
2327         HPUX_BASE="/dev/kmem"
2328       fi        # }
2329     fi  # }
2330     if test "X$HPUX_BASE" = "Xpstat"    # {
2331     then
2332
2333       # Configure for pstat-based HP-UX lsof.
2334
2335       LSOF_CINFO="PSTAT-based"
2336       echo "Configuring PSTAT-based HP-UX lsof"
2337       LSOF_DIALECT_DIR=hpux/pstat
2338       LSOF_CFGF="$LSOF_CFGF -DHPUXV=$LSOF_VERS -D_PSTAT64"
2339       LSOF_CFGL="$LSOF_CFGL -lnsl"
2340       LSOF_TSTKMEM=0
2341       LSOF_TSTK64=1
2342       ls -l $LSOF_CC | grep -q ansic
2343       LSOF_TMP1=$?
2344       ls -l $LSOF_CC | grep -q aCC
2345       if test $? -eq 0 -o $LSOF_TMP1 -eq 0      # {
2346       then
2347         LSOF_CFGF="$LSOF_CFGF -Ae +DD32"
2348       else
2349         echo $LSOF_CC | grep -q gcc
2350         if test $? -ne 0        # {
2351         then
2352           LSOF_CFGF="$LSOF_CFGF +DD32"
2353         fi      # }
2354       fi        # }
2355       if test -r ${LSOF_INCLUDE}/netinet/in6.h  # {
2356       then
2357         LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2358       fi        # }
2359       if test -r ${LSOF_INCLUDE}/sys/pstat/stream_pstat_body.h  # {
2360       then
2361         grep -q PS_STR_XPORT_DATA ${LSOF_INCLUDE}/sys/pstat/stream_pstat_body.h
2362         if test $? -eq 0        # {
2363         then
2364           LSOF_CFGF="$LSOF_CFGF -D_PSTAT_STREAM_GET_XPORT"
2365         fi      # }
2366       fi        # }
2367       if test $LSOF_VERS -ge 1123       # {
2368       then
2369         LSOF_CFGF="$LSOF_CFGF -D_LARGEFILE64_SOURCE"
2370       fi        # }
2371     else
2372       if test "X$HPUX_BASE" = "X/dev/kmem"      # {
2373       then
2374     
2375         # Configure for /dev/kmem-based HP-UX lsof.
2376
2377         if test "X$HPUX_BOOTFILE" = "X" # {
2378         then
2379           HPUX_BOOTFILE="/stand/vmunix"
2380         fi      # }
2381         if test $LSOF_VERS -gt 1100     # {
2382         then
2383           echo ""
2384           echo "************************************************"
2385           echo "*                                              *"
2386           echo "* !!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!! *"
2387           echo "*                                              *"
2388           echo "* LSOF DOES NOT SUPPORT THIS VERSION OF HP-UX. *"
2389           echo "*                                              *"
2390           echo "************************************************"
2391           echo ""
2392           rm -f $LSOF_HLP
2393           exit 1
2394         fi      # }
2395         LSOF_CFGF="$LSOF_CFGF -DHPUXV=$LSOF_VERS"
2396         LSOF_CINFO="/dev/kmem-based"
2397         LSOF_DIALECT_DIR=hpux/kmem
2398         echo "Configuring /dev/kmem-based HP-UX lsof"
2399         if test $LSOF_VERS -lt 1000     # {
2400         then
2401           if test "X$HPUX_X25DIR" = "X" # {
2402           then
2403             HPUX_X25DIR="/etc/conf"
2404           else
2405             HPUX_X25DIR=$HPUX_X25DIR
2406           fi    # }
2407           if test -r ${HPUX_X25DIR}/x25/x25addrstr.h    # {
2408           then
2409             LSOF_CFGF="$LSOF_CFGF -DHPUX_CCITT"
2410             LSOF_DINC="$LSOF_DINC -I$HPUX_X25DIR"
2411           fi    # }
2412         fi      # }
2413         if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h -a -r ${LSOF_INCLUDE}/sys/fs/vx_hpux.h     # {
2414         then
2415           LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
2416         fi      # }
2417         if test $LSOF_VERS -ge 1030     # {
2418         then
2419           if test "X$HPUX_KERNBITS" = "X"       # {
2420           then
2421             HPUX_KERNBITS=`getconf _SC_KERNEL_BITS`
2422           fi    # }
2423           LSOF_CFGF="$LSOF_CFGF -DHPUXKERNBITS=${HPUX_KERNBITS} -I`pwd`/dialects/hpux/kmem/hpux11"
2424           if test $HPUX_KERNBITS -eq 64 # {
2425           then
2426             LSOF_TSTK64=1
2427             echo ""
2428             echo "*****************************************"
2429             echo "*                                       *"
2430             echo "* NOTICE!  Configuring for 64 bit HP-UX *"
2431             echo "*                                       *"
2432             echo "*****************************************"
2433             echo $LSOF_CC | grep gcc > /dev/null
2434             if test $? -eq 0    # {
2435             then
2436
2437             # Test gcc for 64 bit support, trying gcc with no options, then
2438             # with -mlp64, testing the result with file.
2439
2440               echo ""
2441               echo "Testing $LSOF_CC for 64 bit support"
2442               rm -f ${LSOF_TMPC}.*
2443               echo "main(){}" > ${LSOF_TMPC}.c
2444               LSOF_TMP1=""
2445               $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
2446               if test $? -eq 0  # {
2447               then
2448                 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
2449                 if test $? -eq 0        # {
2450                 then
2451                     LSOF_TMP1=" "
2452                 fi      # }
2453               fi        # }
2454               if test "X$LSOF_TMP1" = "X"       # {
2455               then
2456                 rm -f ${LSOF_TMPC}.x
2457                 $LSOF_CC ${LSOF_TMPC}.c -mlp64 -o ${LSOF_TMPC}.x > /dev/null 2>&1
2458                 if test $? -eq 0        # {
2459                 then
2460                   /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
2461                   if test $? -eq 0      # {
2462                   then
2463                       LSOF_TMP1="-mlp64"
2464                   fi    # }
2465                 fi      # }
2466               fi        # }
2467               rm -f ${LSOF_TMPC}.*
2468               if test "X$LSOF_TMP1" = "X"       # {
2469               then
2470                 echo ""
2471                 echo "***************************************************"
2472                 echo "*                                                 *"
2473                 echo "* !!!!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!!! *"
2474                 echo "*                                                 *"
2475                 echo "* APPARENTLY GCC CANNOT BUILD 64 BIT EXECUTABLES. *"
2476                 echo "* A COMPILER MUST BE USED THAT CAN.  SEE 00FAQ    *"
2477                 echo "* FOR MORE INFORMATION.                           *"
2478                 echo "*                                                 *"
2479                 echo "***************************************************"
2480                 echo ""
2481                 rm -f $LSOF_HLP
2482                 exit 1
2483               else
2484                 if test "X$LSOF_TMP1" != "X "   # {
2485                 then
2486                   LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
2487                 fi      # }
2488                 LSOF_CFGL="$LSOF_CFGL -lelf"
2489                 LSOF_CINFO="${LSOF_CINFO}, 64 bit HP-UX"
2490               fi        # }
2491             else
2492
2493             # Set options for the HP-UX compiler.
2494
2495               LSOF_CFGF="$LSOF_CFGF +DD64"
2496               LSOF_CFGL="$LSOF_CFGL -lelf"
2497               LSOF_CINFO="${LSOF_CINFO}, 64 bit HP-UX"
2498             fi  # }
2499           else
2500             LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64"
2501             LSOF_CINFO="${LSOF_CINFO}, 32 bit HP-UX"
2502             echo $LSOF_CC | grep gcc > /dev/null
2503             if test $? -ne 0    # {
2504             then
2505               LSOF_CFGF="$LSOF_CFGF +DAportable"
2506             fi  # }
2507           fi    # }
2508           LSOF_CFGL="$LSOF_CFGL -lnsl"
2509         else
2510
2511         # When HP-UX is less than 10.30, but greater than or equal to 10,
2512         # check NFS3 rnode status.
2513
2514           if test $LSOF_VERS -ge 1000   # {
2515           then
2516             LSOF_TMP1=0
2517             if test "X$HPUX_RNODE3" = "X"       # {
2518             then
2519               nm -x $HPUX_BOOTFILE | grep -q nfs_vnodeops3
2520               if test $? -eq 0  # {
2521               then
2522                 if test -r ${LSOF_INCLUDE}/nfs/rnode.h  # {
2523                 then
2524                   grep -q r_fh3 ${LSOF_INCLUDE}/nfs/rnode.h
2525                   if test $? -ne 0      # {
2526                   then
2527                     LSOF_TMP1=1
2528                   fi    # }
2529                 fi      # }
2530               fi        # }
2531             else
2532               if test "X$HPUX_RNODE3" = "X1"    # {
2533               then
2534                 LSOF_TMP1=1
2535               fi        # }
2536             fi  # }
2537             if test $LSOF_TMP1 -eq 1    # {
2538             then
2539               LSOF_CFGF="$LSOF_CFGF -DHASRNODE3"
2540             fi  # }
2541           fi # }
2542         fi      # }
2543         if test $LSOF_VERS -eq 1100     # {
2544         then
2545
2546         # Test for the ipis_s structure.  If it is present, set HAS_IPC_S_PATCH.
2547
2548           if test "X$HPUX_IPC_S_PATCH" = "X"    # {
2549           then
2550             if test -x /usr/contrib/Q4/bin/q4exe        # {
2551             then
2552               LSOF_TMP=/usr/contrib/Q4/bin/q4exe
2553             else
2554               LSOF_TMP=/usr/contrib/bin/q4
2555             fi  # }
2556             if test -x $LSOF_TMP        # {
2557             then
2558               rm -f ${LSOF_TMPC}.out
2559               echo ""
2560               echo $EO "Looking in $HPUX_BOOTFILE for ipis_s with $LSOF_TMP ... $EC"
2561               echo "yes\\nfields -c struct ipis_s" | $LSOF_TMP $HPUX_BOOTFILE > ${LSOF_TMPC}.out 2>&1
2562               if test $? -ne 0  # {
2563               then
2564                 echo ""
2565                 echo ""
2566                 echo "!!!ERROR!!! $LSOF_TMP failed and produced the following output."
2567                 echo ""
2568                 cat ${LSOF_TMPC}.out
2569                 HPUX_IPC_S_PATCH=fail
2570               else
2571                 grep ipis_s ${LSOF_TMPC}.out > /dev/null 2>&1
2572                 if test $? -eq 0        # {
2573                 then
2574                   echo "ipis_s exists."
2575
2576                 # See if ipis_msgsqueued is present.
2577
2578                   grep ipis_msgsqueued ${LSOF_TMPC}.out > /dev/null 2>&1
2579                   if test $? -eq 0      # {
2580                   then
2581                     HPUX_IPC_S_PATCH=2
2582                   else
2583                     HPUX_IPC_S_PATCH=1
2584                   fi    # }
2585                 else
2586                   echo "ipis_s doesn't exist."
2587                   HPUX_IPC_S_PATCH=N
2588                 fi      # }
2589               fi        # }
2590               rm -f ${LSOF_TMPC}.out
2591             else
2592               echo "Can't locate or execute $LSOF_TMP"
2593               echo $EO "ls says: $EC"
2594               ls -ld $LSOF_TMP
2595               HPUX_IPC_S_PATCH=fail
2596             fi  # }
2597           fi    # }
2598           if test "X$HPUX_IPC_S_PATCH" = "Xfail"        # {
2599           then
2600             echo ""
2601             echo "!!!ERROR!!!     !!!ERROR!!!     !!!ERROR!!!     !!!ERROR!!!"
2602             echo "Configure can't use $LSOF_TMP to examine the ipis_s"
2603             echo "structure.  You must do that yourself, report the result in"
2604             echo "the HPUX_IPC_S_PATCH environment variable, then repeat the"
2605             echo "Configure step.  Consult the Configure script's use of"
2606             echo "$LSOF_TMP and the 00XCONFIG file for information"
2607             echo "on ipis_s testing and the setting of HPUX_IPC_S_PATCH."
2608             echo "!!!ERROR!!!     !!!ERROR!!!     !!!ERROR!!!     !!!ERROR!!!"
2609             echo ""
2610             rm -f $LSOF_HLP
2611             exit 1
2612           fi    # }
2613           if test "X$HPUX_IPC_S_PATCH" = "X1" -o "X$HPUX_IPC_S_PATCH" = "X2" # {
2614           then
2615             LSOF_CFGF="$LSOF_CFGF -DHAS_IPC_S_PATCH=$HPUX_IPC_S_PATCH"
2616           else
2617             if test "X$HPUX_IPC_S_PATCH" != "Xn" -a "X$HPUX_IPC_S_PATCH" != "XN" # {
2618             then
2619               echo "Illegal value for HPUX_IPC_S_PATCH: $HPUX_IPC_S_PATCH"
2620               rm -f $LSOF_HLP
2621               exit 1
2622             fi  # }
2623           fi    # }
2624         fi      #}
2625
2626         # Manufacture an hpux_mount.h header file with a mount struct in it, as
2627         # required.
2628
2629         if test -r ${LSOF_INCLUDE}/sys/mount.h  # {
2630         then
2631           LSOF_TMP1="dialects/${LSOF_DIALECT_DIR}/hpux_mount.h"
2632           rm -f $LSOF_TMP1
2633           echo "#if !defined(MANUFACTURED_HPUX_SYS_MOUNT_H)" > $LSOF_TMP1
2634           echo "#define MANUFACTURED_HPUX_SYS_MOUNT_H" >> $LSOF_TMP1
2635           echo "/* By lsof Configure:" `date` " */" >> $LSOF_TMP1
2636           echo "struct mount" >> $LSOF_TMP1
2637           sed '1,/struct mount/d' ${LSOF_INCLUDE}/sys/mount.h | sed -n '1,/m_dev/p' >> $LSOF_TMP1
2638           echo "};" >> $LSOF_TMP1
2639           echo "#endif" >> $LSOF_TMP1
2640           LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/${LSOF_DIALECT_DIR}"
2641         fi      # }
2642
2643         # Test for OnlineJFS.
2644
2645         if test $LSOF_VERS -ge 1100     # {
2646         then
2647           if test "X$HPUX_HASONLINEJFS" = "X" -a -x /sbin/fs/vxfs/subtype  # {
2648           then
2649             LSOF_TMP1=`/sbin/fs/vxfs/subtype`
2650             if test "X$LSOF_TMP1" = "Xvxfs3.3"
2651             then
2652               HPUX_HASONLINEJFS="Y"
2653             fi  # }
2654           fi    # }
2655           if test "X$HPUX_HASONLINEJFS" = "XY" -o "X$HPUX_HASONLINEJFS" = "Xy"
2656           # {
2657           then
2658             LSOF_CFGF="$LSOF_CFGF -DHASONLINEJFS"
2659           fi    # }
2660         fi      # }
2661
2662         # Test for AFS.
2663
2664         if test -r ${AFS_VICE}/etc/ThisCell     # {
2665         then
2666           if test "X$LSOF_SCRIPT_CALL" = "Xno"  # {
2667           then
2668             if test -r ./AFSHeaders -a -r ./AFSVersion  # {
2669             then
2670               LSOF_AFS="yes"
2671             fi  # }
2672           else
2673             if test ! -x ./AFSConfig    # {
2674             then
2675               echo "Can't find or execute the AFSConfig script"
2676               rm -f $LSOF_HLP
2677               exit 1
2678             fi  # }
2679             ./AFSConfig
2680             if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion      # {
2681             then
2682               LSOF_AFS="yes"
2683             fi  # }
2684           fi    # }
2685           if test "X$LSOF_AFS" = "Xyes" # {
2686           then
2687             LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
2688             LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
2689             LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
2690           fi    # }
2691         fi      # }
2692       else
2693         echo "HP-UX base unrecognized: $HPUX_BASE"
2694         rm -f $LSOF_HLP
2695         exit 1
2696       fi        # }
2697     fi  # }
2698     ;;
2699
2700 # Configure for Linux.
2701
2702   linux)
2703     LSOF_TSTBIGF="-D_FILE_OFFSET_BITS=64"
2704     LSOF_TSTKMEM=0
2705     if test "X$LSOF_CC" = "X"   # {
2706     then
2707       LSOF_CC=cc
2708       LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
2709     fi  # }
2710     if test "X$LINUX_CONF_CC" = "X"     # {
2711     then
2712       LINUX_CONF_CC=$LSOF_CC
2713     fi  #}
2714     LSOF_DIALECT_DIR=""
2715     if test "X$LINUX_INCL" = "X" # {
2716     then
2717       LINUX_INCL=/usr/include
2718     else
2719       LSOF_DINC="$LSOF_DINC -I${LINUX_INCL}"
2720     fi  # }
2721     if test "X$LINUX_VERSION_CODE" = "X" # {
2722     then
2723       if test -r "$LINUX_INCL/linux/version.h" # {
2724       then
2725         LINUX_VERSION_CODE=`cat $LINUX_INCL/linux/version.h | sed -n 's/.\+LINUX_VERSION_CODE \([[:digit:]]\+\)$/\1/p'`
2726       fi # }
2727     fi # }
2728     LSOF_VSTR=`echo $LINUX_VERSION_CODE | perl -e '$version=<STDIN>; chomp($version); printf("%d.%d.%d\n", ($version >> 16) & 0xFF, ($version >> 8) & 0xFF, $version & 0xFF);'`
2729     if test "X$LSOF_VSTR" = "X" # {
2730     then
2731       LSOF_VSTR=`uname -r`
2732     fi  # }
2733     if test "X$LSOF_VERS" = "X" # {
2734     then
2735
2736       # If the Linux version isn't predefined, determine it.
2737
2738       LSOF_VERS=`echo $LSOF_VSTR | sed 's/\./ /g' | awk '{printf "%d%d%03d",\$1,\$2,\$3}'`
2739     fi  # }
2740     LSOF_CFGF="$LSOF_CFGF -DLINUXV=$LSOF_VERS"
2741     if test $LSOF_VERS -lt 21072        # {
2742     then
2743       echo ""
2744         echo "!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!"
2745         echo "!                                                        !"
2746         echo "! THE /PROC-BASED LSOF SOURCES HAVE NOT BEEN TESTED ON   !"
2747         echo "! LINUX KERNELS BELOW 2.1.72, AND MAY NOT WORK ON THIS   !"
2748         echo "! KERNEL.  IT SHOULD USE A /DEV/KMEM-BASED LSOF.         !"
2749         echo "!                                                        !"
2750         echo "!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!"
2751         echo ""
2752     else
2753       LSOF_UNSUP=""
2754     fi  # }
2755
2756     # If the Linux C library type isn't predefined, determine it.
2757
2758     if test "X$LINUX_CLIB" = "X"        # {
2759     then
2760       echo -n "Testing C library type with $LINUX_CONF_CC ... "
2761       rm -f ${LSOF_TMPC}.*
2762       cat > $LSOF_TMPC.c << .LSOF_END_HERE_DOC1
2763 #include <features.h>
2764 main() {
2765 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
2766 printf("-DGLIBCV=%d\n",__GLIBC__*100+__GLIBC_MINOR__);
2767 #elif defined(__GLIBC__)
2768 printf("-DGLIBCV=%d00\n",__GLIBC__);
2769 #else
2770 printf("\n");
2771 #endif
2772 return(0); }
2773 .LSOF_END_HERE_DOC1
2774       $LINUX_CONF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
2775       if test -x ${LSOF_TMPC}.x # {
2776       then
2777         LINUX_CLIB=`${LSOF_TMPC}.x`
2778         LSOF_TMP=$?
2779       else
2780         LINUX_CLIB=""
2781         LSOF_TMP=1
2782       fi        # }
2783       rm -f ${LSOF_TMPC}.*
2784       echo "done"
2785       if test $LSOF_TMP -ne 0   # {
2786       then
2787         echo "Cannot determine C library type; assuming it is not glibc."
2788         LINUX_CLIB=""
2789       else
2790         if test "X$LINUX_CLIB" = "X"    # {
2791         then
2792           echo "The C library type is not glibc."
2793         else
2794           echo "The C library type is glibc, version \"$LINUX_CLIB\"."
2795         fi      # }
2796       fi        # }
2797     fi  # }
2798     if test "X$LINUX_CLIB" != "X"       # {
2799     then
2800       LSOF_CFGF="$LSOF_CFGF $LINUX_CLIB"
2801     fi  # }
2802
2803     # Test for IPv6 support.
2804
2805     if test -r ${LSOF_INCLUDE}/netinet/ip6.h    # {
2806     then
2807       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2808     fi  # }
2809
2810     # Test for <rpc/rpc.h>.
2811
2812     if ! test -r ${LSOF_INCLUDE}/rpc/rpc.h      # {
2813     then
2814       LSOF_CFGF="$LSOF_CFGF -DHASNORPC_H"
2815     fi  # }
2816
2817     # Test for SELinux support.
2818
2819     LSOF_TMP1=0
2820     if test "X$LINUX_HASSELINUX" = "X"  # {
2821     then
2822       if test -r ${LSOF_INCLUDE}/selinux/selinux.h      # {
2823       then
2824         LSOF_TMP1=1
2825       fi        # }
2826     else
2827       if test "X$LINUX_HASSELINUX" = "XY" -o "X$LINUX_HASSELINUX" = "Xy" # {
2828       then
2829         LSOF_TMP1=1
2830       fi        # }
2831     fi  # }
2832     if test $LSOF_TMP1 -eq 1    # {
2833     then
2834       LSOF_CFGF="$LSOF_CFGF -DHASSELINUX"
2835       LSOF_CFGL="$LSOF_CFGL -lselinux"
2836     fi  # }
2837     LSOF_DIALECT_DIR="linux"
2838     LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
2839     ;;
2840
2841 # Configure for NetBSD.
2842
2843   netbsd)
2844     if test "X$LSOF_CC" = "X"   # {
2845     then
2846       LSOF_CC=cc
2847       LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
2848     fi  # }
2849     if test "X$LSOF_VSTR" = "X" # {
2850     then
2851       LSOF_VSTR=`uname -r`
2852     fi  # }
2853     if test "X$LSOF_VERS" = "X" # {
2854     then
2855       
2856       # Validate the NetBSD version.
2857
2858       case $LSOF_VSTR in        # {
2859       1.2*)
2860         LSOF_VERS="1002000"
2861         ;;
2862       1.3*)
2863         LSOF_VERS="1003000"
2864         ;;
2865       1.4*)
2866         LSOF_VERS="1004000"
2867         ;;
2868       1.5*)
2869         LSOF_TSTBIGF=" "
2870         LSOF_VERS="1005000"
2871         ;;
2872       1.6*)
2873         LSOF_TSTBIGF=" "
2874         LSOF_VERS="1006000"
2875         ;;
2876       1*)
2877         LSOF_VERS="1006000"
2878         echo "!!!WARNING!!!  Unsupported NetBSD version: $LSOF_VSTR"
2879         echo "!!!WARNING!!!  Configuring for NetBSD 1.6"
2880         ;;
2881       2.0*)
2882         LSOF_TSTBIGF=" "
2883         LSOF_VERS="2000000"
2884         ;;
2885       2.99.9)
2886         LSOF_TSTBIGF=" "
2887         LSOF_VERS="2099009"
2888         ;;
2889       2.99.10)
2890         LSOF_TSTBIGF=" "
2891         LSOF_VERS="2099010"
2892         ;;
2893       2.99.*)
2894         LSOF_TSTBIGF=" "
2895         LSOF_VERS="2099010"
2896         ;;
2897       2*)
2898         LSOF_VERS="2000000"
2899         echo "!!!WARNING!!!  Unsupported NetBSD version: $LSOF_VSTR"
2900         echo "!!!WARNING!!!  Configuring for NetBSD 2.0"
2901         ;;
2902       3.0*)
2903         LSOF_TSTBIGF=" "
2904         LSOF_VERS="3000000"
2905         ;;
2906       3.99.*)
2907         LSOF_TSTBIGF=" "
2908         LSOF_VERS="3099000"
2909         ;;
2910       3*)
2911         LSOF_VERS="3000000"
2912         echo "!!!WARNING!!!  Unsupported NetBSD version: $LSOF_VSTR"
2913         echo "!!!WARNING!!!  Configuring for NetBSD 3.0"
2914         ;;
2915       *)
2916         echo "Unknown NetBSD release: $LSOF_VSTR"
2917         echo Assuming NetBSD 1.6
2918         LSOF_VERS="1006000"
2919         ;;
2920       esac      # }
2921     fi  # }
2922
2923     # Test for legal NetBSD version.
2924
2925     case $LSOF_VERS in  # {
2926     1002000|1003000|1004000|1005000|1006000)
2927       ;;
2928     2000000|2099009|2099010)
2929       ;;
2930     3000000|3099000)
2931       ;;
2932     *)
2933       echo "Unknown NetBSD version: $LSOF_VERS"
2934       rm -f $LSOF_HLP
2935       exit 1
2936       ;;
2937     esac        # }
2938     LSOF_CFGF="$LSOF_CFGF -DNETBSDV=$LSOF_VERS"
2939     LSOF_TMP1="-DN_UNIXV=/netbsd"
2940     if test -r ${LSOF_INCLUDE}/util.h   # {
2941     then
2942       grep -q getbootfile ${LSOF_INCLUDE}/util.h
2943       if test $? -eq 0  # {
2944       then
2945         LSOF_CFGL="$LSOF_CFGL -lutil"
2946         LSOF_TMP1="-DHASGETBOOTFILE"
2947       fi        # }
2948     fi  # }
2949     LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
2950     if test -r ${LSOF_INCLUDE}/kvm.h    # {
2951     then
2952       grep -q kvm_getproc2 ${LSOF_INCLUDE}/kvm.h
2953       if test $? -eq 0  # {
2954       then
2955           LSOF_CFGF="$LSOF_CFGF -DHASKVMGETPROC2"
2956       fi        # }
2957     fi  # }
2958
2959   # Here begin the dual tests on header files that may be in $LSOF_INCLUDE
2960   # or $NETBSD_SYS.
2961   #
2962   # Note that $LSOF_TMP1 holds an indicator of the need for -I$NETBSD_SYS.
2963   # LSOF_TMP4 contains a temporary indicator of the use of $NETBSD_SYS.
2964
2965     LSOF_TMP1=0
2966     if test "X$NETBSD_SYS" = "X"        # {
2967     then
2968       if test -d /usr/src       # {
2969       then
2970         NETBSD_SYS="/usr/src/sys"
2971       else
2972         NETBSD_SYS=$LSOF_INCLUDE
2973       fi        # }
2974     fi  # }
2975     LSOF_TMP2="nfs/nfsproto.h"
2976     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
2977     then
2978       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
2979       LSOF_TMP4=0
2980     else
2981       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
2982       then
2983         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
2984         LSOF_TMP4=1
2985       else
2986         LSOF_TMP3=""
2987       fi        # }
2988     fi  # }
2989     if test "X$LSOF_TMP3" != "X"        # {
2990     then
2991       LSOF_CFGF="$LSOF_CFGF -DHASNFSPROTO"
2992       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
2993       then
2994         LSOF_TMP1=1
2995       fi        # }
2996     fi  # }
2997     LSOF_TMP2="netinet/ip6.h"
2998     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
2999     then
3000       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3001       LSOF_TMP4=0
3002     else
3003       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3004       then
3005         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3006         LSOF_TMP4=1
3007       else
3008         LSOF_TMP3=""
3009       fi        # }
3010     fi  # }
3011     if test "X$LSOF_TMP3" != "X"        # {
3012     then
3013       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
3014       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3015       then
3016         LSOF_TMP1=1
3017       fi        # }
3018     else
3019       LSOF_TMP2="netinet/in.h"
3020       if test -r ${LSOF_INCLUDE}/$LSOF_TMP2     # {
3021       then
3022         LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3023         LSOF_TMP4=0
3024       else
3025         if test -r ${NETBSD_SYS}/$LSOF_TMP2     # {
3026         then
3027           LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3028           LSOF_TMP4=1
3029         else
3030           LSOF_TMP3=""
3031         fi      # }
3032       fi        # }
3033       if test "X$LSOF_TMP3" != "X"      # {
3034       then
3035         grep -q IPV6_INRIA_VERSION $LSOF_TMP3
3036         if test $? -eq 0        # {
3037         then
3038           LSOF_CFGF="$LSOF_CFGF -DHASIPv6 -DHASINRIAIPv6"
3039           if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1  # {
3040           then
3041             LSOF_TMP1=1
3042           fi    # }
3043         fi      # }
3044       fi # }
3045     fi  # }
3046     LSOF_TMP2="miscfs/fdesc/fdesc.h"
3047     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3048     then
3049       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3050     else
3051       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3052       then
3053         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3054         LSOF_TMP4=1
3055       else
3056         LSOF_TMP3=""
3057       fi        # }
3058     fi  # }
3059     if test "X$LSOF_TMP3" != "X"        # {
3060     then
3061       grep -q Fctty $LSOF_TMP3
3062       if test $? -eq 0  # {
3063       then
3064         LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
3065       else
3066         LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
3067       fi        # }
3068       grep -q fd_link $LSOF_TMP3
3069       if test $? -eq 0  # {
3070       then
3071         LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
3072       fi        # }
3073       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3074       then
3075         LSOF_TMP1=1
3076       fi        # }
3077     fi  # }
3078     LSOF_TMP2="miscfs/nullfs/null.h"
3079     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3080     then
3081       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3082       LSOF_TMP4=0
3083     else
3084       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3085       then
3086         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3087         LSOF_TMP4=1
3088       else
3089         LSOF_TMP3=""
3090       fi        # }
3091     fi  # }
3092     if test "X$LSOF_TMP3" != "X"        # {
3093     then
3094       LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
3095       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3096       then
3097         LSOF_TMP1=1
3098       fi        # }
3099     fi  # }
3100     LSOF_TMP2="miscfs/procfs"
3101     if test -d ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3102     then
3103       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3104       LSOF_TMP4=0
3105     else
3106       if test -d ${NETBSD_SYS}/$LSOF_TMP2       # {
3107       then
3108         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3109         LSOF_TMP4=1
3110       else
3111         LSOF_TMP3=""
3112       fi        # }
3113     fi  # }
3114     if test "X$LSOF_TMP3" != "X"        # {
3115     then
3116       LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
3117       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3118       then
3119         LSOF_TMP1=1
3120       fi        # }
3121       if test -r ${LSOF_TMP3}/procfs.h  # {
3122       then
3123         grep -q PFSroot ${LSOF_TMP3}/procfs.h
3124         if test $? -eq 0        # {
3125         then
3126           LSOF_CFGF="$LSOF_CFGF -DHASPROCFS_PFSROOT"
3127         fi #    }
3128       fi        # }
3129     fi  # }
3130     LSOF_TMP2="sys/bufq.h"
3131     LSOF_NBSD_BUFQH=0
3132     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3133     then
3134       LSOF_CFGF="$LSOF_CFGF -DHASBUFQ_H"
3135     else
3136       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3137       then
3138         if test $NETBSD_SYS != $LSOF_INCLUDE    # {
3139         then
3140           LSOF_CFGF="$LSOF_CFGF -DHASBUFQ_H"
3141           LSOF_NBSD_BUFQH=1
3142         fi      # }
3143       fi        # }
3144     fi  # }
3145     LSOF_TMP2="isofs/cd9660"
3146     if test -d ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3147     then
3148       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3149       LSOF_TMP4=0
3150     else
3151       if test -d ${NETBSD_SYS}/$LSOF_TMP2       # {
3152       then
3153         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3154         LSOF_TMP4=1
3155       else
3156         LSOF_TMP3=""
3157       fi        # }
3158     fi  # }
3159     if test "X$LSOF_TMP3" != "X"        # {
3160     then
3161       LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
3162       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3163       then
3164         LSOF_TMP1=1
3165       fi        # }
3166     else
3167       LSOF_TMP2="fs/cd9660"
3168       if test -d ${LSOF_INCLUDE}/$LSOF_TMP2     # {
3169       then
3170         LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3171         LSOF_TMP4=0
3172       else
3173         if test -d ${NETBSD_SYS}/$LSOF_TMP2     # {
3174         then
3175           LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3176           LSOF_TMP4=1
3177         else
3178           LSOF_TMP3=""
3179         fi      # }
3180       fi        # }
3181       if test "X$LSOF_TMP3" != "X"      # {
3182       then
3183         LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
3184         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3185         then
3186           LSOF_TMP1=1
3187         fi      # }
3188       fi        # }
3189     fi  # }
3190     LSOF_TMP2="msdosfs"
3191     if test -d ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3192     then
3193       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3194       LSOF_TMP4=0
3195     else
3196       if test -d ${NETBSD_SYS}/$LSOF_TMP2       # {
3197       then
3198         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3199         LSOF_TMP4=1
3200       else
3201         LSOF_TMP3=""
3202       fi        # }
3203     fi  # }
3204     if test "X$LSOF_TMP3" != "X"        # {
3205     then
3206       LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=1"
3207       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3208       then
3209         LSOF_TMP1=1
3210       fi        # }
3211     else
3212       LSOF_TMP2="fs/msdosfs"
3213       if test -d ${LSOF_INCLUDE}/$LSOF_TMP2     # {
3214       then
3215         LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3216         LSOF_TMP4=0
3217       else
3218         if test -d ${NETBSD_SYS}/$LSOF_TMP2     # {
3219         then
3220           LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3221           LSOF_TMP4=1
3222         else
3223           LSOF_TMP3=""
3224         fi      # }
3225       fi        # }
3226       if test "X$LSOF_TMP3" != "X"      # {
3227       then
3228         LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=2"
3229         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3230         then
3231           LSOF_TMP1=1
3232         fi      # }
3233       fi        # }
3234     fi  # }
3235     LSOF_TMP2="miscfs/kernfs/kernfs.h"
3236     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3237     then
3238       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3239       LSOF_TMP4=0
3240     else
3241       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3242       then
3243         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3244         LSOF_TMP4=1
3245       else
3246         LSOF_TMP3=""
3247       fi        # }
3248     fi  # }
3249     if test "X$LSOF_TMP3" != "X"        # {
3250     then
3251       grep -q "kt_name;" $LSOF_TMP3
3252       if test $? -eq 0  # {
3253         then
3254           LSOF_CFGF="$LSOF_CFGF -DHASKERNFS"
3255           if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1  # {
3256           then
3257             LSOF_TMP1=1
3258           fi    # }
3259           grep -q "*kfs_kt;" $LSOF_TMP3
3260           if test $? -eq 0      # {
3261           then
3262             LSOF_CFGF="$LSOF_CFGF -DHASKERNFS_KFS_KT"
3263           fi    # }
3264       fi        # }
3265     fi  # }
3266     LSOF_TMP2="sys/namei.h"
3267     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3268     then
3269       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3270       LSOF_TMP4=0
3271     else
3272       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3273       then
3274         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3275         LSOF_TMP4=1
3276       else
3277         LSOF_TMP3=""
3278       fi        # }
3279     fi  # }
3280     if test "X$LSOF_TMP3" != "X"        # {
3281     then
3282       grep -q nc_vpid $LSOF_TMP3
3283       if test $? -eq 0  # {
3284       then
3285         LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
3286         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3287         then
3288           LSOF_TMP1=1
3289         fi      # }
3290       fi        # }
3291     fi  # }
3292     LSOF_TMP2="ufs/ufs/inode.h"
3293     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3294     then
3295       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3296       LSOF_TMP4=0
3297     else
3298       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3299       then
3300         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3301         LSOF_TMP4=1
3302       else
3303         LSOF_TMP3=""
3304       fi        # }
3305     fi  # }
3306     if test "X$LSOF_TMP3" != "X"        # {
3307     then
3308       grep -q i_ffs_size $LSOF_TMP3
3309       if test $? -eq 0  # {
3310       then
3311         LSOF_CFGF="$LSOF_CFGF -DHASI_FFS"
3312         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3313         then
3314           LSOF_TMP1=1
3315         fi      # }
3316       else
3317         grep -q i_ffs1_size $LSOF_TMP3
3318         if test $? -eq 0        # {
3319         then
3320           LSOF_CFGF="$LSOF_CFGF -DHASI_FFS1"
3321           if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1  # {
3322           then
3323             LSOF_TMP1=1
3324           fi    # }
3325         fi      # }
3326       fi        # }
3327       grep -q i_ffs_effnlink $LSOF_TMP3
3328       if test $? -eq 0  # {
3329       then
3330         LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_ffs_effnlink"
3331         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3332         then
3333           LSOF_TMP1=1
3334         fi      # }
3335       fi        # }
3336     fi  # }
3337     LSOF_TMP2="sys/vnode.h"
3338     LSOF_NBSD_PTYFS=0
3339     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3340     then
3341       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3342       LSOF_TMP4=0
3343     else
3344       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3345       then
3346         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3347         LSOF_TMP4=1
3348       else
3349         LSOF_TMP3=""
3350       fi        # }
3351     fi  # }
3352     if test "XLSOF_TMP3" != "X" # {
3353     then
3354       grep -q VT_EXT2FS $LSOF_TMP3
3355       if test $? -eq 0  # {
3356       then
3357         LSOF_CFGF="$LSOF_CFGF -DHASEXT2FS"
3358         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3359         then
3360           LSOF_TMP1=1
3361         fi      # }
3362         LSOF_TMP2="ufs/ufs/inode.h"
3363         if test -r ${LSOF_INCLUDE}/$LSOF_TMP2   # {
3364         then
3365           LSOF_TMP5="${LSOF_INCLUDE}/$LSOF_TMP2"
3366           LSOF_TMP6=0
3367         else
3368           if test -r ${NETBSD_SYS}/$LSOF_TMP2   # {
3369           then
3370             LSOF_TMP5="${NETBSD_SYS}/$LSOF_TMP2"
3371             LSOF_TMP6=1
3372           else
3373             LSOF_TMP5=""
3374           fi    # }
3375         fi      # }
3376         if test "X$LSOF_TMP5" != "X"    # {
3377         then
3378           grep -q "*e2fs_din" $LSOF_TMP5
3379           if test $? -eq 0      # {
3380           then
3381             LSOF_CFGF="$LSOF_CFGF -DHASI_E2FS_PTR"
3382             if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1        # {
3383             then
3384               LSOF_TMP1=$LSOF_TMP6
3385             fi  # }
3386           fi    # }
3387         fi      # }
3388       fi        # }
3389       grep -q VT_LFS $LSOF_TMP3
3390       if test $? -eq 0   # {
3391       then
3392         LSOF_CFGF="$LSOF_CFGF -DHASLFS"
3393         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3394         then
3395           LSOF_TMP1=1
3396         fi      # }
3397       fi        # }
3398       grep -q VT_PTYFS $LSOF_TMP3
3399       if test $? -eq 0   # {
3400       then
3401         LSOF_TMP2="fs/ptyfs/ptyfs.h"
3402         if test -r ${LSOF_INCLUDE}/$LSOF_TMP2   # {
3403         then
3404           LSOF_CFGF="$LSOF_CFGF -DHASPTYFS"
3405         else
3406           if test -r ${NETBSD_SYS}/$LSOF_TMP2   # {
3407           then
3408             if test $NETBSD_SYS != $LSOF_INCLUDE        # {
3409             then
3410               LSOF_CFGF="$LSOF_CFGF -DHASPTYFS"
3411               LSOF_NBSD_PTYFS=1
3412             fi  # }
3413           fi    # }
3414         fi      # }
3415       fi        # }
3416       if test "X$NETBSD_UVM" = "X"      # {
3417       then
3418         grep -q UVM $LSOF_TMP3
3419         if test $? -ne 0        # {
3420         then
3421           egrep -q "v_uvm;|v_uobj;" $LSOF_TMP3
3422           if test $? -eq 0      # {
3423           then
3424             NETBSD_UVM="Y"
3425           fi    # }
3426         fi      # }
3427       fi        # }
3428     fi  # }
3429     LSOF_TMP2="nfs/nfsnode.h"
3430     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3431     then
3432       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3433       LSOF_TMP4=0
3434     else
3435       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3436       then
3437         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3438         LSOF_TMP4=1
3439       else
3440         LSOF_TMP3=""
3441       fi        # }
3442     fi  # }
3443     if test "X$LSOF_TMP3" != "X"        # {
3444     then
3445       grep -q "*n_vattr" $LSOF_TMP3
3446       if test $? -eq 0  # {
3447       then
3448         LSOF_CFGF="$LSOF_CFGF -DHASNFSVATTRP"
3449         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3450         then
3451           LSOF_TMP1=1
3452         fi      # }
3453       fi        # }
3454     fi  # }
3455     LSOF_TMP2="sys/lockf.h"
3456     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3457     then
3458       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3459       LSOF_TMP4=0
3460     else
3461       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3462       then
3463         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3464         LSOF_TMP4=1
3465       else
3466         LSOF_TMP3=""
3467       fi        # }
3468     fi  # }
3469     if test "X$LSOF_TMP3" != "X"        # {
3470     then
3471       grep -q vop_advlock_args $LSOF_TMP3
3472       if test $? -eq 0  # {
3473       then
3474         LSOF_CFGF="$LSOF_CFGF -DHAS_ADVLOCK_ARGS"
3475         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3476         then
3477           LSOF_TMP1=1
3478         fi      # }
3479       fi        # }
3480       grep -q lf_lwp $LSOF_TMP3
3481       if test $? -eq 0  # {
3482       then
3483         LSOF_CFGF="$LSOF_CFGF -DHAS_LF_LWP"
3484         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3485         then
3486           LSOF_TMP1=1
3487         fi      # }
3488       fi        # }
3489     fi  # }
3490     LSOF_TMP2="sys/lwp.h"
3491     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3492     then
3493       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3494       LSOF_TMP4=0
3495     else
3496       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3497       then
3498         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3499         LSOF_TMP4=1
3500       else
3501         LSOF_TMP3=""
3502       fi        # }
3503     fi  # }
3504     if test "X$LSOF_TMP3" != "X"        # {
3505     then
3506       LSOF_CFGF="$LSOF_CFGF -DHAS_LWP_H"
3507       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3508       then
3509         LSOF_TMP1=1
3510       fi        # }
3511     fi  # }
3512     LSOF_TMP2="sys/filedesc.h"
3513     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3514     then
3515       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3516       LSOF_TMP4=0
3517     else
3518       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3519       then
3520         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3521         LSOF_TMP4=1
3522       else
3523         LSOF_TMP3=""
3524       fi        # }
3525     fi  # }
3526     if test "X$LSOF_TMP3" != "X"        # {
3527     then
3528       grep -q "^struct cwdinfo {" $LSOF_TMP3
3529       if test $? -eq 0  # {
3530       then
3531         LSOF_CFGF="$LSOF_CFGF -DHASCWDINFO"
3532         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3533         then
3534           LSOF_TMP1=1
3535         fi      # }
3536       fi        # }
3537     fi  # }
3538     LSOF_TMP2="sys/pipe.h"
3539     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3540     then
3541       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3542       LSOF_TMP4=0
3543     else
3544       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3545       then
3546         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3547         LSOF_TMP4=1
3548       else
3549         LSOF_TMP3=""
3550       fi        # }
3551     fi  # }
3552     if test "X$LSOF_TMP3" != "X"        # {
3553     then
3554       LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_PIPEH"
3555       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3556       then
3557         LSOF_TMP1=1
3558       fi        # }
3559     fi  # }
3560     if test -r ${LSOF_INCLUDE}/sys/statvfs.h    # {
3561     then
3562       grep -q '^struct statvfs {' ${LSOF_INCLUDE}/sys/statvfs.h
3563       if test $? -eq 0  # {
3564       then
3565         LSOF_CFGF="$LSOF_CFGF -DHASSTATVFS"
3566       fi        # }
3567     fi  # }
3568
3569   # Here end the dual NetBSD tests for header files in $LSOF_INCLUDE or
3570   # NETBSD_SYS.
3571   #
3572   # After this LSOF_TMP1 may be reused.
3573
3574     if test $LSOF_TMP1 -eq 1    # {
3575     then
3576       LSOF_DINC="-I$LSOF_INCLUDE -I$NETBSD_SYS"
3577     fi  # }
3578
3579   # Build special header files, as required.
3580
3581     rm -rf dialects/n+obsd/include
3582     if test "X$NETBSD_UVM" = "XY" -o "X$NETBSD_UVM" = "Xy"      # {
3583     then
3584       mkdir dialects/n+obsd/include
3585       touch dialects/n+obsd/include/opt_uvmhist.h
3586       touch dialects/n+obsd/include/opt_lockdebug.h
3587       LSOF_CFGF="$LSOF_CFGF -DUVM -I`pwd`/dialects/n+obsd/include"
3588       if test -d ${LSOF_INCLUDE}/uvm    # {
3589       then
3590         LSOF_CFGF="$LSOF_CFGF -DHAS_UVM_INCL"
3591       fi        # }
3592     fi  # }
3593     LSOF_TMP2="sys/mount.h"
3594     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3595     then
3596       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3597     else
3598       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3599       then
3600         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3601       else
3602         LSOF_TMP3=""
3603       fi        # }
3604     fi  # }
3605     if test "X$LSOF_TMP3" != "X"        # {
3606     then
3607
3608       # Build a local NetBSD netexport.h header file for possible use by
3609       # <msdosfs/msdosfsmount.h>.  Make sure CFGL contains a -I for it.
3610
3611       LSOF_TMP1=${LSOF_TMPC}.edscr
3612       LSOF_TMP2=${LSOF_TMPC}.netcred
3613       LSOF_TMP3=${LSOF_TMPC}.netexport
3614       LSOF_TMP4=dialects/n+obsd/include/netexport.h
3615       if test ! -d dialects/n+obsd/include      # {
3616       then
3617         mkdir dialects/n+obsd/include
3618       fi        # }
3619       rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 
3620       echo "/^struct netcred" > $LSOF_TMP1
3621       echo "1,.-1d" >> $LSOF_TMP1
3622       echo "/^};" >> $LSOF_TMP1
3623       echo "1,.w $LSOF_TMP2" >> $LSOF_TMP1
3624       ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
3625       rm -f $LSOF_TMP1
3626       echo "/^struct netexport" > $LSOF_TMP1
3627       echo "1,.-1d" >> $LSOF_TMP1
3628       echo "/^};" >> $LSOF_TMP1
3629       echo "1,.w $LSOF_TMP3" >> $LSOF_TMP1
3630       ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
3631       echo "/*" > $LSOF_TMP4
3632       echo " * netexport.h" >> $LSOF_TMP4
3633       echo -n " * Created by Configure: " >> $LSOF_TMP4
3634       echo `date` >> $LSOF_TMP4
3635       echo " */" >> $LSOF_TMP4
3636       echo "" >> $LSOF_TMP4
3637       echo "#if !defined(NETEXPORT_H)" >> $LSOF_TMP4
3638       echo "#define     NETEXPORT_H" >> $LSOF_TMP4
3639       echo "" >> $LSOF_TMP4
3640       echo "#include <net/radix.h>" >> $LSOF_TMP4
3641       echo "" >> $LSOF_TMP4
3642       if test -r $LSOF_TMP2     # {
3643       then
3644         cat $LSOF_TMP2 >> $LSOF_TMP4
3645         echo "" >> $LSOF_TMP4
3646       fi        # }
3647       if test -r $LSOF_TMP3     # {
3648       then
3649         cat $LSOF_TMP3 >> $LSOF_TMP4
3650       fi        # }
3651       echo "#endif      /* !defined(NETEXPORT_H) */" >> $LSOF_TMP4
3652       rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3
3653       echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3654       if test $? -ne 0  # {
3655       then
3656         LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3657       fi        # }
3658     fi  # }
3659     if test $LSOF_NBSD_BUFQH -eq 1      # {
3660     then
3661
3662     # Make a local copy of $NETBSD_SYS/sys/bufq.h.
3663
3664       if test ! -d dialects/n+obsd/include      # {
3665       then
3666         mkdir dialects/n+obsd/include
3667       fi        # }
3668       if test ! -d dialects/n+obsd/include/sys  # {
3669       then
3670         mkdir dialects/n+obsd/include/sys
3671       fi        # }
3672       cp $NETBSD_SYS/sys/bufq.h dialects/n+obsd/include/sys
3673       echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3674       if test $? -ne 0  # {
3675       then
3676         LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3677       fi        # }
3678     fi  # }
3679     if test $LSOF_NBSD_PTYFS -eq 1      # {
3680     then
3681
3682     # Make a local copy of $NETBSD_SYS/sys/fs/ptyfs/.
3683
3684       if test ! -d dialects/n+obsd/include      # {
3685       then
3686         mkdir dialects/n+obsd/include
3687       fi        # }
3688       if test ! -d dialects/n+obsd/include/fs   # {
3689       then
3690         mkdir dialects/n+obsd/include/fs
3691       fi        # }
3692       rm -rf dialects/n+obsd/include/fs/ptyfs
3693       mkdir dialects/n+obsd/include/fs/ptyfs
3694       cp $NETBSD_SYS/fs/ptyfs/*.h dialects/n+obsd/include/fs/ptyfs
3695       echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3696       if test $? -ne 0  # {
3697       then
3698         LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3699       fi        # }
3700     fi  # }
3701     LSOF_CFGL="$LSOF_CFGL -lkvm"
3702     LSOF_DIALECT_DIR=n+obsd
3703     ;;
3704
3705 # Configure for NeXTSTEP or OPENSTEP.
3706
3707   nextstep|next|ns|nxt|openstep|os)
3708     LSOF_TGT="ns"
3709     LSOF_TSTXO="../lib/snpf.o"
3710     if test "X$LSOF_AR" = "X"   # {
3711     then
3712       LSOF_AR="rm -f \${LIB}; ar cr"
3713     fi  # }
3714     if test "X$LSOF_VSTR" = "X" # {
3715     then
3716       LSOF_VSTR=`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`
3717     fi  # }
3718     if test "X$LSOF_VERS" = "X" # {
3719     then
3720
3721       # If the NeXSTEP version isn't predefined, determine it.
3722
3723       LSOF_VERS=`echo $LSOF_VSTR | sed -n 's/\([0-9]*\)\.\([0-9]*\)/\1\2/p'`
3724     fi  # }
3725     if test "X$LSOF_CC" = "X"   # {
3726     then
3727       if test -x /usr/local/bin/gcc     # {
3728       then
3729         LSOF_CC=/usr/local/bin/gcc
3730         LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3731       else
3732         LSOF_CC=cc
3733         LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3734       fi        # }
3735     fi  # }
3736     echo $LSOF_CC | grep gcc > /dev/null
3737     if test $? -eq 0    # {
3738     then
3739       LSOF_CFGL="$LSOF_CFGL -w"
3740       LSOF_DEBUG="-pedantic -O"
3741     fi  # }
3742     LSOF_CFGF="$LSOF_CFGF -DSTEPV=$LSOF_VERS"
3743     LSOF_DIALECT_DIR=n+os
3744
3745     # Test for AFS.
3746
3747     if test -r ${AFS_VICE}/etc/ThisCell # {
3748     then
3749       if test "X$LSOF_SCRIPT_CALL" = "Xno"      # {
3750       then
3751         if test -r ./AFSHeaders -a -r ./AFSVersion      # {
3752         then
3753           LSOF_AFS="yes"
3754         fi      # }
3755       else
3756         if test ! -x ./AFSConfig        # {
3757         then
3758           echo "Can't find or execute the AFSConfig script"
3759           rm -f $LSOF_HLP
3760           exit 1
3761         fi      # }
3762         ./AFSConfig
3763         if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion  # {
3764         then
3765             LSOF_AFS="yes"
3766         fi      # }
3767       fi        # }
3768       if test "X$LSOF_AFS" = "Xyes"     # {
3769       then
3770         LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
3771         LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
3772         LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
3773       fi        # }
3774     fi  # }
3775     ;;
3776
3777 # Configure for OpenBSD.  (OpenBSD uses NetBSD dialect sources and version
3778 # numbering.
3779
3780   openbsd)
3781     if test "X$LSOF_CC" = "X"   # {
3782     then
3783       LSOF_CC=cc
3784       LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3785     fi  # }
3786     if test "X$LSOF_VSTR" = "X" # {
3787     then
3788       LSOF_VSTR=`uname -r`
3789     fi  # }
3790     if test "X$LSOF_VERS" = "X" # {
3791     then
3792
3793       # If the OpenBSD version isn't pre-defined, determine it.
3794
3795       case $LSOF_VSTR in        # {
3796       1*)
3797         LSOF_VERS=1020
3798         echo "!!!WARNING!!!  Unsupported OpenBSD 1.x version: $LSOF_VSTR"
3799         echo "!!!WARNING!!!  Configuring for OpenBSD 1.2"
3800         ;;
3801       2.5*)
3802         LSOF_VERS=2050
3803         ;;
3804       2.6*)
3805         LSOF_VERS=2060
3806         ;;
3807       2.7*)
3808         LSOF_TSTBIGF=" "
3809         LSOF_VERS=2070
3810         ;;
3811       2.8*)
3812         LSOF_TSTBIGF=" "
3813         LSOF_VERS=2080
3814         ;;
3815       2.9*)
3816         LSOF_TSTBIGF=" "
3817         LSOF_VERS=2090
3818         ;;
3819       2*)
3820         LSOF_TSTBIGF=" "
3821         LSOF_VERS=2090
3822         echo "!!!WARNING!!!  Unsupported OpenBSD 2.x version: $LSOF_VSTR"
3823         echo "!!!WARNING!!!  Configuring for OpenBSD 2.9"
3824         ;;
3825       3.0*)
3826         LSOF_TSTBIGF=" "
3827         LSOF_VERS=3000
3828         ;;
3829       3.1*)
3830         LSOF_TSTBIGF=" "
3831         LSOF_VERS=3010
3832         ;;
3833       3.2*)
3834         LSOF_TSTBIGF=" "
3835         LSOF_VERS=3020
3836         ;;
3837       3.3*)
3838         LSOF_TSTBIGF=" "
3839         LSOF_VERS=3030
3840         ;;
3841       3.4*)
3842         LSOF_TSTBIGF=" "
3843         LSOF_VERS=3040
3844         ;;
3845       3.5*)
3846         LSOF_TSTBIGF=" "
3847         LSOF_VERS=3050
3848         ;;
3849       3.6*)
3850         LSOF_TSTBIGF=" "
3851         LSOF_VERS=3060
3852         ;;
3853       3.7*)
3854         LSOF_TSTBIGF=" "
3855         LSOF_VERS=3070
3856         ;;
3857       3.8*)
3858         LSOF_TSTBIGF=" "
3859         LSOF_VERS=3080
3860         ;;
3861       3.9*)
3862         LSOF_TSTBIGF=" "
3863         LSOF_VERS=3090
3864         ;;
3865       3*)
3866         LSOF_TSTBIGF=" "
3867         LSOF_VERS=3090
3868         echo "!!!WARNING!!!  Unsupported OpenBSD 3.x version: $LSOF_VSTR"
3869         echo "!!!WARNING!!!  Configuring for OpenBSD 3.9"
3870         ;;
3871       *)
3872         echo "Unknown OpenBSD release: $LSOF_VSTR"
3873         echo Assuming OpenBSD 3.9
3874         LSOF_VERS=3090
3875         ;;
3876       esac      # }
3877     fi  # }
3878
3879     # Test for legal OpenBSD version.
3880
3881     case $LSOF_VERS in  # {
3882     1020|2050|2060|2070|2080|2090|3000|3010|3020|3030|3040|3050|3060|3070|3080|3090)
3883       ;;
3884     *)
3885       echo "Unknown OpenBSD version: $LSOF_VERS"
3886       rm -f $LSOF_HLP
3887       exit 1
3888       ;;
3889     esac        # }
3890     LSOF_CFGF="$LSOF_CFGF -DOPENBSDV=$LSOF_VERS"
3891     if test -r /dev/ksyms       # {
3892     then
3893       LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=/dev/ksyms"
3894     else
3895       LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=/bsd"
3896     fi
3897     if test -r ${LSOF_INCLUDE}/nfs/nfsproto.h   # {
3898     then
3899       LSOF_CFGF="$LSOF_CFGF -DHASNFSPROTO"
3900     fi  # }
3901     if test -r ${LSOF_INCLUDE}/netinet6/in6.h   # {
3902     then
3903       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
3904     fi  # }
3905     LSOF_TMP1=0
3906     if test "X$OPENBSD_SYS" = "X"       # {
3907     then
3908       OPENBSD_SYS="/sys"
3909     fi  # }
3910     if test -r ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h      # {
3911     then
3912       grep -q Fctty ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h
3913       if test $? -eq 0  # {
3914       then
3915         LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
3916       else
3917         LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
3918       fi        # }
3919       grep -q fd_link ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h
3920       if test $? -eq 0  # {
3921       then
3922         LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
3923       fi        # }
3924       LSOF_TMP1=1
3925     fi  # }
3926     if test -r ${LSOF_INCLUDE}/sys/vnode.h      # {
3927     then
3928       grep -q VT_LFS ${LSOF_INCLUDE}/sys/vnode.h
3929       if test $? -eq 0   # {
3930       then
3931         LSOF_CFGF="$LSOF_CFGF -DHASLFS"
3932       fi        # }
3933     fi  # }
3934     if test -r ${LSOF_INCLUDE}/miscfs/nullfs/null.h     # {
3935     then
3936       LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
3937     else
3938       if test -r ${OPENBSD_SYS}/miscfs/nullfs/null.h    # {
3939       then
3940         LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
3941         LSOF_TMP1=1
3942       fi        # }
3943     fi  # }
3944     if test -d ${OPENBSD_SYS}/miscfs/procfs     # {
3945     then
3946       LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
3947       LSOF_TMP1=1
3948     fi  # }
3949     if test -d ${OPENBSD_SYS}/isofs/cd9660      # {
3950     then
3951       LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
3952       LSOF_TMP1=1
3953     else
3954       if test -d ${OPENBSD_SYS}/fs/cd9660       # {
3955       then
3956         LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=2"
3957         LSOF_TMP1=1
3958       fi        # }
3959     fi  # }
3960     if test -d ${OPENBSD_SYS}/msdosfs   # {
3961     then
3962       LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=1"
3963       LSOF_TMP1=1
3964     else
3965       if test -d ${OPENBSD_SYS}/fs/msdosfs      # {
3966       then
3967         LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=2"
3968         LSOF_TMP1=1
3969       fi        # }
3970     fi  # }
3971     if test -r ${OPENBSD_SYS}/miscfs/kernfs/kernfs.h    # {
3972     then
3973       grep -q "kt_name;" ${OPENBSD_SYS}/miscfs/kernfs/kernfs.h
3974       if test $? -eq 0  # {
3975         then
3976           LSOF_CFGF="$LSOF_CFGF -DHASKERNFS"
3977           LSOF_TMP1=1
3978       fi        # }
3979     fi  # }
3980     if test $LSOF_TMP1 -eq 1 -a "X$LSOF_INCLUDE" != "X$OPENBSD_SYS"     # {
3981     then
3982       LSOF_DINC="-I$LSOF_INCLUDE -I$OPENBSD_SYS"
3983     fi  # }
3984     grep -q VT_EXT2FS ${LSOF_INCLUDE}/sys/vnode.h
3985     if test $? -eq 0    # {
3986     then
3987       LSOF_TMP1=1
3988       if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h        # {
3989       then
3990         grep -q "*e2fs_din" ${LSOF_INCLUDE}/ufs/ufs/inode.h
3991         if test $? -eq 0        # {
3992         then
3993           LSOF_CFGF="$LSOF_CFGF -DHASI_E2FS_PTR"
3994         fi      # }
3995         grep -q "^#define[      ]i_e2din" ${LSOF_INCLUDE}/ufs/ufs/inode.h
3996         if test $? -eq 0        # {
3997         then
3998           LSOF_TMP1=2
3999         fi      # }
4000       fi        # }
4001       LSOF_CFGF="$LSOF_CFGF -DHASEXT2FS=$LSOF_TMP1"
4002     fi  # }
4003     if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h  # {
4004     then
4005       grep -q i_effnlink ${LSOF_INCLUDE}/ufs/ufs/inode.h
4006       if test $? -eq 0  # {
4007       then
4008         LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_effnlink"
4009       fi        # }
4010       grep -q dinode_u ${LSOF_INCLUDE}/ufs/ufs/inode.h
4011       if test $? -eq 0  # {
4012       then
4013         LSOF_CFGF="$LSOF_CFGF -DHAS_DINODE_U"
4014       fi        # }
4015       grep -q i_ffs1_size ${LSOF_INCLUDE}/ufs/ufs/inode.h
4016       if test $? -eq 0  # {
4017       then
4018         LSOF_CFGF="$LSOF_CFGF -DHASI_FFS1"
4019       fi        # }
4020       grep -q UM_UFS ${LSOF_INCLUDE}/ufs/ufs/inode.h
4021       if test $? -eq 0  # {
4022       then
4023         LSOF_CFGF="$LSOF_CFGF -DHAS_UM_UFS"
4024       fi        # }
4025     fi  # }
4026     if test -r ${LSOF_INCLUDE}/sys/namei.h
4027     then
4028       grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
4029       if test $? -eq 0  # {
4030       then
4031         LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
4032       fi        # }
4033     fi  # }
4034     if test "X$OPENBSD_UVM" = "X"       # {
4035     then
4036       if test -r ${LSOF_INCLUDE}/sys/vnode.h    # {
4037       then
4038         grep -q UVM ${LSOF_INCLUDE}/sys/vnode.h
4039         if test $? -ne 0        # {
4040         then
4041           egrep -q "v_uvm;|v_uobj;" ${LSOF_INCLUDE}/sys/vnode.h
4042           if test $? -eq 0      # {
4043           then
4044             OPENBSD_UVM="Y"
4045           fi    # }
4046         fi      # }
4047       fi        # }
4048     fi  # }
4049     if test "X$OPENBSD_UVM" = "XY" -o "X$OPENBSD_UVM" = "Xy"    # {
4050     then
4051       LSOF_CFGF="$LSOF_CFGF -DUVM"
4052       if test -d ${LSOF_INCLUDE}/uvm    # {
4053       then
4054         LSOF_CFGF="$LSOF_CFGF -DHAS_UVM_INCL"
4055       fi        # }
4056     fi  # }
4057     if test -r ${LSOF_INCLUDE}/sys/mount.h -a $LSOF_VERS -lt 3030       # {
4058     then
4059
4060       # Build a local OpenBSD netexport.h header file for possible use by
4061       # <msdosfs/msdosfsmount.h>.  Make sure CFGL contains a -I for it.
4062
4063       LSOF_TMP1=${LSOF_TMPC}.edscr
4064       LSOF_TMP2=${LSOF_TMPC}.netcred
4065       LSOF_TMP3=${LSOF_TMPC}.netexport
4066       LSOF_TMP4=dialects/n+obsd/include/netexport.h
4067       if test ! -d dialects/n+obsd/include      # {
4068       then
4069         mkdir dialects/n+obsd/include
4070       fi        # }
4071       rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 
4072       echo "/^struct netcred" > $LSOF_TMP1
4073       echo "1,.-1d" >> $LSOF_TMP1
4074       echo "/^};" >> $LSOF_TMP1
4075       echo "1,.w $LSOF_TMP2" >> $LSOF_TMP1
4076       ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
4077       rm -f $LSOF_TMP1
4078       echo "/^struct netexport" > $LSOF_TMP1
4079       echo "1,.-1d" >> $LSOF_TMP1
4080       echo "/^};" >> $LSOF_TMP1
4081       echo "1,.w $LSOF_TMP3" >> $LSOF_TMP1
4082       ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
4083       echo "/*" > $LSOF_TMP4
4084       echo " * netexport.h" >> $LSOF_TMP4
4085       echo -n " * Created by Configure: " >> $LSOF_TMP4
4086       echo `date` >> $LSOF_TMP4
4087       echo " */" >> $LSOF_TMP4
4088       echo "" >> $LSOF_TMP4
4089       echo "#if !defined(NETEXPORT_H)" >> $LSOF_TMP4
4090       echo "#define     NETEXPORT_H" >> $LSOF_TMP4
4091       echo "" >> $LSOF_TMP4
4092       echo "#include <net/radix.h>" >> $LSOF_TMP4
4093       echo "" >> $LSOF_TMP4
4094       if test -r $LSOF_TMP2     # {
4095       then
4096         cat $LSOF_TMP2 >> $LSOF_TMP4
4097         echo "" >> $LSOF_TMP4
4098       fi        # }
4099       if test -r $LSOF_TMP3     # {
4100       then
4101         cat $LSOF_TMP3 >> $LSOF_TMP4
4102       fi        # }
4103       echo "#endif      /* !defined(NETEXPORT_H) */" >> $LSOF_TMP4
4104       rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3
4105       echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
4106       if test $? -ne 0  # {
4107       then
4108         LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
4109       fi        # }
4110     fi  # }
4111     if test -r ${LSOF_INCLUDE}/sys/lockf.h      # {
4112     then
4113       grep vop_advlock_args ${LSOF_INCLUDE}/sys/lockf.h > /dev/null
4114       if test $? -eq 0  # {
4115       then
4116         LSOF_CFGF="$LSOF_CFGF -DHAS_ADVLOCK_ARGS"
4117       fi        # }
4118     fi  # }
4119     if test -r ${LSOF_INCLUDE}/sys/pipe.h       # {
4120     then
4121       LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_PIPEH"
4122     fi  # }
4123     LSOF_CFGL="$LSOF_CFGL -lkvm"
4124     LSOF_DIALECT_DIR=n+obsd
4125     ;;
4126
4127 # Configure for SCO OpenServer.
4128
4129   osr|osrgcc|sco|scogcc)
4130     if test "X$LSOF_RANLIB_SUP" = "X"   # {
4131     then
4132       LSOF_RANLIB=""
4133     fi  # }
4134     if test "X$OSR_CFGF" != "X" # {
4135     then
4136
4137     # Adopt LSOF_CFGF from OSR_CFGF in environment.
4138
4139       LSOF_CFGF=$OSR_CFGF
4140     fi  # }
4141     if test "X$OSR_CFGL" != "X" # {
4142     then
4143
4144     # Adopt LSOF_CFGL from OSR_CFGL in environment.
4145
4146       LSOF_CFGL=$OSR_CFGL
4147     fi  # }
4148
4149   # Evaluate compiler specification.
4150
4151     if test "X$LSOF_CC" = "X"   # {
4152     then
4153       if test "X$LSOF_TGT" = "Xosr" -o "X$LSOF_TGT" = "Xsco"    # {
4154       then
4155         LSOF_CC=cc
4156         LSOF_TMP1=1
4157       else
4158         LSOF_CC=gcc
4159         LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
4160         LSOF_TMP1=2
4161       fi        # }
4162     else
4163         LSOF_TMP1=0
4164     fi  # }
4165     LSOF_TGT="osr"
4166
4167   # Determine version.
4168
4169     if test "X$LSOF_VSTR" = "X" # {
4170     then
4171       LSOF_VSTR="`LANG=C_C.C /bin/uname -X 2>/dev/null | grep Release | sed 's/Release = \(.*\)/\1/'`"
4172     fi  # }
4173     if test "X$LSOF_VERS" = "X" # {
4174     then
4175
4176       # If the SCO OpenServer release version isn't predefined, determine it.
4177
4178       case $LSOF_VSTR in        # {
4179       3.2v2.0)
4180         LSOF_VERS="20"
4181         ;;
4182       3.2v2.1)
4183         LSOF_VERS="21"
4184         ;;
4185       3.2v4.0)
4186         LSOF_VERS="40"
4187         ;;
4188       3.2v4.1)
4189         LSOF_VERS="41"
4190         ;;
4191       3.2v4.2)
4192         LSOF_VERS="42"
4193         ;;
4194       3.2v5.*)
4195         LSOF_TSTLFLG="-lsocket"
4196         LSOF_VERS="`echo $LSOF_VSTR | sed 's/3\.2v//; s/\.//g'`"
4197         ;;
4198       *)
4199         echo Unknown SCO OpenServer release: $LSOF_VSTR
4200         echo Assuming 3.2.0 or 3.2.1
4201         LSOF_VERS="0"
4202         ;;
4203       esac      # }
4204     fi  # }
4205
4206     # Do SCO OpenServer specific stuff.
4207
4208     case $LSOF_VERS in  # {
4209     0)
4210       if test $LSOF_TMP1 -eq 1  # {
4211       then
4212         LSOF_CFGF="$LSOF_CFGF -nointl"
4213         LSOF_DEBUG="-Ox"
4214       fi        # }
4215       LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4216       LSOF_MKC="cp"
4217       ;;
4218     20)
4219       if test $LSOF_TMP1 -eq 1  # {
4220       then
4221         LSOF_DEBUG="-Ox"
4222       fi        # }
4223       LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4224       LSOF_MKC="cp"
4225       ;;
4226     21)
4227       if test $LSOF_TMP1 -eq 1  # {
4228       then
4229         LSOF_CFGF="$LSOF_CFGF -nointl"
4230         LSOF_DEBUG="-Ox"
4231       fi        # }
4232       LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4233       LSOF_MKC="cp"
4234       ;;
4235     40)
4236       if test $LSOF_TMP1 -eq 1  # {
4237       then
4238         LSOF_CFGF="$LSOF_CFGF -nointl"
4239         LSOF_DEBUG="-Ox"
4240       fi        # }
4241       LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4242       ;;
4243     41)
4244       if test $LSOF_TMP1 -eq 1  # {
4245       then
4246         LSOF_CFGF="$LSOF_CFGF -nointl"
4247         LSOF_DEBUG="-Ox"
4248       fi        # }
4249       LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4250       ;;
4251     42)
4252       if test $LSOF_TMP1 -eq 1  # {
4253       then
4254         LSOF_CFGF="$LSOF_CFGF -nointl"
4255         LSOF_DEBUG="-Ox"
4256       fi        # }
4257       LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4258       ;;
4259     5*)
4260       if test $LSOF_TMP1 -eq 1  # {
4261       then
4262         LSOF_CFGF="$LSOF_CFGF -belf"
4263         LSOF_DEBUG="-O3 -Kspace"
4264       fi        # }
4265       LSOF_CFGL="$LSOF_CFGL -lsocket"
4266       ;;
4267     *)
4268       echo "Unsupported SCO OpenServer release: $LSOF_VERS"
4269       rm -f $LSOF_HLP
4270       exit 1
4271       ;;
4272     esac        # }
4273     LSOF_CFGF="$LSOF_CFGF -DOSRV=$LSOF_VERS"
4274     if test "X$OSR_STATLSTAT" = "X"     # {
4275     then
4276       echo "Testing libc.a for statlstat"
4277       /bin/nm /lib/libc.a | grep statlstat > /dev/null 2>&1
4278       if test $? -eq 0  # {
4279       then
4280         LSOF_CFGF="$LSOF_CFGF -DHAS_STATLSTAT"
4281       fi        # }
4282     else
4283       if test "X$OSR_STATLSTAT" = "XY" -o "X$OSR_STATLSTAT" = "Xy"      # {
4284       then
4285         LSOF_CFGF="$LSOF_CFGF -DHAS_STATLSTAT"
4286       fi        # }
4287     fi  # }
4288     if test -r ${LSOF_INCLUDE}/sys/fs/nfs/rnode.h       # {
4289     then
4290       LSOF_CFGF="$LSOF_CFGF -DHAS_NFS"
4291     fi  # }
4292     if test ! -r ${LSOF_INCLUDE}/netdb.h        # {
4293     then
4294       LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/osr/include"
4295     fi  # }
4296     LSOF_DIALECT_DIR=osr
4297     ;;
4298
4299 # Configure for Sun Solaris, SunPro C and gcc.
4300
4301   solaris|solariscc)
4302     if test "X$LSOF_RANLIB_SUP" = "X"   # {
4303     then
4304       LSOF_RANLIB=""
4305     fi  # }
4306     if test "X$LSOF_CC" = "X"   # {
4307     then
4308       if test "X$LSOF_TGT" = "Xsolariscc"       # {
4309       then
4310         if test "X$SOLARIS_CCDIR" = "X" # {
4311         then
4312           SOLARIS_CCDIR="/opt/SUNWspro/bin"
4313         fi      # }
4314         if test -x ${SOLARIS_CCDIR}/cc  # {
4315         then
4316           LSOF_CC=${SOLARIS_CCDIR}/cc
4317         else
4318           if test -x /opt/SunStudioExpress/bin/cc       # {
4319           then
4320             LSOF_CC=/opt/SunStudioExpress/bin/cc
4321           else
4322             echo "WARNING: no cc in ${SOLARIS_CCDIR}; using cc without path."
4323             LSOF_CC=cc
4324           fi    # }
4325         fi      # }
4326         LSOF_CCV=`$LSOF_CC -V 2>&1 | sed -n 's/^cc: \(.*\)/\1/p'`
4327       else
4328         LSOF_CC=gcc
4329         LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
4330       fi        # }
4331     fi  # }
4332     LSOF_TGT="solaris"
4333     if test "X$LSOF_VSTR" = "X" # {
4334     then
4335       LSOF_VSTR=`uname -r`
4336     fi  # }
4337     if test "X$LSOF_VERS" = "X" # {
4338     then
4339
4340       # If the Solaris version isn't predefined, determine it.
4341
4342       case $LSOF_VSTR in        # {
4343       5.[0-2])
4344         LSOF_VERS="20300"
4345         ;;
4346       5.3)
4347         LSOF_VERS="20300"
4348         ;;
4349       5.4)
4350         LSOF_VERS="20400"
4351         ;;
4352       5.5)
4353         LSOF_VERS="20500"
4354         ;;
4355       5.5.1)
4356         LSOF_VERS="20501"
4357         ;;
4358       5.6*)
4359         LSOF_TSTLFLG="-lsocket -lnsl"
4360         LSOF_VERS="20600"
4361         ;;
4362       5.7*)
4363         LSOF_TSTBIGF=" "
4364         LSOF_TSTLFLG="-lsocket -lnsl"
4365         LSOF_VERS="70000"
4366         ;;
4367       5.8*)
4368         LSOF_TSTBIGF=" "
4369         LSOF_TSTLFLG="-lsocket -lnsl"
4370         LSOF_VERS="80000"
4371         ;;
4372       5.9*)
4373         LSOF_TSTBIGF=" "
4374         LSOF_TSTLFLG="-lsocket -lnsl"
4375         LSOF_VERS="90000"
4376         ;;
4377       5.10*)
4378         LSOF_TSTBIGF=" "
4379         LSOF_TSTLFLG="-lsocket -lnsl"
4380         LSOF_VERS="100000"
4381         ;;
4382       5.11*)
4383         LSOF_TSTBIGF=" "
4384         LSOF_TSTLFLG="-lsocket -lnsl"
4385         LSOF_VERS="110000"
4386         ;;
4387       *)
4388         echo Unknown Solaris version: $LSOF_VSTR
4389         rm -f $LSOF_HLP
4390         exit 1
4391       esac      # }
4392     fi  # }
4393
4394     # Clear LSOF_UNSUP message for selected Solaris versions.
4395
4396     case $LSOF_VERS in  # {
4397     90000|100000|110000)
4398       LSOF_UNSUP=""
4399       ;;
4400     esac        # }
4401
4402     # Do Solaris version-specific stuff.
4403
4404     case $LSOF_VERS in  # {
4405     20300)
4406
4407       # Solaris patch 101318-32 creates a longer kernel tcp_s structure,
4408       # and 101318-45 changes the way the vnode's v_filocks member is
4409       # handled.  The following code creates a symbol definition for
4410       # patch 101318 whose value is the patch level.  No symbol is defined
4411       # if the patch level is not greater than zero.
4412
4413       if test "X$SOLARIS_23P101318" = "X"       # {
4414       then
4415         LSOF_PL=`grep -h SUNW_PATCHID=101318 /var/sadm/pkg/SUNWcar*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4416         if test "X$LSOF_PL" = "X"       # {
4417         then
4418           LSOF_PL=0
4419         fi      # }
4420       else
4421         LSOF_PL=$SOLARIS_23P101318
4422       fi        # }
4423       if test $LSOF_PL -gt 0    # {
4424       then
4425         LSOF_CFGF="$LSOF_CFGF -DP101318=$LSOF_PL"
4426       fi        # }
4427       ;;
4428     20400)
4429       if test "X$SOLARIS_24P101945" = "X"       # {
4430       then
4431         LSOF_PL=`grep -h SUNW_PATCHID=101945 /var/sadm/pkg/SUNWcar*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4432         if test "X$LSOF_PL" = "X"       # {
4433         then
4434           LSOF_PL=0
4435         fi      # }
4436       else
4437         LSOF_PL=$SOLARIS_24P101945
4438       fi        # }
4439       if test $LSOF_PL -ge 32   # {
4440       then
4441         if test "X$SOLARIS_24P102303" = "X"     # {
4442         then
4443           LSOF_PL=`grep -h SUNW_PATCHID=102303 /var/sadm/pkg/SUNWhea*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4444           if test "X$LSOF_PL" = "X"     # {
4445           then
4446             LSOF_PL=0
4447           fi    # }
4448         else
4449           LSOF_PL=$SOLARIS_24P102303
4450         fi      # }
4451         if test $LSOF_PL -ge 2  # {
4452         then
4453           echo "WARNING: your Solaris 2.4 system appears to have patches 101945-32 and 102303-2"
4454           echo "         installed.  This probably means the NUM_*_VECTORS definitions in"
4455           echo "         <sys/auxv.h> don't match the ones used to build your kernel.  Consult"
4456           echo "         the Sun Problems section of the 00FAQ file of the lsof distribution"
4457           echo "         for more information on how to work around the problem."
4458         fi      # }
4459       fi        # }
4460       ;;
4461     20500|20501)
4462       ;;
4463     20600|70000|80000|90000|100000|110000)
4464       if test "X$SOLARIS_26PR_GWINDOWS" = "X"   # {
4465       then
4466         rm -f ${LSOF_TMPC}.*
4467         echo "#define _KMEMUSER" > ${LSOF_TMPC}.c
4468         echo "#include <sys/proc/prdata.h>" >> ${LSOF_TMPC}.c
4469         echo "main(){" >> ${LSOF_TMPC}.c
4470         echo "enum prnodetype p=PR_GWINDOWS;}" >> ${LSOF_TMPC}.c
4471         echo "Testing prdata.h for PR_GWINDOWS, using $LSOF_CC"
4472         echo $LSOF_CC | grep gcc > /dev/null
4473         if test $? -eq 0        # {
4474         then
4475           $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x  > /dev/null 2>&1
4476         else
4477           $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x  > /dev/null 2>&1
4478         fi      # }
4479         if test $? -eq 0        # {
4480         then
4481           LSOF_CFGF="$LSOF_CFGF -DHASPR_GWINDOWS"
4482         fi      # }
4483       else
4484         if test "X$SOLARIS_26PR_GWINDOWS" = "XY" -o "X$SOLARIS_26PR_GWINDOWS" = "Xy"    # {
4485         then
4486           LSOF_CFGF="$LSOF_CFGF -DHASPR_GWINDOWS"
4487         fi      # }
4488       fi        # }
4489       if test "X$SOLARIS_26PR_LDT" = "X"        # {
4490       then
4491         rm -f ${LSOF_TMPC}.*
4492         echo "#define _KMEMUSER" > ${LSOF_TMPC}.c
4493         echo "#include <sys/proc/prdata.h>" >> ${LSOF_TMPC}.c
4494         echo "main(){" >> ${LSOF_TMPC}.c
4495         echo "enum prnodetype p=PR_LDT;}" >> ${LSOF_TMPC}.c
4496         echo "Testing prdata.h for PR_LDT, using $LSOF_CC"
4497         echo $LSOF_CC | grep gcc > /dev/null
4498         if test $? -eq 0        # {
4499         then
4500           $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
4501         else
4502           $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
4503         fi      # }
4504         if test $? -eq 0        # {
4505         then
4506           LSOF_CFGF="$LSOF_CFGF -DHASPR_LDT"
4507         fi      # }
4508         rm -f ${LSOF_TMPC}.*
4509       else
4510         if test "X$SOLARIS_26PR_LDT" = "XY" -o "X$SOLARIS_26PR_LDT" = "Xy"      # {
4511         then
4512           LSOF_CFGF="$LSOF_CFGF -DHASPR_LDT"
4513         fi      # }
4514       fi        # }
4515       if test $LSOF_VERS -ge 70000      # {
4516       then
4517
4518       # Do tests for Solaris 7 and above.
4519
4520         if test "X$SOLARIS_KERNBITS" = "X"      # {
4521         then
4522           SOLARIS_KERNBITS=`/bin/isainfo -kv`
4523         fi      # }
4524         if test "X$SOLARIS_INSTR" = "X" # {
4525         then
4526           SOLARIS_INSTR=`/bin/isainfo -k`
4527         fi      #}
4528         echo $SOLARIS_KERNBITS | grep 64 > /dev/null
4529         if test $? -eq 0        # {
4530         then
4531           echo $LSOF_CC | grep gcc > /dev/null
4532           if test $? -eq 0      # {
4533           then
4534
4535         # Test gcc for 64 bit support.
4536
4537             echo "Testing $LSOF_CC for 64 bit support"
4538             rm -f ${LSOF_TMPC}.*
4539             echo "main(){}" > ${LSOF_TMPC}.c
4540             LSOF_TMP1=""
4541
4542         # First try gcc's -m64 option -- it's the most current possibility.
4543
4544             $LSOF_CC ${LSOF_TMPC}.c -m64 -o ${LSOF_TMPC}.x > /dev/null 2>&1
4545             if test $? -eq 0    # {
4546             then
4547               /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null 
4548               if test $? -eq 0  # {
4549               then
4550                 LSOF_TMP1="-m64"
4551               fi        # }
4552             fi  # }
4553             rm -f ${LSOF_TMPC}.*
4554             if test "X$LSOF_TMP1" = "X" # {
4555             then
4556
4557             # Try using the older -mcpu=v9 option with gcc instead of -m64.
4558
4559               echo "main(){}" > ${LSOF_TMPC}.c
4560               $LSOF_CC ${LSOF_TMPC}.c -mcpu=v9 -o ${LSOF_TMPC}.x > /dev/null 2>&1
4561               if test $? -eq 0  # {
4562               then
4563                 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null 
4564                 if test $? -eq 0        # {
4565                 then
4566                   LSOF_TMP1="-mcpu=v9"
4567                 fi      # }
4568               fi        # }
4569               rm -f ${LSOF_TMPC}.*
4570             fi  # }
4571             if test "X$LSOF_TMP1" = "X" # {
4572             then
4573               echo ""
4574               echo "!!!WARNING!!!=========!!!WARNING!!!=========!!!WARNING!!!"
4575               echo "!                                                       !"
4576               echo "! LSOF NEEDS TO BE CONFIGURED FOR A 64 BIT KERNEL, BUT  !"
4577               echo "! THIS GCC DOESN'T SUPPORT THE BUILDING OF 64 BIT       !"
4578               echo "! SOLARIS EXECUTABLES.  LSOF WILL BE CONFIGURED FOR A   !"
4579               echo "! 32 BIT KERNEL.                                        !"
4580               echo "!                                                       !"
4581               echo "!!!WARNING!!!=========!!!WARNING!!!=========!!!WARNING!!!"
4582               echo ""
4583             else
4584               echo ""
4585               echo "*********************************"
4586               echo "* Configuring for 64 bit kernel *"
4587               echo "*********************************"
4588               echo ""
4589               LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
4590               LSOF_CINFO="64 bit kernel"
4591               LSOF_TSTK64=1
4592             fi  # }
4593           else
4594
4595           # Test Sun compiler for 64 bit support.
4596
4597             case $SOLARIS_INSTR in      # {
4598             amd64*)
4599               LSOF_TMP1="amd64"
4600               LSOF_TMP2="amd64"
4601               ;;
4602             sparc*)
4603               LSOF_TMP1="v9"
4604               LSOF_TMP2="sparcv9"
4605               ;;
4606             *)
4607               LSOF_TMP1=""
4608               ;;
4609             esac        # }
4610             if test "X$LSOF_TMP1" != "X"        # {
4611             then
4612               echo "Testing $LSOF_CC for 64 bit $LSOF_TMP2 support"
4613               rm -f ${LSOF_TMPC}.*
4614               LSOF_TMP3="-xarch=$LSOF_TMP1"
4615               echo "main(){}" > ${LSOF_TMPC}.c
4616               LSOF_TMP4=`$LSOF_CC ${LSOF_TMPC}.c $LSOF_TMP3 -o ${LSOF_TMPC}.x 2>&1`
4617               if test $? -eq 0  # {
4618               then
4619                 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null 
4620                 if test $? -ne 0        # {
4621                 then
4622                   LSOF_TMP3=""
4623                 else
4624                   echo "X$LSOF_TMP4" | grep "use -m64" > /dev/null 2>&1
4625                   if test $? -eq 0      # {
4626                   then
4627                     LSOF_TMP3=-m64
4628                   fi    # }
4629                 fi      # }
4630               fi        # }
4631               rm -f ${LSOF_TMPC}.*
4632             else
4633               LSOF_TMP3=""
4634             fi  # }
4635             if test "X$LSOF_TMP3" != "X"        # {
4636             then
4637               echo ""
4638               echo "*********************************"
4639               echo "* Configuring for 64 bit kernel *"
4640               echo "*********************************"
4641               echo ""
4642               LSOF_CFGF="$LSOF_CFGF $LSOF_TMP3"
4643               LSOF_CINFO="64 bit kernel"
4644               LSOF_TSTK64=1
4645             else
4646               echo ""
4647               echo "!!!WARNING!!!==========!!!WARNING!!!==========!!!WARNING!!!"
4648               echo "!"
4649               echo "! LSOF NEEDS TO BE CONFIGURED FOR A 64 BIT KERNEL, BUT"
4650               echo "! THE VERSION OF SUN C AVAILABLE DOESN'T SUPPORT THE"
4651               echo "! \"$LSOF_TMP2\" INSTRUCTION SET."
4652               echo "!"
4653               echo "! LSOF WILL BE CONFIGURED FOR A 32 BIT KERNEL."
4654               echo "!"
4655               echo "!!!WARNING!!!==========!!!WARNING!!!==========!!!WARNING!!!"
4656               echo ""
4657             fi  # }
4658           fi    # }
4659         else
4660           echo ""
4661           echo "*********************************"
4662           echo "* Configuring for 32 bit kernel *"
4663           echo "*********************************"
4664           echo ""
4665           LSOF_CINFO="32 bit kernel"
4666         fi      # }
4667       fi        # }
4668
4669       # Do tests specific to Solaris 8 and above.
4670
4671       if test $LSOF_VERS -ge 80000      # {
4672       then
4673         if test -r ${LSOF_INCLUDE}/netinet/ip6.h        # {
4674         then
4675           LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
4676         fi      # }
4677       fi        # }
4678
4679       # Do tests specific to Solaris 9 and above.
4680
4681       if test $LSOF_VERS -ge 90000      # {
4682       then
4683         if test -r ${LSOF_INCLUDE}/sys/socketvar.h      # {
4684         then
4685           grep soua_vp ${LSOF_INCLUDE}/sys/socketvar.h > /dev/null 2>&1
4686           if test $? -eq 0      # {
4687           then
4688             LSOF_CFGF="$LSOF_CFGF -DHASSOUXSOUA"
4689           fi    # }
4690         fi      # }
4691         if test $LSOF_VERS -lt 110000   # {
4692         then
4693
4694         # Do tests specific to Solaris 9 and 10.
4695
4696           if test -r ${LSOF_INCLUDE}/sys/lgrp_user.h      # {
4697           then
4698             if test -r ${LSOF_INCLUDE}/sys/lgrp.h      # {
4699             then
4700               grep lgrp_root ${LSOF_INCLUDE}/sys/lgrp_user.h > /dev/null 2>&1
4701               if test $? -eq 0  # {
4702               then
4703                 grep lgrp_root ${LSOF_INCLUDE}/sys/lgrp.h > /dev/null 2>&1
4704                 if test $? -eq 0
4705                 then
4706                   LSOF_CFGF="$LSOF_CFGF -DHAS_LGRP_ROOT_CONFLICT"
4707                 fi      # }
4708               fi        # }
4709             fi  # }
4710           fi    # }
4711         fi      # }
4712       fi        # }
4713
4714       # Do tests specific to Solaris 10 and above.
4715
4716       if test $LSOF_VERS -eq 100000     # {
4717       then
4718         if test -r ${LSOF_INCLUDE}/sys/socket_proto.h   # {
4719         then
4720             LSOF_CFGF="$LSOF_CFGF -DHAS_SOCKET_PROTO_H"
4721         fi      # }
4722       fi        # }
4723       if test $LSOF_VERS -ge 100000     # {
4724       then
4725         if test -r ${LSOF_INCLUDE}/inet/ipclassifier.h  # {
4726         then
4727           LSOF_CFGF="$LSOF_CFGF -DHAS_IPCLASSIFIER_H"
4728           grep conn_ixa ${LSOF_INCLUDE}/inet/ipclassifier.h > /dev/null 2>&1
4729           if test $? -eq 0      # {
4730           then
4731             LSOF_CFGF="$LSOF_CFGF -DHAS_CONN_NEW"
4732           fi    #}
4733         fi      # }
4734         if test -r ${LSOF_INCLUDE}/sys/cred_impl.h      # {
4735         then
4736           LSOF_CFGF="$LSOF_CFGF -DHAS_CRED_IMPL_H"
4737
4738           # DEBUG -- Begin temporary hack for Solaris 10, build s10_44.
4739
4740           grep "c2/audit.h" ${LSOF_INCLUDE}/sys/cred_impl.h > /dev/null
4741           if test $? -eq 0      # {
4742           then
4743             rm -rf `pwd`/dialects/sun/solaris10
4744             mkdir `pwd`/dialects/sun/solaris10
4745             mkdir `pwd`/dialects/sun/solaris10/c2
4746             touch `pwd`/dialects/sun/solaris10/c2/audit.h
4747             LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/sun/solaris10"
4748           fi    # }
4749
4750           # DEBUG -- End temporary hack for Solaris 10, build s10_44.
4751
4752         fi      # }
4753         if test -r ${LSOF_INCLUDE}/sys/vnode.h  # {
4754         then
4755           grep v_path ${LSOF_INCLUDE}/sys/vnode.h > /dev/null 2>&1
4756           if test $? -eq 0      # {
4757           then
4758             LSOF_CFGF="$LSOF_CFGF -DHAS_V_PATH"
4759             LSOF_TSTVPATH=1
4760           fi    # }
4761         fi      # }
4762         if test -r ${LSOF_INCLUDE}/sys/fs/pc_fs.h       # {
4763         then
4764           grep pc_direntpersec ${LSOF_INCLUDE}/sys/fs/pc_fs.h > /dev/null 2>&1
4765           if test $? -eq 0      # {
4766           then
4767             LSOF_CFGF="$LSOF_CFGF -DHAS_PC_DIRENTPERSEC"
4768           fi    # }
4769         fi      # }
4770       fi        # }
4771       if test -r ${LSOF_INCLUDE}/sys/zone.h     # {
4772       then
4773         LSOF_CFGF="$LSOF_CFGF -DHASZONES"
4774       fi        # }
4775
4776       # Check for Solaris 10 or higher CTF library and things that depend
4777       # on it.
4778
4779       if test -r ${LSOF_INCLUDE}/libctf.h       # {
4780       then
4781         LSOF_CTFH=1
4782       fi        # }
4783       if test -r ${LSOF_INCLUDE}/sys/fs/zfs.h   # {
4784       then
4785         if test $LSOF_CTFH -eq 1        # {
4786         then
4787           LSOF_CFGF="$LSOF_CFGF -DHAS_ZFS"
4788           LSOF_CTFL=1
4789         else
4790           echo "WARNING: ZFS support not enabled; libctf.h missing."
4791         fi      # }
4792       fi        # }
4793       if test $LSOF_VERS -ge 110000     # {
4794       then
4795
4796       # Do things specific to Solaris 11 and above.
4797
4798         if test $LSOF_CTFH -eq 1        # {
4799         then
4800           LSOF_CTFL=1
4801         else
4802           echo "WARNING: socket support not enabled; libctf.h missing."
4803         fi      # }
4804         rm -rf ./solaris11
4805         mkdir ./solaris11
4806         mkdir ./solaris11/sys
4807         touch ./solaris11/sys/extdirent.h
4808         echo "./solaris11/sys/extdirent.h created"
4809         LSOF_CFGF="$LSOF_CFGF -I`pwd`/solaris11"
4810         if test -r ${LSOF_INCLUDE}/sys/mutex.h  # {
4811         then
4812
4813         # Check <sys/mutex.h> 'for pad_mutex_t;'.
4814
4815           grep 'pad_mutex_t;' ${LSOF_INCLUDE}/sys/mutex.h > /dev/null 2>&1
4816           if test $? -eq 0      # {
4817           then
4818             LSOF_CFGF="$LSOF_CFGF -DHAS_PAD_MUTEX"
4819           fi    # }
4820         fi      # )
4821       fi        # }
4822
4823       # If -lctf was added to LSOF_CFGL, define HAS_LIBCTF.
4824
4825       if test $LSOF_CTFL -eq 1  # {
4826       then
4827         LSOF_CFGF="$LSOF_CFGF -DHAS_LIBCTF"
4828         LSOF_CFGL="$LSOF_CFGL -lctf"
4829       fi        # }
4830       ;;
4831     *)
4832       echo "Unsupported Solaris version: $LSOF_VERS"
4833       rm -f $LSOF_HLP
4834       exit 1
4835       ;;
4836     esac        # }
4837     LSOF_CFGF="$LSOF_CFGF -Dsolaris=$LSOF_VERS"
4838
4839     # Test for <sys/fs/cachefs_fs.h>.
4840
4841     if test -r ${LSOF_INCLUDE}/sys/fs/cachefs_fs.h      # {
4842     then
4843       LSOF_CFGF="$LSOF_CFGF -DHASCACHEFS"
4844     fi  # }
4845
4846     # Test for <utmpx.h>
4847
4848     if test -r ${LSOF_INCLUDE}/utmpx.h  # {
4849     then
4850       LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
4851     fi  # }
4852
4853     # Test for VSOCK.
4854
4855     if test "X$SOLARIS_VSOCK" = "X"     # {
4856     then
4857       rm -f ${LSOF_TMPC}.*
4858       echo "#include <sys/vnode.h>" > ${LSOF_TMPC}.c
4859       echo "main(){" >> ${LSOF_TMPC}.c
4860       echo "enum vtype p=VSOCK;}" >> ${LSOF_TMPC}.c
4861       echo "Testing vnode.h for VSOCK, using $LSOF_CC"
4862       echo $LSOF_CC | grep gcc > /dev/null
4863       if test $? -eq 0  # {
4864       then
4865         $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
4866       else
4867         $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
4868       fi        # }
4869       if test $? -eq 0  # {
4870       then
4871         LSOF_CFGF="$LSOF_CFGF -DHAS_VSOCK"
4872       fi        # }
4873       rm -f ${LSOF_TMPC}.*
4874     else
4875       if test "X$SOLARIS_VSOCK" = "XY" -o "X$SOLARIS_VSOCK" = "Xy"      # {
4876       then
4877         LSOF_CFGF="$LSOF_CFGF -DHAS_VSOCK"
4878       fi        # }
4879     fi  # }
4880
4881     # Test for AFS.
4882
4883     if test -r ${AFS_VICE}/etc/ThisCell # {
4884     then
4885       if test "X$LSOF_SCRIPT_CALL" = "Xno"      # {
4886       then
4887         if test -r ./AFSHeaders -a -r ./AFSVersion      # {
4888         then
4889           LSOF_AFS="yes"
4890         fi      # }
4891       else
4892         if test ! -x ./AFSConfig        # {
4893         then
4894           echo "Can't find or execute the AFSConfig script"
4895           rm -f $LSOF_HLP
4896           exit 1
4897         fi      # }
4898         ./AFSConfig
4899         if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion  # {
4900         then
4901             LSOF_AFS="yes"
4902         fi      # }
4903       fi        # }
4904       if test "X$LSOF_AFS" = "Xyes"     # {
4905       then
4906         if test "X$SUN_AFSAPATHDEF" = "X"       # {
4907         then
4908           ls /usr/vice/etc/modload/libafs > /dev/null 2>&1
4909           if test $? -ne 0      # {
4910           then
4911             LSOF_TMP1=`ls /usr/vice/etc/modload/libafs* 2>/dev/null | wc -l`
4912             if test $LSOF_TMP1 -ne 0    # {
4913             then
4914               SUN_AFSAPATHDEF=`ls -t /usr/vice/etc/modload/libafs* | head -1`
4915             fi  # }
4916           fi    # }
4917         fi      # }
4918         if test "X$SUN_AFSAPATHDEF" != "X"      # {
4919         then
4920           LSOF_CFGF="$LSOF_CFGF -DAFSAPATHDEF=\\\"$SUN_AFSAPATHDEF\\\""
4921         fi      # }
4922         LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
4923         LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
4924         LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
4925       fi        # }
4926     fi  # }
4927
4928     # Test for VxFS.
4929     #
4930     # If the location of the VxFS header files hasn't been defined in the
4931     # environment, establish their likely locations.
4932
4933     LSOF_TMP2=$SOLARIS_VXFSINCL
4934     if test -d /opt/VRTS/include        # {
4935     then
4936       LSOF_TMP2="$LSOF_TMP2 /opt/VRTS/include"
4937     fi  # }
4938     if test -d /opt/VRTSvxfs/include    # {
4939     then
4940       LSOF_TMP2="$LSOF_TMP2 /opt/VRTSvxfs/include"
4941     fi  # }
4942     LSOF_TMP1=0
4943     for i in $LSOF_TMP2 # {
4944     do
4945       if test -r ${i}/vxfsutil.h        # {
4946       then
4947         LSOF_TMP1=1
4948         SOLARIS_VXFSINCL=$i
4949         break
4950       fi        # }
4951     done        # }
4952     if test $LSOF_TMP1 -eq 1    # {
4953     then
4954
4955     # The VxFS header files are for VxFS version 3.4 or above.  Enable VxFS
4956     # for those versions.
4957
4958       LSOF_CFGF="$LSOF_CFGF -DHASVXFS -DHASVXFSUTIL -I$SOLARIS_VXFSINCL"
4959
4960     # Determine which libvxfsutil.a is required -- 32 or 64 bit.
4961
4962       LSOF_TMP2=""                      # assume 32 bit
4963       echo "X$LSOF_CINFO" | grep "^X64" > /dev/null 2>&1
4964       if test $? -eq 0-a "X$SOLARIS_INSTR" != "X"       # {
4965       then
4966         case $SOLARIS_INSTR in  # {
4967         amd64*)
4968           LSOF_TMP2="/amd64"
4969           ;;
4970         sparcv9*)
4971           LSOF_TMP2="/sparcv9"
4972           ;;
4973         esac    # }
4974       fi        # }
4975
4976     # See if the correct library has been specified and exists.
4977
4978       if test "X$SOLARIS_VXFSLIB" = "X" # {
4979       then
4980         SOLARIS_VXFSLIB=`dirname $SOLARIS_VXFSINCL`/lib
4981       fi        # }
4982       LSOF_TMP3="${SOLARIS_VXFSLIB}${LSOF_TMP2}/libvxfsutil.a"
4983       if test ! -r $LSOF_TMP3   # {
4984       then
4985         echo "!!!FATAL: no VxFS $LSOF_TMP3"
4986         exit 1
4987       fi        # }
4988       LSOF_CFGL="$LSOF_CFGL -L$SOLARIS_VXFSLIB${LSOF_TMP2} -lvxfsutil -ldl"
4989
4990     # See if the library has the Reverse Name Lookup (RNL) function.
4991
4992       nm $LSOF_TMP3 | grep vxfs_inotopath > /dev/null 2>&1
4993       if test $? -eq 0  # {
4994       then
4995         LSOF_CFGF="$LSOF_CFGF -DHASVXFSRNL -DHASVXFSDNLC"
4996       fi        # }
4997     else
4998
4999     # See if there are VxFS header files for VxFS versions below 3.4.
5000
5001       if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h      # {
5002       then
5003
5004       # Define VxFS for VxFS versions below 3.4.  Make additional header
5005       # file tests.
5006
5007         LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5008         if test -r ${LSOF_INCLUDE}/sys/fs/vx_fs.h       # {
5009         then
5010           LSOF_CFGF="$LSOF_CFGF -DHASVXFS_FS_H"
5011         fi      # }
5012         if test -r ${LSOF_INCLUDE}/sys/fs/vx_sol.h      # {
5013         then
5014           LSOF_CFGF="$LSOF_CFGF -DHASVXFS_SOL_H"
5015         fi      # }
5016         if test -r ${LSOF_INCLUDE}/sys/fs/vx_machdep.h  # {
5017         then
5018           LSOF_CFGF="$LSOF_CFGF -DHASVXFS_MACHDEP_H"
5019         fi      # }
5020         if test -r ${LSOF_INCLUDE}/sys/fs/vx_solaris.h  # {
5021         then
5022           LSOF_CFGF="$LSOF_CFGF -DHASVXFS_SOLARIS_H"
5023           grep "off32_t;" ${LSOF_INCLUDE}/sys/fs/vx_machdep.h > /dev/null
5024           if test $? -eq 0      # {
5025           then
5026             LSOF_CFGF="$LSOF_CFGF -DHASVXFS_OFF32_T"
5027           fi    # }
5028           grep "off64_t;" ${LSOF_INCLUDE}/sys/fs/vx_solaris.h > /dev/null
5029           if test $? -eq 0      # {
5030           then
5031             LSOF_CFGF="$LSOF_CFGF -DHASVXFS_OFF64_T"
5032           fi    # }
5033           grep "vx_u64_t;" ${LSOF_INCLUDE}/sys/fs/vx_solaris.h > /dev/null
5034           if test $? -eq 0      # {
5035           then
5036             LSOF_CFGF="$LSOF_CFGF -DHASVXFS_U64_T"
5037           fi    # }
5038         fi      # }
5039         egrep "struct[  ]vx_inode[      ]\{" ${LSOF_INCLUDE}/sys/fs/vx_inode.h > /dev/null
5040         # } (dummy '}' to match '{' in above egrep)
5041         if test $? -eq 0        # {
5042         then
5043           LSOF_CFGF="$LSOF_CFGF -DHASVXFS_VX_INODE"
5044         fi      # }
5045       fi        # }
5046     fi  # }
5047
5048     # Set libraries and dialect subdirectory.
5049
5050     LSOF_CFGL="$LSOF_CFGL -lkvm -lelf -lsocket -lnsl"
5051     LSOF_DIALECT_DIR=sun
5052
5053     # Set local-specific stuff.
5054
5055     if test "X$LSOF_LOCALSUFFIX" = "XLOCAL"     # {
5056     then
5057       LSOF_DOC="\${DESTDIR}/usr/local/man"
5058     fi  # }
5059     ;;
5060
5061 # Configure for SCO|Caldera OpenServer Release 6.0.0 and UnixWare.
5062
5063   osr6|unixware|uw)
5064     LSOF_TMP1=$LSOF_TGT
5065     LSOF_TGT="uw"
5066     if test "X$LSOF_RANLIB_SUP" = "X"   # {
5067     then
5068       LSOF_RANLIB=""
5069     fi  # }
5070     if test "X$LSOF_VSTR" = "X" # {
5071     then
5072       LSOF_VSTR=`uname -v`
5073     fi  # }
5074     if test "X$LSOF_VERS" = "X" # {
5075     then
5076
5077       # If the Openserver Release 6.0.0 or UnixWare version isn't pre-defined,
5078       # determine it.
5079
5080       LSOF_VERS=`echo $LSOF_VSTR | sed 's/\([0-9\.]*\).*/\1/; s/\./ /g' | awk '{printf "%d%02d%02d\n", $1, $2, $3;}'`
5081     fi  # }
5082     if test $LSOF_TMP1 = "osr6" # {
5083     then
5084       LSOF_CINFO="OSR6 support via UnixWare sources"
5085
5086     # Convert the OpenServer Release 6.0.0 version number to a UnixWare one.
5087
5088       case $LSOF_VERS in        # {
5089       60000)
5090         LSOF_VERS=70104
5091         ;;
5092       *)
5093         echo "Unknown OpenServer Release version: $LSOF_VERS"
5094         rm -f $LSOF_HLP
5095         exit 1
5096       esac      # }
5097     fi  # }
5098     LSOF_CFGF="$LSOF_CFGF -DUNIXWAREV=$LSOF_VERS"
5099
5100     # Do OpenServer Release 6.0.0 and UnixWare version-specific stuff.
5101
5102     case $LSOF_VERS in  # {
5103     20100|20101|20102|20103)
5104       if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h      # {
5105       then
5106         LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5107       fi        # }
5108       LSOF_CFGL="$LSOF_CFGL -lsocket -lnsl -lelf -lgen"
5109       ;;
5110     70000|70001|70100|70101|70103|70104)
5111       LSOF_TSTBIGF=" "
5112       LSOF_TSTLFLG="-lsocket -lnsl"
5113       if test $LSOF_VERS -lt 70103      # {
5114       then
5115         LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/uw/uw7"
5116       else      # $LSOF_VERS -ge 70103
5117
5118       # Process 7.1.3 and above.
5119
5120         if test -r ${LSOF_INCLUDE}/netinet/in6.h        # {
5121         then
5122           LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
5123         fi      # }
5124         if test $LSOF_VERS -ge 70104    # {
5125         then
5126
5127         # Process 7.1.4 and above.
5128
5129           LSOF_TMP1=0
5130           if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h   # {
5131           then
5132             grep INKERNEL ${LSOF_INCLUDE}/netinet/in_pcb.h > /dev/null 2>&1
5133             if test $? -eq 0    # {
5134             then
5135               LSOF_TMP1=1
5136             fi  # }
5137           fi    # }
5138           if test $LSOF_TMP1 -eq 0 -a -r ${LSOF_INCLUDE}/netinet/tcp_var.h   # {
5139           then
5140             grep INKERNEL ${LSOF_INCLUDE}/netinet/tcp_var.h > /dev/null 2>&1
5141             if test $? -eq 0    # {
5142             then
5143               LSOF_TMP1=1
5144             fi  # }
5145           fi    # }
5146           if test $LSOF_TMP1 -eq 1      # {
5147           then
5148             LSOF_CFGF="$LSOF_CFGF -DHAS_INKERNEL"
5149           fi    # }
5150         fi      # }
5151       fi        # }
5152       if test ! -r ${LSOF_INCLUDE}/vm/swap.h -a -r ${LSOF_INCLUDE}/sys/swap.h   # {
5153       then
5154         (cd ./dialects/uw/uw7/vm; rm -f swap.h; ln -s ${LSOF_INCLUDE}/sys/swap.h swap.h)
5155       fi        # }
5156       if test -r ${LSOF_INCLUDE}/sys/fs/vx_gemini.h     # {
5157       then
5158         LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5159       fi        # }
5160       LSOF_CFGL="$LSOF_CFGL -lsocket -lnsl -lelf -lgen"
5161       /bin/pkginfo 2> /dev/null | grep -i patch | grep -i ptf7038 > /dev/null
5162       if test -r ${LSOF_INCLUDE}/sys/file.h     # {
5163       then
5164         grep f_open ${LSOF_INCLUDE}/sys/file.h > /dev/null
5165         if test $? -eq 0        # {
5166         then
5167           LSOF_CFGF="$LSOF_CFGF -DHAS_F_OPEN"
5168         fi      # }
5169       fi        # }
5170       if test -r ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h       # {
5171       then
5172         grep "cdfs_LogSecShift;" ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h > /dev/null 2>&1
5173         if test $? -eq 0        # {
5174         then
5175           LSOF_TMP=`grep "cdfs_LogSecShift;" ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h | sed 's/^[       ]*\([^  ]*\).*/\1/'`
5176           if test "X$LSOF_TMP" != "X"   # {
5177           then
5178             LSOF_CFGF="$LSOF_CFGF -DTYPELOGSECSHIFT=$LSOF_TMP"
5179           fi    # }
5180         fi      # }
5181       fi        # }
5182       if test -r ${LSOF_INCLUDE}/sys/proc.h     # {
5183       then
5184         grep p_pgid ${LSOF_INCLUDE}/sys/proc.h > /dev/null
5185         if test $? -eq 0        # {
5186         then
5187           LSOF_CFGF="$LSOF_CFGF -DHAS_P_PGID"
5188         fi      # }
5189       fi        # }
5190       if test $LSOF_VERS -ge 70101      # {
5191       then
5192
5193         # Do OpenServer Release 6.0.0 and UnixWare 7.1.1 and above tests, as
5194         # required.
5195
5196         if test "X$UW_HAS_NSC" = "X"    # {
5197         then
5198           UW_HAS_NSC=N
5199           if test -x /bin/node_self     # {
5200           then
5201             /bin/node_self > /dev/null 2>&1
5202             if test $? -eq 0    # {
5203             then
5204               UW_HAS_NSC=Y
5205             fi  # }
5206           fi    # }
5207         fi      # }
5208         if test "X$UW_HAS_NSC" = "XY" -o "X$UW_HAS_NSC" = "Xy"  # {
5209         then
5210           LSOF_CFGF="$LSOF_CFGF -DHAS_UW_NSC"
5211           LSOF_CFGL="$LSOF_CFGL -lcluster"
5212         fi      # }
5213         if test -r ${LSOF_INCLUDE}/sys/nsc_synch.h      # {
5214         then
5215           LSOF_CFGF="$LSOF_CFGF -DHAS_UW_CFS"
5216         fi      # }
5217       fi        # }
5218       ;;
5219     *)
5220       echo Unsupported UnixWare version: `uname -v`
5221       rm -f $LSOF_HLP
5222       exit 1
5223       ;;
5224     esac        # }
5225     if test -r ${LSOF_INCLUDE}/sys/fs/xnamnode.h        # {
5226     then
5227       LSOF_CFGF="$LSOF_CFGF -DHASXNAMNODE"
5228     fi  # }
5229     LSOF_DIALECT_DIR=uw
5230     ;;
5231
5232 # Handle unknown abbreviation.
5233
5234   *) 
5235     echo "Can't configure for $LSOF_TGT."
5236     cat $LSOF_HLP
5237     rm -f $LSOF_HLP
5238     exit 1
5239     ;;
5240
5241 # End of LSOF_TGT cases
5242
5243 esac    # }
5244
5245 # Do an inventory of the distribution, as required.
5246
5247 if test "X$LSOF_SCRIPT_CALL" = "Xyes" -a ! -r ./.neverInv       # {
5248 then
5249   if test ! -f ./Inventory      # Want -x, but Ultrix doesn't grok it.  # {
5250   then
5251     echo "Can't find Inventory script."
5252     rm -f $LSOF_HLP
5253     exit 1
5254   fi    # }
5255   ./Inventory
5256 fi      # }
5257
5258 # Make sure target directory exists.
5259
5260 if test ! -d ./dialects/$LSOF_DIALECT_DIR       # {
5261 then
5262   echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR doesn't exist."
5263   rm -f $LSOF_HLP
5264   exit 1
5265 fi      # }
5266
5267 # Make sure $LSOF_MK exists in the target directory.
5268
5269 if test ! -r ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK      # {
5270 then
5271   echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK doesn't exist."
5272   rm -f $LSOF_HLP
5273   exit 1
5274 fi      # }
5275
5276 # Make sure $LSOF_MKF, $LSOF_SPMKF, or $LSOF_MKF.$LSOF_LOCALSUFFIX) exists
5277 # in the target directory.
5278
5279 if test "X$LSOF_SPMKF" != "X"   # {
5280 then
5281   LSOF_TMP1=$LSOF_SPMKF
5282 else
5283   LSOF_TMP1=$LSOF_MKF
5284 fi      # }
5285 if test "X$LSOF_LOCALSUFFIX" != "X"     # {
5286 then
5287   LSOF_REST=$LSOF_TMP1.$LSOF_LOCALSUFFIX
5288 else
5289   LSOF_REST=$LSOF_TMP1
5290 fi      # }
5291 if test ! -r ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST    # {
5292 then
5293   echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST doesn't exist."
5294   rm -f $LSOF_HLP
5295   exit 1
5296 fi      # }
5297
5298 # If this is FreeBSD, make sure $LSOF_FBSD_ZFS_MKF exists.
5299
5300 if test $LSOF_FBSD_ZFS -eq 1    # {
5301 then
5302   if test ! ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF     # {
5303   then
5304     echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF doesn't exist."
5305     rm -f $LSOF_HLP
5306     exit 1
5307   fi    # }
5308 fi      # }}
5309
5310 # Make sure $LSOF_VF exists.  Extract the version number from it.
5311
5312 if test ! -r $LSOF_VF   # {
5313 then
5314   echo "Version number file, ./$LSOF_VF, doesn't exist."
5315   rm -f $LSOF_HLP
5316   exit 1
5317 else
5318   LSOF_VN=`sed "s/.ds VN \(.*\)/\1/" < $LSOF_VF`
5319 fi      # }
5320
5321 # Clean up in advance.
5322
5323 rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF $LSOF_TSTCFLG $LSOF_TSTCC
5324 rm -f $LSOF_TSTXOC $LSOF_TSTLFF
5325 echo "rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF $LSOF_TSTCFLG"
5326 echo "rm -f $LSOF_TSTCC $LSOF_TSTXOC $LSOF_TSTLFF"
5327
5328 # Make sure there's a C compiler name.
5329
5330 if test "X$LSOF_CC" = "X"       # {
5331 then
5332   LSOF_CC=cc
5333 fi      # }
5334
5335 # Do common feature analyses.
5336
5337 # Check for localtime(3) and strftime(3).
5338
5339 rm -f ${LSOF_TMPC}.*
5340 cat > $LSOF_TMPC.c << .LSOF_END_HERE_DOC2
5341 #include <time.h>
5342 main(){
5343   time_t cl;
5344   struct tm *ts;
5345   char bf[32];
5346   if ((cl = time(NULL)) == (time_t)-1)
5347     return(1);
5348   ts = localtime(&cl);
5349   if (strftime(bf, sizeof(bf), "%D", ts) != 8)
5350     return(1);
5351   if ((bf[2] != '/') || (bf[5] != '/'))
5352     return (1);
5353   return(0);
5354 }
5355 .LSOF_END_HERE_DOC2
5356 echo $EO "Testing C library for localtime() and strftime(), using $LSOF_CC ... $EC"
5357 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
5358 if test -x ${LSOF_TMPC}.x       # {
5359 then
5360   ./${LSOF_TMPC}.x
5361   if test $? -eq 0      # }
5362   then
5363     LSOF_CFGF="$LSOF_CFGF -DHAS_STRFTIME"
5364     echo "present"
5365   else
5366     echo "unusable"
5367   fi    # }
5368 else
5369   echo "missing"
5370 fi      # }
5371 rm -f ${LSOF_TMPC}.[cox]
5372
5373 # Make the dialect sources.
5374
5375 if test "X$LSOF_MKC" = "X"      # {
5376 then
5377   LSOF_MKC="ln -s"
5378 fi      # }
5379 LSOF_MKC=$LSOF_MKC ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK $LSOF_TGT $LSOF_VERS
5380
5381 # Make $LSOF_MKFC and ${LSOF_LIB}/$LSOF_LIBMKF.
5382
5383 echo "# $LSOF_TGT Makefile for lsof revision $LSOF_VN" > $LSOF_MKFC
5384 echo "" >> $LSOF_MKFC
5385 echo "CC=       $LSOF_CC" >> $LSOF_MKFC
5386 if test "X$LSOF_CCV" != "X"     # {
5387 then
5388   echo "" >> $LSOF_MKFC
5389   echo "CCV=    $LSOF_CCV" >> $LSOF_MKFC
5390 fi      # }
5391 if test "X$LSOF_LIB_NO" = "X"   # {
5392 then
5393   echo "" >> $LSOF_MKFC
5394   echo "LIB=    ${LSOF_LIB}/liblsof.a" >> $LSOF_MKFC
5395 fi      # }
5396 if test "X$LSOF_LD" != "X"      # {
5397 then
5398   echo "" >> $LSOF_MKFC
5399   echo "LD=     $LSOF_LD" >> $LSOF_MKFC
5400 fi      # }
5401 if test "X$LSOF_CINFO" != "X"   # {
5402 then
5403   echo "" >> $LSOF_MKFC
5404   echo "CINFO=  $LSOF_CINFO" >> $LSOF_MKFC
5405 fi      # }
5406 if test "X$LSOF_CFGD" != "X"    # {
5407 then
5408   echo "CFGD=   $LSOF_CFGD" >> $LSOF_MKFC
5409 fi      # }
5410 if test "X$LSOF_CFGDN" != "X"   # {
5411 then
5412   echo "CFGDN=  $LSOF_CFGDN" >> $LSOF_MKFC
5413 fi      # }
5414 if test "X$LSOF_ARCH" != "X"    # {
5415 then
5416   LSOF_CFGF="$LSOF_CFGF -DLSOF_ARCH=\\\"$LSOF_ARCH\\\""
5417 fi      # }
5418 if test "X$LSOF_VSTR" != "X"    # {
5419 then
5420   LSOF_TMP=`echo $LSOF_VSTR | sed 's/(/\\\\(/g' | sed 's/)/\\\\)/g'`
5421   LSOF_CFGF="$LSOF_CFGF -DLSOF_VSTR=\\\"$LSOF_TMP\\\""
5422 fi      # }
5423 echo "" >> $LSOF_MKFC
5424 echo "CFGF=     $LSOF_CFGF" >> $LSOF_MKFC
5425 if test "X$LSOF_LIB_NO" = "X"   # {
5426 then
5427   echo "" >> $LSOF_MKFC
5428   echo "CFGL=   $LSOF_FCFGL -L./$LSOF_LIB -llsof $LSOF_CFGL" >> $LSOF_MKFC
5429 fi      # }
5430 echo "" >> $LSOF_MKFC
5431 if test "X$LSOF_DEBUG" = "X"    # {
5432 then
5433   LSOF_DEBUG="-O"
5434 else
5435   if test "X$LSOF_DEBUG" = "XNo-O"      # {
5436   then
5437     LSOF_DEBUG=""
5438   fi    # }
5439 fi      # }
5440 echo "DEBUG=    $LSOF_DEBUG" >> $LSOF_MKFC
5441 if test "X$LSOF_DINC" != "X"    # {
5442 then
5443   echo "" >> $LSOF_MKFC
5444   echo "DINC=   $LSOF_DINC" >> $LSOF_MKFC
5445 fi      # }
5446 if test "X$LSOF_DOC" != "X"     # {
5447 then
5448   echo "" >> $LSOF_MKFC
5449   echo "DOC=$LSOF_DOC" >> $LSOF_MKFC
5450 fi      # }
5451 if test "X$LSOF_DISTRIBKVM" != "X" -a "X$LSOF_DISTRIBKVM" != "XKVM"     # {
5452 then
5453   echo "" >> $LSOF_MKFC
5454   echo "KVM=    $LSOF_DISTRIBKVM" >> $LSOF_MKFC
5455 fi      # }
5456 rm -f ${LSOF_LIB}/$LSOF_LIBMKF
5457 if test "X$LSOF_LIB_NO" = "X"   # {
5458 then
5459   cp $LSOF_MKFC ${LSOF_LIB}/$LSOF_LIBMKF
5460 fi      # }
5461 cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST >> $LSOF_MKFC
5462 if test "X$LSOF_LIB_NO" = "X"   # {
5463 then
5464
5465   # Put archiving and optional randomizing strings in ${LSOF_LIB}/$LSOF_LIBMKF.
5466   #
5467   # Process optional CFLAGS override.
5468   #
5469   # Add the library Makefile skeleton section.
5470
5471   echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5472   if test "X$LSOF_AR" = "X"     # {
5473   then
5474     echo "AR=   ar cr \${LIB} \${OBJ}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5475   else
5476     echo "AR=   $LSOF_AR \${LIB} \${OBJ}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5477   fi    # }
5478   if test "X$LSOF_RANLIB" != "X"        # {
5479   then
5480     echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5481     echo "RANLIB=       $LSOF_RANLIB \${LIB}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5482   fi    # }
5483   echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5484   if test "X$LSOF_CFLAGS_OVERRIDE" = "X"        # {
5485   then
5486     echo "CFLAGS=       \${CDEFS} \${INCL} \${DEBUG}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5487   else
5488     echo "override CFLAGS=\${CDEFS} \${INCL} \${DEBUG}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5489   fi    # }
5490   echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5491   cat ${LSOF_LIB}/$LSOF_LIBMKFSKEL >> ${LSOF_LIB}/$LSOF_LIBMKF
5492   echo $LSOF_MKFC and ${LSOF_LIB}/$LSOF_LIBMKF created.
5493 else
5494   echo $LSOF_MKFC created.
5495 fi      # }
5496
5497 # If this is FreeBSD, create $LSOF_FBSD_ZFS_MKF.
5498
5499 if test $LSOF_FBSD_ZFS -eq 1    # {
5500 then
5501   rm -f $LSOF_FBSD_ZFS_MKF
5502   echo "# $LSOF_TGT ZFS Makefile for lsof revision $LSOF_VN" > $LSOF_FBSD_ZFS_MKF
5503   echo "" >> $LSOF_FBSD_ZFS_MKF
5504   echo "CC=             $LSOF_CC" >> $LSOF_FBSD_ZFS_MKF
5505   echo "" >> $LSOF_FBSD_ZFS_MKF
5506   echo "CFLAGS= $LSOF_FBSD_ZFS_CFGF" >> $LSOF_FBSD_ZFS_MKF
5507   echo "" >> $LSOF_FBSD_ZFS_MKF
5508   if test "X$LSOF_DEBUG" = "X"  # {
5509   then
5510     LSOF_DEBUG="-O"
5511   else
5512     if test "X$LSOF_DEBUG" = "XNo-O"    # {
5513     then
5514       LSOF_DEBUG=""
5515     fi  # }
5516   fi    # }
5517   echo "DEBUG=  $LSOF_DEBUG" >> $LSOF_FBSD_ZFS_MKF
5518   echo "" >> $LSOF_FBSD_ZFS_MKF
5519   echo "OPENSOLARIS=    $LSOF_FBSD_ZFS_SYS" >> $LSOF_FBSD_ZFS_MKF
5520   echo "" >> $LSOF_FBSD_ZFS_MKF
5521   cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF >> $LSOF_FBSD_ZFS_MKF
5522   echo $LSOF_FBSD_ZFS_MKF created.
5523 fi      # }
5524
5525 # Create test cc file.
5526
5527 echo "$LSOF_CC" > $LSOF_TSTCC
5528 echo "$LSOF_TSTCC created"
5529
5530 # Create test cflags file.
5531
5532 echo "-DLT_DIAL_$LSOF_TGT" > $LSOF_TSTCFLG
5533 if test "X$LSOF_TSTBIGF" != "X" # {
5534 then
5535   echo "-DLT_BIGF" >> $LSOF_TSTCFLG
5536   if test "X$LSOF_TSTBIGF" != "X "      # {
5537   then
5538     for i in $LSOF_TSTBIGF      # {
5539     do
5540       echo "$i" >> $LSOF_TSTCFLG
5541     done        # }
5542   fi    # }
5543 fi      # }
5544 if test "X$LSOF_TSTDFLG" != "X" # {
5545 then
5546   for i in $LSOF_TSTDFLG        # {
5547   do
5548     echo "$i" >> $LSOF_TSTCFLG
5549   done  # }
5550 fi      # }
5551 echo $LSOF_CC | grep gcc > /dev/null 2>&1
5552 if test $? -eq 0        # {
5553 then
5554   echo "-DLT_GCC" >> $LSOF_TSTCFLG
5555 else
5556   echo "-DLT_CC" >> $LSOF_TSTCFLG
5557 fi      # r}
5558 if test $LSOF_TSTKMEM -eq 1     # {
5559 then
5560   echo "-DLT_KMEM" >> $LSOF_TSTCFLG
5561 fi      # }
5562 if test $LSOF_TSTK64 -eq 1      # {
5563 then
5564   echo "-DLT_K64" >> $LSOF_TSTCFLG
5565 fi      # }
5566 echo "-DLT_VERS=$LSOF_VERS" >> $LSOF_TSTCFLG
5567 if test $LSOF_TSTVPATH -eq 1    # {
5568 then
5569   echo "-DLT_VPATH" >> $LSOF_TSTCFLG
5570 fi      # }
5571 echo "$LSOF_TSTCFLG created"
5572
5573 # Create tests loader flags file.
5574
5575 echo $LSOF_TSTLFLG > $LSOF_TSTLFF
5576 echo "$LSOF_TSTLFF created"
5577
5578 # Create test extra objects file.
5579
5580 echo "$LSOF_TSTXO" > $LSOF_TSTXOC
5581 echo "$LSOF_TSTXOC created"
5582
5583 rm -f $LSOF_HLP
5584
5585 # Call Customize, as required.
5586
5587 if test "X$LSOF_SCRIPT_CALL" = "Xyes" -a ! -r ./.neverCust      # {
5588 then
5589   if test ! -f ./Customize      # {  Want -x, but Ultrix doesn't grok it.
5590   then
5591     echo "Can't find Customize script."
5592     exit 1
5593   fi    # }
5594   ./Customize $LSOF_DIALECT_DIR
5595 fi      # }
5596
5597 # Issue unsupported warning, as appropriate.
5598
5599 if test "X$LSOF_UNSUP" != "X"   # {
5600 then
5601   echo "$LSOF_UNSUP"
5602 fi      #}
5603 exit 0