Bump to lsof 4.91
[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.165 2018/02/14 14:18:48 abe Exp $
18
19 # LSOF_CFLAGS_OVERRIDE=1 may be introduced through the environment to cause
20 #       the library Makefile's CFLAGS definition to override any in the
21 #       environment.
22
23 # LSOF_DISTRIBKVM may be introduced through the environment to specify the
24 #       Sun4 kernel virtual memory type of distrib.cf
25
26 LSOF_F="ddev.c dfile.c dlsof.h dmnt.c dnode*.c dproc.c dproto.h dsock.c dstore.c dzfs.h kernelbase.h machine.h machine.h.old new_machine.h __lseek.s"
27 LSOF_HLP_BASE=./cfghlp.
28 LSOF_HLP=${LSOF_HLP_BASE}$$
29
30 # LSOF_LOCALSUFFIX may be introduced through the environment to select a local
31 #       version of a Makefile.  It is used as a suffix to $LSOF_MKF.
32
33 # LSOF_MAKE may be introduced through the environment to specify a path to the
34 #       make command.   It defaults to `which make`, if that is non-NULL;
35 #       otherwise to the string "make".
36
37 if test "X$LSOF_MAKE" = "X"     # {
38 then
39   LSOF_MAKE=`which make`
40   if test "X$LSOF_MAKE" = "X"   # {
41   then
42     LSOF_MAKE=make
43   fi    # }
44 fi      # }
45
46 LSOF_MK=Mksrc
47
48 # LSOF_MKC is the dialect's Mksrc create command -- default "ln -s".
49
50 # LSOF_MKFC may be introduced though the environment to change the name
51 # used for the created make file.
52
53 if test "X$LSOF_MKFC" = "X"     # {
54 then
55   LSOF_MKFC=Makefile
56 fi      # }
57
58 LSOF_LIB=lib
59 LSOF_MKF=Makefile
60 LSOF_LIBMKF=Makefile
61 LSOF_LIBMKFSKEL=Makefile.skel
62
63 LSOF_VF=version
64
65 # Make sure no other variable important to Makefile construction is
66 # already set in the environment.
67 #
68 #       $AFS_VICE           locatiion of AFS VICE directory
69 #                               (default = /usr/vice)
70 #       $LSOF_AFS           AFS temporary
71 #       $LSOF_AFS_NQ        AFS-not-qualified flag
72 #       $LSOF_AFSV          AFS version
73 #       $LSOF_AR            archive command and its arguments for making the
74 #                           lsof library
75 #       $LSOF_ARCH          Unix dialect architecture as a string (may be
76 #                           supplied externally)
77 #       $LSOF_CC            C compiler name (may be supplied externally)
78 #       $LSOF_CCV           C compiler version (may be supplied externally)
79 #       $LSOF_CDIR          configuration directory
80 #       $LSOF_CFGD          depend options
81 #       $LSOF_CFGDN         depend file name
82 #       $LSOF_CFGF          C flags -- e.g., -D's
83 #       $LSOF_CFGL          last lsof library loader flags -- e.g., -l's
84 #       $LSOF_CINFO         Configure information for LSOF_CINFO in version.h
85 #       $LSOF_CTFH          Solaris 10 and above libctf.h status
86 #       $LSOF_CTFL          Solaris 10 and above -lctf status
87 #       $LSOF_DEBUG         Makefile's DEBUG string
88 #       $LSOF_DINC          include flags -- -I's
89 #       $LSOF_DINC_ADD      include flags status
90 #       $LSOF_DOC           special document (man page) directory path
91 #       $LSOF_ERR           internal error flag
92 #       $LSOF_FCFGL         first lsof library loader flags -- e.g., -l's
93 #                           that must precede $LSOF_LIB
94 #       $LSOF_FBSD_ZFS      FreeBSD $LSOF_FBSD_ZFS_MKF status
95 #       $LSOF_FBSD_ZFS_CFGF FreeBSD ZFS configure flags
96 #       $LSOF_FBSD_ZFS_MKF  FreeBSD ZFS Makefile name
97 #       $LSOF_FBSD_ZFS_SYS  FreeBSD ZFS system sources location
98 #       $LSOF_HOST          host name (e.g., from uname -n)
99 #       $LSOF_INCLUDE       directory where header files are found
100 #                           (default = /usr/include)
101 #       $LSOF_LD            loader name if not $LSOF_CC
102 #       $LSOF_LIB_NO        if "N" don't configure the lsof library
103 #       $LSOF_LOCALSUFFIX   local suffix for Makefile
104 #       $LSOF_NBSD_BUFQH    NetBSD <sys/bufq.h> copy status
105 #       $LSOF_NBSD_PTYFS    NetBSD ${NETBSD_SYS}/sys/fs/ptyfs/ copy status
106 #       $LSOF_N_UNIXV       *BSD system's kernel file
107 #       $LSOF_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 opt_random.h
297       echo "rm -f opt_kdtrace.h opt_random.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       12*)
1624         LSOF_TSTBIGF=" "
1625         LSOF_VERS=12000
1626         ;;
1627       *)
1628         echo Unknown FreeBSD release: `uname -r`
1629         rm -f $LSOF_HLP
1630         exit 1
1631         ;;
1632       esac      # }
1633     fi  # }
1634
1635     # Clear LSOF_UNSUP message for supported versions of FreeBSD.
1636     
1637     case $LSOF_VERS in  # {
1638     4090|8020|8030|8040|9000|10000|11000|12000)
1639       LSOF_UNSUP=""
1640       ;;
1641     esac        # }
1642
1643     # Get system CFLAGS, if possible.
1644
1645     LSOF_TMP1=`echo "all:\n.include <bsd.prog.mk>" | $LSOF_MAKE -f- -VCFLAGS`
1646     LSOF_TMP=1
1647     while test $LSOF_TMP -eq 1  # {
1648     do
1649       echo $LSOF_TMP1 | grep -q -e '-O'
1650       if test $? -eq 0  # {
1651       then
1652         if test "X$LSOF_DEBUG" = "X"
1653           then  # {
1654             LSOF_DEBUG=`echo $LSOF_TMP1 | sed 's/.*\(-O[^ $]*\).*/\1/'`
1655          fi     # }
1656         LSOF_TMP1=`echo $LSOF_TMP1 | sed 's/\(.*\)-O[^ $]*\(.*\)/\1 \2/' | sed 's/^  *//g' | sed 's/  */ /g' | sed 's/  *$//'`
1657       else
1658         LSOF_TMP=0
1659       fi        # }
1660       LSOF_FBSD_ZFS_CFGF="$LSOF_CFGF $LSOF_TMP1"
1661     done        # }
1662     LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
1663     echo $LSOF_CFGF | grep -q NEEDS_BOOL_TYPEDEF
1664     if test $? -ne 0
1665     then        # {
1666       LSOF_CFGF="$LSOF_CFGF -DNEEDS_BOOL_TYPEDEF"
1667       LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DNEEDS_BOOL_TYPEDEF"
1668     fi  # }
1669
1670     # Determine path to FreeBSD sources.
1671
1672     LSOF_DINC_ADD=0
1673     if test "X$FREEBSD_SYS" = "X"       # {
1674     then
1675       if test -d /usr/src/sys   # {
1676       then
1677         FREEBSD_SYS=/usr/src/sys
1678       else
1679         if test -d /sys # {
1680         then
1681           FREEBSD_SYS="/sys"
1682         else
1683           echo "!!!WARNING!!!  No kernel sources in /usr/src/sys or /sys"
1684         fi      # }
1685       fi        # }
1686     fi  # }
1687
1688     # Test for thread (task) support.
1689
1690     if test -r ${LSOF_INCLUDE}/sys/user.h       # {
1691     then
1692       grep -q ki_numthreads ${LSOF_INCLUDE}/sys/user.h
1693       if test $? -eq 0  # {
1694       then
1695         LSOF_CFGF="$LSOF_CFGF -DHASTASKS"
1696       fi        # }
1697     else
1698       echo "FATAL: can't find sys/user.h"
1699       rm -f $LSOF_HLP
1700       exit 1
1701     fi  # }
1702
1703     # Test pause() status in system.h.
1704
1705     if test -r ${FREEBSD_SYS}/sys/systm.h       # {
1706     then
1707       grep -q pause_sbt ${FREEBSD_SYS}/sys/systm.h
1708       if test $? -eq 0  # {
1709       then
1710         LSOF_CFGF="$LSOF_CFGF -DHAS_PAUSE_SBT"
1711       fi        # }
1712     fi  # }
1713
1714     # Check the C library for closefrom and dup2.
1715
1716       if test -r /usr/lib/libc.a        # {
1717       then
1718         nm /usr/lib/libc.a | grep -q "W dup2"
1719         if test $? -eq 0        # {
1720         then
1721           LSOF_CFGF="$LSOF_CFGF -DHAS_DUP2"
1722         fi      # }
1723         nm /usr/lib/libc.a | grep -q "W closefrom"
1724         if test $? -eq 0        # {
1725         then
1726           LSOF_CFGF="$LSOF_CFGF -DHAS_CLOSEFROM"
1727         fi      # }
1728       fi        # }
1729
1730     # Do FreeBSD version-specific stuff.
1731
1732     case $LSOF_VERS in  # {
1733     1000)
1734       LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
1735       LSOF_CFGL="$LSOF_CFGL -lutil"
1736       LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/freebsd/include"
1737       if test "X$FREEBSD_KERNEL" = "X"  # {
1738       then
1739         LSOF_N_UNIXV="/386bsd"
1740       else
1741         LSOF_N_UNIXV=$FREEBSD_KERNEL
1742       fi        # }
1743       ;;
1744     2000|2005|2010)
1745       LSOF_CFGL="$LSOF_CFGL -lkvm"
1746       ;;
1747     2020)
1748       LSOF_CFGL="$LSOF_CFGL -lkvm"
1749       if test -r ${LSOF_INCLUDE}/vm/lock.h      # {
1750       then
1751         LSOF_CFGF="$LSOF_CFGF -DHASVMLOCKH"
1752       fi        # }
1753       ;;
1754     3000|3010|3020|3030|3040|3050)
1755       LSOF_CFGL="$LSOF_CFGL -lkvm"
1756       if test -r ${LSOF_INCLUDE}/nfs/rpcv2.h    # {
1757       then
1758         LSOF_CFGF="$LSOF_CFGF -DHASRPCV2H"
1759       fi        # }
1760       if test -r ${LSOF_INCLUDE}/vm/lock.h      # {
1761       then
1762         LSOF_CFGF="$LSOF_CFGF -DHASVMLOCKH"
1763       fi        # }
1764       ;;
1765     *)
1766       if test -r ${LSOF_INCLUDE}/nfs/rpcv2.h    # {
1767       then
1768         LSOF_CFGF="$LSOF_CFGF -DHASRPCV2H"
1769       fi        # }
1770       if test -r ${LSOF_INCLUDE}/sys/namei.h    # {
1771       then
1772         grep -q "^struct[       ]*namecache[    ]*{" ${LSOF_INCLUDE}/sys/namei.h
1773         if test $? -eq 0        # {
1774         then
1775           LSOF_CFGF="$LSOF_CFGF -DHASNAMECACHE"
1776         fi      # }
1777       fi        # }
1778       if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h        # {
1779       then
1780         grep -q i_effnlink ${LSOF_INCLUDE}/ufs/ufs/inode.h
1781         if test $? -eq 0        # {
1782         then
1783           LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_effnlink"
1784         fi      # }
1785       fi        # }
1786       if test -r ${LSOF_INCLUDE}/sys/file.h     # {
1787       then
1788         grep -q f_vnode ${LSOF_INCLUDE}/sys/file.h
1789         if test $? -eq 0        # {
1790         then
1791           LSOF_CFGF="$LSOF_CFGF -DHASF_VNODE"
1792         fi      # }
1793       fi        # }
1794       LSOF_CFGL="$LSOF_CFGL -lkvm"
1795       if test $LSOF_VERS -ge 5000       # {
1796       then
1797
1798       # Do FreeBSD 5 and higher version-specific stuff.
1799
1800         if test -r ${LSOF_INCLUDE}/sys/vnode.h  # {
1801         then
1802           grep VT_FDESC ${LSOF_INCLUDE}/sys/vnode.h > /dev/null 2>&1
1803           if test $? -eq 0      # {
1804           then
1805             if test ! -r ${LSOF_INCLUDE}/fs/devfs/devfs.h       # {
1806             then
1807               if test -r ${FREEBSD_SYS}/fs/devfs/devfs.h        # {
1808               then
1809                 LSOF_DINC_ADD=1
1810               else
1811                 echo "!!!FATAL: lsof cannot locate the devfs.h header file"
1812                 echo "          in ${LSOF_INCLUDE}/fs/devfs/devfs.h or"
1813                 echo "          ${FREEBSD_SYS}/fs/devfs/devfs.h.  Consult"
1814                 echo "          00FAQ for an explanation."
1815                 rm -f $LSOF_HLP
1816                 exit 1
1817               fi        # }
1818             fi  # }
1819           fi    # }
1820         fi      # }
1821         if test -r ${FREEBSD_SYS}/sys/filedesc.h        # {
1822         then
1823           grep -q filedescent ${FREEBSD_SYS}/sys/filedesc.h
1824           if test $? -eq 0      # {
1825           then
1826             LSOF_CFGF="$LSOF_CFGF -DHAS_FILEDESCENT"
1827           fi    # }
1828         fi      # }
1829         if test -r ${FREEBSD_SYS}/fs/tmpfs/tmpfs.h      # {
1830         then
1831             LSOF_CFGF="$LSOF_CFGF -DHAS_TMPFS"
1832         fi      #}
1833
1834       # Do FreeBSD 5.2 and higher version-specific stuff.
1835
1836         if test -r ${LSOF_INCLUDE}/wctype.h     # {
1837         then
1838           LSOF_CFGF="$LSOF_CFGF -DHASWCTYPE_H"
1839         fi      # }
1840         if test $LSOF_VERS -ge 5020     # {
1841         then
1842
1843         # Determine the status of the cpumask_t typedef.
1844
1845           rm -f ${LSOF_TMPC}.*
1846           cat > ${LSOF_TMPC}.c << .LSOF_END_HERE_DOC3
1847 #undef _KERNEL
1848 #include <sys/types.h>
1849 main() {
1850 cpumask_t c;
1851 }
1852 .LSOF_END_HERE_DOC3
1853           $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
1854           LSOF_TMP1=$?
1855           rm -f ${LSOF_TMPC}.*
1856           if test $LSOF_TMP1 -ne 0      # {
1857           then
1858
1859           # The cpumask_t typedef is unknown when _KERNEL is not defined.
1860
1861             if test -r ${LSOF_INCLUDE}/sys/types.h \
1862                     -a -r ${LSOF_INCLUDE}/machine/_types.h      # {
1863             then
1864               grep -q cpumask_t ${LSOF_INCLUDE}/sys/types.h
1865               if test $? -eq 0  # {
1866               then
1867                 grep -q __cpumask_t ${LSOF_INCLUDE}/machine/_types.h
1868                 if test $? -eq 0        # {
1869                 then
1870                   LSOF_CFGF="$LSOF_CFGF -DHASCPUMASK_T"
1871                 else
1872                   $LSOF_CC -E ${LSOF_INCLUDE}/machine/_types.h 2>/dev/null | grep -q __cpumask_t
1873                   if test $? -eq 0  # {
1874                   then
1875                     LSOF_CFGF="$LSOF_CFGF -DHASCPUMASK_T"
1876                   fi    # }
1877                 fi      # }
1878               fi        # }
1879             fi  # }
1880           fi    # }
1881           if test -r ${LSOF_INCLUDE}/sys/socketvar.h    # {
1882           then
1883             grep -q SBS_CANT ${LSOF_INCLUDE}/sys/socketvar.h
1884             if test $? -eq 0    # {
1885             then
1886                 LSOF_CFGF="$LSOF_CFGF -DHASSBSTATE"
1887             fi  # }
1888           fi    # }
1889         fi      # }
1890         if test $LSOF_VERS -ge 5030     # {
1891         then
1892
1893         # Do FreeBSD 5.3 and higher version-specific stuff.
1894
1895           if test -r ${LSOF_INCLUDE}/sys/vnode.h        # {
1896           then
1897             grep -q "defined(_KVM_VNODE)" ${LSOF_INCLUDE}/sys/vnode.h
1898             if test $? -eq 0    # {
1899             then
1900                 LSOF_CFGF="$LSOF_CFGF -DHAS_KVM_VNODE"
1901             fi  #}
1902           fi    # }
1903         fi      # }
1904         if test $LSOF_VERS -ge 6000     # {
1905         then
1906
1907         # Do FreeBSD 6.0 and higher version-specific stuff.
1908
1909           if test -r ${LSOF_INCLUDE}/sys/_types.h       # {
1910           then
1911             grep __dev_t ${LSOF_INCLUDE}/sys/_types.h | grep -q 64
1912             if test $? -eq 0    # {
1913             then
1914               if test "X$LSOF_TSTDFLG" = "X"    # {
1915               then
1916                 LSOF_TSTDFLG="-DLT_DEV64"
1917               else
1918                 LSOF_TSTDFLG="$LSOF_TSTDFLG -DLT_DEV64"
1919               fi        # }
1920             fi  # }
1921           fi    # }
1922           if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h    # {
1923           then
1924             grep -q i_din2 ${LSOF_INCLUDE}/ufs/ufs/inode.h
1925             if test $? -eq 0    # {
1926             then
1927               LSOF_CFGF="$LSOF_CFGF -DHAS_UFS1_2"
1928             fi  # }
1929             grep -q i_dev ${LSOF_INCLUDE}/ufs/ufs/inode.h
1930             if test $? -ne 0    # {
1931             then
1932               LSOF_CFGF="$LSOF_CFGF -DHAS_NO_IDEV"
1933             fi  # }
1934           fi    # }
1935           if test -r ${LSOF_INCLUDE}/sys/conf.h # {
1936           then
1937             grep -q vm_memattr_t ${LSOF_INCLUDE}/sys/conf.h
1938             if test $? -eq 0    #{
1939             then
1940               LSOF_CFGF="$LSOF_CFGF -DHAS_VM_MEMATTR_T"
1941             fi  # }
1942             grep -q "^#define   minor(" ${LSOF_INCLUDE}/sys/conf.h
1943             if test $? -eq 0    # {
1944             then
1945               LSOF_CFGF="$LSOF_CFGF -DHAS_CONF_MINOR"
1946               rm -f fbsd_minor.h
1947               if test -r ${LSOF_INCLUDE}/sys/types.h    # {
1948               then
1949                 LSOF_TMP1=`grep "^#define[      ]minor(" ${LSOF_INCLUDE}/sys/types.h`
1950                 if test "X$LSOF_TMP1" != "X"    # {
1951                 then
1952                   echo "Creating fbsd_minor.h"
1953                   cat > fbsd_minor.h << FBSD_MINOR1
1954 /*
1955  * fbsd_minor.h -- created by lsof Configure script on
1956 FBSD_MINOR1
1957                   echo $EO " * $EC" >> ./fbsd_minor.h
1958                   date >> ./fbsd_minor.h
1959                   cat >> ./fbsd_minor.h << FBSD_MINOR2
1960  */
1961
1962 #if     !defined(FBSD_MINOR_H)
1963 #define FBSD_MINOR_H
1964
1965 FBSD_MINOR2
1966                   echo $EO "${LSOF_TMP1}${EC}" >> fbsd_minor.h
1967                   cat >> ./fbsd_minor.h << FBSD_MINOR3
1968
1969 #endif  /* defined(FBSD_MINOR_H) */
1970 FBSD_MINOR3
1971                 fi      # }
1972               fi        # }
1973             else
1974               if test -r ${FREEBSD_SYS}/fs/devfs/devfs_int.h    # {
1975               then
1976                 grep -q cdev2priv ${FREEBSD_SYS}/fs/devfs/devfs_int.h
1977                 if test $? -eq 0        # {
1978                 then
1979                   LSOF_CFGF="$LSOF_CFGF -DHAS_CDEV2PRIV"
1980                 fi      # }
1981               fi        # }
1982             fi  # }
1983             grep -q "si_udev;" ${LSOF_INCLUDE}/sys/conf.h
1984             if test $? -ne 0    # {
1985             then
1986               LSOF_CFGF="$LSOF_CFGF -DHAS_NO_SI_UDEV"
1987             fi  # }
1988             grep -q si_priv ${LSOF_INCLUDE}/sys/conf.h
1989             if test $? -eq 0    # {
1990             then
1991               LSOF_CFGF="$LSOF_CFGF -DHAS_SI_PRIV"
1992             fi  # }
1993           fi    # }
1994           if test -r ${LSOF_INCLUDE}/sys/sx.h   # {
1995           then
1996             LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_SX_H"
1997           fi    # }
1998
1999         # Do FUSE file system test,
2000
2001           if test -r ${FREEBSD_SYS}/fs/fuse/fuse_node.h # {
2002           then
2003             LSOF_CFGF="$LSOF_CFGF -DHASFUSEFS"
2004           fi    # }
2005         # Do ZFS test.  Try for the newer OpenSolaris files first -- i.e.,
2006         # the ones in ${FREEBSD_SYS}/cddl/contrib/opensolaris.  If that fails,
2007         # try for the older ones in ${FREEBSD}/contrib/opensolaris.
2008
2009           LSOF_FBSD_ZFS_SYS=${FREEBSD_SYS}/cddl
2010           if test ! -r ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h       # {
2011           then
2012             LSOF_FBSD_ZFS_SYS=${FREEBSD_SYS}
2013             if test ! -r ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h     # {
2014             then
2015               LSOF_FBSD_ZFS_SYS=""
2016             fi  # }
2017           fi    # }
2018           if test "X$LSOF_FBSD_ZFS_SYS" != "X"  # {
2019           then
2020             LSOF_CFGF="$LSOF_CFGF -DHAS_ZFS"
2021             LSOF_FBSD_ZFS=1
2022             LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DFREEBSDV=$LSOF_VERS"
2023             LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_ZFS"
2024             grep -q z_phys ${LSOF_FBSD_ZFS_SYS}/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h
2025             if test $? -eq 0    # {
2026             then
2027               LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_Z_PHYS"
2028             fi  # }
2029             if test -r ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/sdt.h  #{
2030             then
2031               grep -q opt_kdtrace.h ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/sdt.h
2032               if test $? -eq 0  # {
2033               then
2034                 rm -f opt_kdtrace.h
2035                 touch opt_kdtrace.h
2036               fi        # }
2037             fi  # }
2038             if test -r ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/kcondvar.h #{
2039             then
2040                 grep -q cv_timedwait_sbt ${LSOF_FBSD_ZFS_SYS}/compat/opensolaris/sys/kcondvar.h
2041                 if test $? -eq 0        # {
2042                 then
2043                   LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_CV_TIMEDWAIT_SBT"
2044                 fi      # }
2045             fi  #}
2046             if test -r /usr/include/sys/random.h        # {
2047             then
2048               grep -q opt_random.h /usr/include/sys/random.h
2049               if test $? -eq 0  # {
2050               then
2051                 rm -f opt_random.h
2052                 touch opt_random.h
2053               fi        # }
2054             fi  # }
2055           fi    # }
2056           if test -r ${LSOF_INCLUDE}/sys/vnode.h        # {
2057           then
2058
2059           # See if the vnode contains the byte level lock pointer.
2060
2061             grep -q v_lockf ${LSOF_INCLUDE}/sys/vnode.h
2062             if test $? -eq 0    # {
2063             then
2064               LSOF_CFGF="$LSOF_CFGF -DHAS_V_LOCKF"
2065               if test $LSOF_FBSD_ZFS -eq 1      # {
2066               then
2067                 LSOF_FBSD_ZFS_CFGF="$LSOF_FBSD_ZFS_CFGF -DHAS_V_LOCKF"
2068               fi        # }
2069             fi  # }
2070           fi    # }
2071           if test -r ${LSOF_INCLUDE}/sys/lockf.h        # {
2072           then
2073
2074           # Determine the type of locking structure to which the inode or
2075           # vnode points.
2076
2077             grep -q "^struct lockf_entry" ${LSOF_INCLUDE}/sys/lockf.h
2078             if test $? -eq 0    # {
2079             then
2080
2081             # Build the ./lockf_owner.h header file.
2082
2083               LSOF_TMP1=""
2084               LSOF_TMP2=0
2085               echo "Creating ./lockf_owner.h from ${FREEBSD_SYS}/kern/kern_lockf.c"
2086               rm -f ./lockf_owner.h
2087               if test -r ${FREEBSD_SYS}/kern/kern_lockf.c       # {
2088               then
2089                 LSOF_TMP1=`grep -n "^struct lock_owner" ${FREEBSD_SYS}/kern/kern_lockf.c | sed 's/\([0-9]*\):.*$/\1/'`
2090                 if test "X$LSOF_TMP1" != "X"    # {
2091                 then
2092                   LSOF_TMP2=0
2093                   for i in `grep -n "};" ${FREEBSD_SYS}/kern/kern_lockf.c | sed 's/\([0-9]*\):.*$/\1/'` # {
2094                   do
2095                     if test $LSOF_TMP2 -eq 0 -a $i -gt $LSOF_TMP1       # {
2096                     then
2097                       LSOF_TMP2=$i
2098                     fi  # }
2099                   done  # }
2100                   if test $LSOF_TMP2 -eq 0      # {
2101                   then
2102                     LSOF_TMP1=""
2103                   else
2104                     cat > ./lockf_owner.h << LOCKF_OWNER1
2105 /*
2106  * lockf_owner.h -- created by lsof Configure script on
2107 LOCKF_OWNER1
2108                     echo $EO " * $EC" >> ./lockf_owner.h
2109                     date >> ./lockf_owner.h
2110                     cat >> ./lockf_owner.h << LOCKF_OWNER2
2111  */
2112
2113 #if     !defined(LOCKF_OWNER_H)
2114 #define LOCKF_OWNER_H
2115
2116 LOCKF_OWNER2
2117                     ed -s ${FREEBSD_SYS}/kern/kern_lockf.c >> ./lockf_owner.h << LOCKF_OWNER3
2118 ${LSOF_TMP1},${LSOF_TMP2}p
2119 LOCKF_OWNER3
2120                     if test $? -ne 0    # {
2121                     then
2122                       LSOF_TMP1=""
2123                     else
2124                       cat >> ./lockf_owner.h << LOCKF_OWNER4
2125
2126 #endif  /* defined(LOCKF_OWNER_H) */
2127 LOCKF_OWNER4
2128                     fi  # }
2129                   fi    # }
2130                 fi      # }
2131               else
2132                 echo "FATAL ERROR: can't read ${FREEBSD_SYS}/kern/kern_lockf.c"
2133               fi        # }
2134               if test "X$LSOF_TMP1" != "X" -a "X$LSOF_TMP2" != "X0" # {
2135               then
2136                 echo "./lockf_owner.h creation succeeded."
2137                 LSOF_CFGF="$LSOF_CFGF -DHAS_LOCKF_ENTRY"
2138               else
2139                 echo "FATAL ERROR: ./lockf_owner.h creation failed (see 00FAQ)"
2140                 rm -f $LSOF_HLP
2141                 exit 1
2142               fi        # }
2143             fi  # }
2144
2145           # Test for in6p_.port in inpcb structure.
2146
2147             if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
2148             then
2149               grep -q 'in6p_.port' ${LSOF_INCLUDE}/netinet/in_pcb.h
2150               if test $? -ne 0  # {
2151               then
2152                 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_6PORT"
2153               fi        # }
2154             fi  # }
2155
2156           # Test for in6p_ppcb in inpcb structure.
2157
2158             if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h # {
2159             then
2160               grep -q 'in6p_ppcb' ${LSOF_INCLUDE}/netinet/in_pcb.h
2161               if test $? -ne 0  # {
2162               then
2163                 LSOF_CFGF="$LSOF_CFGF -DHAS_NO_6PPCB"
2164               fi        # }
2165             fi  # }
2166             if test -r ${LSOF_INCLUDE}/sys/conf.h       # {
2167             then
2168               grep -q 'doadump(boolean_t)' ${LSOF_INCLUDE}/sys/conf.h
2169               if test $? -eq 0  # {
2170               then
2171                 LSOF_CFGF="$LSOF_CFGF -DNEEDS_BOOLEAN_T"
2172               fi        # }
2173             fi  # }
2174             if test -r ${LSOF_INCLUDE}/sys/sockbuf.h    # {
2175             then
2176               grep -q 'u_int    sb_ccc;' ${LSOF_INCLUDE}/sys/sockbuf.h
2177               if test $? -eq 0  # {
2178               then
2179                 LSOF_CFGF="$LSOF_CFGF -DHAS_SB_CCC"
2180               fi        # }
2181             fi  # }
2182             if test -r ${LSOF_INCLUDE}/sys/filedesc.h   # {
2183             then
2184               grep -q '^struct fdescenttbl {' ${LSOF_INCLUDE}/sys/filedesc.h
2185               if test $? -eq 0  # {
2186               then
2187                 LSOF_CFGF="$LSOF_CFGF -DHAS_FDESCENTTBL"
2188               fi        # }
2189             fi  # }
2190           fi    # }
2191         fi      # }
2192       fi        # }
2193       if test $LSOF_VERS -eq 10000      # {
2194       then
2195
2196       # Do specific FreeBSD 10 version-specific stuff.
2197
2198         LSOF_TMP1=`uname -m`
2199         if test "X$LSOF_TMP1" = "Xi386" # {
2200         then
2201           LSOF_CFGF="$LSOF_CFGF -DNEEDS_BOOL_TYPEDEF"
2202         fi      # }
2203       fi        # }
2204       ;;
2205     esac        # }
2206     LSOF_CFGF="$LSOF_CFGF -DFREEBSDV=$LSOF_VERS"
2207     if test $LSOF_VERS -lt 2000 -a "X$FREEBSD_KERNEL" = "X"     # {
2208     then
2209       if test ! -x $LSOF_N_UNIXV        # {
2210       then
2211         echo "Hmmm -- $LSOF_N_UNIXV doesn't appear to be your kernel file."
2212         echo "Please enter the name of the file in / that contains"
2213         echo "the kernel for this host.  It must be a regular file,"
2214         echo "not a directory, and must be executable."
2215         LSOF_LOOP=1
2216         while test $LSOF_LOOP = 1       # {
2217         do
2218           echo ""
2219           echo "/ contains:"
2220           echo ""
2221           ls -CF /
2222           echo ""
2223           echo -n "Kernel file name? "
2224           read LSOF_N_UNIXV LSOF_EXCESS
2225           LSOF_N_UNIXV="/$LSOF_N_UNIXV"
2226           if test ! -d $LSOF_N_UNIXV -a -x $LSOF_N_UNIXV        # {
2227           then
2228             LSOF_LOOP=0
2229           else
2230             echo ""
2231             echo $LSOF_N_UNIXV is not a regular executable file.
2232           fi    # }
2233         done    # }
2234       fi        # }
2235       LSOF_N_UNIXV=`echo $LSOF_N_UNIXV | sed 's#^/*#/#'`
2236       LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=$LSOF_N_UNIXV"
2237     fi  # }
2238     if test -r ${FREEBSD_SYS}/miscfs/fdesc/fdesc.h      # {
2239     then
2240       LSOF_TMP1=${FREEBSD_SYS}/miscfs/fdesc/fdesc.h
2241     else
2242       if test $LSOF_VERS -ge 5000 -a -r ${LSOF_INCLUDE}/fs/fdescfs/fdesc.h  # {
2243       then
2244         LSOF_TMP1=${LSOF_INCLUDE}/fs/fdescfs/fdesc.h
2245       else
2246         LSOF_TMP1=""
2247       fi        # }
2248     fi  # }
2249     if test "X$LSOF_TMP1" != "X"        # {
2250     then
2251       grep -q Fctty $LSOF_TMP1
2252       if test $? -eq 0  # {
2253       then
2254         LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
2255       else
2256         LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
2257       fi        # }
2258       grep -q fd_link $LSOF_TMP1
2259       if test $? -eq 0  # {
2260       then
2261         LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
2262       fi        # }
2263       LSOF_DINC_ADD=1
2264     fi  # }
2265     if test $LSOF_VERS -ge 5000 # {
2266     then
2267       LSOF_TMP1="fs"
2268     else
2269       LSOF_TMP1="miscfs"
2270     fi  # }
2271     if test $LSOF_VERS -lt 5000 # {
2272       then
2273       if test -d ${FREEBSD_SYS}/${LSOF_TMP1}/procfs     # {
2274       then
2275         LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
2276         LSOF_DINC_ADD=1
2277       fi        # }
2278     else
2279       if test -d ${FREEBSD_SYS}/${LSOF_TMP1}/pseudofs   # {
2280       then
2281         LSOF_CFGF="$LSOF_CFGF -DHASPSEUDOFS"
2282         LSOF_DINC_ADD=1
2283       fi        # }
2284     fi  # }
2285     if test -r ${LSOF_INCLUDE}/${LSOF_TMP1}/nullfs/null.h       # {
2286     then
2287       LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
2288     else
2289       if test -r ${FREEBSD_SYS}/${LSOF_TMP1}/nullfs/null.h      # {
2290       then
2291         LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
2292         LSOF_DINC_ADD=1
2293       fi        # }
2294     fi  # }
2295     if test -r ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h        # {
2296     then
2297       rm -f cd9660_node.h
2298       grep -q "^#ifdef [_]*KERNEL" ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h
2299       if test $? -eq 0  # {
2300       then
2301         ln -s ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h cd9660_node.h
2302       else
2303         sed -e '/^ \* Prototypes for ISOFS vnode operations/,$c\
2304         \ The ISOFS prototypes were removed by Configure. */' \
2305         < ${FREEBSD_SYS}/isofs/cd9660/cd9660_node.h > cd9660_node.h
2306         echo "" >> cd9660_node.h
2307       fi        # }
2308       LSOF_CFGF="$LSOF_CFGF -DHAS9660FS"
2309       if test $LSOF_VERS -ge 6000       # {
2310       then
2311         grep -q "i_dev;" cd9660_node.h
2312         if test $? -ne 0        # {
2313         then
2314           LSOF_CFGF="$LSOF_CFGF -DHAS_NO_ISO_DEV"
2315         fi      # }
2316       fi        # }
2317     fi  # }
2318     if test -r ${LSOF_INCLUDE}/sys/namei.h
2319     then
2320       grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
2321       if test $? -eq 0  # {
2322       then
2323         LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
2324       fi        # }
2325     fi  # }
2326     if test $LSOF_DINC_ADD -eq 1        # {
2327     then
2328       if test "X$LSOF_DINC" = "X"       # {
2329       then
2330         LSOF_DINC="-I${FREEBSD_SYS}"
2331       else
2332         LSOF_DINC="$LSOF_DINC -I${LSOF_INCLUDE} -I${FREEBSD_SYS}"
2333       fi        # }
2334     fi  # }
2335     if test -r ${LSOF_INCLUDE}/netinet/in.h     # {
2336     then
2337       grep IPV6_INRIA_VERSION ${LSOF_INCLUDE}/netinet/in.h > /dev/null
2338       if test $? -eq 0  # {
2339       then
2340         LSOF_CFGF="$LSOF_CFGF -DHASIPv6 -DHASINRIAIPv6"
2341       fi        # }
2342     fi  # }
2343     echo $CFGF | grep HASIPv6 > /dev/null
2344     if test $? -ne 0 -a -r ${LSOF_INCLUDE}/netinet6/in6.h       # {
2345     then
2346       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2347     fi  # }
2348     if test -r ${LSOF_INCLUDE}/utmpx.h # {
2349     then
2350       LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
2351     fi  # }
2352     LSOF_DIALECT_DIR=freebsd
2353     ;;
2354
2355 # Configure for HP-UX and HP-UX gcc.
2356
2357   hpux|hpuxgcc)
2358     if test "X$LSOF_RANLIB_SUP" = "X"   # {
2359     then
2360       LSOF_RANLIB=""
2361     fi  # }
2362     if test "X$LSOF_VSTR" = "X" # {
2363     then
2364       LSOF_VSTR=`uname -r`
2365     fi  # }
2366     if test "X$LSOF_VERS" = "X" # {
2367     then
2368
2369       # If the HP-UX version isn't pre-defined, determine it.
2370
2371       LSOF_VERS=`echo $LSOF_VSTR | awk -F. '{printf "%d%02d",\$2,\$3}'`
2372     fi  # }
2373     if test $LSOF_VERS -ge 1020 # {
2374     then
2375       LSOF_TSTBIGF="-D_LARGEFILE64_SOURCE"
2376     fi  # }
2377
2378     # Determine compiler.
2379
2380     if test "X$LSOF_CC" = "X"   # {
2381     then
2382       if test "X$LSOF_TGT" = "Xhpuxgcc" # {
2383       then
2384         LSOF_CC=gcc
2385       else
2386         if test "X$HPUX_CCDIR1" = "X"   # {
2387         then
2388           HPUX_CCDIR1="/bin"
2389         fi      # }
2390         if test "X$HPUX_CCDIR2" = "X"   # {
2391         then
2392           HPUX_CCDIR2="/usr/ccs/bin"
2393         fi      # }
2394         if test -x ${HPUX_CCDIR1}/cc    # {
2395         then
2396           LSOF_CC=${HPUX_CCDIR1}/cc
2397         else
2398           if test -x ${HPUX_CCDIR2}/cc  # {
2399           then
2400             LSOF_CC=${HPUX_CCDIR2}/cc
2401           else
2402             echo "No executable cc in $HPUX_CCDIR1 or $HPUX_CCDIR2"
2403             rm -f $LSOF_HLP
2404             exit 1
2405           fi    # }
2406         fi      # }
2407         $LSOF_CC -O < /dev/null 2>&1 | grep -q Bundled
2408         if test $? -eq 0        # {
2409         then
2410           LSOF_DEBUG="No-O"                     # to disable -O
2411           if test "X$HPUX_LIBC1" = "X"  # {
2412           then
2413             HPUX_LIBC1="/usr/lib"
2414           fi    # }
2415           if test -r ${HPUX_LIBC1}/libc.sl      # {
2416           then
2417             LSOF_FCFGL="-L$HPUX_LIBC -lc"
2418           else
2419             if test "X$HPUX_LIBC2" = "X"        # {
2420             then
2421               HPUX_LIBC2="/usr/lib"
2422             fi  # }
2423             if test -r ${HPUX_LIBC2}/libc.sl    # {
2424             then
2425               LSOF_FCFGL="-L$HPUX_LIBC2 -lc"
2426             fi  # }
2427           fi    # }
2428         fi      # }
2429       fi        # }
2430     fi  # }
2431     echo $LSOF_CC | grep gcc > /dev/null
2432     if test $? -eq 0    # {
2433     then
2434       LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
2435     else
2436       $LSOF_CC -O < /dev/null 2>&1 | grep -q Bundled
2437       if test $? -eq 0  # {
2438       then
2439         LSOF_DEBUG="No-O"                       # to disable -O
2440       fi        # }
2441     fi  # }
2442     LSOF_TGT=hpux
2443
2444     # Test for "const void" support.
2445
2446     rm -f ${LSOF_TMPC}.*
2447     echo "main() { const void *x; return(0); }" >> $LSOF_TMPC.c
2448     $LSOF_CC $LSOF_TMPC.c -o $LSOF_TMPC.x > /dev/null 2>&1
2449     if test $? -eq 0    # {
2450     then
2451       LSOF_CFGF="$LSOF_CFGF -DHAS_CONST"
2452     fi  # }
2453     rm -f ${LSOF_TMPC}.*
2454
2455     # Test HP-UX base.
2456
2457     if test "X$HPUX_BASE" = "X" # {
2458     then
2459       if test -d $LSOF_INCLUDE/sys/pstat -a $LSOF_VERS -ge 1111         # {
2460       then
2461         HPUX_BASE="pstat"
2462       else
2463         HPUX_BASE="/dev/kmem"
2464       fi        # }
2465     fi  # }
2466     if test "X$HPUX_BASE" = "Xpstat"    # {
2467     then
2468
2469       # Configure for pstat-based HP-UX lsof.
2470
2471       LSOF_CINFO="PSTAT-based"
2472       echo "Configuring PSTAT-based HP-UX lsof"
2473       LSOF_DIALECT_DIR=hpux/pstat
2474       LSOF_CFGF="$LSOF_CFGF -DHPUXV=$LSOF_VERS -D_PSTAT64"
2475       LSOF_CFGL="$LSOF_CFGL -lnsl"
2476       LSOF_TSTKMEM=0
2477       LSOF_TSTK64=1
2478       ls -l $LSOF_CC | grep -q ansic
2479       LSOF_TMP1=$?
2480       ls -l $LSOF_CC | grep -q aCC
2481       if test $? -eq 0 -o $LSOF_TMP1 -eq 0      # {
2482       then
2483         LSOF_CFGF="$LSOF_CFGF -Ae +DD32"
2484       else
2485         echo $LSOF_CC | grep -q gcc
2486         if test $? -ne 0        # {
2487         then
2488           LSOF_CFGF="$LSOF_CFGF +DD32"
2489         fi      # }
2490       fi        # }
2491       if test -r ${LSOF_INCLUDE}/netinet/in6.h  # {
2492       then
2493         LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2494       fi        # }
2495       if test -r ${LSOF_INCLUDE}/sys/pstat/stream_pstat_body.h  # {
2496       then
2497         grep -q PS_STR_XPORT_DATA ${LSOF_INCLUDE}/sys/pstat/stream_pstat_body.h
2498         if test $? -eq 0        # {
2499         then
2500           LSOF_CFGF="$LSOF_CFGF -D_PSTAT_STREAM_GET_XPORT"
2501         fi      # }
2502       fi        # }
2503       if test $LSOF_VERS -ge 1123       # {
2504       then
2505         LSOF_CFGF="$LSOF_CFGF -D_LARGEFILE64_SOURCE"
2506       fi        # }
2507     else
2508       if test "X$HPUX_BASE" = "X/dev/kmem"      # {
2509       then
2510     
2511         # Configure for /dev/kmem-based HP-UX lsof.
2512
2513         if test "X$HPUX_BOOTFILE" = "X" # {
2514         then
2515           HPUX_BOOTFILE="/stand/vmunix"
2516         fi      # }
2517         if test $LSOF_VERS -gt 1100     # {
2518         then
2519           echo ""
2520           echo "************************************************"
2521           echo "*                                              *"
2522           echo "* !!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!! *"
2523           echo "*                                              *"
2524           echo "* LSOF DOES NOT SUPPORT THIS VERSION OF HP-UX. *"
2525           echo "*                                              *"
2526           echo "************************************************"
2527           echo ""
2528           rm -f $LSOF_HLP
2529           exit 1
2530         fi      # }
2531         LSOF_CFGF="$LSOF_CFGF -DHPUXV=$LSOF_VERS"
2532         LSOF_CINFO="/dev/kmem-based"
2533         LSOF_DIALECT_DIR=hpux/kmem
2534         echo "Configuring /dev/kmem-based HP-UX lsof"
2535         if test $LSOF_VERS -lt 1000     # {
2536         then
2537           if test "X$HPUX_X25DIR" = "X" # {
2538           then
2539             HPUX_X25DIR="/etc/conf"
2540           else
2541             HPUX_X25DIR=$HPUX_X25DIR
2542           fi    # }
2543           if test -r ${HPUX_X25DIR}/x25/x25addrstr.h    # {
2544           then
2545             LSOF_CFGF="$LSOF_CFGF -DHPUX_CCITT"
2546             LSOF_DINC="$LSOF_DINC -I$HPUX_X25DIR"
2547           fi    # }
2548         fi      # }
2549         if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h -a -r ${LSOF_INCLUDE}/sys/fs/vx_hpux.h     # {
2550         then
2551           LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
2552         fi      # }
2553         if test $LSOF_VERS -ge 1030     # {
2554         then
2555           if test "X$HPUX_KERNBITS" = "X"       # {
2556           then
2557             HPUX_KERNBITS=`getconf _SC_KERNEL_BITS`
2558           fi    # }
2559           LSOF_CFGF="$LSOF_CFGF -DHPUXKERNBITS=${HPUX_KERNBITS} -I`pwd`/dialects/hpux/kmem/hpux11"
2560           if test $HPUX_KERNBITS -eq 64 # {
2561           then
2562             LSOF_TSTK64=1
2563             echo ""
2564             echo "*****************************************"
2565             echo "*                                       *"
2566             echo "* NOTICE!  Configuring for 64 bit HP-UX *"
2567             echo "*                                       *"
2568             echo "*****************************************"
2569             echo $LSOF_CC | grep gcc > /dev/null
2570             if test $? -eq 0    # {
2571             then
2572
2573             # Test gcc for 64 bit support, trying gcc with no options, then
2574             # with -mlp64, testing the result with file.
2575
2576               echo ""
2577               echo "Testing $LSOF_CC for 64 bit support"
2578               rm -f ${LSOF_TMPC}.*
2579               echo "main(){}" > ${LSOF_TMPC}.c
2580               LSOF_TMP1=""
2581               $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
2582               if test $? -eq 0  # {
2583               then
2584                 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
2585                 if test $? -eq 0        # {
2586                 then
2587                     LSOF_TMP1=" "
2588                 fi      # }
2589               fi        # }
2590               if test "X$LSOF_TMP1" = "X"       # {
2591               then
2592                 rm -f ${LSOF_TMPC}.x
2593                 $LSOF_CC ${LSOF_TMPC}.c -mlp64 -o ${LSOF_TMPC}.x > /dev/null 2>&1
2594                 if test $? -eq 0        # {
2595                 then
2596                   /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null
2597                   if test $? -eq 0      # {
2598                   then
2599                       LSOF_TMP1="-mlp64"
2600                   fi    # }
2601                 fi      # }
2602               fi        # }
2603               rm -f ${LSOF_TMPC}.*
2604               if test "X$LSOF_TMP1" = "X"       # {
2605               then
2606                 echo ""
2607                 echo "***************************************************"
2608                 echo "*                                                 *"
2609                 echo "* !!!!!!!!!!!!!!!!! FATAL ERROR !!!!!!!!!!!!!!!!! *"
2610                 echo "*                                                 *"
2611                 echo "* APPARENTLY GCC CANNOT BUILD 64 BIT EXECUTABLES. *"
2612                 echo "* A COMPILER MUST BE USED THAT CAN.  SEE 00FAQ    *"
2613                 echo "* FOR MORE INFORMATION.                           *"
2614                 echo "*                                                 *"
2615                 echo "***************************************************"
2616                 echo ""
2617                 rm -f $LSOF_HLP
2618                 exit 1
2619               else
2620                 if test "X$LSOF_TMP1" != "X "   # {
2621                 then
2622                   LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
2623                 fi      # }
2624                 LSOF_CFGL="$LSOF_CFGL -lelf"
2625                 LSOF_CINFO="${LSOF_CINFO}, 64 bit HP-UX"
2626               fi        # }
2627             else
2628
2629             # Set options for the HP-UX compiler.
2630
2631               LSOF_CFGF="$LSOF_CFGF +DD64"
2632               LSOF_CFGL="$LSOF_CFGL -lelf"
2633               LSOF_CINFO="${LSOF_CINFO}, 64 bit HP-UX"
2634             fi  # }
2635           else
2636             LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64"
2637             LSOF_CINFO="${LSOF_CINFO}, 32 bit HP-UX"
2638             echo $LSOF_CC | grep gcc > /dev/null
2639             if test $? -ne 0    # {
2640             then
2641               LSOF_CFGF="$LSOF_CFGF +DAportable"
2642             fi  # }
2643           fi    # }
2644           LSOF_CFGL="$LSOF_CFGL -lnsl"
2645         else
2646
2647         # When HP-UX is less than 10.30, but greater than or equal to 10,
2648         # check NFS3 rnode status.
2649
2650           if test $LSOF_VERS -ge 1000   # {
2651           then
2652             LSOF_TMP1=0
2653             if test "X$HPUX_RNODE3" = "X"       # {
2654             then
2655               nm -x $HPUX_BOOTFILE | grep -q nfs_vnodeops3
2656               if test $? -eq 0  # {
2657               then
2658                 if test -r ${LSOF_INCLUDE}/nfs/rnode.h  # {
2659                 then
2660                   grep -q r_fh3 ${LSOF_INCLUDE}/nfs/rnode.h
2661                   if test $? -ne 0      # {
2662                   then
2663                     LSOF_TMP1=1
2664                   fi    # }
2665                 fi      # }
2666               fi        # }
2667             else
2668               if test "X$HPUX_RNODE3" = "X1"    # {
2669               then
2670                 LSOF_TMP1=1
2671               fi        # }
2672             fi  # }
2673             if test $LSOF_TMP1 -eq 1    # {
2674             then
2675               LSOF_CFGF="$LSOF_CFGF -DHASRNODE3"
2676             fi  # }
2677           fi # }
2678         fi      # }
2679         if test $LSOF_VERS -eq 1100     # {
2680         then
2681
2682         # Test for the ipis_s structure.  If it is present, set HAS_IPC_S_PATCH.
2683
2684           if test "X$HPUX_IPC_S_PATCH" = "X"    # {
2685           then
2686             if test -x /usr/contrib/Q4/bin/q4exe        # {
2687             then
2688               LSOF_TMP=/usr/contrib/Q4/bin/q4exe
2689             else
2690               LSOF_TMP=/usr/contrib/bin/q4
2691             fi  # }
2692             if test -x $LSOF_TMP        # {
2693             then
2694               rm -f ${LSOF_TMPC}.out
2695               echo ""
2696               echo $EO "Looking in $HPUX_BOOTFILE for ipis_s with $LSOF_TMP ... $EC"
2697               echo "yes\\nfields -c struct ipis_s" | $LSOF_TMP $HPUX_BOOTFILE > ${LSOF_TMPC}.out 2>&1
2698               if test $? -ne 0  # {
2699               then
2700                 echo ""
2701                 echo ""
2702                 echo "!!!ERROR!!! $LSOF_TMP failed and produced the following output."
2703                 echo ""
2704                 cat ${LSOF_TMPC}.out
2705                 HPUX_IPC_S_PATCH=fail
2706               else
2707                 grep ipis_s ${LSOF_TMPC}.out > /dev/null 2>&1
2708                 if test $? -eq 0        # {
2709                 then
2710                   echo "ipis_s exists."
2711
2712                 # See if ipis_msgsqueued is present.
2713
2714                   grep ipis_msgsqueued ${LSOF_TMPC}.out > /dev/null 2>&1
2715                   if test $? -eq 0      # {
2716                   then
2717                     HPUX_IPC_S_PATCH=2
2718                   else
2719                     HPUX_IPC_S_PATCH=1
2720                   fi    # }
2721                 else
2722                   echo "ipis_s doesn't exist."
2723                   HPUX_IPC_S_PATCH=N
2724                 fi      # }
2725               fi        # }
2726               rm -f ${LSOF_TMPC}.out
2727             else
2728               echo "Can't locate or execute $LSOF_TMP"
2729               echo $EO "ls says: $EC"
2730               ls -ld $LSOF_TMP
2731               HPUX_IPC_S_PATCH=fail
2732             fi  # }
2733           fi    # }
2734           if test "X$HPUX_IPC_S_PATCH" = "Xfail"        # {
2735           then
2736             echo ""
2737             echo "!!!ERROR!!!     !!!ERROR!!!     !!!ERROR!!!     !!!ERROR!!!"
2738             echo "Configure can't use $LSOF_TMP to examine the ipis_s"
2739             echo "structure.  You must do that yourself, report the result in"
2740             echo "the HPUX_IPC_S_PATCH environment variable, then repeat the"
2741             echo "Configure step.  Consult the Configure script's use of"
2742             echo "$LSOF_TMP and the 00XCONFIG file for information"
2743             echo "on ipis_s testing and the setting of HPUX_IPC_S_PATCH."
2744             echo "!!!ERROR!!!     !!!ERROR!!!     !!!ERROR!!!     !!!ERROR!!!"
2745             echo ""
2746             rm -f $LSOF_HLP
2747             exit 1
2748           fi    # }
2749           if test "X$HPUX_IPC_S_PATCH" = "X1" -o "X$HPUX_IPC_S_PATCH" = "X2" # {
2750           then
2751             LSOF_CFGF="$LSOF_CFGF -DHAS_IPC_S_PATCH=$HPUX_IPC_S_PATCH"
2752           else
2753             if test "X$HPUX_IPC_S_PATCH" != "Xn" -a "X$HPUX_IPC_S_PATCH" != "XN" # {
2754             then
2755               echo "Illegal value for HPUX_IPC_S_PATCH: $HPUX_IPC_S_PATCH"
2756               rm -f $LSOF_HLP
2757               exit 1
2758             fi  # }
2759           fi    # }
2760         fi      #}
2761
2762         # Manufacture an hpux_mount.h header file with a mount struct in it, as
2763         # required.
2764
2765         if test -r ${LSOF_INCLUDE}/sys/mount.h  # {
2766         then
2767           LSOF_TMP1="dialects/${LSOF_DIALECT_DIR}/hpux_mount.h"
2768           rm -f $LSOF_TMP1
2769           echo "#if !defined(MANUFACTURED_HPUX_SYS_MOUNT_H)" > $LSOF_TMP1
2770           echo "#define MANUFACTURED_HPUX_SYS_MOUNT_H" >> $LSOF_TMP1
2771           echo "/* By lsof Configure:" `date` " */" >> $LSOF_TMP1
2772           echo "struct mount" >> $LSOF_TMP1
2773           sed '1,/struct mount/d' ${LSOF_INCLUDE}/sys/mount.h | sed -n '1,/m_dev/p' >> $LSOF_TMP1
2774           echo "};" >> $LSOF_TMP1
2775           echo "#endif" >> $LSOF_TMP1
2776           LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/${LSOF_DIALECT_DIR}"
2777         fi      # }
2778
2779         # Test for OnlineJFS.
2780
2781         if test $LSOF_VERS -ge 1100     # {
2782         then
2783           if test "X$HPUX_HASONLINEJFS" = "X" -a -x /sbin/fs/vxfs/subtype  # {
2784           then
2785             LSOF_TMP1=`/sbin/fs/vxfs/subtype`
2786             if test "X$LSOF_TMP1" = "Xvxfs3.3"
2787             then
2788               HPUX_HASONLINEJFS="Y"
2789             fi  # }
2790           fi    # }
2791           if test "X$HPUX_HASONLINEJFS" = "XY" -o "X$HPUX_HASONLINEJFS" = "Xy"
2792           # {
2793           then
2794             LSOF_CFGF="$LSOF_CFGF -DHASONLINEJFS"
2795           fi    # }
2796         fi      # }
2797
2798         # Test for AFS.
2799
2800         if test -r ${AFS_VICE}/etc/ThisCell     # {
2801         then
2802           if test "X$LSOF_SCRIPT_CALL" = "Xno"  # {
2803           then
2804             if test -r ./AFSHeaders -a -r ./AFSVersion  # {
2805             then
2806               LSOF_AFS="yes"
2807             fi  # }
2808           else
2809             if test ! -x ./AFSConfig    # {
2810             then
2811               echo "Can't find or execute the AFSConfig script"
2812               rm -f $LSOF_HLP
2813               exit 1
2814             fi  # }
2815             ./AFSConfig
2816             if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion      # {
2817             then
2818               LSOF_AFS="yes"
2819             fi  # }
2820           fi    # }
2821           if test "X$LSOF_AFS" = "Xyes" # {
2822           then
2823             LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
2824             LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
2825             LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
2826           fi    # }
2827         fi      # }
2828       else
2829         echo "HP-UX base unrecognized: $HPUX_BASE"
2830         rm -f $LSOF_HLP
2831         exit 1
2832       fi        # }
2833     fi  # }
2834     ;;
2835
2836 # Configure for Linux.
2837
2838   linux)
2839     LSOF_TSTBIGF="-D_FILE_OFFSET_BITS=64"
2840     LSOF_TSTKMEM=0
2841     if test "X$LSOF_CC" = "X"   # {
2842     then
2843       LSOF_CC=cc
2844       LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
2845     fi  # }
2846     if test "X$LINUX_CONF_CC" = "X"     # {
2847     then
2848       LINUX_CONF_CC=$LSOF_CC
2849     fi  #}
2850     LSOF_DIALECT_DIR=""
2851     if test "X$LINUX_INCL" = "X" # {
2852     then
2853       LINUX_INCL=/usr/include
2854     else
2855       LSOF_DINC="$LSOF_DINC -I${LINUX_INCL}"
2856     fi  # }
2857     if test "X$LINUX_VERSION_CODE" = "X" # {
2858     then
2859       if test -r "$LINUX_INCL/linux/version.h" # {
2860       then
2861         LINUX_VERSION_CODE=`cat $LINUX_INCL/linux/version.h | sed -n 's/.\+LINUX_VERSION_CODE \([[:digit:]]\+\)$/\1/p'`
2862       fi # }
2863     fi # }
2864     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);'`
2865     if test "X$LSOF_VSTR" = "X" # {
2866     then
2867       LSOF_VSTR=`uname -r`
2868     fi  # }
2869     if test "X$LSOF_VERS" = "X" # {
2870     then
2871
2872       # If the Linux version isn't predefined, determine it.
2873
2874       LSOF_VERS=`echo $LSOF_VSTR | sed 's/\./ /g' | awk '{printf "%d%d%03d",\$1,\$2,\$3}'`
2875     fi  # }
2876     LSOF_CFGF="$LSOF_CFGF -DLINUXV=$LSOF_VERS"
2877     if test $LSOF_VERS -lt 21072        # {
2878     then
2879       echo ""
2880         echo "!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!"
2881         echo "!                                                        !"
2882         echo "! THE /PROC-BASED LSOF SOURCES HAVE NOT BEEN TESTED ON   !"
2883         echo "! LINUX KERNELS BELOW 2.1.72, AND MAY NOT WORK ON THIS   !"
2884         echo "! KERNEL.  IT SHOULD USE A /DEV/KMEM-BASED LSOF.         !"
2885         echo "!                                                        !"
2886         echo "!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!==!!!WARNING!!!"
2887         echo ""
2888     else
2889       LSOF_UNSUP=""
2890     fi  # }
2891
2892     # If the Linux C library type isn't predefined, determine it.
2893
2894     if test "X$LINUX_CLIB" = "X"        # {
2895     then
2896       echo -n "Testing C library type with $LINUX_CONF_CC ... "
2897       rm -f ${LSOF_TMPC}.*
2898       cat > $LSOF_TMPC.c << .LSOF_END_HERE_DOC1
2899 #include <features.h>
2900 main() {
2901 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
2902 printf("-DGLIBCV=%d\n",__GLIBC__*100+__GLIBC_MINOR__);
2903 #elif defined(__GLIBC__)
2904 printf("-DGLIBCV=%d00\n",__GLIBC__);
2905 #else
2906 printf("\n");
2907 #endif
2908 return(0); }
2909 .LSOF_END_HERE_DOC1
2910       $LINUX_CONF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
2911       if test -x ${LSOF_TMPC}.x # {
2912       then
2913         LINUX_CLIB=`${LSOF_TMPC}.x`
2914         LSOF_TMP=$?
2915       else
2916         LINUX_CLIB=""
2917         LSOF_TMP=1
2918       fi        # }
2919       rm -f ${LSOF_TMPC}.*
2920       echo "done"
2921       if test $LSOF_TMP -ne 0   # {
2922       then
2923         echo "Cannot determine C library type; assuming it is not glibc."
2924         LINUX_CLIB=""
2925       else
2926         if test "X$LINUX_CLIB" = "X"    # {
2927         then
2928           echo "The C library type is not glibc."
2929         else
2930           echo "The C library type is glibc, version \"$LINUX_CLIB\"."
2931         fi      # }
2932       fi        # }
2933     fi  # }
2934     if test "X$LINUX_CLIB" != "X"       # {
2935     then
2936       LSOF_CFGF="$LSOF_CFGF $LINUX_CLIB"
2937     fi  # }
2938
2939     # Test for IPv6 support.
2940
2941     if test -r ${LSOF_INCLUDE}/netinet/ip6.h    # {
2942     then
2943       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
2944     fi  # }
2945
2946     # Test for <rpc/rpc.h>.
2947
2948     if ! test -r ${LSOF_INCLUDE}/rpc/rpc.h      # {
2949     then
2950       LSOF_CFGF="$LSOF_CFGF -DHASNORPC_H"
2951     fi  # }
2952
2953     # Test for TCP_* symbols.
2954
2955     if test -r ${LSOF_INCLUDE}/netinet/tcp.h    # (
2956     then
2957       grep -q TCP_ESTABLISHED ${LSOF_INCLUDE}/netinet/tcp.h
2958       if test $? -eq 0  # {
2959       then
2960         LSOF_CFGF="$LSOF_CFGF -DNEEDS_NETINET_TCPH"
2961       fi        #}
2962     fi  # }
2963
2964     # Test for SELinux support.
2965
2966     LSOF_TMP1=0
2967     if test "X$LINUX_HASSELINUX" = "X"  # {
2968     then
2969       if test -r ${LSOF_INCLUDE}/selinux/selinux.h      # {
2970       then
2971         LSOF_TMP1=1
2972       fi        # }
2973     else
2974       if test "X$LINUX_HASSELINUX" = "XY" -o "X$LINUX_HASSELINUX" = "Xy" # {
2975       then
2976         LSOF_TMP1=1
2977       fi        # }
2978     fi  # }
2979     if test $LSOF_TMP1 -eq 1    # {
2980     then
2981       LSOF_CFGF="$LSOF_CFGF -DHASSELINUX"
2982       LSOF_CFGL="$LSOF_CFGL -lselinux"
2983     fi  # }
2984
2985   # Test for UNIX socket endpoint support.
2986
2987     if test -r ${LSOF_INCLUDE}/linux/sock_diag.h -a -r ${LSOF_INCLUDE}/linux/unix_diag.h  # {
2988     then
2989       LSOF_CFGF="$LSOF_CFGF -DHASUXSOCKEPT"
2990     fi  # }
2991
2992   # Test for pseudoterminal endpoint support.
2993
2994     if test -r ${LSOF_INCLUDE}/linux/major.h # {
2995     then
2996       grep -q TTYAUX_MAJOR ${LSOF_INCLUDE}/linux/major.h
2997       if test $? -eq 0  # {
2998       then
2999         LSOF_CFGF="$LSOF_CFGF -DHASPTYEPT"
3000       fi        # }
3001     fi  # }
3002     LSOF_DIALECT_DIR="linux"
3003     LSOF_CFGF="$LSOF_CFGF -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE"
3004     ;;
3005
3006 # Configure for NetBSD.
3007
3008   netbsd)
3009     if test "X$LSOF_CC" = "X"   # {
3010     then
3011       LSOF_CC=cc
3012       LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3013     fi  # }
3014     if test "X$LSOF_VSTR" = "X" # {
3015     then
3016       LSOF_VSTR=`uname -r`
3017     fi  # }
3018     if test "X$LSOF_VERS" = "X" # {
3019     then
3020       
3021       # Validate the NetBSD version.
3022
3023       case $LSOF_VSTR in        # {
3024       1.2*)
3025         LSOF_VERS="1002000"
3026         ;;
3027       1.3*)
3028         LSOF_VERS="1003000"
3029         ;;
3030       1.4*)
3031         LSOF_VERS="1004000"
3032         ;;
3033       1.5*)
3034         LSOF_TSTBIGF=" "
3035         LSOF_VERS="1005000"
3036         ;;
3037       1.6*)
3038         LSOF_TSTBIGF=" "
3039         LSOF_VERS="1006000"
3040         ;;
3041       1*)
3042         LSOF_VERS="1006000"
3043         echo "!!!WARNING!!!  Unsupported NetBSD version: $LSOF_VSTR"
3044         echo "!!!WARNING!!!  Configuring for NetBSD 1.6"
3045         ;;
3046       2.0*)
3047         LSOF_TSTBIGF=" "
3048         LSOF_VERS="2000000"
3049         ;;
3050       2.99.9)
3051         LSOF_TSTBIGF=" "
3052         LSOF_VERS="2099009"
3053         ;;
3054       2.99.10)
3055         LSOF_TSTBIGF=" "
3056         LSOF_VERS="2099010"
3057         ;;
3058       2.99.*)
3059         LSOF_TSTBIGF=" "
3060         LSOF_VERS="2099010"
3061         ;;
3062       2*)
3063         LSOF_VERS="2000000"
3064         echo "!!!WARNING!!!  Unsupported NetBSD version: $LSOF_VSTR"
3065         echo "!!!WARNING!!!  Configuring for NetBSD 2.0"
3066         ;;
3067       3.0*)
3068         LSOF_TSTBIGF=" "
3069         LSOF_VERS="3000000"
3070         ;;
3071       3.99.*)
3072         LSOF_TSTBIGF=" "
3073         LSOF_VERS="3099000"
3074         ;;
3075       3*)
3076         LSOF_VERS="3000000"
3077         echo "!!!WARNING!!!  Unsupported NetBSD version: $LSOF_VSTR"
3078         echo "!!!WARNING!!!  Configuring for NetBSD 3.0"
3079         ;;
3080       *)
3081         echo "Unknown NetBSD release: $LSOF_VSTR"
3082         echo Assuming NetBSD 1.6
3083         LSOF_VERS="1006000"
3084         ;;
3085       esac      # }
3086     fi  # }
3087
3088     # Test for legal NetBSD version.
3089
3090     case $LSOF_VERS in  # {
3091     1002000|1003000|1004000|1005000|1006000)
3092       ;;
3093     2000000|2099009|2099010)
3094       ;;
3095     3000000|3099000)
3096       ;;
3097     *)
3098       echo "Unknown NetBSD version: $LSOF_VERS"
3099       rm -f $LSOF_HLP
3100       exit 1
3101       ;;
3102     esac        # }
3103     LSOF_CFGF="$LSOF_CFGF -DNETBSDV=$LSOF_VERS"
3104     LSOF_TMP1="-DN_UNIXV=/netbsd"
3105     if test -r ${LSOF_INCLUDE}/util.h   # {
3106     then
3107       grep -q getbootfile ${LSOF_INCLUDE}/util.h
3108       if test $? -eq 0  # {
3109       then
3110         LSOF_CFGL="$LSOF_CFGL -lutil"
3111         LSOF_TMP1="-DHASGETBOOTFILE"
3112       fi        # }
3113     fi  # }
3114     LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
3115     if test -r ${LSOF_INCLUDE}/kvm.h    # {
3116     then
3117       grep -q kvm_getproc2 ${LSOF_INCLUDE}/kvm.h
3118       if test $? -eq 0  # {
3119       then
3120           LSOF_CFGF="$LSOF_CFGF -DHASKVMGETPROC2"
3121       fi        # }
3122     fi  # }
3123
3124   # Here begin the dual tests on header files that may be in $LSOF_INCLUDE
3125   # or $NETBSD_SYS.
3126   #
3127   # Note that $LSOF_TMP1 holds an indicator of the need for -I$NETBSD_SYS.
3128   # LSOF_TMP4 contains a temporary indicator of the use of $NETBSD_SYS.
3129
3130     LSOF_TMP1=0
3131     if test "X$NETBSD_SYS" = "X"        # {
3132     then
3133       if test -d /usr/src       # {
3134       then
3135         NETBSD_SYS="/usr/src/sys"
3136       else
3137         NETBSD_SYS=$LSOF_INCLUDE
3138       fi        # }
3139     fi  # }
3140     LSOF_TMP2="nfs/nfsproto.h"
3141     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3142     then
3143       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3144       LSOF_TMP4=0
3145     else
3146       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3147       then
3148         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3149         LSOF_TMP4=1
3150       else
3151         LSOF_TMP3=""
3152       fi        # }
3153     fi  # }
3154     if test "X$LSOF_TMP3" != "X"        # {
3155     then
3156       LSOF_CFGF="$LSOF_CFGF -DHASNFSPROTO"
3157       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3158       then
3159         LSOF_TMP1=1
3160       fi        # }
3161     fi  # }
3162     LSOF_TMP2="netinet/ip6.h"
3163     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3164     then
3165       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3166       LSOF_TMP4=0
3167     else
3168       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3169       then
3170         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3171         LSOF_TMP4=1
3172       else
3173         LSOF_TMP3=""
3174       fi        # }
3175     fi  # }
3176     if test "X$LSOF_TMP3" != "X"        # {
3177     then
3178       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
3179       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3180       then
3181         LSOF_TMP1=1
3182       fi        # }
3183     else
3184       LSOF_TMP2="netinet/in.h"
3185       if test -r ${LSOF_INCLUDE}/$LSOF_TMP2     # {
3186       then
3187         LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3188         LSOF_TMP4=0
3189       else
3190         if test -r ${NETBSD_SYS}/$LSOF_TMP2     # {
3191         then
3192           LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3193           LSOF_TMP4=1
3194         else
3195           LSOF_TMP3=""
3196         fi      # }
3197       fi        # }
3198       if test "X$LSOF_TMP3" != "X"      # {
3199       then
3200         grep -q IPV6_INRIA_VERSION $LSOF_TMP3
3201         if test $? -eq 0        # {
3202         then
3203           LSOF_CFGF="$LSOF_CFGF -DHASIPv6 -DHASINRIAIPv6"
3204           if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1  # {
3205           then
3206             LSOF_TMP1=1
3207           fi    # }
3208         fi      # }
3209       fi # }
3210     fi  # }
3211     LSOF_TMP2="miscfs/fdesc/fdesc.h"
3212     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3213     then
3214       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3215     else
3216       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3217       then
3218         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3219         LSOF_TMP4=1
3220       else
3221         LSOF_TMP3=""
3222       fi        # }
3223     fi  # }
3224     if test "X$LSOF_TMP3" != "X"        # {
3225     then
3226       grep -q Fctty $LSOF_TMP3
3227       if test $? -eq 0  # {
3228       then
3229         LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
3230       else
3231         LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
3232       fi        # }
3233       grep -q fd_link $LSOF_TMP3
3234       if test $? -eq 0  # {
3235       then
3236         LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
3237       fi        # }
3238       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3239       then
3240         LSOF_TMP1=1
3241       fi        # }
3242     fi  # }
3243     LSOF_TMP2="miscfs/nullfs/null.h"
3244     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3245     then
3246       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3247       LSOF_TMP4=0
3248     else
3249       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3250       then
3251         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3252         LSOF_TMP4=1
3253       else
3254         LSOF_TMP3=""
3255       fi        # }
3256     fi  # }
3257     if test "X$LSOF_TMP3" != "X"        # {
3258     then
3259       LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
3260       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3261       then
3262         LSOF_TMP1=1
3263       fi        # }
3264     fi  # }
3265     LSOF_TMP2="miscfs/procfs"
3266     if test -d ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3267     then
3268       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3269       LSOF_TMP4=0
3270     else
3271       if test -d ${NETBSD_SYS}/$LSOF_TMP2       # {
3272       then
3273         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3274         LSOF_TMP4=1
3275       else
3276         LSOF_TMP3=""
3277       fi        # }
3278     fi  # }
3279     if test "X$LSOF_TMP3" != "X"        # {
3280     then
3281       LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
3282       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3283       then
3284         LSOF_TMP1=1
3285       fi        # }
3286       if test -r ${LSOF_TMP3}/procfs.h  # {
3287       then
3288         grep -q PFSroot ${LSOF_TMP3}/procfs.h
3289         if test $? -eq 0        # {
3290         then
3291           LSOF_CFGF="$LSOF_CFGF -DHASPROCFS_PFSROOT"
3292         fi #    }
3293       fi        # }
3294     fi  # }
3295     LSOF_TMP2="sys/bufq.h"
3296     LSOF_NBSD_BUFQH=0
3297     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3298     then
3299       LSOF_CFGF="$LSOF_CFGF -DHASBUFQ_H"
3300     else
3301       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3302       then
3303         if test $NETBSD_SYS != $LSOF_INCLUDE    # {
3304         then
3305           LSOF_CFGF="$LSOF_CFGF -DHASBUFQ_H"
3306           LSOF_NBSD_BUFQH=1
3307         fi      # }
3308       fi        # }
3309     fi  # }
3310     LSOF_TMP2="isofs/cd9660"
3311     if test -d ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3312     then
3313       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3314       LSOF_TMP4=0
3315     else
3316       if test -d ${NETBSD_SYS}/$LSOF_TMP2       # {
3317       then
3318         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3319         LSOF_TMP4=1
3320       else
3321         LSOF_TMP3=""
3322       fi        # }
3323     fi  # }
3324     if test "X$LSOF_TMP3" != "X"        # {
3325     then
3326       LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
3327       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3328       then
3329         LSOF_TMP1=1
3330       fi        # }
3331     else
3332       LSOF_TMP2="fs/cd9660"
3333       if test -d ${LSOF_INCLUDE}/$LSOF_TMP2     # {
3334       then
3335         LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3336         LSOF_TMP4=0
3337       else
3338         if test -d ${NETBSD_SYS}/$LSOF_TMP2     # {
3339         then
3340           LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3341           LSOF_TMP4=1
3342         else
3343           LSOF_TMP3=""
3344         fi      # }
3345       fi        # }
3346       if test "X$LSOF_TMP3" != "X"      # {
3347       then
3348         LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
3349         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3350         then
3351           LSOF_TMP1=1
3352         fi      # }
3353       fi        # }
3354     fi  # }
3355     LSOF_TMP2="msdosfs"
3356     if test -d ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3357     then
3358       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3359       LSOF_TMP4=0
3360     else
3361       if test -d ${NETBSD_SYS}/$LSOF_TMP2       # {
3362       then
3363         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3364         LSOF_TMP4=1
3365       else
3366         LSOF_TMP3=""
3367       fi        # }
3368     fi  # }
3369     if test "X$LSOF_TMP3" != "X"        # {
3370     then
3371       LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=1"
3372       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3373       then
3374         LSOF_TMP1=1
3375       fi        # }
3376     else
3377       LSOF_TMP2="fs/msdosfs"
3378       if test -d ${LSOF_INCLUDE}/$LSOF_TMP2     # {
3379       then
3380         LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3381         LSOF_TMP4=0
3382       else
3383         if test -d ${NETBSD_SYS}/$LSOF_TMP2     # {
3384         then
3385           LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3386           LSOF_TMP4=1
3387         else
3388           LSOF_TMP3=""
3389         fi      # }
3390       fi        # }
3391       if test "X$LSOF_TMP3" != "X"      # {
3392       then
3393         LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=2"
3394         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3395         then
3396           LSOF_TMP1=1
3397         fi      # }
3398       fi        # }
3399     fi  # }
3400     LSOF_TMP2="miscfs/kernfs/kernfs.h"
3401     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3402     then
3403       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3404       LSOF_TMP4=0
3405     else
3406       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3407       then
3408         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3409         LSOF_TMP4=1
3410       else
3411         LSOF_TMP3=""
3412       fi        # }
3413     fi  # }
3414     if test "X$LSOF_TMP3" != "X"        # {
3415     then
3416       grep -q "kt_name;" $LSOF_TMP3
3417       if test $? -eq 0  # {
3418         then
3419           LSOF_CFGF="$LSOF_CFGF -DHASKERNFS"
3420           if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1  # {
3421           then
3422             LSOF_TMP1=1
3423           fi    # }
3424           grep -q "*kfs_kt;" $LSOF_TMP3
3425           if test $? -eq 0      # {
3426           then
3427             LSOF_CFGF="$LSOF_CFGF -DHASKERNFS_KFS_KT"
3428           fi    # }
3429       fi        # }
3430     fi  # }
3431     LSOF_TMP2="sys/namei.h"
3432     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3433     then
3434       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3435       LSOF_TMP4=0
3436     else
3437       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3438       then
3439         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3440         LSOF_TMP4=1
3441       else
3442         LSOF_TMP3=""
3443       fi        # }
3444     fi  # }
3445     if test "X$LSOF_TMP3" != "X"        # {
3446     then
3447       grep -q nc_vpid $LSOF_TMP3
3448       if test $? -eq 0  # {
3449       then
3450         LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
3451         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3452         then
3453           LSOF_TMP1=1
3454         fi      # }
3455       fi        # }
3456     fi  # }
3457     LSOF_TMP2="ufs/ufs/inode.h"
3458     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3459     then
3460       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3461       LSOF_TMP4=0
3462     else
3463       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3464       then
3465         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3466         LSOF_TMP4=1
3467       else
3468         LSOF_TMP3=""
3469       fi        # }
3470     fi  # }
3471     if test "X$LSOF_TMP3" != "X"        # {
3472     then
3473       grep -q i_ffs_size $LSOF_TMP3
3474       if test $? -eq 0  # {
3475       then
3476         LSOF_CFGF="$LSOF_CFGF -DHASI_FFS"
3477         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3478         then
3479           LSOF_TMP1=1
3480         fi      # }
3481       else
3482         grep -q i_ffs1_size $LSOF_TMP3
3483         if test $? -eq 0        # {
3484         then
3485           LSOF_CFGF="$LSOF_CFGF -DHASI_FFS1"
3486           if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1  # {
3487           then
3488             LSOF_TMP1=1
3489           fi    # }
3490         fi      # }
3491       fi        # }
3492       grep -q i_ffs_effnlink $LSOF_TMP3
3493       if test $? -eq 0  # {
3494       then
3495         LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_ffs_effnlink"
3496         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3497         then
3498           LSOF_TMP1=1
3499         fi      # }
3500       fi        # }
3501     fi  # }
3502     LSOF_TMP2="sys/vnode.h"
3503     LSOF_NBSD_PTYFS=0
3504     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3505     then
3506       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3507       LSOF_TMP4=0
3508     else
3509       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3510       then
3511         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3512         LSOF_TMP4=1
3513       else
3514         LSOF_TMP3=""
3515       fi        # }
3516     fi  # }
3517     if test "XLSOF_TMP3" != "X" # {
3518     then
3519       grep -q VT_EXT2FS $LSOF_TMP3
3520       if test $? -eq 0  # {
3521       then
3522         LSOF_CFGF="$LSOF_CFGF -DHASEXT2FS"
3523         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3524         then
3525           LSOF_TMP1=1
3526         fi      # }
3527         LSOF_TMP2="ufs/ufs/inode.h"
3528         if test -r ${LSOF_INCLUDE}/$LSOF_TMP2   # {
3529         then
3530           LSOF_TMP5="${LSOF_INCLUDE}/$LSOF_TMP2"
3531           LSOF_TMP6=0
3532         else
3533           if test -r ${NETBSD_SYS}/$LSOF_TMP2   # {
3534           then
3535             LSOF_TMP5="${NETBSD_SYS}/$LSOF_TMP2"
3536             LSOF_TMP6=1
3537           else
3538             LSOF_TMP5=""
3539           fi    # }
3540         fi      # }
3541         if test "X$LSOF_TMP5" != "X"    # {
3542         then
3543           grep -q "*e2fs_din" $LSOF_TMP5
3544           if test $? -eq 0      # {
3545           then
3546             LSOF_CFGF="$LSOF_CFGF -DHASI_E2FS_PTR"
3547             if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1        # {
3548             then
3549               LSOF_TMP1=$LSOF_TMP6
3550             fi  # }
3551           fi    # }
3552         fi      # }
3553       fi        # }
3554       grep -q VT_LFS $LSOF_TMP3
3555       if test $? -eq 0   # {
3556       then
3557         LSOF_CFGF="$LSOF_CFGF -DHASLFS"
3558         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3559         then
3560           LSOF_TMP1=1
3561         fi      # }
3562       fi        # }
3563       grep -q VT_PTYFS $LSOF_TMP3
3564       if test $? -eq 0   # {
3565       then
3566         LSOF_TMP2="fs/ptyfs/ptyfs.h"
3567         if test -r ${LSOF_INCLUDE}/$LSOF_TMP2   # {
3568         then
3569           LSOF_CFGF="$LSOF_CFGF -DHASPTYFS"
3570         else
3571           if test -r ${NETBSD_SYS}/$LSOF_TMP2   # {
3572           then
3573             if test $NETBSD_SYS != $LSOF_INCLUDE        # {
3574             then
3575               LSOF_CFGF="$LSOF_CFGF -DHASPTYFS"
3576               LSOF_NBSD_PTYFS=1
3577             fi  # }
3578           fi    # }
3579         fi      # }
3580       fi        # }
3581       if test "X$NETBSD_UVM" = "X"      # {
3582       then
3583         grep -q UVM $LSOF_TMP3
3584         if test $? -ne 0        # {
3585         then
3586           egrep -q "v_uvm;|v_uobj;" $LSOF_TMP3
3587           if test $? -eq 0      # {
3588           then
3589             NETBSD_UVM="Y"
3590           fi    # }
3591         fi      # }
3592       fi        # }
3593     fi  # }
3594     LSOF_TMP2="nfs/nfsnode.h"
3595     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3596     then
3597       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3598       LSOF_TMP4=0
3599     else
3600       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3601       then
3602         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3603         LSOF_TMP4=1
3604       else
3605         LSOF_TMP3=""
3606       fi        # }
3607     fi  # }
3608     if test "X$LSOF_TMP3" != "X"        # {
3609     then
3610       grep -q "*n_vattr" $LSOF_TMP3
3611       if test $? -eq 0  # {
3612       then
3613         LSOF_CFGF="$LSOF_CFGF -DHASNFSVATTRP"
3614         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3615         then
3616           LSOF_TMP1=1
3617         fi      # }
3618       fi        # }
3619     fi  # }
3620     LSOF_TMP2="sys/lockf.h"
3621     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3622     then
3623       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3624       LSOF_TMP4=0
3625     else
3626       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3627       then
3628         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3629         LSOF_TMP4=1
3630       else
3631         LSOF_TMP3=""
3632       fi        # }
3633     fi  # }
3634     if test "X$LSOF_TMP3" != "X"        # {
3635     then
3636       grep -q vop_advlock_args $LSOF_TMP3
3637       if test $? -eq 0  # {
3638       then
3639         LSOF_CFGF="$LSOF_CFGF -DHAS_ADVLOCK_ARGS"
3640         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3641         then
3642           LSOF_TMP1=1
3643         fi      # }
3644       fi        # }
3645       grep -q lf_lwp $LSOF_TMP3
3646       if test $? -eq 0  # {
3647       then
3648         LSOF_CFGF="$LSOF_CFGF -DHAS_LF_LWP"
3649         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3650         then
3651           LSOF_TMP1=1
3652         fi      # }
3653       fi        # }
3654     fi  # }
3655     LSOF_TMP2="sys/lwp.h"
3656     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3657     then
3658       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3659       LSOF_TMP4=0
3660     else
3661       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3662       then
3663         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3664         LSOF_TMP4=1
3665       else
3666         LSOF_TMP3=""
3667       fi        # }
3668     fi  # }
3669     if test "X$LSOF_TMP3" != "X"        # {
3670     then
3671       LSOF_CFGF="$LSOF_CFGF -DHAS_LWP_H"
3672       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3673       then
3674         LSOF_TMP1=1
3675       fi        # }
3676     fi  # }
3677     LSOF_TMP2="sys/filedesc.h"
3678     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3679     then
3680       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3681       LSOF_TMP4=0
3682     else
3683       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3684       then
3685         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3686         LSOF_TMP4=1
3687       else
3688         LSOF_TMP3=""
3689       fi        # }
3690     fi  # }
3691     if test "X$LSOF_TMP3" != "X"        # {
3692     then
3693       grep -q "^struct cwdinfo {" $LSOF_TMP3
3694       if test $? -eq 0  # {
3695       then
3696         LSOF_CFGF="$LSOF_CFGF -DHASCWDINFO"
3697         if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1    # {
3698         then
3699           LSOF_TMP1=1
3700         fi      # }
3701       fi        # }
3702     fi  # }
3703     LSOF_TMP2="sys/pipe.h"
3704     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3705     then
3706       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3707       LSOF_TMP4=0
3708     else
3709       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3710       then
3711         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3712         LSOF_TMP4=1
3713       else
3714         LSOF_TMP3=""
3715       fi        # }
3716     fi  # }
3717     if test "X$LSOF_TMP3" != "X"        # {
3718     then
3719       LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_PIPEH"
3720       if test $LSOF_TMP1 -eq 0 -a $LSOF_TMP4 -eq 1      # {
3721       then
3722         LSOF_TMP1=1
3723       fi        # }
3724     fi  # }
3725     if test -r ${LSOF_INCLUDE}/sys/statvfs.h    # {
3726     then
3727       grep -q '^struct statvfs {' ${LSOF_INCLUDE}/sys/statvfs.h
3728       if test $? -eq 0  # {
3729       then
3730         LSOF_CFGF="$LSOF_CFGF -DHASSTATVFS"
3731       fi        # }
3732     fi  # }
3733
3734   # Here end the dual NetBSD tests for header files in $LSOF_INCLUDE or
3735   # NETBSD_SYS.
3736   #
3737   # After this LSOF_TMP1 may be reused.
3738
3739     if test $LSOF_TMP1 -eq 1    # {
3740     then
3741       LSOF_DINC="-I$LSOF_INCLUDE -I$NETBSD_SYS"
3742     fi  # }
3743
3744   # Build special header files, as required.
3745
3746     rm -rf dialects/n+obsd/include
3747     if test "X$NETBSD_UVM" = "XY" -o "X$NETBSD_UVM" = "Xy"      # {
3748     then
3749       mkdir dialects/n+obsd/include
3750       touch dialects/n+obsd/include/opt_uvmhist.h
3751       touch dialects/n+obsd/include/opt_lockdebug.h
3752       LSOF_CFGF="$LSOF_CFGF -DUVM -I`pwd`/dialects/n+obsd/include"
3753       if test -d ${LSOF_INCLUDE}/uvm    # {
3754       then
3755         LSOF_CFGF="$LSOF_CFGF -DHAS_UVM_INCL"
3756       fi        # }
3757     fi  # }
3758     LSOF_TMP2="sys/mount.h"
3759     if test -r ${LSOF_INCLUDE}/$LSOF_TMP2       # {
3760     then
3761       LSOF_TMP3="${LSOF_INCLUDE}/$LSOF_TMP2"
3762     else
3763       if test -r ${NETBSD_SYS}/$LSOF_TMP2       # {
3764       then
3765         LSOF_TMP3="${NETBSD_SYS}/$LSOF_TMP2"
3766       else
3767         LSOF_TMP3=""
3768       fi        # }
3769     fi  # }
3770     if test "X$LSOF_TMP3" != "X"        # {
3771     then
3772
3773       # Build a local NetBSD netexport.h header file for possible use by
3774       # <msdosfs/msdosfsmount.h>.  Make sure CFGL contains a -I for it.
3775
3776       LSOF_TMP1=${LSOF_TMPC}.edscr
3777       LSOF_TMP2=${LSOF_TMPC}.netcred
3778       LSOF_TMP3=${LSOF_TMPC}.netexport
3779       LSOF_TMP4=dialects/n+obsd/include/netexport.h
3780       if test ! -d dialects/n+obsd/include      # {
3781       then
3782         mkdir dialects/n+obsd/include
3783       fi        # }
3784       rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 
3785       echo "/^struct netcred" > $LSOF_TMP1
3786       echo "1,.-1d" >> $LSOF_TMP1
3787       echo "/^};" >> $LSOF_TMP1
3788       echo "1,.w $LSOF_TMP2" >> $LSOF_TMP1
3789       ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
3790       rm -f $LSOF_TMP1
3791       echo "/^struct netexport" > $LSOF_TMP1
3792       echo "1,.-1d" >> $LSOF_TMP1
3793       echo "/^};" >> $LSOF_TMP1
3794       echo "1,.w $LSOF_TMP3" >> $LSOF_TMP1
3795       ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
3796       echo "/*" > $LSOF_TMP4
3797       echo " * netexport.h" >> $LSOF_TMP4
3798       echo -n " * Created by Configure: " >> $LSOF_TMP4
3799       echo `date` >> $LSOF_TMP4
3800       echo " */" >> $LSOF_TMP4
3801       echo "" >> $LSOF_TMP4
3802       echo "#if !defined(NETEXPORT_H)" >> $LSOF_TMP4
3803       echo "#define     NETEXPORT_H" >> $LSOF_TMP4
3804       echo "" >> $LSOF_TMP4
3805       echo "#include <net/radix.h>" >> $LSOF_TMP4
3806       echo "" >> $LSOF_TMP4
3807       if test -r $LSOF_TMP2     # {
3808       then
3809         cat $LSOF_TMP2 >> $LSOF_TMP4
3810         echo "" >> $LSOF_TMP4
3811       fi        # }
3812       if test -r $LSOF_TMP3     # {
3813       then
3814         cat $LSOF_TMP3 >> $LSOF_TMP4
3815       fi        # }
3816       echo "#endif      /* !defined(NETEXPORT_H) */" >> $LSOF_TMP4
3817       rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3
3818       echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3819       if test $? -ne 0  # {
3820       then
3821         LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3822       fi        # }
3823     fi  # }
3824     if test $LSOF_NBSD_BUFQH -eq 1      # {
3825     then
3826
3827     # Make a local copy of $NETBSD_SYS/sys/bufq.h.
3828
3829       if test ! -d dialects/n+obsd/include      # {
3830       then
3831         mkdir dialects/n+obsd/include
3832       fi        # }
3833       if test ! -d dialects/n+obsd/include/sys  # {
3834       then
3835         mkdir dialects/n+obsd/include/sys
3836       fi        # }
3837       cp $NETBSD_SYS/sys/bufq.h dialects/n+obsd/include/sys
3838       echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3839       if test $? -ne 0  # {
3840       then
3841         LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3842       fi        # }
3843     fi  # }
3844     if test $LSOF_NBSD_PTYFS -eq 1      # {
3845     then
3846
3847     # Make a local copy of $NETBSD_SYS/sys/fs/ptyfs/.
3848
3849       if test ! -d dialects/n+obsd/include      # {
3850       then
3851         mkdir dialects/n+obsd/include
3852       fi        # }
3853       if test ! -d dialects/n+obsd/include/fs   # {
3854       then
3855         mkdir dialects/n+obsd/include/fs
3856       fi        # }
3857       rm -rf dialects/n+obsd/include/fs/ptyfs
3858       mkdir dialects/n+obsd/include/fs/ptyfs
3859       cp $NETBSD_SYS/fs/ptyfs/*.h dialects/n+obsd/include/fs/ptyfs
3860       echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
3861       if test $? -ne 0  # {
3862       then
3863         LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
3864       fi        # }
3865     fi  # }
3866     LSOF_CFGL="$LSOF_CFGL -lkvm"
3867     LSOF_DIALECT_DIR=n+obsd
3868     ;;
3869
3870 # Configure for NeXTSTEP or OPENSTEP.
3871
3872   nextstep|next|ns|nxt|openstep|os)
3873     LSOF_TGT="ns"
3874     LSOF_TSTXO="../lib/snpf.o"
3875     if test "X$LSOF_AR" = "X"   # {
3876     then
3877       LSOF_AR="rm -f \${LIB}; ar cr"
3878     fi  # }
3879     if test "X$LSOF_VSTR" = "X" # {
3880     then
3881       LSOF_VSTR=`hostinfo | sed -n 's/.*NeXT Mach \([0-9\.]*\).*/\1/p'`
3882     fi  # }
3883     if test "X$LSOF_VERS" = "X" # {
3884     then
3885
3886       # If the NeXSTEP version isn't predefined, determine it.
3887
3888       LSOF_VERS=`echo $LSOF_VSTR | sed -n 's/\([0-9]*\)\.\([0-9]*\)/\1\2/p'`
3889     fi  # }
3890     if test "X$LSOF_CC" = "X"   # {
3891     then
3892       if test -x /usr/local/bin/gcc     # {
3893       then
3894         LSOF_CC=/usr/local/bin/gcc
3895         LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3896       else
3897         LSOF_CC=cc
3898         LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3899       fi        # }
3900     fi  # }
3901     echo $LSOF_CC | grep gcc > /dev/null
3902     if test $? -eq 0    # {
3903     then
3904       LSOF_CFGL="$LSOF_CFGL -w"
3905       LSOF_DEBUG="-pedantic -O"
3906     fi  # }
3907     LSOF_CFGF="$LSOF_CFGF -DSTEPV=$LSOF_VERS"
3908     LSOF_DIALECT_DIR=n+os
3909
3910     # Test for AFS.
3911
3912     if test -r ${AFS_VICE}/etc/ThisCell # {
3913     then
3914       if test "X$LSOF_SCRIPT_CALL" = "Xno"      # {
3915       then
3916         if test -r ./AFSHeaders -a -r ./AFSVersion      # {
3917         then
3918           LSOF_AFS="yes"
3919         fi      # }
3920       else
3921         if test ! -x ./AFSConfig        # {
3922         then
3923           echo "Can't find or execute the AFSConfig script"
3924           rm -f $LSOF_HLP
3925           exit 1
3926         fi      # }
3927         ./AFSConfig
3928         if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion  # {
3929         then
3930             LSOF_AFS="yes"
3931         fi      # }
3932       fi        # }
3933       if test "X$LSOF_AFS" = "Xyes"     # {
3934       then
3935         LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
3936         LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
3937         LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
3938       fi        # }
3939     fi  # }
3940     ;;
3941
3942 # Configure for OpenBSD.  (OpenBSD uses NetBSD dialect sources and version
3943 # numbering.
3944
3945   openbsd)
3946     if test "X$LSOF_CC" = "X"   # {
3947     then
3948       LSOF_CC=cc
3949       LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
3950     fi  # }
3951     if test "X$LSOF_VSTR" = "X" # {
3952     then
3953       LSOF_VSTR=`uname -r`
3954     fi  # }
3955     if test "X$LSOF_VERS" = "X" # {
3956     then
3957
3958       # If the OpenBSD version isn't pre-defined, determine it.
3959
3960       case $LSOF_VSTR in        # {
3961       1*)
3962         LSOF_VERS=1020
3963         echo "!!!WARNING!!!  Unsupported OpenBSD 1.x version: $LSOF_VSTR"
3964         echo "!!!WARNING!!!  Configuring for OpenBSD 1.2"
3965         ;;
3966       2.5*)
3967         LSOF_VERS=2050
3968         ;;
3969       2.6*)
3970         LSOF_VERS=2060
3971         ;;
3972       2.7*)
3973         LSOF_TSTBIGF=" "
3974         LSOF_VERS=2070
3975         ;;
3976       2.8*)
3977         LSOF_TSTBIGF=" "
3978         LSOF_VERS=2080
3979         ;;
3980       2.9*)
3981         LSOF_TSTBIGF=" "
3982         LSOF_VERS=2090
3983         ;;
3984       2*)
3985         LSOF_TSTBIGF=" "
3986         LSOF_VERS=2090
3987         echo "!!!WARNING!!!  Unsupported OpenBSD 2.x version: $LSOF_VSTR"
3988         echo "!!!WARNING!!!  Configuring for OpenBSD 2.9"
3989         ;;
3990       3.0*)
3991         LSOF_TSTBIGF=" "
3992         LSOF_VERS=3000
3993         ;;
3994       3.1*)
3995         LSOF_TSTBIGF=" "
3996         LSOF_VERS=3010
3997         ;;
3998       3.2*)
3999         LSOF_TSTBIGF=" "
4000         LSOF_VERS=3020
4001         ;;
4002       3.3*)
4003         LSOF_TSTBIGF=" "
4004         LSOF_VERS=3030
4005         ;;
4006       3.4*)
4007         LSOF_TSTBIGF=" "
4008         LSOF_VERS=3040
4009         ;;
4010       3.5*)
4011         LSOF_TSTBIGF=" "
4012         LSOF_VERS=3050
4013         ;;
4014       3.6*)
4015         LSOF_TSTBIGF=" "
4016         LSOF_VERS=3060
4017         ;;
4018       3.7*)
4019         LSOF_TSTBIGF=" "
4020         LSOF_VERS=3070
4021         ;;
4022       3.8*)
4023         LSOF_TSTBIGF=" "
4024         LSOF_VERS=3080
4025         ;;
4026       3.9*)
4027         LSOF_TSTBIGF=" "
4028         LSOF_VERS=3090
4029         ;;
4030       3*)
4031         LSOF_TSTBIGF=" "
4032         LSOF_VERS=3090
4033         echo "!!!WARNING!!!  Unsupported OpenBSD 3.x version: $LSOF_VSTR"
4034         echo "!!!WARNING!!!  Configuring for OpenBSD 3.9"
4035         ;;
4036       *)
4037         echo "Unknown OpenBSD release: $LSOF_VSTR"
4038         echo Assuming OpenBSD 3.9
4039         LSOF_VERS=3090
4040         ;;
4041       esac      # }
4042     fi  # }
4043
4044     # Test for legal OpenBSD version.
4045
4046     case $LSOF_VERS in  # {
4047     1020|2050|2060|2070|2080|2090|3000|3010|3020|3030|3040|3050|3060|3070|3080|3090)
4048       ;;
4049     *)
4050       echo "Unknown OpenBSD version: $LSOF_VERS"
4051       rm -f $LSOF_HLP
4052       exit 1
4053       ;;
4054     esac        # }
4055     LSOF_CFGF="$LSOF_CFGF -DOPENBSDV=$LSOF_VERS"
4056     if test -r /dev/ksyms       # {
4057     then
4058       LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=/dev/ksyms"
4059     else
4060       LSOF_CFGF="$LSOF_CFGF -DN_UNIXV=/bsd"
4061     fi
4062     if test -r ${LSOF_INCLUDE}/nfs/nfsproto.h   # {
4063     then
4064       LSOF_CFGF="$LSOF_CFGF -DHASNFSPROTO"
4065     fi  # }
4066     if test -r ${LSOF_INCLUDE}/netinet6/in6.h   # {
4067     then
4068       LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
4069     fi  # }
4070     LSOF_TMP1=0
4071     if test "X$OPENBSD_SYS" = "X"       # {
4072     then
4073       OPENBSD_SYS="/sys"
4074     fi  # }
4075     if test -r ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h      # {
4076     then
4077       grep -q Fctty ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h
4078       if test $? -eq 0  # {
4079       then
4080         LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=1"
4081       else
4082         LSOF_CFGF="$LSOF_CFGF -DHASFDESCFS=2"
4083       fi        # }
4084       grep -q fd_link ${OPENBSD_SYS}/miscfs/fdesc/fdesc.h
4085       if test $? -eq 0  # {
4086       then
4087         LSOF_CFGF="$LSOF_CFGF -DHASFDLINK"
4088       fi        # }
4089       LSOF_TMP1=1
4090     fi  # }
4091     if test -r ${LSOF_INCLUDE}/sys/vnode.h      # {
4092     then
4093       grep -q VT_LFS ${LSOF_INCLUDE}/sys/vnode.h
4094       if test $? -eq 0   # {
4095       then
4096         LSOF_CFGF="$LSOF_CFGF -DHASLFS"
4097       fi        # }
4098     fi  # }
4099     if test -r ${LSOF_INCLUDE}/miscfs/nullfs/null.h     # {
4100     then
4101       LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
4102     else
4103       if test -r ${OPENBSD_SYS}/miscfs/nullfs/null.h    # {
4104       then
4105         LSOF_CFGF="$LSOF_CFGF -DHASNULLFS"
4106         LSOF_TMP1=1
4107       fi        # }
4108     fi  # }
4109     if test -d ${OPENBSD_SYS}/miscfs/procfs     # {
4110     then
4111       LSOF_CFGF="$LSOF_CFGF -DHASPROCFS"
4112       LSOF_TMP1=1
4113     fi  # }
4114     if test -d ${OPENBSD_SYS}/isofs/cd9660      # {
4115     then
4116       LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=1"
4117       LSOF_TMP1=1
4118     else
4119       if test -d ${OPENBSD_SYS}/fs/cd9660       # {
4120       then
4121         LSOF_CFGF="$LSOF_CFGF -DHAS9660FS=2"
4122         LSOF_TMP1=1
4123       fi        # }
4124     fi  # }
4125     if test -d ${OPENBSD_SYS}/msdosfs   # {
4126     then
4127       LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=1"
4128       LSOF_TMP1=1
4129     else
4130       if test -d ${OPENBSD_SYS}/fs/msdosfs      # {
4131       then
4132         LSOF_CFGF="$LSOF_CFGF -DHASMSDOSFS=2"
4133         LSOF_TMP1=1
4134       fi        # }
4135     fi  # }
4136     if test -r ${OPENBSD_SYS}/miscfs/kernfs/kernfs.h    # {
4137     then
4138       grep -q "kt_name;" ${OPENBSD_SYS}/miscfs/kernfs/kernfs.h
4139       if test $? -eq 0  # {
4140         then
4141           LSOF_CFGF="$LSOF_CFGF -DHASKERNFS"
4142           LSOF_TMP1=1
4143       fi        # }
4144     fi  # }
4145     if test $LSOF_TMP1 -eq 1 -a "X$LSOF_INCLUDE" != "X$OPENBSD_SYS"     # {
4146     then
4147       LSOF_DINC="-I$LSOF_INCLUDE -I$OPENBSD_SYS"
4148     fi  # }
4149     grep -q VT_EXT2FS ${LSOF_INCLUDE}/sys/vnode.h
4150     if test $? -eq 0    # {
4151     then
4152       LSOF_TMP1=1
4153       if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h        # {
4154       then
4155         grep -q "*e2fs_din" ${LSOF_INCLUDE}/ufs/ufs/inode.h
4156         if test $? -eq 0        # {
4157         then
4158           LSOF_CFGF="$LSOF_CFGF -DHASI_E2FS_PTR"
4159         fi      # }
4160         grep -q "^#define[      ]i_e2din" ${LSOF_INCLUDE}/ufs/ufs/inode.h
4161         if test $? -eq 0        # {
4162         then
4163           LSOF_TMP1=2
4164         fi      # }
4165       fi        # }
4166       LSOF_CFGF="$LSOF_CFGF -DHASEXT2FS=$LSOF_TMP1"
4167     fi  # }
4168     if test -r ${LSOF_INCLUDE}/ufs/ufs/inode.h  # {
4169     then
4170       grep -q i_effnlink ${LSOF_INCLUDE}/ufs/ufs/inode.h
4171       if test $? -eq 0  # {
4172       then
4173         LSOF_CFGF="$LSOF_CFGF -DHASEFFNLINK=i_effnlink"
4174       fi        # }
4175       grep -q dinode_u ${LSOF_INCLUDE}/ufs/ufs/inode.h
4176       if test $? -eq 0  # {
4177       then
4178         LSOF_CFGF="$LSOF_CFGF -DHAS_DINODE_U"
4179       fi        # }
4180       grep -q i_ffs1_size ${LSOF_INCLUDE}/ufs/ufs/inode.h
4181       if test $? -eq 0  # {
4182       then
4183         LSOF_CFGF="$LSOF_CFGF -DHASI_FFS1"
4184       fi        # }
4185       grep -q UM_UFS ${LSOF_INCLUDE}/ufs/ufs/inode.h
4186       if test $? -eq 0  # {
4187       then
4188         LSOF_CFGF="$LSOF_CFGF -DHAS_UM_UFS"
4189       fi        # }
4190     fi  # }
4191     if test -r ${LSOF_INCLUDE}/sys/namei.h
4192     then
4193       grep -q nc_vpid ${LSOF_INCLUDE}/sys/namei.h
4194       if test $? -eq 0  # {
4195       then
4196         LSOF_CFGF="$LSOF_CFGF -DHASNCVPID"
4197       fi        # }
4198     fi  # }
4199     if test "X$OPENBSD_UVM" = "X"       # {
4200     then
4201       if test -r ${LSOF_INCLUDE}/sys/vnode.h    # {
4202       then
4203         grep -q UVM ${LSOF_INCLUDE}/sys/vnode.h
4204         if test $? -ne 0        # {
4205         then
4206           egrep -q "v_uvm;|v_uobj;" ${LSOF_INCLUDE}/sys/vnode.h
4207           if test $? -eq 0      # {
4208           then
4209             OPENBSD_UVM="Y"
4210           fi    # }
4211         fi      # }
4212       fi        # }
4213     fi  # }
4214     if test "X$OPENBSD_UVM" = "XY" -o "X$OPENBSD_UVM" = "Xy"    # {
4215     then
4216       LSOF_CFGF="$LSOF_CFGF -DUVM"
4217       if test -d ${LSOF_INCLUDE}/uvm    # {
4218       then
4219         LSOF_CFGF="$LSOF_CFGF -DHAS_UVM_INCL"
4220       fi        # }
4221     fi  # }
4222     if test -r ${LSOF_INCLUDE}/sys/mount.h -a $LSOF_VERS -lt 3030       # {
4223     then
4224
4225       # Build a local OpenBSD netexport.h header file for possible use by
4226       # <msdosfs/msdosfsmount.h>.  Make sure CFGL contains a -I for it.
4227
4228       LSOF_TMP1=${LSOF_TMPC}.edscr
4229       LSOF_TMP2=${LSOF_TMPC}.netcred
4230       LSOF_TMP3=${LSOF_TMPC}.netexport
4231       LSOF_TMP4=dialects/n+obsd/include/netexport.h
4232       if test ! -d dialects/n+obsd/include      # {
4233       then
4234         mkdir dialects/n+obsd/include
4235       fi        # }
4236       rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3 $LSOF_TMP4 
4237       echo "/^struct netcred" > $LSOF_TMP1
4238       echo "1,.-1d" >> $LSOF_TMP1
4239       echo "/^};" >> $LSOF_TMP1
4240       echo "1,.w $LSOF_TMP2" >> $LSOF_TMP1
4241       ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
4242       rm -f $LSOF_TMP1
4243       echo "/^struct netexport" > $LSOF_TMP1
4244       echo "1,.-1d" >> $LSOF_TMP1
4245       echo "/^};" >> $LSOF_TMP1
4246       echo "1,.w $LSOF_TMP3" >> $LSOF_TMP1
4247       ed ${LSOF_INCLUDE}/sys/mount.h < $LSOF_TMP1 > /dev/null 2>&1
4248       echo "/*" > $LSOF_TMP4
4249       echo " * netexport.h" >> $LSOF_TMP4
4250       echo -n " * Created by Configure: " >> $LSOF_TMP4
4251       echo `date` >> $LSOF_TMP4
4252       echo " */" >> $LSOF_TMP4
4253       echo "" >> $LSOF_TMP4
4254       echo "#if !defined(NETEXPORT_H)" >> $LSOF_TMP4
4255       echo "#define     NETEXPORT_H" >> $LSOF_TMP4
4256       echo "" >> $LSOF_TMP4
4257       echo "#include <net/radix.h>" >> $LSOF_TMP4
4258       echo "" >> $LSOF_TMP4
4259       if test -r $LSOF_TMP2     # {
4260       then
4261         cat $LSOF_TMP2 >> $LSOF_TMP4
4262         echo "" >> $LSOF_TMP4
4263       fi        # }
4264       if test -r $LSOF_TMP3     # {
4265       then
4266         cat $LSOF_TMP3 >> $LSOF_TMP4
4267       fi        # }
4268       echo "#endif      /* !defined(NETEXPORT_H) */" >> $LSOF_TMP4
4269       rm -f $LSOF_TMP1 $LSOF_TMP2 $LSOF_TMP3
4270       echo $LSOF_CFGF | grep /dialects/n+obsd/include > /dev/null 2>&1
4271       if test $? -ne 0  # {
4272       then
4273         LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/n+obsd/include"
4274       fi        # }
4275     fi  # }
4276     if test -r ${LSOF_INCLUDE}/sys/lockf.h      # {
4277     then
4278       grep vop_advlock_args ${LSOF_INCLUDE}/sys/lockf.h > /dev/null
4279       if test $? -eq 0  # {
4280       then
4281         LSOF_CFGF="$LSOF_CFGF -DHAS_ADVLOCK_ARGS"
4282       fi        # }
4283     fi  # }
4284     if test -r ${LSOF_INCLUDE}/sys/pipe.h       # {
4285     then
4286       LSOF_CFGF="$LSOF_CFGF -DHAS_SYS_PIPEH"
4287     fi  # }
4288     LSOF_CFGL="$LSOF_CFGL -lkvm"
4289     LSOF_DIALECT_DIR=n+obsd
4290     ;;
4291
4292 # Configure for SCO OpenServer.
4293
4294   osr|osrgcc|sco|scogcc)
4295     if test "X$LSOF_RANLIB_SUP" = "X"   # {
4296     then
4297       LSOF_RANLIB=""
4298     fi  # }
4299     if test "X$OSR_CFGF" != "X" # {
4300     then
4301
4302     # Adopt LSOF_CFGF from OSR_CFGF in environment.
4303
4304       LSOF_CFGF=$OSR_CFGF
4305     fi  # }
4306     if test "X$OSR_CFGL" != "X" # {
4307     then
4308
4309     # Adopt LSOF_CFGL from OSR_CFGL in environment.
4310
4311       LSOF_CFGL=$OSR_CFGL
4312     fi  # }
4313
4314   # Evaluate compiler specification.
4315
4316     if test "X$LSOF_CC" = "X"   # {
4317     then
4318       if test "X$LSOF_TGT" = "Xosr" -o "X$LSOF_TGT" = "Xsco"    # {
4319       then
4320         LSOF_CC=cc
4321         LSOF_TMP1=1
4322       else
4323         LSOF_CC=gcc
4324         LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
4325         LSOF_TMP1=2
4326       fi        # }
4327     else
4328         LSOF_TMP1=0
4329     fi  # }
4330     LSOF_TGT="osr"
4331
4332   # Determine version.
4333
4334     if test "X$LSOF_VSTR" = "X" # {
4335     then
4336       LSOF_VSTR="`LANG=C_C.C /bin/uname -X 2>/dev/null | grep Release | sed 's/Release = \(.*\)/\1/'`"
4337     fi  # }
4338     if test "X$LSOF_VERS" = "X" # {
4339     then
4340
4341       # If the SCO OpenServer release version isn't predefined, determine it.
4342
4343       case $LSOF_VSTR in        # {
4344       3.2v2.0)
4345         LSOF_VERS="20"
4346         ;;
4347       3.2v2.1)
4348         LSOF_VERS="21"
4349         ;;
4350       3.2v4.0)
4351         LSOF_VERS="40"
4352         ;;
4353       3.2v4.1)
4354         LSOF_VERS="41"
4355         ;;
4356       3.2v4.2)
4357         LSOF_VERS="42"
4358         ;;
4359       3.2v5.*)
4360         LSOF_TSTLFLG="-lsocket"
4361         LSOF_VERS="`echo $LSOF_VSTR | sed 's/3\.2v//; s/\.//g'`"
4362         ;;
4363       *)
4364         echo Unknown SCO OpenServer release: $LSOF_VSTR
4365         echo Assuming 3.2.0 or 3.2.1
4366         LSOF_VERS="0"
4367         ;;
4368       esac      # }
4369     fi  # }
4370
4371     # Do SCO OpenServer specific stuff.
4372
4373     case $LSOF_VERS in  # {
4374     0)
4375       if test $LSOF_TMP1 -eq 1  # {
4376       then
4377         LSOF_CFGF="$LSOF_CFGF -nointl"
4378         LSOF_DEBUG="-Ox"
4379       fi        # }
4380       LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4381       LSOF_MKC="cp"
4382       ;;
4383     20)
4384       if test $LSOF_TMP1 -eq 1  # {
4385       then
4386         LSOF_DEBUG="-Ox"
4387       fi        # }
4388       LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4389       LSOF_MKC="cp"
4390       ;;
4391     21)
4392       if test $LSOF_TMP1 -eq 1  # {
4393       then
4394         LSOF_CFGF="$LSOF_CFGF -nointl"
4395         LSOF_DEBUG="-Ox"
4396       fi        # }
4397       LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4398       LSOF_MKC="cp"
4399       ;;
4400     40)
4401       if test $LSOF_TMP1 -eq 1  # {
4402       then
4403         LSOF_CFGF="$LSOF_CFGF -nointl"
4404         LSOF_DEBUG="-Ox"
4405       fi        # }
4406       LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4407       ;;
4408     41)
4409       if test $LSOF_TMP1 -eq 1  # {
4410       then
4411         LSOF_CFGF="$LSOF_CFGF -nointl"
4412         LSOF_DEBUG="-Ox"
4413       fi        # }
4414       LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4415       ;;
4416     42)
4417       if test $LSOF_TMP1 -eq 1  # {
4418       then
4419         LSOF_CFGF="$LSOF_CFGF -nointl"
4420         LSOF_DEBUG="-Ox"
4421       fi        # }
4422       LSOF_CFGL="$LSOF_CFGL -lrpc -lsocket -lc_s"
4423       ;;
4424     5*)
4425       if test $LSOF_TMP1 -eq 1  # {
4426       then
4427         LSOF_CFGF="$LSOF_CFGF -belf"
4428         LSOF_DEBUG="-O3 -Kspace"
4429       fi        # }
4430       LSOF_CFGL="$LSOF_CFGL -lsocket"
4431       ;;
4432     *)
4433       echo "Unsupported SCO OpenServer release: $LSOF_VERS"
4434       rm -f $LSOF_HLP
4435       exit 1
4436       ;;
4437     esac        # }
4438     LSOF_CFGF="$LSOF_CFGF -DOSRV=$LSOF_VERS"
4439     if test "X$OSR_STATLSTAT" = "X"     # {
4440     then
4441       echo "Testing libc.a for statlstat"
4442       /bin/nm /lib/libc.a | grep statlstat > /dev/null 2>&1
4443       if test $? -eq 0  # {
4444       then
4445         LSOF_CFGF="$LSOF_CFGF -DHAS_STATLSTAT"
4446       fi        # }
4447     else
4448       if test "X$OSR_STATLSTAT" = "XY" -o "X$OSR_STATLSTAT" = "Xy"      # {
4449       then
4450         LSOF_CFGF="$LSOF_CFGF -DHAS_STATLSTAT"
4451       fi        # }
4452     fi  # }
4453     if test -r ${LSOF_INCLUDE}/sys/fs/nfs/rnode.h       # {
4454     then
4455       LSOF_CFGF="$LSOF_CFGF -DHAS_NFS"
4456     fi  # }
4457     if test ! -r ${LSOF_INCLUDE}/netdb.h        # {
4458     then
4459       LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/osr/include"
4460     fi  # }
4461     LSOF_DIALECT_DIR=osr
4462     ;;
4463
4464 # Configure for Sun Solaris, SunPro C and gcc.
4465
4466   solaris|solariscc)
4467     if test "X$LSOF_RANLIB_SUP" = "X"   # {
4468     then
4469       LSOF_RANLIB=""
4470     fi  # }
4471     if test "X$LSOF_CC" = "X"   # {
4472     then
4473       if test "X$LSOF_TGT" = "Xsolariscc"       # {
4474       then
4475         if test "X$SOLARIS_CCDIR" = "X" # {
4476         then
4477           SOLARIS_CCDIR="/opt/SUNWspro/bin"
4478         fi      # }
4479         if test -x ${SOLARIS_CCDIR}/cc  # {
4480         then
4481           LSOF_CC=${SOLARIS_CCDIR}/cc
4482         else
4483           if test -x /opt/SunStudioExpress/bin/cc       # {
4484           then
4485             LSOF_CC=/opt/SunStudioExpress/bin/cc
4486           else
4487             echo "WARNING: no cc in ${SOLARIS_CCDIR}; using cc without path."
4488             LSOF_CC=cc
4489           fi    # }
4490         fi      # }
4491         LSOF_CCV=`$LSOF_CC -V 2>&1 | sed -n 's/^cc: \(.*\)/\1/p'`
4492       else
4493         LSOF_CC=gcc
4494         LSOF_CCV=`$LSOF_CC -v 2>&1 | sed -n 's/.*version \(.*\)/\1/p'`
4495       fi        # }
4496     fi  # }
4497     LSOF_TGT="solaris"
4498     if test "X$LSOF_VSTR" = "X" # {
4499     then
4500       LSOF_VSTR=`uname -r`
4501     fi  # }
4502     if test "X$LSOF_VERS" = "X" # {
4503     then
4504
4505       # If the Solaris version isn't predefined, determine it.
4506
4507       case $LSOF_VSTR in        # {
4508       5.[0-2])
4509         LSOF_VERS="20300"
4510         ;;
4511       5.3)
4512         LSOF_VERS="20300"
4513         ;;
4514       5.4)
4515         LSOF_VERS="20400"
4516         ;;
4517       5.5)
4518         LSOF_VERS="20500"
4519         ;;
4520       5.5.1)
4521         LSOF_VERS="20501"
4522         ;;
4523       5.6*)
4524         LSOF_TSTLFLG="-lsocket -lnsl"
4525         LSOF_VERS="20600"
4526         ;;
4527       5.7*)
4528         LSOF_TSTBIGF=" "
4529         LSOF_TSTLFLG="-lsocket -lnsl"
4530         LSOF_VERS="70000"
4531         ;;
4532       5.8*)
4533         LSOF_TSTBIGF=" "
4534         LSOF_TSTLFLG="-lsocket -lnsl"
4535         LSOF_VERS="80000"
4536         ;;
4537       5.9*)
4538         LSOF_TSTBIGF=" "
4539         LSOF_TSTLFLG="-lsocket -lnsl"
4540         LSOF_VERS="90000"
4541         ;;
4542       5.10*)
4543         LSOF_TSTBIGF=" "
4544         LSOF_TSTLFLG="-lsocket -lnsl"
4545         LSOF_VERS="100000"
4546         ;;
4547       5.11*)
4548         LSOF_TSTBIGF=" "
4549         LSOF_TSTLFLG="-lsocket -lnsl"
4550         LSOF_VERS="110000"
4551         ;;
4552       *)
4553         echo Unknown Solaris version: $LSOF_VSTR
4554         rm -f $LSOF_HLP
4555         exit 1
4556       esac      # }
4557     fi  # }
4558
4559     # Clear LSOF_UNSUP message for selected Solaris versions.
4560
4561     case $LSOF_VERS in  # {
4562     90000|100000|110000)
4563       LSOF_UNSUP=""
4564       ;;
4565     esac        # }
4566
4567     # Do Solaris version-specific stuff.
4568
4569     case $LSOF_VERS in  # {
4570     20300)
4571
4572       # Solaris patch 101318-32 creates a longer kernel tcp_s structure,
4573       # and 101318-45 changes the way the vnode's v_filocks member is
4574       # handled.  The following code creates a symbol definition for
4575       # patch 101318 whose value is the patch level.  No symbol is defined
4576       # if the patch level is not greater than zero.
4577
4578       if test "X$SOLARIS_23P101318" = "X"       # {
4579       then
4580         LSOF_PL=`grep -h SUNW_PATCHID=101318 /var/sadm/pkg/SUNWcar*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4581         if test "X$LSOF_PL" = "X"       # {
4582         then
4583           LSOF_PL=0
4584         fi      # }
4585       else
4586         LSOF_PL=$SOLARIS_23P101318
4587       fi        # }
4588       if test $LSOF_PL -gt 0    # {
4589       then
4590         LSOF_CFGF="$LSOF_CFGF -DP101318=$LSOF_PL"
4591       fi        # }
4592       ;;
4593     20400)
4594       if test "X$SOLARIS_24P101945" = "X"       # {
4595       then
4596         LSOF_PL=`grep -h SUNW_PATCHID=101945 /var/sadm/pkg/SUNWcar*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4597         if test "X$LSOF_PL" = "X"       # {
4598         then
4599           LSOF_PL=0
4600         fi      # }
4601       else
4602         LSOF_PL=$SOLARIS_24P101945
4603       fi        # }
4604       if test $LSOF_PL -ge 32   # {
4605       then
4606         if test "X$SOLARIS_24P102303" = "X"     # {
4607         then
4608           LSOF_PL=`grep -h SUNW_PATCHID=102303 /var/sadm/pkg/SUNWhea*/pkginfo | sed 's/.*-//' | sort -u | tail -1`
4609           if test "X$LSOF_PL" = "X"     # {
4610           then
4611             LSOF_PL=0
4612           fi    # }
4613         else
4614           LSOF_PL=$SOLARIS_24P102303
4615         fi      # }
4616         if test $LSOF_PL -ge 2  # {
4617         then
4618           echo "WARNING: your Solaris 2.4 system appears to have patches 101945-32 and 102303-2"
4619           echo "         installed.  This probably means the NUM_*_VECTORS definitions in"
4620           echo "         <sys/auxv.h> don't match the ones used to build your kernel.  Consult"
4621           echo "         the Sun Problems section of the 00FAQ file of the lsof distribution"
4622           echo "         for more information on how to work around the problem."
4623         fi      # }
4624       fi        # }
4625       ;;
4626     20500|20501)
4627       ;;
4628     20600|70000|80000|90000|100000|110000)
4629       if test "X$SOLARIS_26PR_GWINDOWS" = "X"   # {
4630       then
4631         rm -f ${LSOF_TMPC}.*
4632         echo "#define _KMEMUSER" > ${LSOF_TMPC}.c
4633         echo "#include <sys/proc/prdata.h>" >> ${LSOF_TMPC}.c
4634         echo "main(){" >> ${LSOF_TMPC}.c
4635         echo "enum prnodetype p=PR_GWINDOWS;}" >> ${LSOF_TMPC}.c
4636         echo "Testing prdata.h for PR_GWINDOWS, using $LSOF_CC"
4637         echo $LSOF_CC | grep gcc > /dev/null
4638         if test $? -eq 0        # {
4639         then
4640           $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x  > /dev/null 2>&1
4641         else
4642           $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x  > /dev/null 2>&1
4643         fi      # }
4644         if test $? -eq 0        # {
4645         then
4646           LSOF_CFGF="$LSOF_CFGF -DHASPR_GWINDOWS"
4647         fi      # }
4648       else
4649         if test "X$SOLARIS_26PR_GWINDOWS" = "XY" -o "X$SOLARIS_26PR_GWINDOWS" = "Xy"    # {
4650         then
4651           LSOF_CFGF="$LSOF_CFGF -DHASPR_GWINDOWS"
4652         fi      # }
4653       fi        # }
4654       if test "X$SOLARIS_26PR_LDT" = "X"        # {
4655       then
4656         rm -f ${LSOF_TMPC}.*
4657         echo "#define _KMEMUSER" > ${LSOF_TMPC}.c
4658         echo "#include <sys/proc/prdata.h>" >> ${LSOF_TMPC}.c
4659         echo "main(){" >> ${LSOF_TMPC}.c
4660         echo "enum prnodetype p=PR_LDT;}" >> ${LSOF_TMPC}.c
4661         echo "Testing prdata.h for PR_LDT, using $LSOF_CC"
4662         echo $LSOF_CC | grep gcc > /dev/null
4663         if test $? -eq 0        # {
4664         then
4665           $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
4666         else
4667           $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
4668         fi      # }
4669         if test $? -eq 0        # {
4670         then
4671           LSOF_CFGF="$LSOF_CFGF -DHASPR_LDT"
4672         fi      # }
4673         rm -f ${LSOF_TMPC}.*
4674       else
4675         if test "X$SOLARIS_26PR_LDT" = "XY" -o "X$SOLARIS_26PR_LDT" = "Xy"      # {
4676         then
4677           LSOF_CFGF="$LSOF_CFGF -DHASPR_LDT"
4678         fi      # }
4679       fi        # }
4680       if test $LSOF_VERS -ge 70000      # {
4681       then
4682
4683       # Do tests for Solaris 7 and above.
4684
4685         if test "X$SOLARIS_KERNBITS" = "X"      # {
4686         then
4687           SOLARIS_KERNBITS=`/bin/isainfo -kv`
4688         fi      # }
4689         if test "X$SOLARIS_INSTR" = "X" # {
4690         then
4691           SOLARIS_INSTR=`/bin/isainfo -k`
4692         fi      #}
4693         echo $SOLARIS_KERNBITS | grep 64 > /dev/null
4694         if test $? -eq 0        # {
4695         then
4696           echo $LSOF_CC | grep gcc > /dev/null
4697           if test $? -eq 0      # {
4698           then
4699
4700         # Test gcc for 64 bit support.
4701
4702             echo "Testing $LSOF_CC for 64 bit support"
4703             rm -f ${LSOF_TMPC}.*
4704             echo "main(){}" > ${LSOF_TMPC}.c
4705             LSOF_TMP1=""
4706
4707         # First try gcc's -m64 option -- it's the most current possibility.
4708
4709             $LSOF_CC ${LSOF_TMPC}.c -m64 -o ${LSOF_TMPC}.x > /dev/null 2>&1
4710             if test $? -eq 0    # {
4711             then
4712               /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null 
4713               if test $? -eq 0  # {
4714               then
4715                 LSOF_TMP1="-m64"
4716               fi        # }
4717             fi  # }
4718             rm -f ${LSOF_TMPC}.*
4719             if test "X$LSOF_TMP1" = "X" # {
4720             then
4721
4722             # Try using the older -mcpu=v9 option with gcc instead of -m64.
4723
4724               echo "main(){}" > ${LSOF_TMPC}.c
4725               $LSOF_CC ${LSOF_TMPC}.c -mcpu=v9 -o ${LSOF_TMPC}.x > /dev/null 2>&1
4726               if test $? -eq 0  # {
4727               then
4728                 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null 
4729                 if test $? -eq 0        # {
4730                 then
4731                   LSOF_TMP1="-mcpu=v9"
4732                 fi      # }
4733               fi        # }
4734               rm -f ${LSOF_TMPC}.*
4735             fi  # }
4736             if test "X$LSOF_TMP1" = "X" # {
4737             then
4738               echo ""
4739               echo "!!!WARNING!!!=========!!!WARNING!!!=========!!!WARNING!!!"
4740               echo "!                                                       !"
4741               echo "! LSOF NEEDS TO BE CONFIGURED FOR A 64 BIT KERNEL, BUT  !"
4742               echo "! THIS GCC DOESN'T SUPPORT THE BUILDING OF 64 BIT       !"
4743               echo "! SOLARIS EXECUTABLES.  LSOF WILL BE CONFIGURED FOR A   !"
4744               echo "! 32 BIT KERNEL.                                        !"
4745               echo "!                                                       !"
4746               echo "!!!WARNING!!!=========!!!WARNING!!!=========!!!WARNING!!!"
4747               echo ""
4748             else
4749               echo ""
4750               echo "*********************************"
4751               echo "* Configuring for 64 bit kernel *"
4752               echo "*********************************"
4753               echo ""
4754               LSOF_CFGF="$LSOF_CFGF $LSOF_TMP1"
4755               LSOF_CINFO="64 bit kernel"
4756               LSOF_TSTK64=1
4757             fi  # }
4758           else
4759
4760           # Test Sun compiler for 64 bit support.
4761
4762             case $SOLARIS_INSTR in      # {
4763             amd64*)
4764               LSOF_TMP1="amd64"
4765               LSOF_TMP2="amd64"
4766               ;;
4767             sparc*)
4768               LSOF_TMP1="v9"
4769               LSOF_TMP2="sparcv9"
4770               ;;
4771             *)
4772               LSOF_TMP1=""
4773               ;;
4774             esac        # }
4775             if test "X$LSOF_TMP1" != "X"        # {
4776             then
4777               echo "Testing $LSOF_CC for 64 bit $LSOF_TMP2 support"
4778               rm -f ${LSOF_TMPC}.*
4779               LSOF_TMP3="-xarch=$LSOF_TMP1"
4780               echo "main(){}" > ${LSOF_TMPC}.c
4781               LSOF_TMP4=`$LSOF_CC ${LSOF_TMPC}.c $LSOF_TMP3 -o ${LSOF_TMPC}.x 2>&1`
4782               if test $? -eq 0  # {
4783               then
4784                 /bin/file ${LSOF_TMPC}.x | /bin/grep 64 > /dev/null 
4785                 if test $? -ne 0        # {
4786                 then
4787                   LSOF_TMP3=""
4788                 else
4789                   echo "X$LSOF_TMP4" | grep "use -m64" > /dev/null 2>&1
4790                   if test $? -eq 0      # {
4791                   then
4792                     LSOF_TMP3=-m64
4793                   fi    # }
4794                 fi      # }
4795               fi        # }
4796               rm -f ${LSOF_TMPC}.*
4797             else
4798               LSOF_TMP3=""
4799             fi  # }
4800             if test "X$LSOF_TMP3" != "X"        # {
4801             then
4802               echo ""
4803               echo "*********************************"
4804               echo "* Configuring for 64 bit kernel *"
4805               echo "*********************************"
4806               echo ""
4807               LSOF_CFGF="$LSOF_CFGF $LSOF_TMP3"
4808               LSOF_CINFO="64 bit kernel"
4809               LSOF_TSTK64=1
4810             else
4811               echo ""
4812               echo "!!!WARNING!!!==========!!!WARNING!!!==========!!!WARNING!!!"
4813               echo "!"
4814               echo "! LSOF NEEDS TO BE CONFIGURED FOR A 64 BIT KERNEL, BUT"
4815               echo "! THE VERSION OF SUN C AVAILABLE DOESN'T SUPPORT THE"
4816               echo "! \"$LSOF_TMP2\" INSTRUCTION SET."
4817               echo "!"
4818               echo "! LSOF WILL BE CONFIGURED FOR A 32 BIT KERNEL."
4819               echo "!"
4820               echo "!!!WARNING!!!==========!!!WARNING!!!==========!!!WARNING!!!"
4821               echo ""
4822             fi  # }
4823           fi    # }
4824         else
4825           echo ""
4826           echo "*********************************"
4827           echo "* Configuring for 32 bit kernel *"
4828           echo "*********************************"
4829           echo ""
4830           LSOF_CINFO="32 bit kernel"
4831         fi      # }
4832       fi        # }
4833
4834       # Do tests specific to Solaris 8 and above.
4835
4836       if test $LSOF_VERS -ge 80000      # {
4837       then
4838         if test -r ${LSOF_INCLUDE}/netinet/ip6.h        # {
4839         then
4840           LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
4841         fi      # }
4842       fi        # }
4843
4844       # Do tests specific to Solaris 9 and above.
4845
4846       if test $LSOF_VERS -ge 90000      # {
4847       then
4848         if test -r ${LSOF_INCLUDE}/sys/socketvar.h      # {
4849         then
4850           grep soua_vp ${LSOF_INCLUDE}/sys/socketvar.h > /dev/null 2>&1
4851           if test $? -eq 0      # {
4852           then
4853             LSOF_CFGF="$LSOF_CFGF -DHASSOUXSOUA"
4854           fi    # }
4855         fi      # }
4856         if test $LSOF_VERS -lt 110000   # {
4857         then
4858
4859         # Do tests specific to Solaris 9 and 10.
4860
4861           if test -r ${LSOF_INCLUDE}/sys/lgrp_user.h      # {
4862           then
4863             if test -r ${LSOF_INCLUDE}/sys/lgrp.h      # {
4864             then
4865               grep lgrp_root ${LSOF_INCLUDE}/sys/lgrp_user.h > /dev/null 2>&1
4866               if test $? -eq 0  # {
4867               then
4868                 grep lgrp_root ${LSOF_INCLUDE}/sys/lgrp.h > /dev/null 2>&1
4869                 if test $? -eq 0
4870                 then
4871                   LSOF_CFGF="$LSOF_CFGF -DHAS_LGRP_ROOT_CONFLICT"
4872                 fi      # }
4873               fi        # }
4874             fi  # }
4875           fi    # }
4876         fi      # }
4877       fi        # }
4878
4879       # Do tests specific to Solaris 10 and above.
4880
4881       if test $LSOF_VERS -eq 100000     # {
4882       then
4883         if test -r ${LSOF_INCLUDE}/sys/socket_proto.h   # {
4884         then
4885             LSOF_CFGF="$LSOF_CFGF -DHAS_SOCKET_PROTO_H"
4886         fi      # }
4887       fi        # }
4888       if test $LSOF_VERS -ge 100000     # {
4889       then
4890         if test -r ${LSOF_INCLUDE}/inet/ipclassifier.h  # {
4891         then
4892           LSOF_CFGF="$LSOF_CFGF -DHAS_IPCLASSIFIER_H"
4893           grep conn_ixa ${LSOF_INCLUDE}/inet/ipclassifier.h > /dev/null 2>&1
4894           if test $? -eq 0      # {
4895           then
4896             LSOF_CFGF="$LSOF_CFGF -DHAS_CONN_NEW"
4897           fi    #}
4898         fi      # }
4899         if test -r ${LSOF_INCLUDE}/sys/cred_impl.h      # {
4900         then
4901           LSOF_CFGF="$LSOF_CFGF -DHAS_CRED_IMPL_H"
4902
4903           # DEBUG -- Begin temporary hack for Solaris 10, build s10_44.
4904
4905           grep "c2/audit.h" ${LSOF_INCLUDE}/sys/cred_impl.h > /dev/null
4906           if test $? -eq 0      # {
4907           then
4908             rm -rf `pwd`/dialects/sun/solaris10
4909             mkdir `pwd`/dialects/sun/solaris10
4910             mkdir `pwd`/dialects/sun/solaris10/c2
4911             touch `pwd`/dialects/sun/solaris10/c2/audit.h
4912             LSOF_CFGF="$LSOF_CFGF -I`pwd`/dialects/sun/solaris10"
4913           fi    # }
4914
4915           # DEBUG -- End temporary hack for Solaris 10, build s10_44.
4916
4917         fi      # }
4918         if test -r ${LSOF_INCLUDE}/sys/vnode.h  # {
4919         then
4920           grep v_path ${LSOF_INCLUDE}/sys/vnode.h > /dev/null 2>&1
4921           if test $? -eq 0      # {
4922           then
4923             LSOF_CFGF="$LSOF_CFGF -DHAS_V_PATH"
4924             LSOF_TSTVPATH=1
4925           fi    # }
4926         fi      # }
4927         if test -r ${LSOF_INCLUDE}/sys/fs/pc_fs.h       # {
4928         then
4929           grep pc_direntpersec ${LSOF_INCLUDE}/sys/fs/pc_fs.h > /dev/null 2>&1
4930           if test $? -eq 0      # {
4931           then
4932             LSOF_CFGF="$LSOF_CFGF -DHAS_PC_DIRENTPERSEC"
4933           fi    # }
4934         fi      # }
4935         if test -r ${LSOF_INCLUDE}/sys/aio_req.h        # {
4936         then
4937           grep "struct[         ]aio_req" ${LSOF_INCLUDE}/sys/aio_req.h > /dev/null 2>&1
4938           if test $? -eq 0      # {
4939           then
4940             LSOF_CFGF="$LSOF_CFGF -DHAS_AIO_REQ_STRUCT"
4941           fi    # }
4942         fi      # }
4943       fi        # }
4944       if test -r ${LSOF_INCLUDE}/sys/zone.h     # {
4945       then
4946         LSOF_CFGF="$LSOF_CFGF -DHASZONES"
4947       fi        # }
4948
4949       # Check for Solaris 10 or higher CTF library and things that depend
4950       # on it.
4951
4952       if test -r ${LSOF_INCLUDE}/libctf.h       # {
4953       then
4954         LSOF_CTFH=1
4955       fi        # }
4956       if test -r ${LSOF_INCLUDE}/sys/fs/zfs.h   # {
4957       then
4958         if test $LSOF_CTFH -eq 1        # {
4959         then
4960           LSOF_CFGF="$LSOF_CFGF -DHAS_ZFS"
4961           LSOF_CTFL=1
4962         else
4963           echo "WARNING: ZFS support not enabled; libctf.h missing."
4964         fi      # }
4965       fi        # }
4966       if test $LSOF_VERS -ge 110000     # {
4967       then
4968
4969       # Do things specific to Solaris 11 and above.
4970
4971         if test $LSOF_CTFH -eq 1        # {
4972         then
4973           LSOF_CTFL=1
4974         else
4975           echo "WARNING: socket support not enabled; libctf.h missing."
4976         fi      # }
4977         rm -rf ./solaris11
4978         mkdir ./solaris11
4979         mkdir ./solaris11/sys
4980         touch ./solaris11/sys/extdirent.h
4981         echo "./solaris11/sys/extdirent.h created"
4982         LSOF_CFGF="$LSOF_CFGF -I`pwd`/solaris11"
4983         if test -r ${LSOF_INCLUDE}/sys/mutex.h  # {
4984         then
4985
4986         # Check <sys/mutex.h> 'for pad_mutex_t;'.
4987
4988           grep 'pad_mutex_t;' ${LSOF_INCLUDE}/sys/mutex.h > /dev/null 2>&1
4989           if test $? -eq 0      # {
4990           then
4991             LSOF_CFGF="$LSOF_CFGF -DHAS_PAD_MUTEX"
4992           fi    # }
4993         fi      # )
4994       fi        # }
4995
4996       # If -lctf was added to LSOF_CFGL, define HAS_LIBCTF.
4997
4998       if test $LSOF_CTFL -eq 1  # {
4999       then
5000         LSOF_CFGF="$LSOF_CFGF -DHAS_LIBCTF"
5001         LSOF_CFGL="$LSOF_CFGL -lctf"
5002       fi        # }
5003       ;;
5004     *)
5005       echo "Unsupported Solaris version: $LSOF_VERS"
5006       rm -f $LSOF_HLP
5007       exit 1
5008       ;;
5009     esac        # }
5010     LSOF_CFGF="$LSOF_CFGF -Dsolaris=$LSOF_VERS"
5011
5012     # Test for <sys/fs/cachefs_fs.h>.
5013
5014     if test -r ${LSOF_INCLUDE}/sys/fs/cachefs_fs.h      # {
5015     then
5016       LSOF_CFGF="$LSOF_CFGF -DHASCACHEFS"
5017     fi  # }
5018
5019     # Test for <utmpx.h>
5020
5021     if test -r ${LSOF_INCLUDE}/utmpx.h  # {
5022     then
5023       LSOF_CFGF="$LSOF_CFGF -DHASUTMPX"
5024     fi  # }
5025
5026     # Test for VSOCK.
5027
5028     if test "X$SOLARIS_VSOCK" = "X"     # {
5029     then
5030       rm -f ${LSOF_TMPC}.*
5031       echo "#include <sys/vnode.h>" > ${LSOF_TMPC}.c
5032       echo "main(){" >> ${LSOF_TMPC}.c
5033       echo "enum vtype p=VSOCK;}" >> ${LSOF_TMPC}.c
5034       echo "Testing vnode.h for VSOCK, using $LSOF_CC"
5035       echo $LSOF_CC | grep gcc > /dev/null
5036       if test $? -eq 0  # {
5037       then
5038         $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
5039       else
5040         $LSOF_CC ${LSOF_TMPC}.c -I$LSOF_INCLUDE -o ${LSOF_TMPC}.x > /dev/null 2>&1
5041       fi        # }
5042       if test $? -eq 0  # {
5043       then
5044         LSOF_CFGF="$LSOF_CFGF -DHAS_VSOCK"
5045       fi        # }
5046       rm -f ${LSOF_TMPC}.*
5047     else
5048       if test "X$SOLARIS_VSOCK" = "XY" -o "X$SOLARIS_VSOCK" = "Xy"      # {
5049       then
5050         LSOF_CFGF="$LSOF_CFGF -DHAS_VSOCK"
5051       fi        # }
5052     fi  # }
5053
5054     # Test for AFS.
5055
5056     if test -r ${AFS_VICE}/etc/ThisCell # {
5057     then
5058       if test "X$LSOF_SCRIPT_CALL" = "Xno"      # {
5059       then
5060         if test -r ./AFSHeaders -a -r ./AFSVersion      # {
5061         then
5062           LSOF_AFS="yes"
5063         fi      # }
5064       else
5065         if test ! -x ./AFSConfig        # {
5066         then
5067           echo "Can't find or execute the AFSConfig script"
5068           rm -f $LSOF_HLP
5069           exit 1
5070         fi      # }
5071         ./AFSConfig
5072         if test $? -eq 0 -a -r ./AFSHeaders -a -r ./AFSVersion  # {
5073         then
5074             LSOF_AFS="yes"
5075         fi      # }
5076       fi        # }
5077       if test "X$LSOF_AFS" = "Xyes"     # {
5078       then
5079         if test "X$SUN_AFSAPATHDEF" = "X"       # {
5080         then
5081           ls /usr/vice/etc/modload/libafs > /dev/null 2>&1
5082           if test $? -ne 0      # {
5083           then
5084             LSOF_TMP1=`ls /usr/vice/etc/modload/libafs* 2>/dev/null | wc -l`
5085             if test $LSOF_TMP1 -ne 0    # {
5086             then
5087               SUN_AFSAPATHDEF=`ls -t /usr/vice/etc/modload/libafs* | head -1`
5088             fi  # }
5089           fi    # }
5090         fi      # }
5091         if test "X$SUN_AFSAPATHDEF" != "X"      # {
5092         then
5093           LSOF_CFGF="$LSOF_CFGF -DAFSAPATHDEF=\\\"$SUN_AFSAPATHDEF\\\""
5094         fi      # }
5095         LSOF_AFSV=`cat ./AFSVersion | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1 \2/' | awk '{printf "%d%02d\n",\$1,\$2}'`
5096         LSOF_CFGF="$LSOF_CFGF -DHAS_AFS=$LSOF_AFSV"
5097         LSOF_DINC="$LSOF_DINC -I`cat ./AFSHeaders`"
5098       fi        # }
5099     fi  # }
5100
5101     # Test for VxFS.
5102     #
5103     # If the location of the VxFS header files hasn't been defined in the
5104     # environment, establish their likely locations.
5105
5106     LSOF_TMP2=$SOLARIS_VXFSINCL
5107     if test -d /opt/VRTS/include        # {
5108     then
5109       LSOF_TMP2="$LSOF_TMP2 /opt/VRTS/include"
5110     fi  # }
5111     if test -d /opt/VRTSvxfs/include    # {
5112     then
5113       LSOF_TMP2="$LSOF_TMP2 /opt/VRTSvxfs/include"
5114     fi  # }
5115     LSOF_TMP1=0
5116     for i in $LSOF_TMP2 # {
5117     do
5118       if test -r ${i}/vxfsutil.h        # {
5119       then
5120         LSOF_TMP1=1
5121         SOLARIS_VXFSINCL=$i
5122         break
5123       fi        # }
5124     done        # }
5125     if test $LSOF_TMP1 -eq 1    # {
5126     then
5127
5128     # Warn that VxFS is unsupported.
5129
5130       LSOF_UNSUP2="WARNING: VxFS is no longer supported by Solaris lsof."
5131
5132     # The VxFS header files are for VxFS version 3.4 or above.  Enable VxFS
5133     # for those versions.
5134
5135       LSOF_CFGF="$LSOF_CFGF -DHASVXFS -DHASVXFSUTIL -I$SOLARIS_VXFSINCL"
5136
5137     # Determine which libvxfsutil.a is required -- 32 or 64 bit.
5138
5139       LSOF_TMP2=""                      # assume 32 bit
5140       echo "X$LSOF_CINFO" | grep "^X64" > /dev/null 2>&1
5141       if test $? -eq 0-a "X$SOLARIS_INSTR" != "X"       # {
5142       then
5143         case $SOLARIS_INSTR in  # {
5144         amd64*)
5145           LSOF_TMP2="/amd64"
5146           ;;
5147         sparcv9*)
5148           LSOF_TMP2="/sparcv9"
5149           ;;
5150         esac    # }
5151       fi        # }
5152
5153     # See if the correct library has been specified and exists.
5154
5155       if test "X$SOLARIS_VXFSLIB" = "X" # {
5156       then
5157         SOLARIS_VXFSLIB=`dirname $SOLARIS_VXFSINCL`/lib
5158       fi        # }
5159       LSOF_TMP3="${SOLARIS_VXFSLIB}${LSOF_TMP2}/libvxfsutil.a"
5160       if test ! -r $LSOF_TMP3   # {
5161       then
5162         echo "!!!FATAL: no VxFS $LSOF_TMP3"
5163         exit 1
5164       fi        # }
5165       LSOF_CFGL="$LSOF_CFGL -L$SOLARIS_VXFSLIB${LSOF_TMP2} -lvxfsutil -ldl"
5166
5167     # See if the library has the Reverse Name Lookup (RNL) function.
5168
5169       nm $LSOF_TMP3 | grep vxfs_inotopath > /dev/null 2>&1
5170       if test $? -eq 0  # {
5171       then
5172         LSOF_CFGF="$LSOF_CFGF -DHASVXFSRNL -DHASVXFSDNLC"
5173       fi        # }
5174     else
5175
5176     # See if there are VxFS header files for VxFS versions below 3.4.
5177
5178       if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h      # {
5179       then
5180
5181       # Define VxFS for VxFS versions below 3.4.  Make additional header
5182       # file tests.
5183
5184         LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5185         if test -r ${LSOF_INCLUDE}/sys/fs/vx_fs.h       # {
5186         then
5187           LSOF_CFGF="$LSOF_CFGF -DHASVXFS_FS_H"
5188         fi      # }
5189         if test -r ${LSOF_INCLUDE}/sys/fs/vx_sol.h      # {
5190         then
5191           LSOF_CFGF="$LSOF_CFGF -DHASVXFS_SOL_H"
5192         fi      # }
5193         if test -r ${LSOF_INCLUDE}/sys/fs/vx_machdep.h  # {
5194         then
5195           LSOF_CFGF="$LSOF_CFGF -DHASVXFS_MACHDEP_H"
5196         fi      # }
5197         if test -r ${LSOF_INCLUDE}/sys/fs/vx_solaris.h  # {
5198         then
5199           LSOF_CFGF="$LSOF_CFGF -DHASVXFS_SOLARIS_H"
5200           grep "off32_t;" ${LSOF_INCLUDE}/sys/fs/vx_machdep.h > /dev/null
5201           if test $? -eq 0      # {
5202           then
5203             LSOF_CFGF="$LSOF_CFGF -DHASVXFS_OFF32_T"
5204           fi    # }
5205           grep "off64_t;" ${LSOF_INCLUDE}/sys/fs/vx_solaris.h > /dev/null
5206           if test $? -eq 0      # {
5207           then
5208             LSOF_CFGF="$LSOF_CFGF -DHASVXFS_OFF64_T"
5209           fi    # }
5210           grep "vx_u64_t;" ${LSOF_INCLUDE}/sys/fs/vx_solaris.h > /dev/null
5211           if test $? -eq 0      # {
5212           then
5213             LSOF_CFGF="$LSOF_CFGF -DHASVXFS_U64_T"
5214           fi    # }
5215         fi      # }
5216         egrep "struct[  ]vx_inode[      ]\{" ${LSOF_INCLUDE}/sys/fs/vx_inode.h > /dev/null
5217         # } (dummy '}' to match '{' in above egrep)
5218         if test $? -eq 0        # {
5219         then
5220           LSOF_CFGF="$LSOF_CFGF -DHASVXFS_VX_INODE"
5221         fi      # }
5222       fi        # }
5223     fi  # }
5224
5225     # Set libraries and dialect subdirectory.
5226
5227     LSOF_CFGL="$LSOF_CFGL -lkvm -lelf -lsocket -lnsl"
5228     LSOF_DIALECT_DIR=sun
5229
5230     # Set local-specific stuff.
5231
5232     if test "X$LSOF_LOCALSUFFIX" = "XLOCAL"     # {
5233     then
5234       LSOF_DOC="\${DESTDIR}/usr/local/man"
5235     fi  # }
5236     ;;
5237
5238 # Configure for SCO|Caldera OpenServer Release 6.0.0 and UnixWare.
5239
5240   osr6|unixware|uw)
5241     LSOF_TMP1=$LSOF_TGT
5242     LSOF_TGT="uw"
5243     if test "X$LSOF_RANLIB_SUP" = "X"   # {
5244     then
5245       LSOF_RANLIB=""
5246     fi  # }
5247     if test "X$LSOF_VSTR" = "X" # {
5248     then
5249       LSOF_VSTR=`uname -v`
5250     fi  # }
5251     if test "X$LSOF_VERS" = "X" # {
5252     then
5253
5254       # If the Openserver Release 6.0.0 or UnixWare version isn't pre-defined,
5255       # determine it.
5256
5257       LSOF_VERS=`echo $LSOF_VSTR | sed 's/\([0-9\.]*\).*/\1/; s/\./ /g' | awk '{printf "%d%02d%02d\n", $1, $2, $3;}'`
5258     fi  # }
5259     if test $LSOF_TMP1 = "osr6" # {
5260     then
5261       LSOF_CINFO="OSR6 support via UnixWare sources"
5262
5263     # Convert the OpenServer Release 6.0.0 version number to a UnixWare one.
5264
5265       case $LSOF_VERS in        # {
5266       60000)
5267         LSOF_VERS=70104
5268         ;;
5269       *)
5270         echo "Unknown OpenServer Release version: $LSOF_VERS"
5271         rm -f $LSOF_HLP
5272         exit 1
5273       esac      # }
5274     fi  # }
5275     LSOF_CFGF="$LSOF_CFGF -DUNIXWAREV=$LSOF_VERS"
5276
5277     # Do OpenServer Release 6.0.0 and UnixWare version-specific stuff.
5278
5279     case $LSOF_VERS in  # {
5280     20100|20101|20102|20103)
5281       if test -r ${LSOF_INCLUDE}/sys/fs/vx_inode.h      # {
5282       then
5283         LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5284       fi        # }
5285       LSOF_CFGL="$LSOF_CFGL -lsocket -lnsl -lelf -lgen"
5286       ;;
5287     70000|70001|70100|70101|70103|70104)
5288       LSOF_TSTBIGF=" "
5289       LSOF_TSTLFLG="-lsocket -lnsl"
5290       if test $LSOF_VERS -lt 70103      # {
5291       then
5292         LSOF_DINC="$LSOF_DINC -I`pwd`/dialects/uw/uw7"
5293       else      # $LSOF_VERS -ge 70103
5294
5295       # Process 7.1.3 and above.
5296
5297         if test -r ${LSOF_INCLUDE}/netinet/in6.h        # {
5298         then
5299           LSOF_CFGF="$LSOF_CFGF -DHASIPv6"
5300         fi      # }
5301         if test $LSOF_VERS -ge 70104    # {
5302         then
5303
5304         # Process 7.1.4 and above.
5305
5306           LSOF_TMP1=0
5307           if test -r ${LSOF_INCLUDE}/netinet/in_pcb.h   # {
5308           then
5309             grep INKERNEL ${LSOF_INCLUDE}/netinet/in_pcb.h > /dev/null 2>&1
5310             if test $? -eq 0    # {
5311             then
5312               LSOF_TMP1=1
5313             fi  # }
5314           fi    # }
5315           if test $LSOF_TMP1 -eq 0 -a -r ${LSOF_INCLUDE}/netinet/tcp_var.h   # {
5316           then
5317             grep INKERNEL ${LSOF_INCLUDE}/netinet/tcp_var.h > /dev/null 2>&1
5318             if test $? -eq 0    # {
5319             then
5320               LSOF_TMP1=1
5321             fi  # }
5322           fi    # }
5323           if test $LSOF_TMP1 -eq 1      # {
5324           then
5325             LSOF_CFGF="$LSOF_CFGF -DHAS_INKERNEL"
5326           fi    # }
5327         fi      # }
5328       fi        # }
5329       if test ! -r ${LSOF_INCLUDE}/vm/swap.h -a -r ${LSOF_INCLUDE}/sys/swap.h   # {
5330       then
5331         (cd ./dialects/uw/uw7/vm; rm -f swap.h; ln -s ${LSOF_INCLUDE}/sys/swap.h swap.h)
5332       fi        # }
5333       if test -r ${LSOF_INCLUDE}/sys/fs/vx_gemini.h     # {
5334       then
5335         LSOF_CFGF="$LSOF_CFGF -DHASVXFS"
5336       fi        # }
5337       LSOF_CFGL="$LSOF_CFGL -lsocket -lnsl -lelf -lgen"
5338       /bin/pkginfo 2> /dev/null | grep -i patch | grep -i ptf7038 > /dev/null
5339       if test -r ${LSOF_INCLUDE}/sys/file.h     # {
5340       then
5341         grep f_open ${LSOF_INCLUDE}/sys/file.h > /dev/null
5342         if test $? -eq 0        # {
5343         then
5344           LSOF_CFGF="$LSOF_CFGF -DHAS_F_OPEN"
5345         fi      # }
5346       fi        # }
5347       if test -r ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h       # {
5348       then
5349         grep "cdfs_LogSecShift;" ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h > /dev/null 2>&1
5350         if test $? -eq 0        # {
5351         then
5352           LSOF_TMP=`grep "cdfs_LogSecShift;" ${LSOF_INCLUDE}/sys/fs/cdfs_fs.h | sed 's/^[       ]*\([^  ]*\).*/\1/'`
5353           if test "X$LSOF_TMP" != "X"   # {
5354           then
5355             LSOF_CFGF="$LSOF_CFGF -DTYPELOGSECSHIFT=$LSOF_TMP"
5356           fi    # }
5357         fi      # }
5358       fi        # }
5359       if test -r ${LSOF_INCLUDE}/sys/proc.h     # {
5360       then
5361         grep p_pgid ${LSOF_INCLUDE}/sys/proc.h > /dev/null
5362         if test $? -eq 0        # {
5363         then
5364           LSOF_CFGF="$LSOF_CFGF -DHAS_P_PGID"
5365         fi      # }
5366       fi        # }
5367       if test $LSOF_VERS -ge 70101      # {
5368       then
5369
5370         # Do OpenServer Release 6.0.0 and UnixWare 7.1.1 and above tests, as
5371         # required.
5372
5373         if test "X$UW_HAS_NSC" = "X"    # {
5374         then
5375           UW_HAS_NSC=N
5376           if test -x /bin/node_self     # {
5377           then
5378             /bin/node_self > /dev/null 2>&1
5379             if test $? -eq 0    # {
5380             then
5381               UW_HAS_NSC=Y
5382             fi  # }
5383           fi    # }
5384         fi      # }
5385         if test "X$UW_HAS_NSC" = "XY" -o "X$UW_HAS_NSC" = "Xy"  # {
5386         then
5387           LSOF_CFGF="$LSOF_CFGF -DHAS_UW_NSC"
5388           LSOF_CFGL="$LSOF_CFGL -lcluster"
5389         fi      # }
5390         if test -r ${LSOF_INCLUDE}/sys/nsc_synch.h      # {
5391         then
5392           LSOF_CFGF="$LSOF_CFGF -DHAS_UW_CFS"
5393         fi      # }
5394       fi        # }
5395       ;;
5396     *)
5397       echo Unsupported UnixWare version: `uname -v`
5398       rm -f $LSOF_HLP
5399       exit 1
5400       ;;
5401     esac        # }
5402     if test -r ${LSOF_INCLUDE}/sys/fs/xnamnode.h        # {
5403     then
5404       LSOF_CFGF="$LSOF_CFGF -DHASXNAMNODE"
5405     fi  # }
5406     LSOF_DIALECT_DIR=uw
5407     ;;
5408
5409 # Handle unknown abbreviation.
5410
5411   *) 
5412     echo "Can't configure for $LSOF_TGT."
5413     cat $LSOF_HLP
5414     rm -f $LSOF_HLP
5415     exit 1
5416     ;;
5417
5418 # End of LSOF_TGT cases
5419
5420 esac    # }
5421
5422 # Do an inventory of the distribution, as required.
5423
5424 if test "X$LSOF_SCRIPT_CALL" = "Xyes" -a ! -r ./.neverInv       # {
5425 then
5426   if test ! -f ./Inventory      # Want -x, but Ultrix doesn't grok it.  # {
5427   then
5428     echo "Can't find Inventory script."
5429     rm -f $LSOF_HLP
5430     exit 1
5431   fi    # }
5432   ./Inventory
5433 fi      # }
5434
5435 # Make sure target directory exists.
5436
5437 if test ! -d ./dialects/$LSOF_DIALECT_DIR       # {
5438 then
5439   echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR doesn't exist."
5440   rm -f $LSOF_HLP
5441   exit 1
5442 fi      # }
5443
5444 # Make sure $LSOF_MK exists in the target directory.
5445
5446 if test ! -r ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK      # {
5447 then
5448   echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK doesn't exist."
5449   rm -f $LSOF_HLP
5450   exit 1
5451 fi      # }
5452
5453 # Make sure $LSOF_MKF, $LSOF_SPMKF, or $LSOF_MKF.$LSOF_LOCALSUFFIX) exists
5454 # in the target directory.
5455
5456 if test "X$LSOF_SPMKF" != "X"   # {
5457 then
5458   LSOF_TMP1=$LSOF_SPMKF
5459 else
5460   LSOF_TMP1=$LSOF_MKF
5461 fi      # }
5462 if test "X$LSOF_LOCALSUFFIX" != "X"     # {
5463 then
5464   LSOF_REST=$LSOF_TMP1.$LSOF_LOCALSUFFIX
5465 else
5466   LSOF_REST=$LSOF_TMP1
5467 fi      # }
5468 if test ! -r ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST    # {
5469 then
5470   echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST doesn't exist."
5471   rm -f $LSOF_HLP
5472   exit 1
5473 fi      # }
5474
5475 # If this is FreeBSD, make sure $LSOF_FBSD_ZFS_MKF exists.
5476
5477 if test $LSOF_FBSD_ZFS -eq 1    # {
5478 then
5479   if test ! ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF     # {
5480   then
5481     echo "Can't configure for $LSOF_TGT -- ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF doesn't exist."
5482     rm -f $LSOF_HLP
5483     exit 1
5484   fi    # }
5485 fi      # }}
5486
5487 # Make sure $LSOF_VF exists.  Extract the version number from it.
5488
5489 if test ! -r $LSOF_VF   # {
5490 then
5491   echo "Version number file, ./$LSOF_VF, doesn't exist."
5492   rm -f $LSOF_HLP
5493   exit 1
5494 else
5495   LSOF_VN=`sed "s/.ds VN \(.*\)/\1/" < $LSOF_VF`
5496 fi      # }
5497
5498 # Clean up in advance.
5499
5500 rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF $LSOF_TSTCFLG $LSOF_TSTCC
5501 rm -f $LSOF_TSTXOC $LSOF_TSTLFF
5502 echo "rm -f $LSOF_F $LSOF_MKFC $LSOF_FBSD_ZFS_MKF $LSOF_TSTCFLG"
5503 echo "rm -f $LSOF_TSTCC $LSOF_TSTXOC $LSOF_TSTLFF"
5504
5505 # Make sure there's a C compiler name.
5506
5507 if test "X$LSOF_CC" = "X"       # {
5508 then
5509   LSOF_CC=cc
5510 fi      # }
5511
5512 # Do common feature analyses.
5513
5514 # Check for localtime(3) and strftime(3).
5515
5516 rm -f ${LSOF_TMPC}.*
5517 cat > $LSOF_TMPC.c << .LSOF_END_HERE_DOC2
5518 #include <time.h>
5519 main(){
5520   time_t cl;
5521   struct tm *ts;
5522   char bf[32];
5523   if ((cl = time(NULL)) == (time_t)-1)
5524     return(1);
5525   ts = localtime(&cl);
5526   if (strftime(bf, sizeof(bf), "%D", ts) != 8)
5527     return(1);
5528   if ((bf[2] != '/') || (bf[5] != '/'))
5529     return (1);
5530   return(0);
5531 }
5532 .LSOF_END_HERE_DOC2
5533 echo $EO "Testing C library for localtime() and strftime(), using $LSOF_CC ... $EC"
5534 $LSOF_CC ${LSOF_TMPC}.c -o ${LSOF_TMPC}.x > /dev/null 2>&1
5535 if test -x ${LSOF_TMPC}.x       # {
5536 then
5537   ./${LSOF_TMPC}.x
5538   if test $? -eq 0      # }
5539   then
5540     LSOF_CFGF="$LSOF_CFGF -DHAS_STRFTIME"
5541     echo "present"
5542   else
5543     echo "unusable"
5544   fi    # }
5545 else
5546   echo "missing"
5547 fi      # }
5548 rm -f ${LSOF_TMPC}.[cox]
5549
5550 # Make the dialect sources.
5551
5552 if test "X$LSOF_MKC" = "X"      # {
5553 then
5554   LSOF_MKC="ln -s"
5555 fi      # }
5556 LSOF_MKC=$LSOF_MKC ./dialects/$LSOF_DIALECT_DIR/$LSOF_MK $LSOF_TGT $LSOF_VERS
5557
5558 # Make $LSOF_MKFC and ${LSOF_LIB}/$LSOF_LIBMKF.
5559
5560 echo "# $LSOF_TGT Makefile for lsof revision $LSOF_VN" > $LSOF_MKFC
5561 echo "" >> $LSOF_MKFC
5562 echo "CC=       $LSOF_CC" >> $LSOF_MKFC
5563 if test "X$LSOF_CCV" != "X"     # {
5564 then
5565   echo "" >> $LSOF_MKFC
5566   echo "CCV=    $LSOF_CCV" >> $LSOF_MKFC
5567 fi      # }
5568 if test "X$LSOF_LIB_NO" = "X"   # {
5569 then
5570   echo "" >> $LSOF_MKFC
5571   echo "LIB=    ${LSOF_LIB}/liblsof.a" >> $LSOF_MKFC
5572 fi      # }
5573 if test "X$LSOF_LD" != "X"      # {
5574 then
5575   echo "" >> $LSOF_MKFC
5576   echo "LD=     $LSOF_LD" >> $LSOF_MKFC
5577 fi      # }
5578 if test "X$LSOF_CINFO" != "X"   # {
5579 then
5580   echo "" >> $LSOF_MKFC
5581   echo "CINFO=  $LSOF_CINFO" >> $LSOF_MKFC
5582 fi      # }
5583 if test "X$LSOF_CFGD" != "X"    # {
5584 then
5585   echo "CFGD=   $LSOF_CFGD" >> $LSOF_MKFC
5586 fi      # }
5587 if test "X$LSOF_CFGDN" != "X"   # {
5588 then
5589   echo "CFGDN=  $LSOF_CFGDN" >> $LSOF_MKFC
5590 fi      # }
5591 if test "X$LSOF_ARCH" != "X"    # {
5592 then
5593   LSOF_CFGF="$LSOF_CFGF -DLSOF_ARCH=\\\"$LSOF_ARCH\\\""
5594 fi      # }
5595 if test "X$LSOF_VSTR" != "X"    # {
5596 then
5597   LSOF_TMP=`echo $LSOF_VSTR | sed 's/(/\\\\(/g' | sed 's/)/\\\\)/g'`
5598   LSOF_CFGF="$LSOF_CFGF -DLSOF_VSTR=\\\"$LSOF_TMP\\\""
5599 fi      # }
5600 echo "" >> $LSOF_MKFC
5601 echo "CFGF=     $LSOF_CFGF" >> $LSOF_MKFC
5602 if test "X$LSOF_LIB_NO" = "X"   # {
5603 then
5604   echo "" >> $LSOF_MKFC
5605   echo "CFGL=   $LSOF_FCFGL -L./$LSOF_LIB -llsof $LSOF_CFGL" >> $LSOF_MKFC
5606 fi      # }
5607 echo "" >> $LSOF_MKFC
5608 if test "X$LSOF_DEBUG" = "X"    # {
5609 then
5610   LSOF_DEBUG="-O"
5611 else
5612   if test "X$LSOF_DEBUG" = "XNo-O"      # {
5613   then
5614     LSOF_DEBUG=""
5615   fi    # }
5616 fi      # }
5617 echo "DEBUG=    $LSOF_DEBUG" >> $LSOF_MKFC
5618 if test "X$LSOF_OPINC" != "X"   # {
5619 then
5620   LSOF_DINC="$LSOF_DINC $LSOF_OPINC"
5621 fi      # }
5622 if test "X$LSOF_DINC" != "X"    # {
5623 then
5624   echo "" >> $LSOF_MKFC
5625   echo "DINC=   $LSOF_DINC" >> $LSOF_MKFC
5626 fi      # }
5627 if test "X$LSOF_DOC" != "X"     # {
5628 then
5629   echo "" >> $LSOF_MKFC
5630   echo "DOC=$LSOF_DOC" >> $LSOF_MKFC
5631 fi      # }
5632 if test "X$LSOF_DISTRIBKVM" != "X" -a "X$LSOF_DISTRIBKVM" != "XKVM"     # {
5633 then
5634   echo "" >> $LSOF_MKFC
5635   echo "KVM=    $LSOF_DISTRIBKVM" >> $LSOF_MKFC
5636 fi      # }
5637 rm -f ${LSOF_LIB}/$LSOF_LIBMKF
5638 if test "X$LSOF_LIB_NO" = "X"   # {
5639 then
5640   cp $LSOF_MKFC ${LSOF_LIB}/$LSOF_LIBMKF
5641 fi      # }
5642 cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_REST >> $LSOF_MKFC
5643 if test "X$LSOF_LIB_NO" = "X"   # {
5644 then
5645
5646   # Put archiving and optional randomizing strings in ${LSOF_LIB}/$LSOF_LIBMKF.
5647   #
5648   # Process optional CFLAGS override.
5649   #
5650   # Add the library Makefile skeleton section.
5651
5652   echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5653   if test "X$LSOF_AR" = "X"     # {
5654   then
5655     echo "AR=   ar cr \${LIB} \${OBJ}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5656   else
5657     echo "AR=   $LSOF_AR \${LIB} \${OBJ}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5658   fi    # }
5659   if test "X$LSOF_RANLIB" != "X"        # {
5660   then
5661     echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5662     echo "RANLIB=       $LSOF_RANLIB \${LIB}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5663   fi    # }
5664   echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5665   if test "X$LSOF_CFLAGS_OVERRIDE" = "X"        # {
5666   then
5667     echo "CFLAGS=       \${CDEFS} \${INCL} \${DEBUG}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5668   else
5669     echo "override CFLAGS=\${CDEFS} \${INCL} \${DEBUG}" >> ${LSOF_LIB}/$LSOF_LIBMKF
5670   fi    # }
5671   echo "" >> ${LSOF_LIB}/$LSOF_LIBMKF
5672   cat ${LSOF_LIB}/$LSOF_LIBMKFSKEL >> ${LSOF_LIB}/$LSOF_LIBMKF
5673   echo $LSOF_MKFC and ${LSOF_LIB}/$LSOF_LIBMKF created.
5674 else
5675   echo $LSOF_MKFC created.
5676 fi      # }
5677
5678 # If this is FreeBSD, create $LSOF_FBSD_ZFS_MKF.
5679
5680 if test $LSOF_FBSD_ZFS -eq 1    # {
5681 then
5682   rm -f $LSOF_FBSD_ZFS_MKF
5683   echo "# $LSOF_TGT ZFS Makefile for lsof revision $LSOF_VN" > $LSOF_FBSD_ZFS_MKF
5684   echo "" >> $LSOF_FBSD_ZFS_MKF
5685   echo "CC=             $LSOF_CC" >> $LSOF_FBSD_ZFS_MKF
5686   echo "" >> $LSOF_FBSD_ZFS_MKF
5687   echo "CFLAGS= $LSOF_FBSD_ZFS_CFGF" >> $LSOF_FBSD_ZFS_MKF
5688   echo "" >> $LSOF_FBSD_ZFS_MKF
5689   if test "X$LSOF_DEBUG" = "X"  # {
5690   then
5691     LSOF_DEBUG="-O"
5692   else
5693     if test "X$LSOF_DEBUG" = "XNo-O"    # {
5694     then
5695       LSOF_DEBUG=""
5696     fi  # }
5697   fi    # }
5698   echo "DEBUG=  $LSOF_DEBUG" >> $LSOF_FBSD_ZFS_MKF
5699   echo "" >> $LSOF_FBSD_ZFS_MKF
5700   echo "OPENSOLARIS=    $LSOF_FBSD_ZFS_SYS" >> $LSOF_FBSD_ZFS_MKF
5701   echo "" >> $LSOF_FBSD_ZFS_MKF
5702   cat ./dialects/$LSOF_DIALECT_DIR/$LSOF_FBSD_ZFS_MKF >> $LSOF_FBSD_ZFS_MKF
5703   echo $LSOF_FBSD_ZFS_MKF created.
5704 fi      # }
5705
5706 # Create test cc file.
5707
5708 echo "$LSOF_CC" > $LSOF_TSTCC
5709 echo "$LSOF_TSTCC created"
5710
5711 # Create test cflags file.
5712
5713 echo "-DLT_DIAL_$LSOF_TGT" > $LSOF_TSTCFLG
5714 if test "X$LSOF_TSTBIGF" != "X" # {
5715 then
5716   echo "-DLT_BIGF" >> $LSOF_TSTCFLG
5717   if test "X$LSOF_TSTBIGF" != "X "      # {
5718   then
5719     for i in $LSOF_TSTBIGF      # {
5720     do
5721       echo "$i" >> $LSOF_TSTCFLG
5722     done        # }
5723   fi    # }
5724 fi      # }
5725 if test "X$LSOF_TSTDFLG" != "X" # {
5726 then
5727   for i in $LSOF_TSTDFLG        # {
5728   do
5729     echo "$i" >> $LSOF_TSTCFLG
5730   done  # }
5731 fi      # }
5732 echo $LSOF_CC | grep gcc > /dev/null 2>&1
5733 if test $? -eq 0        # {
5734 then
5735   echo "-DLT_GCC" >> $LSOF_TSTCFLG
5736 else
5737   echo "-DLT_CC" >> $LSOF_TSTCFLG
5738 fi      # r}
5739 if test $LSOF_TSTKMEM -eq 1     # {
5740 then
5741   echo "-DLT_KMEM" >> $LSOF_TSTCFLG
5742 fi      # }
5743 if test $LSOF_TSTK64 -eq 1      # {
5744 then
5745   echo "-DLT_K64" >> $LSOF_TSTCFLG
5746 fi      # }
5747 echo "-DLT_VERS=$LSOF_VERS" >> $LSOF_TSTCFLG
5748 if test $LSOF_TSTVPATH -eq 1    # {
5749 then
5750   echo "-DLT_VPATH" >> $LSOF_TSTCFLG
5751 fi      # }
5752 echo "$LSOF_TSTCFLG created"
5753
5754 # Create tests loader flags file.
5755
5756 echo $LSOF_TSTLFLG > $LSOF_TSTLFF
5757 echo "$LSOF_TSTLFF created"
5758
5759 # Create test extra objects file.
5760
5761 echo "$LSOF_TSTXO" > $LSOF_TSTXOC
5762 echo "$LSOF_TSTXOC created"
5763
5764 rm -f $LSOF_HLP
5765
5766 # Call Customize, as required.
5767
5768 if test "X$LSOF_SCRIPT_CALL" = "Xyes" -a ! -r ./.neverCust      # {
5769 then
5770   if test ! -f ./Customize      # {  Want -x, but Ultrix doesn't grok it.
5771   then
5772     echo "Can't find Customize script."
5773     exit 1
5774   fi    # }
5775   ./Customize $LSOF_DIALECT_DIR
5776 fi      # }
5777
5778 # Issue unsupported warnings, as appropriate.
5779
5780 if test "X$LSOF_UNSUP" != "X"   # {
5781 then
5782   echo "$LSOF_UNSUP"
5783 fi      #}
5784 if test "X$LSOF_UNSUP2" != "X"  # {
5785 then
5786   echo "$LSOF_UNSUP2"
5787 fi      #}
5788 exit 0