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