Blame Customize

Packit 6f02de
#!/bin/sh
Packit 6f02de
#
Packit 6f02de
# $Id: Customize,v 1.9 2005/05/11 13:02:18 abe Exp $
Packit 6f02de
#
Packit 6f02de
# Customize: customize dialect's machine.h header file.
Packit 6f02de
#
Packit 6f02de
# Allows easy modification of some important compile-time definitions for
Packit 6f02de
# lsof, made in the dialect's machine.h header file, including:
Packit 6f02de
#
Packit 6f02de
#	HASSECURITY	the security option
Packit 6f02de
#	HASNOSOCKSECURITY
Packit 6f02de
#			the socket oberalization of HASSECURITY
Packit 6f02de
#	HASDCACHE	enabling/disabling the device cache file
Packit 6f02de
#			(Note: changing the device cache file option isn't
Packit 6f02de
#			       offered when machine.h contains NEVER_HASDCACHE
Packit 6f02de
#			       anywhere, including in a comment.)
Packit 6f02de
#	HASENVDC	enabling/disabling device cache path from environment
Packit 6f02de
#	HASKERNIDCK	enabling/disabling the kernel identity check
Packit 6f02de
#			(not done for some dialects)
Packit 6f02de
#	HASPERSDC	enabling/disabling personal device cache path
Packit 6f02de
#			construction
Packit 6f02de
#	HASPERSDCPATH	enabling/disabling additional personal device cache
Packit 6f02de
#			path component
Packit 6f02de
#	HASSYSDC	enabling/disabling system-wide device cache file path
Packit 6f02de
#	HASXOPT_ROOT	enabling/disabling root use of the -X option
Packit 6f02de
#	WARNDEVACCESS	enabling inaccessible /dev node warnings
Packit 6f02de
#			(Note: changing the inaccessible /dev/node warning
Packit 6f02de
#			       option isn't offered when machine.h contains
Packit 6f02de
#			       NEVER_WARNDEVACCESS anywhere, including in a
Packit 6f02de
#			       comment.)
Packit 6f02de
#	WARNINGSTATE	enable/disabling default warning message state
Packit 6f02de
#
Packit 6f02de
# Usage: Customize [dialect_directory]
Packit 6f02de
#
Packit 6f02de
# where: dialect_directory (optional) is the directory in which the dialect's
Packit 6f02de
#	 dialect's sources, Makefile and scripts are found
Packit 6f02de
Packit 6f02de
OLD=machine.h
Packit 6f02de
NEW=new_machine.h
Packit 6f02de
Packit 6f02de
# Save optional dialect directory.
Packit 6f02de
Packit 6f02de
if test $# -eq 1
Packit 6f02de
then
Packit 6f02de
  DialDir=$1
Packit 6f02de
else
Packit 6f02de
  DialDir=""
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# Establish trap and stty handling.
Packit 6f02de
Packit 6f02de
ISIG=":"
Packit 6f02de
trap 'rm -f $NEW; $ISIG; exit 1' 1 2 3 15
Packit 6f02de
stty -a 2>&1 | grep isig > /dev/null
Packit 6f02de
if test $? -eq 0
Packit 6f02de
then
Packit 6f02de
  stty -a 2>&1 | egrep -e -isig > /dev/null
Packit 6f02de
  if test $? -eq 0
Packit 6f02de
  then
Packit 6f02de
    ISIG="stty -isig"
Packit 6f02de
    stty isig
Packit 6f02de
  fi
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# Decide how to use echo.
Packit 6f02de
Packit 6f02de
ECHO=`echo -n ""`
Packit 6f02de
if test "X$ECHO" = "X-n "
Packit 6f02de
then
Packit 6f02de
  EC="\c"
Packit 6f02de
  EO=""
Packit 6f02de
else
Packit 6f02de
  EC=""
Packit 6f02de
  EO="-n"
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# Decide how to use tail(1).
Packit 6f02de
Packit 6f02de
TMP1=`tail -n 1 $0 2> /dev/null`
Packit 6f02de
if test $? -eq 0 -a "X$TMP1" = "X#LAST_LINE"
Packit 6f02de
then
Packit 6f02de
  TA="-n 1"
Packit 6f02de
else
Packit 6f02de
  TA="-1"
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# Display the introduction and basic explanation.
Packit 6f02de
Packit 6f02de
cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
You may now customize the machine.h header file for this UNIX
Packit 6f02de
dialect.  The customizations will take effect when you compile
Packit 6f02de
lsof.  You may also choose to skip customization and proceed to
Packit 6f02de
the compilation of lsof.
Packit 6f02de
Packit 6f02de
If you don't know if you need to customize or want to know more
Packit 6f02de
about what you can customize, consult the 00DCACHE, 00FAQ, 00PORTING,
Packit 6f02de
and 00README files of the lsof distribution.  You might also find
Packit 6f02de
it helpful to examine the machine.h header file for the dialect
Packit 6f02de
you're customizing.
Packit 6f02de
Packit 6f02de
You don't need to use this procedure to customize lsof; you can
Packit 6f02de
edit the machine.h header file directly.  If you later decide you
Packit 6f02de
want to use this procedure to customize machine.h, execute the
Packit 6f02de
./Customize script.
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
END=0
Packit 6f02de
while test $END -eq 0
Packit 6f02de
do
Packit 6f02de
  echo ""
Packit 6f02de
  echo $EO "Do you want to customize (y|n) [y]? $EC"
Packit 6f02de
  read ANS EXCESS
Packit 6f02de
  if test "X$ANS" = "Xn" -o "X$ANS" = "XN"
Packit 6f02de
  then
Packit 6f02de
    exit 0
Packit 6f02de
  fi
Packit 6f02de
  if test "X$ANS" = "Xy" -o "X$ANS" = "XY" -o "X$ANS" = "X"
Packit 6f02de
  then
Packit 6f02de
    echo ""
Packit 6f02de
    echo "Customizing ..."
Packit 6f02de
    END=1
Packit 6f02de
  else
Packit 6f02de
    echo ""
Packit 6f02de
    echo "Please answer y|n [y]."
Packit 6f02de
  fi
Packit 6f02de
done
Packit 6f02de
Packit 6f02de
# See if $OLD exists.
Packit 6f02de
Packit 6f02de
if test ! -r $OLD
Packit 6f02de
then
Packit 6f02de
  echo ""
Packit 6f02de
  echo "FATAL: The file \"$OLD\" doesn't exist.  Customization can't"
Packit 6f02de
  echo "continue without it."
Packit 6f02de
  echo ""
Packit 6f02de
  echo "Did you run the Configure script?"
Packit 6f02de
  echo ""
Packit 6f02de
  echo "Customize quits."
Packit 6f02de
  echo ""
Packit 6f02de
  exit 1
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# See if $NEW exists.
Packit 6f02de
Packit 6f02de
if test -r $NEW
Packit 6f02de
then
Packit 6f02de
  echo ""
Packit 6f02de
  echo "====================================================================="
Packit 6f02de
  echo ""
Packit 6f02de
  echo "WARNING: \"$NEW\" exists.  Customization will replace it."
Packit 6f02de
  END=0
Packit 6f02de
  while test $END -eq 0
Packit 6f02de
  do
Packit 6f02de
    echo ""
Packit 6f02de
    echo $EO "Do you want to remove $NEW (y|n) [y]? $EC"
Packit 6f02de
    read ANS EXCESS
Packit 6f02de
    if test "X$ANS" = "Xy" -o "X$ANS" = "XY" -o "X$ANS" = "X"
Packit 6f02de
    then
Packit 6f02de
      echo ""
Packit 6f02de
      echo "Removing $NEW"
Packit 6f02de
      echo ""
Packit 6f02de
      rm -f $NEW
Packit 6f02de
      END=1
Packit 6f02de
    else
Packit 6f02de
      if test "X$ANS" = "Xn" -o "X$ANS" = "XN"
Packit 6f02de
      then
Packit 6f02de
        echo ""
Packit 6f02de
        echo "FATAL: Customize quits; it must be able to create \"$NEW\"."
Packit 6f02de
        echo ""
Packit 6f02de
        exit 1
Packit 6f02de
      else
Packit 6f02de
        echo ""
Packit 6f02de
        echo "Please answer y|n [y]."
Packit 6f02de
      fi
Packit 6f02de
    fi
Packit 6f02de
  done
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# Process HASSECURITY.
Packit 6f02de
Packit 6f02de
cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
=====================================================================
Packit 6f02de
Packit 6f02de
When HASSECURITY is enabled, only the root user may use lsof to
Packit 6f02de
examine all open files; other users may examine only the files
Packit 6f02de
belonging to the real user ID of their lsof process.  If
Packit 6f02de
HASNOSOCKSECURITY is also defined, anyone may list anyone else's
Packit 6f02de
open socket files, provided their listing is selected with the "-i"
Packit 6f02de
option.
Packit 6f02de
Packit 6f02de
When HASSECURITY is disabled, anyone may use lsof to examine all
Packit 6f02de
open files.
Packit 6f02de
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
grep HASSECURITY $OLD | tail $TA | egrep "^#define" > /dev/null
Packit 6f02de
if test $? -eq 0
Packit 6f02de
then
Packit 6f02de
  echo "HASSECURITY is enabled."
Packit 6f02de
  NSEC=1
Packit 6f02de
else
Packit 6f02de
  echo "HASSECURITY is disabled."
Packit 6f02de
  NSEC=0
Packit 6f02de
fi
Packit 6f02de
END=0
Packit 6f02de
while test $END -eq 0
Packit 6f02de
do
Packit 6f02de
  echo ""
Packit 6f02de
  if test $NSEC -eq 1
Packit 6f02de
  then
Packit 6f02de
    echo $EO "Disable HASSECURITY (y|n) [n]? $EC"
Packit 6f02de
  else
Packit 6f02de
    echo $EO "Enable HASSECURITY (y|n) [n]? $EC"
Packit 6f02de
  fi
Packit 6f02de
  read ANS EXCESS
Packit 6f02de
  if test "X$ANS" = "Xy" -o "X$ANS" = "XY"
Packit 6f02de
  then
Packit 6f02de
    echo ""
Packit 6f02de
    if test $NSEC -eq 1
Packit 6f02de
    then
Packit 6f02de
      NSEC=0
Packit 6f02de
      echo "HASSECURITY will be disabled."
Packit 6f02de
    else
Packit 6f02de
      NSEC=1
Packit 6f02de
      echo "HASSECURITY will be enabled."
Packit 6f02de
    fi
Packit 6f02de
    END=1
Packit 6f02de
  else
Packit 6f02de
    if test "X$ANS" = "Xn" -o "X$ANS" = "XN" -o "X$ANS" = "X"
Packit 6f02de
    then
Packit 6f02de
      echo ""
Packit 6f02de
      echo "HASSECURITY will not be changed."
Packit 6f02de
      END=1
Packit 6f02de
    else
Packit 6f02de
      echo ""
Packit 6f02de
      echo "Please answer y|n [n]."
Packit 6f02de
    fi
Packit 6f02de
  fi
Packit 6f02de
done
Packit 6f02de
Packit 6f02de
# If HASSECURITY is enabled, see if HASNOSOCKSECURITY should also be defined.
Packit 6f02de
Packit 6f02de
if test $NSEC -eq 1
Packit 6f02de
then
Packit 6f02de
  cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
====================================================================
Packit 6f02de
Packit 6f02de
When HASSECURITY is enabled, you may also define HASNOSOCKSECURITY.
Packit 6f02de
Packit 6f02de
When both are defined, no one but root may list all of anyone else's
Packit 6f02de
open files -- only their own open files -- but anyone may list
Packit 6f02de
anyone else's open socket files.
Packit 6f02de
Packit 6f02de
This option is useful with ntop (http://www.ntop.org).
Packit 6f02de
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
  grep HASNOSOCKSECURITY $OLD | tail $TA | egrep "^#define" > /dev/null
Packit 6f02de
  if test $? -eq 0
Packit 6f02de
  then
Packit 6f02de
    echo "HASNOSOCKSECURITY is enabled."
Packit 6f02de
    SOCKSEC=1
Packit 6f02de
  else
Packit 6f02de
    echo "HASNOSOCKSECURITY is disabled."
Packit 6f02de
    SOCKSEC=0
Packit 6f02de
  fi
Packit 6f02de
  END=0
Packit 6f02de
  while test $END -eq 0
Packit 6f02de
  do
Packit 6f02de
    echo ""
Packit 6f02de
    if test $SOCKSEC -eq 1
Packit 6f02de
    then
Packit 6f02de
      echo $EO "Disable HASNOSOCKSECURITY (y|n) [n]? $EC"
Packit 6f02de
    else
Packit 6f02de
      echo $EO "Enable HASNOSOCKSECURITY (y|n) [n]? $EC"
Packit 6f02de
    fi
Packit 6f02de
    read ANS EXCESS
Packit 6f02de
    if test "X$ANS" = "Xy" -o "X$ANS" = "XY"
Packit 6f02de
    then
Packit 6f02de
      echo ""
Packit 6f02de
      if test $SOCKSEC -eq 1
Packit 6f02de
      then
Packit 6f02de
        SOCKSEC=0
Packit 6f02de
        echo "HASNOSOCKSECURITY will be disabled."
Packit 6f02de
      else
Packit 6f02de
        SOCKSEC=1
Packit 6f02de
        echo "HASNOSOCKSECURITY will be enabled."
Packit 6f02de
      fi
Packit 6f02de
      END=1
Packit 6f02de
    else
Packit 6f02de
      if test "X$ANS" = "Xn" -o "X$ANS" = "XN" -o "X$ANS" = "X"
Packit 6f02de
      then
Packit 6f02de
        echo ""
Packit 6f02de
        echo "HASNOSOCKSECURITY will not be changed."
Packit 6f02de
        END=1
Packit 6f02de
      else
Packit 6f02de
        echo ""
Packit 6f02de
        echo "Please answer y|n [n]."
Packit 6f02de
      fi
Packit 6f02de
    fi
Packit 6f02de
  done
Packit 6f02de
else
Packit 6f02de
  SOCKSEC=0
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# Process WARNINGSTATE.
Packit 6f02de
Packit 6f02de
cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
=====================================================================
Packit 6f02de
Packit 6f02de
When WARNINGSTATE is enabled, lsof will will issue whatever warning
Packit 6f02de
messages it finds necessary.  When WARNINGSTATE is disabled, lsof
Packit 6f02de
will issue no warning messages.  For individual uses of lsof, -w
Packit 6f02de
disables warning state and +w enables it.
Packit 6f02de
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
grep WARNINGSTATE $OLD | tail $TA | egrep "^#define" > /dev/null
Packit 6f02de
if test $? -eq 0
Packit 6f02de
then
Packit 6f02de
  echo "WARNINGSTATE is disabled."
Packit 6f02de
  WST=0
Packit 6f02de
else
Packit 6f02de
  echo "WARNINGSTATE is enabled."
Packit 6f02de
  WST=1
Packit 6f02de
fi
Packit 6f02de
END=0
Packit 6f02de
NWST=$WST
Packit 6f02de
while test $END -eq 0
Packit 6f02de
do
Packit 6f02de
  echo ""
Packit 6f02de
  if test $NWST -eq 0
Packit 6f02de
  then
Packit 6f02de
    echo $EO "Enable WARNINGSTATE? (y|n) [n]? $EC"
Packit 6f02de
  else
Packit 6f02de
    echo $EO "Disable WARNINGSTATE? (y|n) [n]? $EC"
Packit 6f02de
  fi
Packit 6f02de
  read ANS EXCESS
Packit 6f02de
  if test "X$ANS" = "Xy" -o "X$ANS" = "XY"
Packit 6f02de
  then
Packit 6f02de
    echo ""
Packit 6f02de
    if test $NWST -eq 0
Packit 6f02de
    then
Packit 6f02de
      echo "WARNINGSTATE will be enabled."
Packit 6f02de
      NWST=1
Packit 6f02de
    else
Packit 6f02de
      echo "WARNINGSTATE will be disabled."
Packit 6f02de
      NWST=0
Packit 6f02de
    fi
Packit 6f02de
    END=1
Packit 6f02de
  else
Packit 6f02de
    if test "X$ANS" = "Xn" -o "X$ANS" = "XN" -o "X$ANS" = "X"
Packit 6f02de
    then
Packit 6f02de
      echo ""
Packit 6f02de
      echo "WARNINGSTATE will not be changed."
Packit 6f02de
      END=1
Packit 6f02de
    else
Packit 6f02de
      echo ""
Packit 6f02de
      echo "Please answer y|n [n]."
Packit 6f02de
    fi
Packit 6f02de
  fi
Packit 6f02de
done
Packit 6f02de
Packit 6f02de
# Process WARNDEVACCESS, unless the dialect's machine.h header file contains
Packit 6f02de
# NEVER_WARNDEVACCESS.
Packit 6f02de
Packit 6f02de
grep NEVER_WARNDEVACCESS $OLD > /dev/null
Packit 6f02de
if test $? -eq 0
Packit 6f02de
then
Packit 6f02de
  NEVERWDA=1
Packit 6f02de
  NWDA=0
Packit 6f02de
else
Packit 6f02de
  NEVERWDA=0
Packit 6f02de
  cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
=====================================================================
Packit 6f02de
Packit 6f02de
When WARNDEVACCESS is enabled, lsof will issue warning messages
Packit 6f02de
when it can't access nodes in /dev (or /devices), subject to the
Packit 6f02de
default or explicit (-w) WARNINGSTATE.
Packit 6f02de
Packit 6f02de
When WARNDEVACCESS is disabled, lsof will silently skip nodes in
Packit 6f02de
/dev (or /devices) that it can't access.
Packit 6f02de
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
  grep WARNDEVACCESS $OLD | tail $TA | egrep "^#define" > /dev/null
Packit 6f02de
  if test $? -eq 0
Packit 6f02de
  then
Packit 6f02de
    echo "WARNDEVACCESS is enabled."
Packit 6f02de
    WDA=1
Packit 6f02de
  else
Packit 6f02de
    echo "WARNDEVACCESS is disabled."
Packit 6f02de
    WDA=0
Packit 6f02de
  fi
Packit 6f02de
  END=0
Packit 6f02de
  NWDA=$WDA
Packit 6f02de
  while test $END -eq 0
Packit 6f02de
  do
Packit 6f02de
    echo ""
Packit 6f02de
    if test $NWDA -eq 1
Packit 6f02de
    then
Packit 6f02de
      echo $EO "Disable WARNDEVACCESS (y|n) [n]? $EC"
Packit 6f02de
    else
Packit 6f02de
      echo $EO "Enable WARNDEVACCESS (y|n) [n]? $EC"
Packit 6f02de
    fi
Packit 6f02de
    read ANS EXCESS
Packit 6f02de
    if test "X$ANS" = "Xy" -o "X$ANS" = "XY"
Packit 6f02de
    then
Packit 6f02de
      echo ""
Packit 6f02de
      if test $NWDA -eq 1
Packit 6f02de
      then
Packit 6f02de
        echo "WARNDEVACCESS will be disabled."
Packit 6f02de
        NWDA=0
Packit 6f02de
      else
Packit 6f02de
        echo "WARNDEVACCESS will be enabled."
Packit 6f02de
        NWDA=1
Packit 6f02de
      fi
Packit 6f02de
      END=1
Packit 6f02de
    else
Packit 6f02de
      if test "X$ANS" = "Xn" -o "X$ANS" = "XN" -o "X$ANS" = "X"
Packit 6f02de
      then
Packit 6f02de
	echo ""
Packit 6f02de
	echo "WARNDEVACCESS will not be changed."
Packit 6f02de
        END=1
Packit 6f02de
      else
Packit 6f02de
        echo ""
Packit 6f02de
        echo "Please answer y|n [n]."
Packit 6f02de
      fi
Packit 6f02de
    fi
Packit 6f02de
  done
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# Process HASDCACHE, unless the dialect's machine.h header file contains
Packit 6f02de
# NEVER_HASDCACHE.
Packit 6f02de
Packit 6f02de
ENVV=""
Packit 6f02de
ENVN=0
Packit 6f02de
PDCV=""
Packit 6f02de
PDCN=0
Packit 6f02de
PDCPV=""
Packit 6f02de
PDCPN=0
Packit 6f02de
SDCV=""
Packit 6f02de
SDCN=0
Packit 6f02de
grep NEVER_HASDCACHE $OLD > /dev/null
Packit 6f02de
if test $? -eq 0
Packit 6f02de
then
Packit 6f02de
  NEVERDC=1
Packit 6f02de
  CDC=0
Packit 6f02de
  DC=0
Packit 6f02de
  NDC=0
Packit 6f02de
else
Packit 6f02de
  NEVERDC=0
Packit 6f02de
  cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
=====================================================================
Packit 6f02de
Packit 6f02de
When HASDCACHE is enabled, lsof will write a device cache file that
Packit 6f02de
contains information about the nodes in /dev (or /devices).  The
Packit 6f02de
options HASENVDC, HASPERSDC, HASPERSDCPATH, and HASSYSDC define
Packit 6f02de
the device cache file path.
Packit 6f02de
Packit 6f02de
When HASDCACHE is disabled, lsof won't write a device cache file.
Packit 6f02de
Packit 6f02de
Consult the 00DCACHE and 00FAQ files of the lsof distribution for
Packit 6f02de
more information.
Packit 6f02de
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
  grep HASDCACHE $OLD | tail $TA | egrep "^#define" > /dev/null
Packit 6f02de
  if test $? -eq 0
Packit 6f02de
  then
Packit 6f02de
    echo "HASDCACHE is enabled."
Packit 6f02de
    DC=1
Packit 6f02de
  else
Packit 6f02de
    echo "HASDCACHE is disabled."
Packit 6f02de
    DC=0
Packit 6f02de
  fi
Packit 6f02de
  END=0
Packit 6f02de
  NDC=$DC
Packit 6f02de
  while test $END -eq 0
Packit 6f02de
  do
Packit 6f02de
    echo ""
Packit 6f02de
    if test $NDC -eq 1
Packit 6f02de
    then
Packit 6f02de
      echo $EO "Disable HASDCACHE (y|n) [n]? $EC"
Packit 6f02de
    else
Packit 6f02de
      echo $EO "Enable HASDCACHE (y|n) [n]? $EC"
Packit 6f02de
    fi
Packit 6f02de
    read ANS EXCESS
Packit 6f02de
    if test "X$ANS" = "Xy" -o "X$ANS" = "XY"
Packit 6f02de
    then
Packit 6f02de
      echo ""
Packit 6f02de
      if test $NDC -eq 1
Packit 6f02de
      then
Packit 6f02de
        echo "HASDCACHE will be disabled."
Packit 6f02de
        NDC=0
Packit 6f02de
      else
Packit 6f02de
        echo "HASDCACHE will be enabled."
Packit 6f02de
        NDC=1
Packit 6f02de
      fi
Packit 6f02de
      END=1
Packit 6f02de
    else
Packit 6f02de
      if test "X$ANS" = "Xn" -o "X$ANS" = "XN" -o "X$ANS" = "X"
Packit 6f02de
      then
Packit 6f02de
	echo ""
Packit 6f02de
	echo "HASDCACHE will not be changed."
Packit 6f02de
        END=1
Packit 6f02de
      else
Packit 6f02de
        echo ""
Packit 6f02de
        echo "Please answer y|n [n]."
Packit 6f02de
      fi
Packit 6f02de
    fi
Packit 6f02de
  done
Packit 6f02de
Packit 6f02de
  # See if other device cache options need to be declared.
Packit 6f02de
Packit 6f02de
  if test $DC -eq 1 -a $NDC -eq 1
Packit 6f02de
  then
Packit 6f02de
    cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
=====================================================================
Packit 6f02de
Packit 6f02de
You have decided that HASDCACHE should be defined.  There are other
Packit 6f02de
definitions associated with HASDCACHE that specify options for the
Packit 6f02de
formation of the device cache file path.  You may change them.
Packit 6f02de
Packit 6f02de
Consult the 00DCACHE and 00FAQ files of the lsof distribution for
Packit 6f02de
more information.
Packit 6f02de
Packit 6f02de
The current path options are:
Packit 6f02de
  
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
    grep HASENVDC $OLD | tail $TA | egrep "^#define"
Packit 6f02de
    egrep "HASPERSDC$|HASPERSDC[ 	]" $OLD | tail $TA | egrep "^#define"
Packit 6f02de
    grep HASPERSDCPATH $OLD | tail $TA | egrep "^#define"
Packit 6f02de
    grep HASSYSDC $OLD | tail $TA | egrep "^#define"
Packit 6f02de
    END=0
Packit 6f02de
    while test $END -eq 0
Packit 6f02de
    do
Packit 6f02de
      echo ""
Packit 6f02de
      echo $EO "Do you want to change path options (y|n) [n]? $EC"
Packit 6f02de
      read ANS EXCESS
Packit 6f02de
      if test "X$ANS" = "Xy" -o "X$ANS" = "XY"
Packit 6f02de
      then
Packit 6f02de
        CDC=1
Packit 6f02de
        END=1
Packit 6f02de
      else
Packit 6f02de
        if test "X$ANS" = "Xn" -o "X$ANS" = "XN"
Packit 6f02de
        then
Packit 6f02de
	  CDC=0
Packit 6f02de
	  END=1
Packit 6f02de
        else
Packit 6f02de
	  if test "X$ANS" = "X"
Packit 6f02de
	  then
Packit 6f02de
	    echo ""
Packit 6f02de
	    echo "The path options will not be changed."
Packit 6f02de
	    CDC=0
Packit 6f02de
	    END=1
Packit 6f02de
	  else
Packit 6f02de
	    echo ""
Packit 6f02de
	    echo "Please answer y|n [n]."
Packit 6f02de
	  fi
Packit 6f02de
        fi
Packit 6f02de
      fi
Packit 6f02de
    done
Packit 6f02de
  else
Packit 6f02de
    CDC=0
Packit 6f02de
  fi
Packit 6f02de
  if test \( $NDC -eq 1 -a $DC -eq 0 \) -o \( $DC -eq 1 -a $CDC -eq 1 \)
Packit 6f02de
  then
Packit 6f02de
    cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
=====================================================================
Packit 6f02de
Packit 6f02de
You may specify for HASENVDC the name of the environment variable
Packit 6f02de
from which lsof should take the device cache file path for non-root
Packit 6f02de
users.  Press ENTER to use the current value of HASENVDC:
Packit 6f02de
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
    echo $EO "        $EC"
Packit 6f02de
    TMP1=`grep HASENVDC $OLD | tail $TA | egrep "^#define"`
Packit 6f02de
    if test "X$TMP1" != "X"
Packit 6f02de
    then
Packit 6f02de
      TMP1=`echo "$TMP1" | sed 's/^#define[ 	]HASENVDC[ 	]"\([^"]*\)".*$/\1/'`
Packit 6f02de
      echo "$TMP1"
Packit 6f02de
    else
Packit 6f02de
      echo "no current HASENVDC value"
Packit 6f02de
    fi
Packit 6f02de
    END=0
Packit 6f02de
    GV=0
Packit 6f02de
    while test $END -eq 0
Packit 6f02de
    do
Packit 6f02de
      echo ""
Packit 6f02de
      echo $EO "Do you want to define a name for HASENVDC (y|n) [n]? $EC"
Packit 6f02de
      read ANS EXCESS
Packit 6f02de
      if test "X$ANS" = "Xn" -o "X$ANS" = "XN"
Packit 6f02de
      then
Packit 6f02de
        ENVV=""
Packit 6f02de
        END=1
Packit 6f02de
      else
Packit 6f02de
        if test "X$ANS" = "Xy" -o "X$ANS" = "XY"
Packit 6f02de
        then
Packit 6f02de
	  GV=1
Packit 6f02de
	  END=1
Packit 6f02de
        else
Packit 6f02de
	  if test "X$ANS" = "X"
Packit 6f02de
	  then
Packit 6f02de
	    echo ""
Packit 6f02de
	    echo "HASENVDC will not be changed."
Packit 6f02de
	    ENVV=$TMP1
Packit 6f02de
	    END=1
Packit 6f02de
	  else
Packit 6f02de
	    echo ""
Packit 6f02de
	    echo "Please answer y|n [n]."
Packit 6f02de
	  fi
Packit 6f02de
        fi
Packit 6f02de
      fi
Packit 6f02de
    done
Packit 6f02de
    if test $GV -eq 1
Packit 6f02de
    then
Packit 6f02de
      echo ""
Packit 6f02de
      echo $EO "Please enter the HASENVDC name (no quotes): $EC"
Packit 6f02de
      read TMP1 EXCESS
Packit 6f02de
      ENVV=`echo $TMP1 | sed 's/^\"//' | sed 's/\"$//'`
Packit 6f02de
      if test "X$ENVV" = "X"
Packit 6f02de
      then
Packit 6f02de
	ENVN=1
Packit 6f02de
      fi
Packit 6f02de
    fi
Packit 6f02de
    cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
=====================================================================
Packit 6f02de
Packit 6f02de
HASPERSDC is a format that specifies how the personal device cache
Packit 6f02de
path is constructed.  Consult the 00DCACHE and 00FAQ files of the
Packit 6f02de
lsof distribution for information on the conversions supported in
Packit 6f02de
HASPERSDC.  Press ENTER to use the curent HASPERSDC format:
Packit 6f02de
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
    echo $EO "        $EC"
Packit 6f02de
    TMP1=`egrep "HASPERSDC$|HASPERSDC[ 	]" $OLD | tail $TA | egrep "^#define"`
Packit 6f02de
    if test "X$TMP1" != "X"
Packit 6f02de
    then
Packit 6f02de
      TMP1=`echo "$TMP1" | sed 's/^#define[ 	]HASPERSDC[ 	]"\([^"]*\)".*$/\1/'`
Packit 6f02de
      echo "$TMP1"
Packit 6f02de
    else
Packit 6f02de
      echo "no current HASPERSDC format"
Packit 6f02de
    fi
Packit 6f02de
    END=0
Packit 6f02de
    GV=0
Packit 6f02de
    while test $END -eq 0
Packit 6f02de
    do
Packit 6f02de
      echo ""
Packit 6f02de
      echo $EO "Do you want to define a format for HASPERSDC (y|n) [n]? $EC"
Packit 6f02de
      read ANS EXCESS
Packit 6f02de
      if test "X$ANS" = "Xn" -o "X$ANS" = "XN"
Packit 6f02de
      then
Packit 6f02de
        END=1
Packit 6f02de
      else
Packit 6f02de
        if test "X$ANS" = "Xy" -o "X$ANS" = "XY"
Packit 6f02de
        then
Packit 6f02de
	  GV=1
Packit 6f02de
	  END=1
Packit 6f02de
        else
Packit 6f02de
	  if test "X$ANS" = "X"
Packit 6f02de
	  then
Packit 6f02de
	    echo ""
Packit 6f02de
	    echo "HASPERSDC will not be changed."
Packit 6f02de
	    PDCV=$TMP1
Packit 6f02de
	    END=1
Packit 6f02de
	  else
Packit 6f02de
	    echo ""
Packit 6f02de
	    echo "Please answer y|n [n]."
Packit 6f02de
	  fi
Packit 6f02de
        fi
Packit 6f02de
      fi
Packit 6f02de
    done
Packit 6f02de
    if test $GV -eq 1
Packit 6f02de
    then
Packit 6f02de
      echo ""
Packit 6f02de
      echo $EO "Please enter the HASPERSDC format (no quotes): $EC"
Packit 6f02de
      read TMP1 EXCESS
Packit 6f02de
      PDCV=`echo $TMP1 | sed 's/^\"//' | sed 's/\"$//'`
Packit 6f02de
      if test "X$PDCV" = "X"
Packit 6f02de
      then
Packit 6f02de
	PDCN=1
Packit 6f02de
      fi
Packit 6f02de
    fi
Packit 6f02de
    cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
=====================================================================
Packit 6f02de
Packit 6f02de
Specify for HASPERSDCPATH the name of the environment variable from
Packit 6f02de
which lsof should take a path name component to insert at the %p
Packit 6f02de
conversion in the HASPERSDC format.
Packit 6f02de
Packit 6f02de
Consult the 00FAQ and 00DCACHE files of the lsof distribution for
Packit 6f02de
more information on HASPERSDCPATH usage.
Packit 6f02de
Packit 6f02de
Press ENTER to use the current value for HASPERSDCPATH:
Packit 6f02de
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
    echo $EO "        $EC"
Packit 6f02de
    TMP1=`grep HASPERSDCPATH $OLD | tail $TA | egrep "^#define"`
Packit 6f02de
    if test "X$TMP1" != "X"
Packit 6f02de
    then
Packit 6f02de
      TMP1=`echo "$TMP1" | sed 's/^#define[ 	]HASPERSDCPATH[ 	]"\([^"]*\)".*$/\1/'`
Packit 6f02de
      echo "$TMP1"
Packit 6f02de
    else
Packit 6f02de
      echo "no current HASPERSDCPATH value"
Packit 6f02de
    fi
Packit 6f02de
    END=0
Packit 6f02de
    GV=0
Packit 6f02de
    while test $END -eq 0
Packit 6f02de
    do
Packit 6f02de
      echo ""
Packit 6f02de
      echo $EO "Do you want to change HASPERSDCPATH (y|n) [n]? $EC"
Packit 6f02de
      read ANS EXCESS
Packit 6f02de
      if test "X$ANS" = "Xn" -o "X$ANS" = "XN" -o "X$ANS" = "X"
Packit 6f02de
      then
Packit 6f02de
	echo ""
Packit 6f02de
	echo "HASPERSDCPATH will not be changed."
Packit 6f02de
	PDCPV=$TMP1
Packit 6f02de
        END=1
Packit 6f02de
      else
Packit 6f02de
        if test "X$ANS" = "Xy" -o "X$ANS" = "XY"
Packit 6f02de
        then
Packit 6f02de
	  GV=1
Packit 6f02de
	  END=1
Packit 6f02de
	else
Packit 6f02de
	  echo ""
Packit 6f02de
	  echo "Please answer y|n [n]."
Packit 6f02de
	fi
Packit 6f02de
      fi
Packit 6f02de
    done
Packit 6f02de
    if test $GV -eq 1
Packit 6f02de
    then
Packit 6f02de
      echo ""
Packit 6f02de
      echo $EO "Please enter the HASPERSDCPATH name (no quotes): $EC"
Packit 6f02de
      read TMP1 EXCESS
Packit 6f02de
      PDCPV=`echo $TMP1 | sed 's/^\"//' | sed 's/\"$//'`
Packit 6f02de
      if test "X$PDCPV" = "X"
Packit 6f02de
      then
Packit 6f02de
	PDCPN=1
Packit 6f02de
      fi
Packit 6f02de
    fi
Packit 6f02de
    cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
=====================================================================
Packit 6f02de
Packit 6f02de
Specify for HASSYSDC the system-wide device cache file path.  Press
Packit 6f02de
ENTER to use the current HASSYSDC value:
Packit 6f02de
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
    echo $EO "        $EC"
Packit 6f02de
    TMP1=`grep HASSYSDC $OLD | tail $TA | egrep "^#define"`
Packit 6f02de
    if test "X$TMP1" != "X"
Packit 6f02de
    then
Packit 6f02de
      TMP1=`echo "$TMP1" | sed 's/^#define[ 	]HASSYSDC[ 	]"\([^"]*\)".*$/\1/'`
Packit 6f02de
      echo "$TMP1"
Packit 6f02de
    else
Packit 6f02de
      echo "no current HASSYSDC value"
Packit 6f02de
    fi
Packit 6f02de
    END=0
Packit 6f02de
    GV=0
Packit 6f02de
    while test $END -eq 0
Packit 6f02de
    do
Packit 6f02de
      echo ""
Packit 6f02de
      echo $EO "Do you want to define a system-device path (y|n) [n]? $EC"
Packit 6f02de
      read ANS EXCESS
Packit 6f02de
      if test "X$ANS" = "Xn" -o "X$ANS" = "XN"
Packit 6f02de
      then
Packit 6f02de
        END=1
Packit 6f02de
      else
Packit 6f02de
        if test "X$ANS" = "Xy" -o "X$ANS" = "XY"
Packit 6f02de
        then
Packit 6f02de
	  GV=1
Packit 6f02de
	  END=1
Packit 6f02de
        else
Packit 6f02de
	  if test "X$ANS" = "X"
Packit 6f02de
	  then
Packit 6f02de
	    echo ""
Packit 6f02de
	    echo "No HASSYSDC change will be made."
Packit 6f02de
	    SDCV=$TMP1
Packit 6f02de
	    END=1
Packit 6f02de
	  else
Packit 6f02de
	    echo ""
Packit 6f02de
	    echo "Please answer y|n [n]."
Packit 6f02de
	  fi
Packit 6f02de
        fi
Packit 6f02de
      fi
Packit 6f02de
    done
Packit 6f02de
    if test $GV -eq 1
Packit 6f02de
    then
Packit 6f02de
      echo ""
Packit 6f02de
      echo $EO "Please enter the system-wide path (no quotes): $EC"
Packit 6f02de
      read TMP1 EXCESS
Packit 6f02de
      SDCV=`echo $TMP1 | sed 's/^\"//' | sed 's/\"$//'`
Packit 6f02de
      if test "X$SDCV" = "X"
Packit 6f02de
      then
Packit 6f02de
	SDCN=1
Packit 6f02de
      fi
Packit 6f02de
    fi
Packit 6f02de
  fi
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# If HASXOPT is defined, and HASXOPT_ROOT is mentioned,
Packit 6f02de
# ask about changing HASXOPT_ROOT.
Packit 6f02de
Packit 6f02de
HXRC=0
Packit 6f02de
grep HASXOPT $OLD | tail $TA | egrep "^#define" > /dev/null
Packit 6f02de
if test $? -eq 0
Packit 6f02de
then
Packit 6f02de
  grep HASXOPT_ROOT $OLD > /dev/null
Packit 6f02de
  if test $? -eq 0
Packit 6f02de
  then
Packit 6f02de
    cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
=====================================================================
Packit 6f02de
Packit 6f02de
HASXOPT is defined.  If the dialect for which you are customizing
Packit 6f02de
appears in the following list, you may want to change the definition
Packit 6f02de
of HASXOPT_ROOT to restrict the use of the X option to lsof processes
Packit 6f02de
whose real user ID is root, or enable use of it by all user IDs.
Packit 6f02de
Packit 6f02de
  AIX           the -X option enables the risky operation of letting
Packit 6f02de
		lsof read library entry structures with readx().
Packit 6f02de
		If HASXOPT_ROOT is defined, only processes whose
Packit 6f02de
		real user ID is root will be allowed to use -X.
Packit 6f02de
		If HASXOPT_ROOT is undefined, any process will be
Packit 6f02de
		allowed to use -X.  Consult the 00FAQ file of the
Packit 6f02de
		lsof distribution for more information on why
Packit 6f02de
		readx() may be risky.
Packit 6f02de
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
    grep HASXOPT_ROOT $OLD | tail $TA | egrep "^#define" > /dev/null
Packit 6f02de
    if test $? -eq 0
Packit 6f02de
    then
Packit 6f02de
      echo "HASXOPT_ROOT is defined."
Packit 6f02de
      HXR="undefine"
Packit 6f02de
      HXRS=1
Packit 6f02de
    else
Packit 6f02de
      echo "HASXOPT_ROOT is not defined."
Packit 6f02de
      HXR="define"
Packit 6f02de
      HXRS=0
Packit 6f02de
    fi
Packit 6f02de
    END=0
Packit 6f02de
    while test $END -eq 0
Packit 6f02de
    do
Packit 6f02de
      echo ""
Packit 6f02de
      echo $EO "Do you want to $HXR HASXOPT_ROOT (y|n) [n]? $EC"
Packit 6f02de
      read ANS EXCESS
Packit 6f02de
      if test "X$ANS" = "Xy" -o "X$ANS" = "XY"
Packit 6f02de
      then
Packit 6f02de
        HXRA=1
Packit 6f02de
        END=1
Packit 6f02de
      else
Packit 6f02de
        if test "X$ANS" = "Xn" -o "X$ANS" = "XN" -o "X$ANS" = "X"
Packit 6f02de
        then
Packit 6f02de
	  echo ""
Packit 6f02de
	  echo "HASXOPT_ROOT will not be changed."
Packit 6f02de
          HXRA=0
Packit 6f02de
          END=1
Packit 6f02de
        else
Packit 6f02de
          echo ""
Packit 6f02de
          echo "Please answer y|n [n]."
Packit 6f02de
        fi
Packit 6f02de
      fi
Packit 6f02de
    done
Packit 6f02de
    if test $HXRA -eq 1
Packit 6f02de
    then
Packit 6f02de
      HXRC=1
Packit 6f02de
    fi
Packit 6f02de
  fi
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# Process HASKERNIDCK.  Skip processing for selected dialect directories.
Packit 6f02de
Packit 6f02de
case $DialDir in
Packit 6f02de
  linux/proc)
Packit 6f02de
    NIDCK=0
Packit 6f02de
    ;;
Packit 6f02de
  *)
Packit 6f02de
    cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
=====================================================================
Packit 6f02de
Packit 6f02de
When HASKERNIDCK is enabled, lsof compares the identity of the
Packit 6f02de
kernel where it was built to the identity of the kernel where it
Packit 6f02de
is running.  This check can detect an lsof executable inappropriate
Packit 6f02de
for the system on which it is being run.
Packit 6f02de
Packit 6f02de
The kernel identity check can take considerable time on some UNIX
Packit 6f02de
dialects -- e.g., AIX -- so there may be occasions when it is
Packit 6f02de
desirable to disable it, in spite of the increased risk of using
Packit 6f02de
an inappropriate lsof executable.
Packit 6f02de
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
    grep HASKERNIDCK $OLD | tail $TA | grep "^#define" > /dev/null
Packit 6f02de
    if test $? -eq 0
Packit 6f02de
    then
Packit 6f02de
      echo "HASKERNIDCK is enabled."
Packit 6f02de
      IDCK=1
Packit 6f02de
    else
Packit 6f02de
      echo "HASKERNIDCK is disabled."
Packit 6f02de
      IDCK=0
Packit 6f02de
    fi
Packit 6f02de
    END=0
Packit 6f02de
    NIDCK=$IDCK
Packit 6f02de
    while test $END -eq 0
Packit 6f02de
    do
Packit 6f02de
      echo ""
Packit 6f02de
      if test $NIDCK -eq 1
Packit 6f02de
      then
Packit 6f02de
        echo $EO "Disable HASKERNIDCK (y|n) [n]? $EC"
Packit 6f02de
      else
Packit 6f02de
        echo $EO "Enable HASKERNIDCK (y|n) [n]? $EC"
Packit 6f02de
      fi
Packit 6f02de
      read ANS EXCESS
Packit 6f02de
      if test "X$ANS" = "Xy" -o "X$ANS" = "XY"
Packit 6f02de
      then
Packit 6f02de
        echo ""
Packit 6f02de
        if test $NIDCK -eq 1
Packit 6f02de
        then
Packit 6f02de
          NIDCK=0
Packit 6f02de
          echo "HASKERNIDCK will be disabled."
Packit 6f02de
        else
Packit 6f02de
          NIDCK=1
Packit 6f02de
          echo "HASKERNIDCK will be enabled."
Packit 6f02de
        fi
Packit 6f02de
        END=1
Packit 6f02de
      else
Packit 6f02de
        if test "X$ANS" = "Xn" -o "X$ANS" = "XN" -o "X$ANS" = "X"
Packit 6f02de
        then
Packit 6f02de
          echo ""
Packit 6f02de
          echo "HASKERNIDCK will not be changed."
Packit 6f02de
          END=1
Packit 6f02de
          NIDCK=$IDCK
Packit 6f02de
        else
Packit 6f02de
          echo ""
Packit 6f02de
          echo "Please answer y|n [n]."
Packit 6f02de
        fi
Packit 6f02de
      fi
Packit 6f02de
    done
Packit 6f02de
    ;;
Packit 6f02de
esac
Packit 6f02de
Packit 6f02de
# Initialize new machine.h.
Packit 6f02de
Packit 6f02de
rm -f $NEW
Packit 6f02de
cp $OLD $NEW
Packit 6f02de
chmod 0644 $NEW
Packit 6f02de
echo "" >> $NEW
Packit 6f02de
echo "/*" >> $NEW
Packit 6f02de
echo $EO " * Added by Customize on $EC" >> $NEW
Packit 6f02de
date >> $NEW
Packit 6f02de
echo " */" >> $NEW
Packit 6f02de
echo "" >> $NEW
Packit 6f02de
Packit 6f02de
# Change HASSECURITY and HASNOSOCKSECURITY, as required.
Packit 6f02de
Packit 6f02de
echo "#undef	HASSECURITY" >> $NEW
Packit 6f02de
echo "#undef	HASNOSOCKSECURITY" >> $NEW
Packit 6f02de
if test $NSEC -eq 1
Packit 6f02de
then
Packit 6f02de
  echo "#define	HASSECURITY	1" >> $NEW
Packit 6f02de
  if test $SOCKSEC -eq 1
Packit 6f02de
  then
Packit 6f02de
    echo "#define	HASNOSOCKSECURITY	1" >> $NEW
Packit 6f02de
  fi
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# Change WARNDEVACCESS, as required.
Packit 6f02de
Packit 6f02de
if test $NEVERWDA -eq 0
Packit 6f02de
then
Packit 6f02de
  echo "#undef	WARNDEVACCESS" >> $NEW
Packit 6f02de
  if test $NWDA -eq 1
Packit 6f02de
  then
Packit 6f02de
    echo "#define	WARNDEVACCESS	1" >> $NEW
Packit 6f02de
  fi
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# Change WARNINGSTATE, as required.
Packit 6f02de
Packit 6f02de
echo "#undef	WARNINGSTATE" >> $NEW
Packit 6f02de
if test $NWST -eq 0
Packit 6f02de
then
Packit 6f02de
  echo "#define	WARNINGSTATE	1" >> $NEW
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# Change device cache definitions, as required.
Packit 6f02de
Packit 6f02de
if test \( $NDC -eq 1 -a $DC -eq 0 \) -o \( $DC -eq 1 -a $CDC -eq 1 \)
Packit 6f02de
then
Packit 6f02de
  if test "X$ENVV" = "X" -a "X$PDCV" = "X" -a "X$SDCV" = "X"
Packit 6f02de
  then
Packit 6f02de
    cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
FATAL: HASDCACHE is defined, but there is no definition for
Packit 6f02de
       any of HASENVDC, HASPERSDC, or HASSYSDC
Packit 6f02de
Packit 6f02de
       No new machine.h has been created.
Packit 6f02de
Packit 6f02de
       Customize quits.
Packit 6f02de
Packit 6f02de
       Restart Customize and define at least one of HASENVDC,
Packit 6f02de
       HASPERSDC, or HASSYSDC.
Packit 6f02de
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
    rm -f $NEW
Packit 6f02de
    exit 1
Packit 6f02de
  fi
Packit 6f02de
fi
Packit 6f02de
if test "X$PDCV" != "X"
Packit 6f02de
then
Packit 6f02de
  echo "$PDCV" | grep "%p" > /dev/null
Packit 6f02de
  if test $? -eq 0 -a $PDCPN -eq 1
Packit 6f02de
  then
Packit 6f02de
    cat << .CAT_MARK
Packit 6f02de
Packit 6f02de
FATAL: HASDCACHE is defined and HASPERSDC has a %p conversion,
Packit 6f02de
       but HASPERSDCPATH is NULL.
Packit 6f02de
Packit 6f02de
       No new machine.h has been created.
Packit 6f02de
Packit 6f02de
       Customize quits.
Packit 6f02de
Packit 6f02de
       Restart Customize and define HASPERSDCPATH.
Packit 6f02de
Packit 6f02de
.CAT_MARK
Packit 6f02de
Packit 6f02de
    rm -f $NEW
Packit 6f02de
    exit 1
Packit 6f02de
  fi
Packit 6f02de
fi
Packit 6f02de
echo "#undef	HASDCACHE" >> $NEW
Packit 6f02de
if test $NEVERDC -eq 1
Packit 6f02de
then
Packit 6f02de
  echo "#undef	HASENVDC" >> $NEW
Packit 6f02de
  echo "#undef	HASPERSDC" >> $NEW
Packit 6f02de
  echo "#undef	HASPERSDCPATH" >> $NEW
Packit 6f02de
  echo "#undef	HASSYSDC" >> $NEW
Packit 6f02de
else
Packit 6f02de
  if test $NDC -eq 1
Packit 6f02de
  then
Packit 6f02de
    echo "#define	HASDCACHE	1" >> $NEW
Packit 6f02de
    if test "X$ENVV" != "X" -o $ENVN -eq 1
Packit 6f02de
    then
Packit 6f02de
      echo "#undef	HASENVDC" >> $NEW
Packit 6f02de
      if test $ENVN -eq 0
Packit 6f02de
      then
Packit 6f02de
        echo "#define	HASENVDC	\"$ENVV\"" >> $NEW
Packit 6f02de
      fi
Packit 6f02de
    fi
Packit 6f02de
    if test "X$PDCV" != "X" -o $PDCN -eq 1
Packit 6f02de
    then
Packit 6f02de
      echo "#undef	HASPERSDC" >> $NEW
Packit 6f02de
      if test $PDCN -eq 0
Packit 6f02de
      then
Packit 6f02de
        echo "#define	HASPERSDC	\"$PDCV\"" >> $NEW
Packit 6f02de
      fi
Packit 6f02de
    fi
Packit 6f02de
    if test "X$PDCPV" != "X" -o $PDCPN -eq 1
Packit 6f02de
    then
Packit 6f02de
      echo "#undef	HASPERSDCPATH" >> $NEW
Packit 6f02de
      if test $PDCPN -eq 0
Packit 6f02de
      then
Packit 6f02de
        echo "#define	HASPERSDCPATH	\"$PDCPV\"" >> $NEW
Packit 6f02de
      fi
Packit 6f02de
    fi
Packit 6f02de
    if test "X$SDCV" != "X" -o $SDCN -eq 1
Packit 6f02de
    then
Packit 6f02de
      echo "#undef	HASSYSDC" >> $NEW
Packit 6f02de
      if test $SDCN -eq 0
Packit 6f02de
      then
Packit 6f02de
        echo "#define	HASSYSDC	\"$SDCV\"" >> $NEW
Packit 6f02de
      fi
Packit 6f02de
    fi
Packit 6f02de
  fi
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# Change HASXOPT_ROOT, as required.
Packit 6f02de
Packit 6f02de
if test $HXRC -eq 1
Packit 6f02de
then
Packit 6f02de
  if test $HXRS -eq 1
Packit 6f02de
  then
Packit 6f02de
    echo "#undef	HASXOPT_ROOT" >> $NEW
Packit 6f02de
  else
Packit 6f02de
    echo "#define	HASXOPT_ROOT	1" >> $NEW
Packit 6f02de
  fi
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# Change HASKERNIDCK, as required.
Packit 6f02de
Packit 6f02de
echo "#undef	HASKERNIDCK" >> $NEW
Packit 6f02de
if test $NIDCK -eq 1
Packit 6f02de
then
Packit 6f02de
  echo "#define	HASKERNIDCK	1" >> $NEW
Packit 6f02de
fi
Packit 6f02de
Packit 6f02de
# Replace the current machine.h with the new one, as requested.
Packit 6f02de
Packit 6f02de
echo ""
Packit 6f02de
echo "====================================================================="
Packit 6f02de
echo ""
Packit 6f02de
echo "A new $OLD file has been created in \"$NEW\"."
Packit 6f02de
END=0
Packit 6f02de
while test $END -eq 0
Packit 6f02de
do
Packit 6f02de
  echo ""
Packit 6f02de
  echo "Do you want to rename $OLD to ${OLD}.old and replace it with"
Packit 6f02de
  echo $EO "$NEW (y|n) [y]? $EC"
Packit 6f02de
  read ANS EXCESS
Packit 6f02de
  if test "X$ANS" = "Xn" -o "X$ANS" = "XN"
Packit 6f02de
  then
Packit 6f02de
    END=1
Packit 6f02de
  else
Packit 6f02de
    if test "X$ANS" = "Xy" -o "X$ANS" = "XY" -o "X$ANS" = "X"
Packit 6f02de
    then
Packit 6f02de
      rm -f ${OLD}.old
Packit 6f02de
      mv $OLD ${OLD}.old
Packit 6f02de
      mv $NEW $OLD
Packit 6f02de
      END=1
Packit 6f02de
    else
Packit 6f02de
      echo ""
Packit 6f02de
      echo "Please answer y|n [y]."
Packit 6f02de
    fi
Packit 6f02de
  fi
Packit 6f02de
done
Packit 6f02de
echo ""
Packit 6f02de
echo "You may now run the make command -- e.g.,"
Packit 6f02de
echo ""
Packit 6f02de
echo "        $ make"
Packit 6f02de
echo ""
Packit 6f02de
exit 0
Packit 6f02de
#LAST_LINE