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