:

set -u

argone=${1-notset}
argtwo=${2-notset}

if [ $argone = "notset" ] ; then
  envone=${NETWENVONE-notset}
  if [ $envone != "notset" ] ; then
    argone=$envone
  fi
fi
if [ $argtwo = "notset" ] ; then
  envtwo=${NETWENVTWO-notset}
  if [ $envtwo != "notset" ] ; then
    argtwo=$envtwo
  fi
fi

# Define the variables. Edit config.dat if you want to make changes.
. ./config.dat
. ./compil/unix/version.sh


########################################################################
echo "Netwib version ${NETWIBDEF_VERSION} (${NETWIBDEF_VERSIONMAJOR} ${NETWIBDEF_VERSIONMINOR} ${NETWIBDEF_VERSIONMICRO})"
netwv="${NETWIBDEF_VERSIONMAJOR}${NETWIBDEF_VERSIONMINOR}"

########################################################################
echo "System name selection"

case $NETWIBDEF_SYSNAME in
 "FreeBSD" )
    ;;
 "HPUX" )
    ;;
 "Linux" )
    ;;
 "MacOS" )
    ;;
 "NetBSD" )
    ;;
 "OpenBSD" )
    ;;
 "Solaris" )
    ;;
 "Tru64UNIX" )
    ;;
 "Unsupported" )
    ;;
 * )
    echo "Error: unknown NETWIBDEF_SYSNAME : ${NETWIBDEF_SYSNAME}";
    exit ;;
esac

########################################################################
echo "System architecture selection"

# Meaning :
#  NETWIBDEF_ARCH_ENDIAN : 0=little_endian 1=big_endian
#  NETWIBDEF_ARCH_BITS : size of processor addresses in bits
#  NETWIBDEF_ARCH_ALIGN : 0/1=not/necessary to align addresses on boundary
case $NETWIBDEF_SYSARCH in
 "i386" )
    NETWIBDEF_ARCH_ENDIAN=0
    NETWIBDEF_ARCH_BITS=32
    NETWIBDEF_ARCH_ALIGN=0
    ;;
 "ia64" )
    NETWIBDEF_ARCH_ENDIAN=0
    NETWIBDEF_ARCH_BITS=64
    NETWIBDEF_ARCH_ALIGN=1
    ;;
 "alpha" )
    NETWIBDEF_ARCH_ENDIAN=0
    NETWIBDEF_ARCH_BITS=64
    NETWIBDEF_ARCH_ALIGN=1
    ;;
 "hppa" )
    NETWIBDEF_ARCH_ENDIAN=1
    NETWIBDEF_ARCH_BITS=32
    NETWIBDEF_ARCH_ALIGN=1
    ;;
 "m68k" )
    NETWIBDEF_ARCH_ENDIAN=1
    NETWIBDEF_ARCH_BITS=32
    NETWIBDEF_ARCH_ALIGN=1
    ;;
 "sparc" )
    NETWIBDEF_ARCH_ENDIAN=1
    NETWIBDEF_ARCH_BITS=32
    NETWIBDEF_ARCH_ALIGN=1
    ;;
 "sparc64" )
    NETWIBDEF_ARCH_ENDIAN=1
    NETWIBDEF_ARCH_BITS=64
    NETWIBDEF_ARCH_ALIGN=1
    ;;
 "powerpc" )
    NETWIBDEF_ARCH_ENDIAN=1
    NETWIBDEF_ARCH_BITS=32
    NETWIBDEF_ARCH_ALIGN=1
    ;;
 "Unsupported32big" )
    NETWIBDEF_ARCH_ENDIAN=1
    NETWIBDEF_ARCH_BITS=32
    NETWIBDEF_ARCH_ALIGN=1
    ;;
 "Unsupported32little" )
    NETWIBDEF_ARCH_ENDIAN=0
    NETWIBDEF_ARCH_BITS=32
    NETWIBDEF_ARCH_ALIGN=1
    ;;
 "Unsupported64big" )
    NETWIBDEF_ARCH_ENDIAN=1
    NETWIBDEF_ARCH_BITS=64
    NETWIBDEF_ARCH_ALIGN=1
    ;;
 "Unsupported64little" )
    NETWIBDEF_ARCH_ENDIAN=0
    NETWIBDEF_ARCH_BITS=64
    NETWIBDEF_ARCH_ALIGN=1
    ;;
 * )
    echo "Error: unknown NETWIBDEF_SYSARCH : ${NETWIBDEF_SYSARCH}";
    exit ;;
esac


########################################################################
echo "Checking NETWIBDEF_LIBPCAPINSTALLED"
if [ "Z$NETWIBDEF_LIBPCAPINSTALLED" = "Z0" ] ; then
  NETWIBDEF_LIBPCAPINSTALLED=0
elif [ "Z$NETWIBDEF_LIBPCAPINSTALLED" = "Z1" ] ; then
  NETWIBDEF_LIBPCAPINSTALLED=1
else
  echo "NETWIBDEF_LIBPCAPINSTALLED must be 0 or 1 (instead of $NETWIBDEF_LIBPCAPINSTALLED)"
  exit 1
fi


########################################################################
echo "Checking NETWIBDEF_LIBNETINSTALLED"
if [ "Z$NETWIBDEF_LIBNETINSTALLED" = "Z0" ] ; then
  NETWIBDEF_LIBNETINSTALLED=0
elif [ "Z$NETWIBDEF_LIBNETINSTALLED" = "Z1" ] ; then
  NETWIBDEF_LIBNETINSTALLED=1
else
  echo "NETWIBDEF_LIBNETINSTALLED must be 0 or 1 (instead of $NETWIBDEF_LIBNETINSTALLED)"
  exit 1
fi


########################################################################
echo "Program selection"

NETWIBDEF_PROGCC=gcc
NETWIBDEF_PROGAR=ar
NETWIBDEF_PROGRANLIB=ranlib
NETWIBDEF_PROGGREP=grep
NETWIBDEF_PROGWC=wc

progcheck ()
{ progname=$1
  progdesc="$2"

  type $progname 2> /dev/null 1> /dev/null
  if [ "$?Z" != "0Z" ] ; then
    echo "Error: the $progdesc '$progname' wasn't found"
    exit
  else
    echo " $progname yes"
  fi
}

progcheck $NETWIBDEF_PROGCC "compiler"
progcheck $NETWIBDEF_PROGAR "archiver"
progcheck $NETWIBDEF_PROGRANLIB "program"
progcheck $NETWIBDEF_PROGGREP "grep"
progcheck $NETWIBDEF_PROGWC "wc"


########################################################################
echo "Directory selection"

NETWIBDEF_INSTINCLUDE=/usr/local/include
NETWIBDEF_INSTLIB=/usr/local/lib
NETWIBDEF_INSTBIN=/usr/local/bin
NETWIBDEF_INSTMAN1_a=/usr/local/man/man1
NETWIBDEF_INSTMAN1_b=/usr/share/man/man1
NETWIBDEF_INSTMAN3_a=/usr/local/man/man3
NETWIBDEF_INSTMAN3_b=/usr/share/man/man3

if [ ! -d $NETWIBDEF_INSTINCLUDE ] ; then
  echo "Error: the include directory '$NETWIBDEF_INSTINCLUDE' doesn't exists"
  exit
else
  echo " $NETWIBDEF_INSTINCLUDE yes"
fi
if [ ! -d $NETWIBDEF_INSTLIB ] ; then
  echo "Error: the library directory '$NETWIBDEF_INSTLIB' doesn't exists"
  exit
else
  echo " $NETWIBDEF_INSTLIB yes"
fi
if [ ! -d $NETWIBDEF_INSTBIN ] ; then
  echo "Error: the binary directory '$NETWIBDEF_INSTBIN' doesn't exists"
  exit
else
  echo " $NETWIBDEF_INSTBIN yes"
  foundit=`echo $PATH | $NETWIBDEF_PROGGREP $NETWIBDEF_INSTBIN | $NETWIBDEF_PROGWC -l`
  if [ $foundit -ne 1 ] ; then
    echo "Warning: the directory '$NETWIBDEF_INSTBIN' is not in the PATH"
    echo "To execute any netwib program, you'll have to run '$NETWIBDEF_INSTBIN/program' instead of 'program'. For example '$NETWIBDEF_INSTBIN/netwib-config' instead of 'netwib-config'."
    echo "Press enter to continue"
    read foobar
  fi
fi

foundman=0
if [ -d $NETWIBDEF_INSTMAN1_b ] ; then
  foundman=1
  NETWIBDEF_INSTMAN1=$NETWIBDEF_INSTMAN1_b
fi
if [ -d $NETWIBDEF_INSTMAN1_a ] ; then
  foundman=1
  NETWIBDEF_INSTMAN1=$NETWIBDEF_INSTMAN1_a
fi
if [ "Z$foundman" = "Z0" ] ; then
  echo "Error: the help directory '$NETWIBDEF_INSTMAN1_a' or '$NETWIBDEF_INSTMAN1_b' doesn't exists"
  exit
else
  echo " $NETWIBDEF_INSTMAN1 yes"
fi

foundman=0
if [ -d $NETWIBDEF_INSTMAN3_b ] ; then
  foundman=1
  NETWIBDEF_INSTMAN3=$NETWIBDEF_INSTMAN3_b
fi
if [ -d $NETWIBDEF_INSTMAN3_a ] ; then
  foundman=1
  NETWIBDEF_INSTMAN3=$NETWIBDEF_INSTMAN3_a
fi
if [ "Z$foundman" = "Z0" ] ; then
  echo "Error: the help directory '$NETWIBDEF_INSTMAN3_a' or '$NETWIBDEF_INSTMAN3_b' doesn't exists"
  exit
else
  echo " $NETWIBDEF_INSTMAN3 yes"
fi

########################################################################
echo "Compilation options selection"

# options
gccOpt="-Wall -ansi"
# includes
gccInc=""
# libraries
gccLib=""

# option needed to relocate for dynamic linking
gccOptPic=""
# option needed to construct a shared object
gccOptSo=""

case $NETWIBDEF_SYSNAME in
 "FreeBSD" )
    gccOptPic="$gccOptPic -fpic"
    gccOptSo="$gccOptSo -shared -Xlinker \"-hlibnetwib$netwv.so\""
    ;;
 "Linux" )
    gccOptPic="$gccOptPic -fpic"
    gccOptSo="$gccOptSo -shared -Xlinker \"-hlibnetwib$netwv.so\""
    ;;
 "MacOS" )
    gccOptPic="$gccOptPic -fpic"
    gccOptSo="$gccOptSo -shared -Xlinker \"-hlibnetwib$netwv.so\""
    ;;
 "NetBSD" )
    gccOptPic="$gccOptPic -fpic"
    gccOptSo="$gccOptSo -shared"
    ;;
 "OpenBSD" )
    gccOptPic="$gccOptPic -fpic"
    gccOptSo="$gccOptSo -shared"
    ;;
 "Solaris" )
    gccOptPic="$gccOptPic -fpic"
    gccOptSo="$gccOptSo -shared -Xlinker \"-hlibnetwib$netwv.so\""
    gccLib="$gccLib -lsocket -lnsl -lresolv"
    ;;
 "HPUX" )
    gccOptPic="$gccOptPic -fpic"
    gccOptSo="$gccOptSo -shared"
    ;;
 "Tru64UNIX" )
    gccOptPic="$gccOptPic -fpic"
    gccOptSo="$gccOptSo -shared"
    ;;
 "Unsupported" )
    gccOptPic="$gccOptPic -fpic"
    gccOptSo="$gccOptSo -shared -Xlinker \"-hlibnetwib$netwv.so\""
    ;;
 * )
    echo "Error: unknown NETWIBDEF_SYSNAME";
    exit ;;
esac


########################################################################
checkcompilfile ()
{
  echo config.check.tmp.c
}
checkmsgfile ()
{
  echo config.check.tmp.msg
}
checkcompil ()
{
  checktext="$1"
  checkccOpt="$2"
  checkccInc="$3"
  checkccLib="$4"
  checkverbose="${5-0}"

  # note : we do not put $gccOpt because it is too strict (Wall ansi)
  compilcom="$NETWIBDEF_PROGCC $checkccOpt $gccInc $checkccInc"
  compilcom="$compilcom -o config.check.tmp"
  compilcom="$compilcom config.check.tmp.c $gccLib $checkccLib"
  $compilcom 2> config.check.tmp.err 1> config.check.tmp.err
  if [ "$?Z" != "0Z" ] ; then
    echo " $checktext no"
    CHECKCOMPILRESULT=0
    if [ $checkverbose -eq 1 ] ; then
      echo "--------I used the command :"
      echo "  $compilcom"
      echo "--------I wasn't able to compile the following test :"
      cat config.check.tmp.c
      echo "--------I got the following errors :"
      cat config.check.tmp.err
    fi
  else
    echo " $checktext yes"
    CHECKCOMPILRESULT=1
  fi
}
checkcompil2 ()
{
  checktext="$1"
  checkccOpt="$2"
  checkccInc="$3"
  checkccLib="$4"
  checkverb="${5-0}"
  checkcomp="${6-0}"

  checkcompil "$checktext" "$checkccOpt" "$checkccInc" "$checkccLib" 0

  trysecond=1
  if [ $checkcomp -eq 1 ] ; then
    if [ $CHECKCOMPILRESULT -eq 0 ] ; then
      trysecond=0
    fi
  else
    if [ $CHECKCOMPILRESULT -eq 1 ] ; then
      trysecond=0
    fi
  fi

  if [ $trysecond -eq 1 ] ; then
    # now try adding standard defines and includes
    mv config.check.tmp.c config.check.tmp.c2
    cat > config.check.tmp.c <<EOF
      #define _REENTRANT 1
      #define _GNU_SOURCE 1
      #define _POSIX_SOURCE 1
      #define _BSD_SOURCE 1
      #define __EXTENSIONS__ 1
      #define _OSF_SOURCE 1
      #define _XOPEN_SOURCE_EXTENDED 1
      #define _POSIX_PII 1
      #include <stdlib.h>
      #include <stdio.h>
      #include <unistd.h>
EOF
    cat config.check.tmp.c2 >> config.check.tmp.c
    rm config.check.tmp.c2
    checkcompil "$checktext [+std]" "$checkccOpt" "$checkccInc" "$checkccLib" $checkverb
  fi
}
checkexec ()
{
  checktext="$1"

  ./config.check.tmp 2> config.check.tmp.err 1> config.check.tmp.err
  if [ "$?Z" != "0Z" ] ; then
    rm -f core
    echo " exec $checktext no"
    CHECKEXECRESULT=0
  else
    echo " exec $checktext yes"
    CHECKEXECRESULT=1
  fi
}
checkcompilyes ()
{
  echo $CHECKCOMPILRESULT
}
checkcompilno ()
{
  if [ $CHECKCOMPILRESULT -eq 0 ] ; then
    echo 1
  else
    echo 0
  fi
}
checkexecyes ()
{
  echo $CHECKEXECRESULT
}
checkceclean ()
{
  rm -f config.check.tmp.c config.check.tmp config.check.tmp.err
  rm -f config.check.tmp.msg
  CHECKCOMPILRESULT=0
  CHECKEXECRESULT=0
}
checkceclean


########################################################################
echo "Check if compiler works"

cat > `checkcompilfile` <<EOF
 int main(void)
 { return(0);
 }
EOF
checkcompil "simple_test" "" "" "" 1
resulttest=`checkcompilyes`
if [ $resulttest -eq 0 ] ; then
  exit
fi

cat > `checkcompilfile` <<EOF
 #include <stdlib.h>
 #include <stdio.h>
 #include <unistd.h>
 int main(void)
 { puts("hello");
   return(0);
 }
EOF
checkcompil "real_test" "" "" "" 1
resulttest=`checkcompilyes`
if [ $resulttest -eq 0 ] ; then
  exit
fi


########################################################################
echo "Library selection"

#---------
# we have one thread library
# we try to compile this fake program
cat > `checkcompilfile` <<EOF
 #include <pthread.h>
 int main(void)
 { pthread_t *p;
   pthread_create(p, NULL, NULL, NULL);
   return(0);
 }
EOF
checkcompil "posix threads [-lpthread]" "" "" "-lpthread"
NETWIBDEF_LIBPTHREADINSTALLED=`checkcompilyes`
NETWIBDEF_LIBPTHREADFROMDCE=0
NETWIBDEF_LIBPTHREADFROMMIT=0
if [ $NETWIBDEF_LIBPTHREADINSTALLED -eq 1 ] ; then
  gccLib="$gccLib -lpthread"
fi
if [ $NETWIBDEF_LIBPTHREADINSTALLED -eq 0 ] ; then
  # try FreeBSD, OpenBSD, etc.
  checkcompil "posix threads [-pthread]" "" "" "-pthread"
  NETWIBDEF_LIBPTHREADINSTALLED=`checkcompilyes`
  if [ $NETWIBDEF_LIBPTHREADINSTALLED -eq 1 ] ; then
    gccLib="$gccLib -pthread"
  fi
fi
if [ $NETWIBDEF_LIBPTHREADINSTALLED -eq 0 ] ; then
  # try MIT implementation (SuSE 5.1)
  checkcompil "posix threads [-lpthreads]" "-D_MIT_POSIX_THREADS=1" "" "-lpthreads"
  NETWIBDEF_LIBPTHREADINSTALLED=`checkcompilyes`
  if [ $NETWIBDEF_LIBPTHREADINSTALLED -eq 1 ] ; then
    gccOpt="$gccOpt -D_MIT_POSIX_THREADS=1"
    gccLib="$gccLib -lpthreads"
    NETWIBDEF_LIBPTHREADFROMMIT=1
  fi
fi
checkceclean
if [ $NETWIBDEF_LIBPTHREADINSTALLED -eq 0 ] ; then
  # try DCE (prototypes of posix draft 4)
  cat > `checkcompilfile` <<EOF
   #include <pthread.h>
   int main(void)
   { pthread_t *p;
     pthread_attr_t a;
     pthread_create(p, a, NULL, NULL);
     return(0);
   }
EOF
  checkcompil "posix threads [-ldce]" "" "" "-ldce"
  NETWIBDEF_LIBPTHREADINSTALLED=`checkcompilyes`
  if [ $NETWIBDEF_LIBPTHREADINSTALLED -eq 1 ] ; then
    gccLib="$gccLib -ldce"
    NETWIBDEF_LIBPTHREADFROMDCE=1
  fi
  checkceclean
fi
if [ $NETWIBDEF_LIBPTHREADINSTALLED -eq 0 ] ; then
  echo "Error: we could not find a thread library"
  exit
fi

#---------
# we have libpcap
NETWIBDEF_LIBPCAPFROMREDHAT=0
if [ $NETWIBDEF_LIBPCAPINSTALLED -eq 1 ] ; then
  if [ -d /usr/include/pcap/ ] ; then
    echo " /usr/include/pcap/ exists"
    gccInc="$gccInc -I/usr/include/pcap/"
    NETWIBDEF_LIBPCAPFROMREDHAT=1
  fi
  gccLib="$gccLib -lpcap"
  # we try to compile this fake program
  cat > `checkcompilfile` <<EOF
   #include <pcap.h>
   int main(void)
   { char e[1000];
     void * t;
     t = pcap_open_live(e, 0, 0, 0, e);
     return(0);
   }
EOF
  checkcompil "libpcap" "" "" ""
  NETWIBDEF_LIBPCAPINSTALLED=`checkcompilyes`
  if [ $NETWIBDEF_LIBPCAPINSTALLED -eq 0 ] ; then
    checkcompil "libpcap [2nd try]" "" "-I/usr/local/include/" "-L/usr/local/lib/" 1
    NETWIBDEF_LIBPCAPINSTALLED=`checkcompilyes`
    if [ $NETWIBDEF_LIBPCAPINSTALLED -eq 1 ] ; then
      gccInc="$gccInc -I/usr/local/include/"
      gccLib="$gccLib -L/usr/local/lib/"
    else
      echo "Error: the library libpcap is not installed"
      echo "If you do not want to use libpcap, edit config.dat"
      echo "to put inside 'NETWIBDEF_LIBPCAPINSTALLED=0'. Then, you will not"
      echo "be able to sniff packets on the wire."
      exit
    fi
  fi
  checkceclean
fi

#---------
# we have libnet
checkforlibnet=$NETWIBDEF_LIBNETINSTALLED
NETWIBDEF_LIBNETINSTALLED=0
NETWIBDEF_LIBNETVERSION11=0
if [ $checkforlibnet -eq 1 ] ; then
  type libnet-config 2> /dev/null 1> /dev/null
  if [ "$?Z" != "0Z" ] ; then
    gccLib="$gccLib -lnet"
  else
    echo " libnet-config yes"
    gccOpt="$gccOpt "`libnet-config --defines`
    gccLib="$gccLib "`libnet-config --libs`
  fi
fi
if [ $checkforlibnet -eq 1 ] ; then
  # we try to compile this fake program
  cat > `checkcompilfile` <<EOF
   int libnet_destroy_packet(char **b);
   int main(void)
   { char **t;
     libnet_destroy_packet(t);
     return(0);
   }
EOF
  checkcompil "libnet 1.0" "" "" ""
  checkforlibnetworked=`checkcompilyes`
  if [ $checkforlibnetworked -eq 1 ] ; then
    NETWIBDEF_LIBNETINSTALLED=1
    checkforlibnet=0
  fi
fi
if [ $checkforlibnet -eq 1 ] ; then
  # we use the same program
  checkcompil "libnet 1.0 [2nd try]" "" "-I/usr/local/include/" "-L/usr/local/lib/"
  checkforlibnetworked=`checkcompilyes`
  if [ $checkforlibnetworked -eq 1 ] ; then
    gccInc="$gccInc -I/usr/local/include/"
    gccLib="$gccLib -L/usr/local/lib/"
    NETWIBDEF_LIBNETINSTALLED=1
    checkforlibnet=0
  fi
fi
if [ $checkforlibnet -eq 1 ] ; then
  # we try to compile this fake program
  cat > `checkcompilfile` <<EOF
   void libnet_destroy(void *b);
   int main(void)
   { char *t;
     libnet_destroy(t);
     return(0);
   }
EOF
  checkcompil "libnet 1.1" "" "" ""
  checkforlibnetworked=`checkcompilyes`
  if [ $checkforlibnetworked -eq 1 ] ; then
    NETWIBDEF_LIBNETINSTALLED=1
    NETWIBDEF_LIBNETVERSION11=1
    checkforlibnet=0
  fi
fi
if [ $checkforlibnet -eq 1 ] ; then
  # we use the same program
  checkcompil "libnet 1.1 [2nd try]" "" "-I/usr/local/include/" "-L/usr/local/lib/"
  checkforlibnetworked=`checkcompilyes`
  if [ $checkforlibnetworked -eq 1 ] ; then
    gccInc="$gccInc -I/usr/local/include/"
    gccLib="$gccLib -L/usr/local/lib/"
    NETWIBDEF_LIBNETINSTALLED=1
    NETWIBDEF_LIBNETVERSION11=1
    checkforlibnet=0
  fi
fi
if [ $checkforlibnet -eq 1 ] ; then
  # only to display error
  checkcompil "libnet" "" "" "" 1
  echo "Error: the library libnet is not installed"
  echo "If you do not want to use libnet, edit config.dat"
  echo "to put inside 'NETWIBDEF_LIBNETINSTALLED=0'."
  exit
fi
checkceclean

NETWIBDEF_SUPPORT_SNIFF=0
if [ $NETWIBDEF_LIBPCAPINSTALLED -eq 1 ] ; then
  NETWIBDEF_SUPPORT_SNIFF=1
fi
NETWIBDEF_SUPPORT_SPOOF=0
if [ $NETWIBDEF_LIBNETINSTALLED -eq 1 ] ; then
  NETWIBDEF_SUPPORT_SPOOF=1
fi
NETWIBDEF_SUPPORT_ENCODETYPE_PCAP=0
if [ $NETWIBDEF_LIBPCAPINSTALLED -eq 1 ] ; then
  NETWIBDEF_SUPPORT_ENCODETYPE_PCAP=1
fi


########################################################################
########################################################################
echo "Check present includes"

checkcompilinc ()
{
  incname="$1"
  incname2=${2-notset}
  incname3=${3-notset}
  incname4=${4-notset}
  incname5=${5-notset}

  addinc=""
  echo "" >> `checkcompilfile`
  if [ $incname2 != "notset" ] ; then
    echo "#include <$incname2>" >> `checkcompilfile`
    addinc="$incname2"
  fi
  if [ $incname3 != "notset" ] ; then
    echo "#include <$incname3>" >> `checkcompilfile`
    if [ "Z$addinc" = "Z" ] ; then
      addinc="$incname3"
    else
      addinc="$addinc,$incname3"
    fi
  fi
  if [ $incname4 != "notset" ] ; then
    echo "#include <$incname4>" >> `checkcompilfile`
    if [ "Z$addinc" = "Z" ] ; then
      addinc="$incname4"
    else
      addinc="$addinc,$incname4"
    fi
  fi
  if [ $incname5 != "notset" ] ; then
    echo "#include <$incname5>" >> `checkcompilfile`
    if [ "Z$addinc" = "Z" ] ; then
      addinc="$incname5"
    else
      addinc="$addinc,$incname5"
    fi
  fi
  if [ "Z$addinc" != "Z" ] ; then
    addinc=" [+$addinc]"
  fi
  echo "#include <$incname>" >> `checkcompilfile`
  echo "int main(void) { return(0); }" >> `checkcompilfile`
  checkcompil "$incname$addinc" "" "" ""
}

#---
checkcompilinc "pthread.h"
NETWIBDEF_HAVEINCL_PTHREAD=`checkcompilyes`
checkceclean

#---
checkcompilinc "stropts.h"
NETWIBDEF_HAVEINCL_STROPTS=`checkcompilyes`
checkceclean

#---
checkcompilinc "sched.h"
NETWIBDEF_HAVEINCL_SCHED=`checkcompilyes`
checkceclean

#---
checkcompilinc "sys/poll.h"
NETWIBDEF_HAVEINCL_SYS_POLL=`checkcompilyes`
checkceclean
if [ $NETWIBDEF_HAVEINCL_SYS_POLL -eq 0 ] ; then
  # OpenBSD needs stdlib to be included before
  checkcompilinc "sys/poll.h" "stdlib.h"
  NETWIBDEF_HAVEINCL_SYS_POLL=`checkcompilyes`
  checkceclean
fi

#---
checkcompilinc "sys/param.h"
NETWIBDEF_HAVEINCL_SYS_PARAM=`checkcompilyes`
checkceclean

#---
checkcompilinc "sys/sysctl.h"
NETWIBDEF_HAVEINCL_SYS_SYSCTL=`checkcompilyes`
checkceclean
if [ $NETWIBDEF_HAVEINCL_SYS_SYSCTL -eq 0 ] ; then
  checkcompilinc "sys/sysctl.h" "sys/types.h"
  NETWIBDEF_HAVEINCL_SYS_SYSCTL=`checkcompilyes`
  checkceclean
fi
if [ $NETWIBDEF_HAVEINCL_SYS_SYSCTL -eq 0 ] ; then
  if [ $NETWIBDEF_HAVEINCL_SYS_PARAM -eq 1 ] ; then
    checkcompilinc "sys/sysctl.h" "sys/types.h" "sys/param.h"
    NETWIBDEF_HAVEINCL_SYS_SYSCTL=`checkcompilyes`
    checkceclean
  fi
fi

#---
checkcompilinc "sys/ioctl.h"
NETWIBDEF_HAVEINCL_SYS_IOCTL=`checkcompilyes`
checkceclean

#---
checkcompilinc "sys/sockio.h"
NETWIBDEF_HAVEINCL_SYS_SOCKIO=`checkcompilyes`
checkceclean

#---
checkcompilinc "sys/dlpi.h"
NETWIBDEF_HAVEINCL_SYS_DLPI=`checkcompilyes`
checkceclean
if [ $NETWIBDEF_HAVEINCL_SYS_DLPI -eq 0 ] ; then
  checkcompilinc "sys/dlpi.h" "sys/types.h"
  NETWIBDEF_HAVEINCL_SYS_DLPI=`checkcompilyes`
  checkceclean
fi

#---
checkcompilinc "sys/bufmod.h"
NETWIBDEF_HAVEINCL_SYS_BUFMOD=`checkcompilyes`
checkceclean
if [ $NETWIBDEF_HAVEINCL_SYS_BUFMOD -eq 0 ] ; then
  checkcompilinc "sys/bufmod.h" "sys/types.h"
  NETWIBDEF_HAVEINCL_SYS_BUFMOD=`checkcompilyes`
  checkceclean
fi

#---
checkcompilinc "sys/mman.h"
NETWIBDEF_HAVEINCL_SYS_MMAN=`checkcompilyes`
checkceclean
if [ $NETWIBDEF_HAVEINCL_SYS_MMAN -eq 0 ] ; then
  checkcompilinc "sys/mman.h" "sys/types.h"
  NETWIBDEF_HAVEINCL_SYS_MMAN=`checkcompilyes`
  checkceclean
fi

#---
checkcompilinc "net/ethernet.h"
NETWIBDEF_HAVEINCL_NET_ETHERNET=`checkcompilyes`
checkceclean
if [ $NETWIBDEF_HAVEINCL_NET_ETHERNET -eq 0 ] ; then
  checkcompilinc "net/ethernet.h" "sys/types.h"
  NETWIBDEF_HAVEINCL_NET_ETHERNET=`checkcompilyes`
  checkceclean
fi

#---
checkcompilinc "net/if_arp.h"
NETWIBDEF_HAVEINCL_NET_IF_ARP=`checkcompilyes`
checkceclean
if [ $NETWIBDEF_HAVEINCL_NET_IF_ARP -eq 0 ] ; then
  checkcompilinc "net/if_arp.h" "sys/types.h" "sys/socket.h"
  NETWIBDEF_HAVEINCL_NET_IF_ARP=`checkcompilyes`
  checkceclean
fi

#---
checkcompilinc "net/if_types.h"
NETWIBDEF_HAVEINCL_NET_IF_TYPES=`checkcompilyes`
checkceclean

#---
checkcompilinc "net/if_dl.h"
NETWIBDEF_HAVEINCL_NET_IF_DL=`checkcompilyes`
checkceclean
if [ $NETWIBDEF_HAVEINCL_NET_IF_DL -eq 0 ] ; then
  checkcompilinc "net/if_dl.h" "sys/types.h"
  NETWIBDEF_HAVEINCL_NET_IF_DL=`checkcompilyes`
  checkceclean
fi
if [ $NETWIBDEF_HAVEINCL_NET_IF_DL -eq 0 ] ; then
  checkcompilinc "net/if_dl.h" "sys/types.h" "sys/socket.h"
  NETWIBDEF_HAVEINCL_NET_IF_DL=`checkcompilyes`
  checkceclean
fi

#---
checkcompilinc "net/bpf.h"
NETWIBDEF_HAVEINCL_NET_BPF=`checkcompilyes`
checkceclean
if [ $NETWIBDEF_HAVEINCL_NET_BPF -eq 0 ] ; then
  checkcompilinc "net/bpf.h" "sys/types.h"
  NETWIBDEF_HAVEINCL_NET_BPF=`checkcompilyes`
  checkceclean
fi
if [ $NETWIBDEF_HAVEINCL_NET_BPF -eq 0 ] ; then
  checkcompilinc "net/bpf.h" "sys/types.h" "sys/time.h"
  NETWIBDEF_HAVEINCL_NET_BPF=`checkcompilyes`
  checkceclean
fi

#---
checkcompilinc "netinet/if_ether.h"
NETWIBDEF_HAVEINCL_NETINET_IF_ETHER=`checkcompilyes`
checkceclean
if [ $NETWIBDEF_HAVEINCL_NETINET_IF_ETHER -eq 0 ] ; then
  checkcompilinc "netinet/if_ether.h" "sys/types.h" "sys/socket.h"
  NETWIBDEF_HAVEINCL_NETINET_IF_ETHER=`checkcompilyes`
  checkceclean
fi
if [ $NETWIBDEF_HAVEINCL_NETINET_IF_ETHER -eq 0 ] ; then
  checkcompilinc "netinet/if_ether.h" "sys/types.h" "sys/socket.h" "net/if.h"
  NETWIBDEF_HAVEINCL_NETINET_IF_ETHER=`checkcompilyes`
  checkceclean
fi
if [ $NETWIBDEF_HAVEINCL_NETINET_IF_ETHER -eq 0 ] ; then
  checkcompilinc "netinet/if_ether.h" "sys/types.h" "sys/socket.h" "netinet/in.h"
  NETWIBDEF_HAVEINCL_NETINET_IF_ETHER=`checkcompilyes`
  checkceclean
fi
if [ $NETWIBDEF_HAVEINCL_NETINET_IF_ETHER -eq 0 ] ; then
  checkcompilinc "netinet/if_ether.h" "sys/types.h" "sys/socket.h" "net/if.h" "netinet/in.h"
  NETWIBDEF_HAVEINCL_NETINET_IF_ETHER=`checkcompilyes`
  checkceclean
fi

#---
checkcompilinc "netinet/ether.h"
NETWIBDEF_HAVEINCL_NETINET_ETHER=`checkcompilyes`
checkceclean

#---
checkcompilinc "netpacket/packet.h"
NETWIBDEF_HAVEINCL_NETPACKET_PACKET=`checkcompilyes`
checkceclean

#---
checkcompilinc "asm/page.h"
NETWIBDEF_HAVEINCL_ASM_PAGE=`checkcompilyes`
checkceclean

#---
checkcompilinc "machine/param.h"
NETWIBDEF_HAVEINCL_MACHINE_PARAM=`checkcompilyes`
checkceclean


########################################################################
########################################################################
echo "Check include conflicts"

#---
# Under OpenBSD, if_arp.h conflicts with if.h. In this case,
# if_arp.h must not be included.
if [ $NETWIBDEF_HAVEINCL_NET_IF_ARP -eq 1 ] ; then
  checkcompilinc "net/if_arp.h" "sys/types.h" "sys/socket.h" "net/if.h"
  NETWIBDEF_HAVEINCL_NET_IF_ARP=`checkcompilyes`
  checkceclean
fi


########################################################################
########################################################################
echo "Check present types"

#---
cat > `checkcompilfile` <<EOF
 int main(void)
 { size_t s;
   return(0);
 }
EOF
checkcompil2 "size_t" "" "" ""
NETWIBDEF_HAVETYPE_SIZE_T=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <sys/types.h>
 #include <sys/socket.h>
 int main(void)
 { socklen_t s;
   return(0);
 }
EOF
checkcompil2 "socklen_t" "" "" ""
NETWIBDEF_HAVETYPE_SOCKLEN_T=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <signal.h>
 int main(void)
 { sighandler_t s;
   return(0);
 }
EOF
checkcompil2 "sighandler_t" "" "" ""
NETWIBDEF_HAVETYPE_SIGHANDLER_T=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <signal.h>
 int main(void)
 { sig_t s;
   return(0);
 }
EOF
checkcompil2 "sig_t" "" "" ""
NETWIBDEF_HAVETYPE_SIG_T=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <pthread.h>
 int main(void)
 { pthread_rwlock_t s;
   return(0);
 }
EOF
checkcompil2 "pthread_rwlock_t" "" "" ""
NETWIBDEF_HAVETYPE_PTHREAD_RWLOCK_T=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netinet/in.h>
 int main(void)
 { struct sockaddr_in6 *psain6;
   psain6->sin6_addr.s6_addr[0] = 3;
   return(0);
 }
EOF
checkcompil2 "sockaddr_in6" "" "" ""
NETWIBDEF_HAVETYPE_SOCKADDR_IN6=`checkcompilyes`
checkceclean


########################################################################
########################################################################
echo "Check present functions"

#---
cat > `checkcompilfile` <<EOF
 int ether_ntohost(char *para1, char *para2);
 int main(void)
 { char p1[10], p2[10];
   ether_ntohost(p1, p2);
   return(0);
 }
EOF
checkcompil2 "ether_ntohost" "" "" ""
NETWIBDEF_HAVEFUNC_ETHER_NTOHOST=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 int ether_hostton(char *para1, char *para2);
 int main(void)
 { char p1[10], p2[10];
   int t;
   t=strlen("t")+strlen("u"); /*otherwise, no bug ...*/
   ether_hostton(p1, p2);
   return(0);
 }
EOF
checkcompil2 "ether_hostton" "" "" ""
NETWIBDEF_HAVEFUNC_ETHER_HOSTTON=`checkcompilyes`
if [ $NETWIBDEF_HAVEFUNC_ETHER_HOSTTON -eq 1 ] ; then
  checkexec "ether_hostton"
  NETWIBDEF_HAVEFUNC_ETHER_HOSTTON=`checkexecyes`
  if [ $NETWIBDEF_HAVEFUNC_ETHER_HOSTTON -eq 0 ] ; then
    echo "Warning: you are on a computer with a bad ether_hostton."
    echo "         The library netwib will still be usable, but read "
    echo "         ../doc/probleminstallunix.txt if you want to"
    echo "         use the file /etc/ethers."
    echo "Press ENTER to continue."
    read foobar
  fi
fi
checkceclean

#---
cat > `checkcompilfile` <<EOF
 char *hstrerror(int para);
 int main(void)
 { char *p;
   p=hstrerror(10);
   return(0);
 }
EOF
checkcompil2 "hstrerror" "" "" ""
NETWIBDEF_HAVEFUNC_HSTRERROR=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 int snprintf(char *str, int n, const char *format, ... );
 int main(void)
 { char *p;
   snprintf(p, 3, "%d",5);
   return(0);
 }
EOF
checkcompil2 "snprintf" "" "" ""
NETWIBDEF_HAVEFUNC_SNPRINTF=`checkcompilyes`
checkceclean

#---
NETWIBDEF_HAVEFUNC_PCAP_FREECODE=0
if [ $NETWIBDEF_LIBPCAPINSTALLED = 1 ] ; then
  cat > `checkcompilfile` <<EOF
   #include <pcap.h>
   int main(void)
   { pcap_freecode(NULL);
     return(0);
   }
EOF
  checkcompil2 "pcap_freecode (1 param)" "" "" ""
  NETWIBDEF_HAVEFUNC_PCAP_FREECODE=`checkcompilyes`
  checkceclean
fi

#---
NETWIBDEF_HAVEFUNC_PCAP_FREECODE2=0
if [ $NETWIBDEF_LIBPCAPINSTALLED = 1 ] ; then
  cat > `checkcompilfile` <<EOF
   #include <pcap.h>
   int main(void)
   { pcap_freecode(NULL, NULL);
     return(0);
   }
EOF
  checkcompil2 "pcap_freecode (2 param)" "" "" ""
  NETWIBDEF_HAVEFUNC_PCAP_FREECODE2=`checkcompilyes`
  checkceclean
fi

#---
NETWIBDEF_HAVEFUNC_PCAP_OPENDEAD=0
if [ $NETWIBDEF_LIBPCAPINSTALLED = 1 ] ; then
  cat > `checkcompilfile` <<EOF
   #include <pcap.h>
   int main(void)
   { pcap_open_dead(0, 0);
     return(0);
   }
EOF
  checkcompil2 "pcap_open_dead" "" "" ""
  NETWIBDEF_HAVEFUNC_PCAP_OPENDEAD=`checkcompilyes`
  checkceclean
fi

#---
cat > `checkcompilfile` <<EOF
 #include <sys/poll.h>
 int main(void)
 { char *p;
   poll(NULL, 0, 0);
   return(0);
 }
EOF
checkcompil2 "poll" "" "" ""
NETWIBDEF_HAVEFUNC_POLL=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 int main(void)
 { long l;
   l = pathconf("/", _PC_PATH_MAX);
   return(0);
 }
EOF
checkcompil2 "pathconf" "" "" ""
NETWIBDEF_HAVEFUNC_PATHCONF=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 int main(void)
 { long l;
   l = sysconf(_SC_OPEN_MAX);
   return(0);
 }
EOF
checkcompil2 "sysconf" "" "" ""
NETWIBDEF_HAVEFUNC_SYSCONF=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 int main(void)
 { long l;
   l = getpagesize();
   return(0);
 }
EOF
checkcompil2 "getpagesize" "" "" ""
NETWIBDEF_HAVEFUNC_GETPAGESIZE=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <sys/time.h>
 #include <sys/resource.h>
 int main(void)
 { long l;
   l = getrlimit(0,NULL);
   return(0);
 }
EOF
checkcompil2 "getrlimit" "" "" ""
NETWIBDEF_HAVEFUNC_GETRLIMIT=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <time.h>
 int main(void)
 { nanosleep(NULL,NULL);
   return(0);
 }
EOF
checkcompil2 "nanosleep" "" "" ""
NETWIBDEF_HAVEFUNC_NANOSLEEP=`checkcompilyes`
if [ $NETWIBDEF_HAVEFUNC_NANOSLEEP -eq 0 ] ; then
  checkcompil2 "nanosleep [-lrt]" "" "" "-lrt"
  NETWIBDEF_HAVEFUNC_NANOSLEEP=`checkcompilyes`
  if [ $NETWIBDEF_HAVEFUNC_NANOSLEEP -eq 1 ] ; then
    gccLib="$gccLib -lrt"
  fi
fi
if [ $NETWIBDEF_HAVEFUNC_NANOSLEEP -eq 0 ] ; then
  checkcompil2 "nanosleep [-lposix4]" "" "" "-lposix4"
  NETWIBDEF_HAVEFUNC_NANOSLEEP=`checkcompilyes`
  if [ $NETWIBDEF_HAVEFUNC_NANOSLEEP -eq 1 ] ; then
    gccLib="$gccLib -lposix4"
  fi
fi
checkceclean

#---
cat > `checkcompilfile` <<EOF
 int main(void)
 { usleep(0);
   return(0);
 }
EOF
checkcompil2 "usleep" "" "" ""
NETWIBDEF_HAVEFUNC_USLEEP=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <sys/time.h>
 int main(void)
 { gettimeofday(NULL, NULL);
   return(0);
 }
EOF
checkcompil2 "gettimeofday" "" "" ""
NETWIBDEF_HAVEFUNC_GETTIMEOFDAY=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <time.h>
 int main(void)
 { clock_gettime(0, NULL);
   return(0);
 }
EOF
checkcompil2 "clock_gettime" "" "" ""
NETWIBDEF_HAVEFUNC_CLOCK_GETTIME=`checkcompilyes`
if [ $NETWIBDEF_HAVEFUNC_CLOCK_GETTIME -eq 0 ] ; then
  checkcompil2 "clock_gettime [-lrt]" "" "" "-lrt"
  NETWIBDEF_HAVEFUNC_CLOCK_GETTIME=`checkcompilyes`
  if [ $NETWIBDEF_HAVEFUNC_CLOCK_GETTIME -eq 1 ] ; then
    gccLib="$gccLib -lrt"
  fi
fi
if [ $NETWIBDEF_HAVEFUNC_CLOCK_GETTIME -eq 0 ] ; then
  checkcompil2 "clock_gettime [-lposix4]" "" "" "-lposix4"
  NETWIBDEF_HAVEFUNC_CLOCK_GETTIME=`checkcompilyes`
  if [ $NETWIBDEF_HAVEFUNC_CLOCK_GETTIME -eq 1 ] ; then
    gccLib="$gccLib -lposix4"
  fi
fi
checkceclean

#---
NETWIBDEF_HAVEFUNC_PTHREAD_MUTEX_TIMEDLOCK=0
if [ $NETWIBDEF_HAVEINCL_PTHREAD = 1 ] ; then
  cat > `checkcompilfile` <<EOF
   #include <pthread.h>
   int main(void)
   { pthread_mutex_timedlock(NULL, NULL);
     return(0);
   }
EOF
  checkcompil2 "pthread_mutex_timedlock" "" "" ""
  NETWIBDEF_HAVEFUNC_PTHREAD_MUTEX_TIMEDLOCK=`checkcompilyes`
  checkceclean
fi

#---
NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDRDLOCK=0
if [ $NETWIBDEF_HAVEINCL_PTHREAD = 1 ] ; then
  cat > `checkcompilfile` <<EOF
   #include <pthread.h>
   int main(void)
   { pthread_rwlock_timedrdlock(NULL, NULL);
     return(0);
   }
EOF
  checkcompil2 "pthread_rwlock_timedrdlock" "" "" ""
  NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDRDLOCK=`checkcompilyes`
  checkceclean
fi

#---
NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDWRLOCK=0
if [ $NETWIBDEF_HAVEINCL_PTHREAD = 1 ] ; then
  cat > `checkcompilfile` <<EOF
   #include <pthread.h>
   int main(void)
   { pthread_rwlock_timedwrlock(NULL, NULL);
     return(0);
   }
EOF
  checkcompil2 "pthread_rwlock_timedwrlock" "" "" ""
  NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDWRLOCK=`checkcompilyes`
  checkceclean
fi

#---
NETWIBDEF_HAVEFUNC_PTHREAD_YIELD=0
if [ $NETWIBDEF_HAVEINCL_PTHREAD = 1 ] ; then
  cat > `checkcompilfile` <<EOF
   #include <pthread.h>
   int main(void)
   { pthread_yield();
     return(0);
   }
EOF
  checkcompil2 "pthread_yield" "" "" ""
  NETWIBDEF_HAVEFUNC_PTHREAD_YIELD=`checkcompilyes`
  checkceclean
fi

#---
NETWIBDEF_HAVEFUNC_SCHED_YIELD=0
if [ $NETWIBDEF_HAVEINCL_SCHED = 1 ] ; then
  cat > `checkcompilfile` <<EOF
   #include <sched.h>
   int main(void)
   { sched_yield();
     return(0);
   }
EOF
  checkcompil2 "sched_yield" "" "" ""
  NETWIBDEF_HAVEFUNC_SCHED_YIELD=`checkcompilyes`
  if [ $NETWIBDEF_HAVEINCL_SCHED = 0 ] ; then
    checkcompil2 "sched_yield [-lposix4]" "" "" "-lposix4"
    NETWIBDEF_HAVEFUNC_SCHED_YIELD=`checkcompilyes`
    if [ $NETWIBDEF_HAVEFUNC_SCHED_YIELD -eq 1 ] ; then
      gccLib="$gccLib -lposix4"
    fi
  fi
  checkceclean
fi

#---
cat > `checkcompilfile` <<EOF
 #define _POSIX_PTHREAD_SEMANTICS 1 /* for Solaris */
 #include <pwd.h>
 #include <grp.h>
 int main(void)
 { getpwnam_r(NULL, NULL, NULL, 0, NULL);
   return(0);
 }
EOF
checkcompil2 "getpwnam_r" "" "" ""
NETWIBDEF_HAVEFUNC_GETPWNAM_R=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #define _POSIX_PTHREAD_SEMANTICS 1 /* for Solaris */
 #include <pwd.h>
 #include <grp.h>
 int main(void)
 { getgrnam_r(NULL, NULL, NULL, 0, NULL);
   return(0);
 }
EOF
checkcompil2 "getgrnam_r" "" "" ""
NETWIBDEF_HAVEFUNC_GETGRNAM_R=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #define _POSIX_PTHREAD_SEMANTICS 1 /* for Solaris */
 #include <pwd.h>
 #include <grp.h>
 int main(void)
 { getgrgid_r(NULL, NULL, NULL, 0, NULL);
   return(0);
 }
EOF
checkcompil2 "getgrgid_r" "" "" ""
NETWIBDEF_HAVEFUNC_GETGRGID_R=`checkcompilyes`
checkceclean

#---
if [ $NETWIBDEF_LIBPTHREADFROMDCE -eq 1 ] ; then
cat > `checkcompilfile` <<EOF
 #include <dirent.h>
 int main(void) { readdir_r(NULL, NULL); return(0); }
EOF
else
cat > `checkcompilfile` <<EOF
 #include <dirent.h>
 int main(void) { readdir_r(NULL, NULL, NULL); return(0); }
EOF
fi
checkcompil2 "readdir_r" "" "" ""
NETWIBDEF_HAVEFUNC_READDIR_R=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <netdb.h>
 int main(void)
 { gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL);
   return(0);
 }
EOF
checkcompil2 "gethostbyname_r" "" "" ""
NETWIBDEF_HAVEFUNC_GETHOSTBYNAME_R=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <netdb.h>
 int main(void)
 { gethostbyaddr_r(NULL, 0, 0, NULL, NULL, 0, NULL, NULL);
   return(0);
 }
EOF
checkcompil2 "gethostbyaddr_r" "" "" ""
NETWIBDEF_HAVEFUNC_GETHOSTBYADDR_R=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <netdb.h>
 int main(void)
 { getnameinfo(NULL, 0, NULL, 0, NULL, 0, 0);
   return(0);
 }
EOF
checkcompil2 "getnameinfo" "" "" ""
NETWIBDEF_HAVEFUNC_GETNAMEINFO=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <netdb.h>
 int main(void)
 { getaddrinfo(NULL, NULL, NULL, NULL);
   return(0);
 }
EOF
checkcompil2 "getaddrinfo" "" "" ""
NETWIBDEF_HAVEFUNC_GETADDRINFO=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <netdb.h>
 int main(void)
 { getipnodebyname(NULL, 0, 0, NULL);
   return(0);
 }
EOF
checkcompil2 "getipnodebyname" "" "" ""
NETWIBDEF_HAVEFUNC_GETIPNODEBYNAME=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <netdb.h>
 int main(void)
 { getipnodebyaddr(NULL, 0, 0, NULL);
   return(0);
 }
EOF
checkcompil2 "getipnodebyaddr" "" "" ""
NETWIBDEF_HAVEFUNC_GETIPNODEBYADDR=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <time.h>
 int main(void)
 { localtime_r(NULL, NULL);
   return(0);
 }
EOF
checkcompil2 "localtime_r" "" "" ""
NETWIBDEF_HAVEFUNC_LOCALTIME_R=`checkcompilyes`
checkceclean


########################################################################
########################################################################
echo "Check present variables"

#---
cat > `checkcompilfile` <<EOF
 #include <netdb.h>
 int main(void)
 { h_errno = 0;
   return(0);
 }
EOF
checkcompil2 "h_errno" "" "" ""
NETWIBDEF_HAVEVAR_HERRNO=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <limits.h>
 int main(void)
 { int i = PATH_MAX;
   return(0);
 }
EOF
checkcompil2 "PATH_MAX" "" "" ""
NETWIBDEF_HAVEVAR_PATH_MAX=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <limits.h>
 int main(void)
 { int i = NAME_MAX;
   return(0);
 }
EOF
checkcompil2 "NAME_MAX" "" "" ""
NETWIBDEF_HAVEVAR_NAME_MAX=`checkcompilyes`
checkceclean

#---
echo "#include <sys/types.h>" > `checkcompilfile`
if [ $NETWIBDEF_HAVEINCL_SYS_MMAN -eq 1 ] ; then
 echo "#include <sys/mman.h>" >> `checkcompilfile`
fi
if [ $NETWIBDEF_HAVEINCL_SYS_PARAM -eq 1 ] ; then
 echo "#include <sys/param.h>" >> `checkcompilfile`
fi
if [ $NETWIBDEF_HAVEINCL_MACHINE_PARAM -eq 1 ] ; then
 echo "#include <machine/param.h>" >> `checkcompilfile`
fi
if [ $NETWIBDEF_HAVEINCL_ASM_PAGE -eq 1 ] ; then
 echo "#include <asm/page.h>" >> `checkcompilfile`
fi
echo "int main(void){int i; i = PAGE_SIZE;}" >> `checkcompilfile`
checkcompil2 "PAGE_SIZE" "" "" ""
NETWIBDEF_HAVEVAR_PAGE_SIZE=`checkcompilyes`
checkceclean

#---
echo "" > `checkcompilfile`
if [ $NETWIBDEF_HAVEINCL_SYS_MMAN -eq 1 ] ; then
 echo "#include <sys/mman.h>" >> `checkcompilfile`
fi
if [ $NETWIBDEF_HAVEINCL_SYS_PARAM -eq 1 ] ; then
 echo "#include <sys/param.h>" >> `checkcompilfile`
fi
if [ $NETWIBDEF_HAVEINCL_MACHINE_PARAM -eq 1 ] ; then
 echo "#include <machine/param.h>" >> `checkcompilfile`
fi
if [ $NETWIBDEF_HAVEINCL_ASM_PAGE -eq 1 ] ; then
 echo "#include <asm/page.h>" >> `checkcompilfile`
fi
echo "int main(void){int i; i = PAGESIZE;}" >> `checkcompilfile`
checkcompil2 "PAGESIZE" "" "" ""
NETWIBDEF_HAVEVAR_PAGESIZE=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <net/if.h>
 #include <sys/ioctl.h>
 #include <net/bpf.h>
 int main(void)
 { int fd, un;
   ioctl(fd, BIOCSHDRCMPLT, &un);
   return(0);
 }
EOF
checkcompil2 "BIOCSHDRCMPLT" "" "" ""
NETWIBDEF_HAVEVAR_BIOCSHDRCMPLT=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/ioctl.h>
 #include <sys/sockio.h>
 int main(void)
 { int fd, un;
   ioctl(fd, SIOCGLIFCONF, &un);
   return(0);
 }
EOF
checkcompil2 "SIOCGLIFCONF" "" "" ""
NETWIBDEF_HAVEVAR_SIOCGLIFCONF=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <sys/types.h>
 #include <sys/socket.h>
 int main(void)
 { int i = AF_INET6;
   return(0);
 }
EOF
checkcompil2 "AF_INET6" "" "" ""
NETWIBDEF_HAVEVAR_AF_INET6=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <unistd.h>
 int main(void)
 { int i = _SC_GETPW_R_SIZE_MAX;
   return(0);
 }
EOF
checkcompil2 "_SC_GETPW_R_SIZE_MAX" "" "" ""
NETWIBDEF_HAVEVAR_SC_GETPW_R_SIZE_MAX=`checkcompilyes`
checkceclean

#---
cat > `checkcompilfile` <<EOF
 #include <unistd.h>
 int main(void)
 { int i = _SC_GETGR_R_SIZE_MAX;
   return(0);
 }
EOF
checkcompil2 "_SC_GETGR_R_SIZE_MAX" "" "" ""
NETWIBDEF_HAVEVAR_SC_GETGR_R_SIZE_MAX=`checkcompilyes`
checkceclean


#########
echo "Determine user:group needed to install"

case $NETWIBDEF_SYSNAME in
 "FreeBSD" )
    NETWIBDEF_INSTUSER="root"
    NETWIBDEF_INSTGROUP="wheel"
    ;;
 "Linux" )
    NETWIBDEF_INSTUSER="root"
    NETWIBDEF_INSTGROUP="root"
    ;;
 "MacOS" )
    NETWIBDEF_INSTUSER="root"
    NETWIBDEF_INSTGROUP="wheel"
    ;;
 "NetBSD" )
    NETWIBDEF_INSTUSER="root"
    NETWIBDEF_INSTGROUP="bin"
    ;;
 "OpenBSD" )
    NETWIBDEF_INSTUSER="root"
    NETWIBDEF_INSTGROUP="bin"
    ;;
 "Solaris" )
    NETWIBDEF_INSTUSER="bin"
    NETWIBDEF_INSTGROUP="bin"
    ;;
 "HPUX" )
    NETWIBDEF_INSTUSER="bin"
    NETWIBDEF_INSTGROUP="bin"
    ;;
 "Tru64UNIX" )
    NETWIBDEF_INSTUSER="bin"
    NETWIBDEF_INSTGROUP="bin"
    ;;
 "Unsupported" )
    NETWIBDEF_INSTUSER="root"
    NETWIBDEF_INSTGROUP="root"
    ;;
 * )
    echo "Error: unknown NETWIBDEF_SYSNAME";
    exit ;;
esac


########################################################################
########################################################################
echo "Generate the different files"

#########
deffile="netwib/def.h"
echo " Creation of $deffile"
echo "#define NETWIBDEF_SYSNAME_Unix 1" > $deffile
echo "#define NETWIBDEF_SYSNAME \"$NETWIBDEF_SYSNAME\"" >> $deffile
echo "#define NETWIBDEF_SYSNAME_$NETWIBDEF_SYSNAME 1" >> $deffile
echo "#define NETWIBDEF_SYSARCH \"$NETWIBDEF_SYSARCH\"" >> $deffile
echo "#define NETWIBDEF_SYSARCH_$NETWIBDEF_SYSARCH 1" >> $deffile
echo "#define NETWIBDEF_ARCH_ENDIAN $NETWIBDEF_ARCH_ENDIAN" >> $deffile
echo "#define NETWIBDEF_ARCH_BITS $NETWIBDEF_ARCH_BITS" >> $deffile
echo "#define NETWIBDEF_ARCH_ALIGN $NETWIBDEF_ARCH_ALIGN" >> $deffile
echo "#define NETWIBDEF_VERSION \"$NETWIBDEF_VERSION\"" >> $deffile
echo "#define NETWIBDEF_VERSIONMAJOR $NETWIBDEF_VERSIONMAJOR" >> $deffile
echo "#define NETWIBDEF_VERSIONMINOR $NETWIBDEF_VERSIONMINOR" >> $deffile
echo "#define NETWIBDEF_VERSIONMICRO $NETWIBDEF_VERSIONMICRO" >> $deffile
echo "#define NETWIBDEF_LIBPTHREADINSTALLED $NETWIBDEF_LIBPTHREADINSTALLED">>$deffile
echo "#define NETWIBDEF_LIBPTHREADFROMDCE $NETWIBDEF_LIBPTHREADFROMDCE">>$deffile
echo "#define NETWIBDEF_LIBPTHREADFROMMIT $NETWIBDEF_LIBPTHREADFROMMIT">>$deffile
echo "#define NETWIBDEF_LIBPCAPINSTALLED $NETWIBDEF_LIBPCAPINSTALLED">>$deffile
echo "#define NETWIBDEF_LIBPCAPFROMREDHAT $NETWIBDEF_LIBPCAPFROMREDHAT">>$deffile
echo "#define NETWIBDEF_LIBNETINSTALLED $NETWIBDEF_LIBNETINSTALLED" >> $deffile
echo "#define NETWIBDEF_LIBNETVERSION11 $NETWIBDEF_LIBNETVERSION11" >> $deffile
echo "#define NETWIBDEF_PROGCC \"$NETWIBDEF_PROGCC\"" >> $deffile
echo "#define NETWIBDEF_PROGAR \"$NETWIBDEF_PROGAR\"" >> $deffile
echo "#define NETWIBDEF_PROGRANLIB \"$NETWIBDEF_PROGRANLIB\"" >> $deffile
echo "#define NETWIBDEF_PROGGREP \"$NETWIBDEF_PROGGREP\"" >> $deffile
echo "#define NETWIBDEF_PROGWC \"$NETWIBDEF_PROGWC\"" >> $deffile
echo "#define NETWIBDEF_INSTINCLUDE \"$NETWIBDEF_INSTINCLUDE\"" >> $deffile
echo "#define NETWIBDEF_INSTLIB \"$NETWIBDEF_INSTLIB\"" >> $deffile
echo "#define NETWIBDEF_INSTBIN \"$NETWIBDEF_INSTBIN\"" >> $deffile
echo "#define NETWIBDEF_INSTMAN1 \"$NETWIBDEF_INSTMAN1\"" >> $deffile
echo "#define NETWIBDEF_INSTMAN3 \"$NETWIBDEF_INSTMAN3\"" >> $deffile
echo "#define NETWIBDEF_INSTUSER \"$NETWIBDEF_INSTUSER\"" >> $deffile
echo "#define NETWIBDEF_INSTGROUP \"$NETWIBDEF_INSTGROUP\"" >> $deffile
echo "#define NETWIBDEF_SUPPORT_SNIFF $NETWIBDEF_SUPPORT_SNIFF" >> $deffile
echo "#define NETWIBDEF_SUPPORT_SPOOF $NETWIBDEF_SUPPORT_SPOOF" >> $deffile
echo "#define NETWIBDEF_SUPPORT_ENCODETYPE_PCAP $NETWIBDEF_SUPPORT_ENCODETYPE_PCAP" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_PTHREAD $NETWIBDEF_HAVEINCL_PTHREAD" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_STROPTS $NETWIBDEF_HAVEINCL_STROPTS" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_SCHED $NETWIBDEF_HAVEINCL_SCHED" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_SYS_POLL $NETWIBDEF_HAVEINCL_SYS_POLL" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_SYS_PARAM $NETWIBDEF_HAVEINCL_SYS_PARAM" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_SYS_SYSCTL $NETWIBDEF_HAVEINCL_SYS_SYSCTL" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_SYS_IOCTL $NETWIBDEF_HAVEINCL_SYS_IOCTL" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_SYS_SOCKIO $NETWIBDEF_HAVEINCL_SYS_SOCKIO" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_SYS_DLPI $NETWIBDEF_HAVEINCL_SYS_DLPI" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_SYS_BUFMOD $NETWIBDEF_HAVEINCL_SYS_BUFMOD" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_SYS_MMAN $NETWIBDEF_HAVEINCL_SYS_MMAN" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_NET_ETHERNET $NETWIBDEF_HAVEINCL_NET_ETHERNET" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_NET_IF_ARP $NETWIBDEF_HAVEINCL_NET_IF_ARP" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_NET_IF_TYPES $NETWIBDEF_HAVEINCL_NET_IF_TYPES" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_NET_IF_DL $NETWIBDEF_HAVEINCL_NET_IF_DL" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_NET_BPF $NETWIBDEF_HAVEINCL_NET_BPF" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_NETINET_IF_ETHER $NETWIBDEF_HAVEINCL_NETINET_IF_ETHER" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_NETINET_ETHER $NETWIBDEF_HAVEINCL_NETINET_ETHER" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_NETPACKET_PACKET $NETWIBDEF_HAVEINCL_NETPACKET_PACKET" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_ASM_PAGE $NETWIBDEF_HAVEINCL_ASM_PAGE" >> $deffile
echo "#define NETWIBDEF_HAVEINCL_MACHINE_PARAM $NETWIBDEF_HAVEINCL_MACHINE_PARAM" >> $deffile
echo "#define NETWIBDEF_HAVETYPE_SIZE_T $NETWIBDEF_HAVETYPE_SIZE_T" >> $deffile
echo "#define NETWIBDEF_HAVETYPE_SOCKLEN_T $NETWIBDEF_HAVETYPE_SOCKLEN_T" >> $deffile
echo "#define NETWIBDEF_HAVETYPE_SIGHANDLER_T $NETWIBDEF_HAVETYPE_SIGHANDLER_T" >> $deffile
echo "#define NETWIBDEF_HAVETYPE_SIG_T $NETWIBDEF_HAVETYPE_SIG_T" >> $deffile
echo "#define NETWIBDEF_HAVETYPE_PTHREAD_RWLOCK_T $NETWIBDEF_HAVETYPE_PTHREAD_RWLOCK_T" >> $deffile
echo "#define NETWIBDEF_HAVETYPE_SOCKADDR_IN6 $NETWIBDEF_HAVETYPE_SOCKADDR_IN6" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_ETHER_NTOHOST $NETWIBDEF_HAVEFUNC_ETHER_NTOHOST" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_ETHER_HOSTTON $NETWIBDEF_HAVEFUNC_ETHER_HOSTTON" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_HSTRERROR $NETWIBDEF_HAVEFUNC_HSTRERROR" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_SNPRINTF $NETWIBDEF_HAVEFUNC_SNPRINTF" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_PCAP_FREECODE $NETWIBDEF_HAVEFUNC_PCAP_FREECODE" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_PCAP_FREECODE2 $NETWIBDEF_HAVEFUNC_PCAP_FREECODE2" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_PCAP_OPENDEAD $NETWIBDEF_HAVEFUNC_PCAP_OPENDEAD" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_POLL $NETWIBDEF_HAVEFUNC_POLL" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_PATHCONF $NETWIBDEF_HAVEFUNC_PATHCONF" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_SYSCONF $NETWIBDEF_HAVEFUNC_SYSCONF" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_GETPAGESIZE $NETWIBDEF_HAVEFUNC_GETPAGESIZE" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_GETRLIMIT $NETWIBDEF_HAVEFUNC_GETRLIMIT" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_NANOSLEEP $NETWIBDEF_HAVEFUNC_NANOSLEEP" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_USLEEP $NETWIBDEF_HAVEFUNC_USLEEP" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_GETTIMEOFDAY $NETWIBDEF_HAVEFUNC_GETTIMEOFDAY" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_CLOCK_GETTIME $NETWIBDEF_HAVEFUNC_CLOCK_GETTIME" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_PTHREAD_MUTEX_TIMEDLOCK $NETWIBDEF_HAVEFUNC_PTHREAD_MUTEX_TIMEDLOCK" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDRDLOCK $NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDRDLOCK" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDWRLOCK $NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDWRLOCK" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_PTHREAD_YIELD $NETWIBDEF_HAVEFUNC_PTHREAD_YIELD" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_SCHED_YIELD $NETWIBDEF_HAVEFUNC_SCHED_YIELD" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_GETPWNAM_R $NETWIBDEF_HAVEFUNC_GETPWNAM_R" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_GETGRNAM_R $NETWIBDEF_HAVEFUNC_GETGRNAM_R" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_GETGRGID_R $NETWIBDEF_HAVEFUNC_GETGRGID_R" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_READDIR_R $NETWIBDEF_HAVEFUNC_READDIR_R" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_GETHOSTBYNAME_R $NETWIBDEF_HAVEFUNC_GETHOSTBYNAME_R" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_GETHOSTBYADDR_R $NETWIBDEF_HAVEFUNC_GETHOSTBYADDR_R" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_GETNAMEINFO $NETWIBDEF_HAVEFUNC_GETNAMEINFO" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_GETADDRINFO $NETWIBDEF_HAVEFUNC_GETADDRINFO" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_GETIPNODEBYNAME $NETWIBDEF_HAVEFUNC_GETIPNODEBYNAME" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_GETIPNODEBYADDR $NETWIBDEF_HAVEFUNC_GETIPNODEBYADDR" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_LOCALTIME_R $NETWIBDEF_HAVEFUNC_LOCALTIME_R" >> $deffile
echo "#define NETWIBDEF_HAVEVAR_HERRNO $NETWIBDEF_HAVEVAR_HERRNO" >> $deffile
echo "#define NETWIBDEF_HAVEVAR_PATH_MAX $NETWIBDEF_HAVEVAR_PATH_MAX" >> $deffile
echo "#define NETWIBDEF_HAVEVAR_NAME_MAX $NETWIBDEF_HAVEVAR_NAME_MAX" >> $deffile
echo "#define NETWIBDEF_HAVEVAR_PAGE_SIZE $NETWIBDEF_HAVEVAR_PAGE_SIZE" >> $deffile
echo "#define NETWIBDEF_HAVEVAR_PAGESIZE $NETWIBDEF_HAVEVAR_PAGESIZE" >> $deffile
echo "#define NETWIBDEF_HAVEVAR_BIOCSHDRCMPLT $NETWIBDEF_HAVEVAR_BIOCSHDRCMPLT" >> $deffile
echo "#define NETWIBDEF_HAVEVAR_SIOCGLIFCONF $NETWIBDEF_HAVEVAR_SIOCGLIFCONF" >> $deffile
echo "#define NETWIBDEF_HAVEVAR_AF_INET6 $NETWIBDEF_HAVEVAR_AF_INET6" >> $deffile
echo "#define NETWIBDEF_HAVEVAR_SC_GETPW_R_SIZE_MAX $NETWIBDEF_HAVEVAR_SC_GETPW_R_SIZE_MAX" >> $deffile
echo "#define NETWIBDEF_HAVEVAR_SC_GETGR_R_SIZE_MAX $NETWIBDEF_HAVEVAR_SC_GETGR_R_SIZE_MAX" >> $deffile


#########
netwibconfig="./compil/unix/netwib-config"
echo " Creation of $netwibconfig"
cat > $netwibconfig <<EOF
#!/bin/sh
#----------------------------------------------------------------------
# This file was generated with ./genemake

# this function displays usage of netwib-config
usage ()
{ prog=\$1
  errorcode=\$2

  cat <<UEOF
Usages: 
  \$prog -v
  \$prog --version
  \$prog -c
  \$prog --cflags
  \$prog -l
  \$prog --libs
  \$prog -d variable_name_from__netwib_def.h
Examples:
  gcc -o t t.c \\\`\$prog --cflags --libs\\\`
  gcc -o t t.c \\\`\$prog -c -l\\\`
  gcc -o t t.c \\\`\$prog -cl\\\`
  \$prog -v
  \$prog -d SYSVER
UEOF

  exit \$errorcode
}

# this function displays the value of a define
adefine()
{ var=\$1
  case \$var in
    SYSNAME) echo $NETWIBDEF_SYSNAME ;;
    SYSNAME_$NETWIBDEF_SYSNAME) echo 1 ;;
    SYSARCH) echo $NETWIBDEF_SYSARCH ;;
    SYSARCH_$NETWIBDEF_SYSARCH) echo 1 ;;
    ARCH_ENDIAN) echo $NETWIBDEF_ARCH_ENDIAN ;;
    ARCH_BITS) echo $NETWIBDEF_ARCH_BITS ;;
    ARCH_ALIGN) echo $NETWIBDEF_ARCH_ALIGN ;;
    VERSION) echo $NETWIBDEF_VERSION ;;
    VERSIONMAJOR) echo $NETWIBDEF_VERSIONMAJOR ;;
    VERSIONMINOR) echo $NETWIBDEF_VERSIONMINOR ;;
    VERSIONMICRO) echo $NETWIBDEF_VERSIONMICRO ;;
    LIBPTHREADINSTALLED) echo $NETWIBDEF_LIBPTHREADINSTALLED ;;
    LIBPTHREADFROMDCE) echo $NETWIBDEF_LIBPTHREADFROMDCE ;;
    LIBPTHREADFROMMIT) echo $NETWIBDEF_LIBPTHREADFROMMIT ;;
    LIBPCAPINSTALLED) echo $NETWIBDEF_LIBPCAPINSTALLED ;;
    LIBPCAPFROMREDHAT) echo $NETWIBDEF_LIBPCAPFROMREDHAT ;;
    LIBNETINSTALLED) echo $NETWIBDEF_LIBNETINSTALLED ;;
    LIBNETVERSION11) echo $NETWIBDEF_LIBNETVERSION11 ;;
    PROGCC) echo $NETWIBDEF_PROGCC ;;
    PROGAR) echo $NETWIBDEF_PROGAR ;;
    PROGRANLIB) echo $NETWIBDEF_PROGRANLIB ;;
    PROGGREP) echo $NETWIBDEF_PROGGREP ;;
    PROGWC) echo $NETWIBDEF_PROGWC ;;
    INSTINCLUDE) echo $NETWIBDEF_INSTINCLUDE ;;
    INSTLIB) echo $NETWIBDEF_INSTLIB ;;
    INSTBIN) echo $NETWIBDEF_INSTBIN ;;
    INSTMAN1) echo $NETWIBDEF_INSTMAN1 ;;
    INSTMAN3) echo $NETWIBDEF_INSTMAN3 ;;
    INSTUSER) echo $NETWIBDEF_INSTUSER ;;
    INSTGROUP) echo $NETWIBDEF_INSTGROUP ;;
    SUPPORT_SNIFF) echo $NETWIBDEF_SUPPORT_SNIFF ;;
    SUPPORT_SPOOF) echo $NETWIBDEF_SUPPORT_SPOOF ;;
    SUPPORT_ENCODETYPE_PCAP) echo $NETWIBDEF_SUPPORT_ENCODETYPE_PCAP ;;
    HAVEINCL_PTHREAD) echo $NETWIBDEF_HAVEINCL_PTHREAD ;;
    HAVEINCL_STROPTS) echo $NETWIBDEF_HAVEINCL_STROPTS ;;
    HAVEINCL_SCHED) echo $NETWIBDEF_HAVEINCL_SCHED ;;
    HAVEINCL_SYS_POLL) echo $NETWIBDEF_HAVEINCL_SYS_POLL ;;
    HAVEINCL_SYS_PARAM) echo $NETWIBDEF_HAVEINCL_SYS_PARAM ;;
    HAVEINCL_SYS_SYSCTL) echo $NETWIBDEF_HAVEINCL_SYS_SYSCTL ;;
    HAVEINCL_SYS_IOCTL) echo $NETWIBDEF_HAVEINCL_SYS_IOCTL ;;
    HAVEINCL_SYS_SOCKIO) echo $NETWIBDEF_HAVEINCL_SYS_SOCKIO ;;
    HAVEINCL_SYS_DLPI) echo $NETWIBDEF_HAVEINCL_SYS_DLPI ;;
    HAVEINCL_SYS_BUFMOD) echo $NETWIBDEF_HAVEINCL_SYS_BUFMOD ;;
    HAVEINCL_SYS_MMAN) echo $NETWIBDEF_HAVEINCL_SYS_MMAN ;;
    HAVEINCL_NET_ETHERNET) echo $NETWIBDEF_HAVEINCL_NET_ETHERNET ;;
    HAVEINCL_NET_IF_ARP) echo $NETWIBDEF_HAVEINCL_NET_IF_ARP ;;
    HAVEINCL_NET_IF_TYPES) echo $NETWIBDEF_HAVEINCL_NET_IF_TYPES ;;
    HAVEINCL_NET_IF_DL) echo $NETWIBDEF_HAVEINCL_NET_IF_DL ;;
    HAVEINCL_NET_BPF) echo $NETWIBDEF_HAVEINCL_NET_BPF ;;
    HAVEINCL_NETINET_IF_ETHER) echo $NETWIBDEF_HAVEINCL_NETINET_IF_ETHER ;;
    HAVEINCL_NETINET_ETHER) echo $NETWIBDEF_HAVEINCL_NETINET_ETHER ;;
    HAVEINCL_NETPACKET_PACKET) echo $NETWIBDEF_HAVEINCL_NETPACKET_PACKET ;;
    HAVEINCL_ASM_PAGE) echo $NETWIBDEF_HAVEINCL_ASM_PAGE ;;
    HAVEINCL_MACHINE_PARAM) echo $NETWIBDEF_HAVEINCL_MACHINE_PARAM ;;
    HAVETYPE_SIZE_T) echo $NETWIBDEF_HAVETYPE_SIZE_T ;;
    HAVETYPE_SOCKLEN_T) echo $NETWIBDEF_HAVETYPE_SOCKLEN_T ;;
    HAVETYPE_SIGHANDLER_T) echo $NETWIBDEF_HAVETYPE_SIGHANDLER_T ;;
    HAVETYPE_SIG_T) echo $NETWIBDEF_HAVETYPE_SIG_T ;;
    HAVETYPE_PTHREAD_RWLOCK_T) echo $NETWIBDEF_HAVETYPE_PTHREAD_RWLOCK_T ;;
    HAVETYPE_SOCKADDR_IN6) echo $NETWIBDEF_HAVETYPE_SOCKADDR_IN6 ;;
    HAVEFUNC_ETHER_NTOHOST) echo $NETWIBDEF_HAVEFUNC_ETHER_NTOHOST ;;
    HAVEFUNC_ETHER_HOSTTON) echo $NETWIBDEF_HAVEFUNC_ETHER_HOSTTON ;;
    HAVEFUNC_HSTRERROR) echo $NETWIBDEF_HAVEFUNC_HSTRERROR ;;
    HAVEFUNC_SNPRINTF) echo $NETWIBDEF_HAVEFUNC_SNPRINTF ;;
    HAVEFUNC_PCAP_FREECODE) echo $NETWIBDEF_HAVEFUNC_PCAP_FREECODE ;;
    HAVEFUNC_PCAP_FREECODE2) echo $NETWIBDEF_HAVEFUNC_PCAP_FREECODE2 ;;
    HAVEFUNC_PCAP_OPENDEAD) echo $NETWIBDEF_HAVEFUNC_PCAP_OPENDEAD ;;
    HAVEFUNC_POLL) echo $NETWIBDEF_HAVEFUNC_POLL ;;
    HAVEFUNC_PATHCONF) echo $NETWIBDEF_HAVEFUNC_PATHCONF ;;
    HAVEFUNC_SYSCONF) echo $NETWIBDEF_HAVEFUNC_SYSCONF ;;
    HAVEFUNC_GETPAGESIZE) echo $NETWIBDEF_HAVEFUNC_GETPAGESIZE ;;
    HAVEFUNC_GETRLIMIT) echo $NETWIBDEF_HAVEFUNC_GETRLIMIT ;;
    HAVEFUNC_NANOSLEEP) echo $NETWIBDEF_HAVEFUNC_NANOSLEEP ;;
    HAVEFUNC_USLEEP) echo $NETWIBDEF_HAVEFUNC_USLEEP ;;
    HAVEFUNC_GETTIMEOFDAY) echo $NETWIBDEF_HAVEFUNC_GETTIMEOFDAY ;;
    HAVEFUNC_CLOCK_GETTIME) echo $NETWIBDEF_HAVEFUNC_CLOCK_GETTIME ;;
    HAVEFUNC_PTHREAD_MUTEX_TIMEDLOCK) echo $NETWIBDEF_HAVEFUNC_PTHREAD_MUTEX_TIMEDLOCK ;;
    HAVEFUNC_PTHREAD_RWLOCK_TIMEDRDLOCK) echo $NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDRDLOCK ;;
    HAVEFUNC_PTHREAD_RWLOCK_TIMEDWRLOCK) echo $NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDWRLOCK ;;
    HAVEFUNC_PTHREAD_YIELD) echo $NETWIBDEF_HAVEFUNC_PTHREAD_YIELD ;;
    HAVEFUNC_SCHED_YIELD) echo $NETWIBDEF_HAVEFUNC_SCHED_YIELD ;;
    HAVEFUNC_GETPWNAM_R) echo $NETWIBDEF_HAVEFUNC_GETPWNAM_R ;;
    HAVEFUNC_GETGRNAM_R) echo $NETWIBDEF_HAVEFUNC_GETGRNAM_R ;;
    HAVEFUNC_GETGRGID_R) echo $NETWIBDEF_HAVEFUNC_GETGRGID_R ;;
    HAVEFUNC_READDIR_R) echo $NETWIBDEF_HAVEFUNC_READDIR_R ;;
    HAVEFUNC_GETHOSTBYNAME_R) echo $NETWIBDEF_HAVEFUNC_GETHOSTBYNAME_R ;;
    HAVEFUNC_GETHOSTBYADDR_R) echo $NETWIBDEF_HAVEFUNC_GETHOSTBYADDR_R ;;
    HAVEFUNC_GETNAMEINFO) echo $NETWIBDEF_HAVEFUNC_GETNAMEINFO ;;
    HAVEFUNC_GETADDRINFO) echo $NETWIBDEF_HAVEFUNC_GETADDRINFO ;;
    HAVEFUNC_GETIPNODEBYNAME) echo $NETWIBDEF_HAVEFUNC_GETIPNODEBYNAME ;;
    HAVEFUNC_GETIPNODEBYADDR) echo $NETWIBDEF_HAVEFUNC_GETIPNODEBYADDR ;;
    HAVEFUNC_LOCALTIME_R) echo $NETWIBDEF_HAVEFUNC_LOCALTIME_R ;;
    HAVEVAR_HERRNO) echo $NETWIBDEF_HAVEVAR_HERRNO ;;
    HAVEVAR_PATH_MAX) echo $NETWIBDEF_HAVEVAR_PATH_MAX ;;
    HAVEVAR_NAME_MAX) echo $NETWIBDEF_HAVEVAR_NAME_MAX ;;
    HAVEVAR_PAGE_SIZE) echo $NETWIBDEF_HAVEVAR_PAGE_SIZE ;;
    HAVEVAR_PAGESIZE) echo $NETWIBDEF_HAVEVAR_PAGESIZE ;;
    HAVEVAR_BIOCSHDRCMPLT) echo $NETWIBDEF_HAVEVAR_BIOCSHDRCMPLT;;
    HAVEVAR_SIOCGLIFCONF) echo $NETWIBDEF_HAVEVAR_SIOCGLIFCONF;;
    HAVEVAR_AF_INET6) echo $NETWIBDEF_HAVEVAR_AF_INET6;;
    HAVEVAR_SC_GETPW_R_SIZE_MAX) echo $NETWIBDEF_HAVEVAR_SC_GETPW_R_SIZE_MAX;;
    HAVEVAR_SC_GETGR_R_SIZE_MAX) echo $NETWIBDEF_HAVEVAR_SC_GETGR_R_SIZE_MAX;;
  esac
}

# we need at least one parameter
if test \$# -eq 0; then
  usage \$0 1   1>&2
fi

# get all parameters
while test \$# -gt 0; do
  case \$1 in
    -v | --version)
      echo_v=yes
      ;;
    -c | --cflags)
      echo_c=yes
      ;;
    -l | --libs)
      echo_l=yes
      ;;
    -cl | -lc)
      echo_c=yes
      echo_l=yes
      ;;
    -d | --def | --define)
      if test \$# -ne 2; then
        usage \$0 3   1>&2
      fi
      adefine \$2
      exit
      ;;
    *)
      usage \$0 2   1>&2
  esac
  shift
done

# print version, and exit
if test "\$echo_v" = "yes"; then
  echo "$NETWIBDEF_VERSION"
  exit 0
fi

EOF

echo "#initialize printed variables" >> $netwibconfig

# if NETWIBDEF_INSTINCLUDE==/usr/include, do not add it
if test $NETWIBDEF_INSTINCLUDE = "/usr/include" ; then
  echo "#NETWIBDEF_INSTINCLUDE==/usr/include, do not add it" >> $netwibconfig
  echo "echo_c=no" >> $netwibconfig
else
  echo "echo_c_=\"-I$NETWIBDEF_INSTINCLUDE\"" >> $netwibconfig
fi

# if NETWIBDEF_INSTLIB==/usr/lib, do not add it
commonv="-lnetwib $gccLib"
if test $NETWIBDEF_INSTLIB = "/usr/lib" ; then
  echo "echo_l_=\"$commonv\"" >> $netwibconfig
else
  echo "echo_l_=\"-L$NETWIBDEF_INSTLIB $commonv\"" >> $netwibconfig
fi

cat >> $netwibconfig <<EOF

# choose what to display
if test "\$echo_c" = "yes"; then
  if test "\$echo_l" = "yes"; then
    echo_c=no
    echo_l=no
    echo_cl=yes
  fi
fi

# display include
if test "\$echo_c" = "yes"; then
  echo "\$echo_c_"
fi

# display library
if test "\$echo_l" = "yes"; then
  echo "\$echo_l_"
fi

# display include and library
if test "\$echo_cl" = "yes"; then
  echo "\$echo_c_ \$echo_l_"
fi

EOF

chmod +x $netwibconfig


#########
echo " Creation of Makefile"

case $NETWIBDEF_SYSNAME in
 "FreeBSD" )
    txtldconf="You might need to add \$(INSTLIB) in the variable ldconfig_paths of /etc/rc.conf, or in the variable LD_LIBRARY_PATH, or run \"ldconfig -R \$(INSTLIB)\""
    ;;
 "Linux" )
    txtldconf="You might need to add \$(INSTLIB) in /etc/ld.so.conf, and run ldconfig"
    ;;
 "MacOS" )
    txtldconf="Check if dynamic libraries in directory \$(INSTLIB) are used"
    ;;
 "OpenBSD" )
    txtldconf="You might need to add \$(INSTLIB) in the variable shlib_dirs of /etc/rc.conf, or in the variable LD_LIBRARY_PATH, or run \"ldconfig -R \$(INSTLIB)\""
    ;;
 "NetBSD" )
    txtldconf="You might need to add \$(INSTLIB) in the variable shlib_dirs of /etc/rc.conf, or in the variable LD_LIBRARY_PATH, or run \"ldconfig -R \$(INSTLIB)\""
    ;;
 "Solaris" )
    txtldconf="You might need to add \$(INSTLIB) in the variable LD_LIBRARY_PATH."
    ;;
 "HPUX" )
    txtldconf="You might need to add \$(INSTLIB) in the variable LD_LIBRARY_PATH."
    ;;
 "Tru64UNIX" )
    txtldconf="You might need to add \$(INSTLIB) in the variable LD_LIBRARY_PATH."
    ;;
 "Unsupported" )
    txtldconf="Check if dynamic libraries in directory \$(INSTLIB) are used"
    ;;
 * )
    echo "Error: unknown NETWIBDEF_SYSNAME";
    exit ;;
esac

txtinsta="OK - You can now install libnetwib.a with 'make install'"
txtinstso="OK - You can now install libnetwib.so with 'make installso'"
txtinstox="OK - You can now download and install netwox"
txtldconf=$txtldconf


cat > Makefile <<EOF
#----------------------------------------------------------------------
# This file was generated with ./genemake

#----------------------------------------------------------------------
# variables which can be modified
CC=$NETWIBDEF_PROGCC
AR=$NETWIBDEF_PROGAR
RANLIB=$NETWIBDEF_PROGRANLIB
INSTINCLUDE=$NETWIBDEF_INSTINCLUDE
INSTLIB=$NETWIBDEF_INSTLIB
INSTBIN=$NETWIBDEF_INSTBIN
INSTMAN1=$NETWIBDEF_INSTMAN1
INSTMAN3=$NETWIBDEF_INSTMAN3
INSTUSERGROUP=$NETWIBDEF_INSTUSER:$NETWIBDEF_INSTGROUP

GCCOPTa=-g -Wtraditional -pedantic -W
GCCOPTb=-Wshadow -Wpointer-arith -Wundef -Wsign-compare
GCCOPTc=-Wwrite-strings -Wcast-align -Wstrict-prototypes -Wcast-qual
GCCOPTd=-Wnested-externs
GCCOPTe=-Wmissing-prototypes
GCCOPTf=-Wbad-function-cast
GCCOPTg=-Werror
GCCOPTh=-Wmissing-declarations
GCCOPTy=\$(GCCOPTa) \$(GCCOPTb) \$(GCCOPTc) \$(GCCOPTd)
GCCOPTz=\$(GCCOPTe) \$(GCCOPTf) \$(GCCOPTg) \$(GCCOPTh)
EOF

if [ $argone = "test" ] ; then
  echo "#GCCOPT=$gccOpt" >> Makefile
  echo "GCCOPT=$gccOpt \$(GCCOPTy) \$(GCCOPTz)" >> Makefile
else
  echo "#GCCOPT=$gccOpt \$(GCCOPTy) \$(GCCOPTz)" >> Makefile
  echo "GCCOPT=-O2 $gccOpt" >> Makefile
fi

cat >> Makefile <<EOF
GCCOPTPIC=$gccOptPic
GCCOPTSO=$gccOptSo

GCCINC=$gccInc

GCCLIB=$gccLib


#----------------------------------------------------------------------

# we want ...
all: libnetwib.a
EOF

#########
echo "" >> Makefile
echo "# dependence list" >> Makefile
echo "NETWIBSRC=./" >> Makefile
cat compil/unix/filedep >> Makefile

#########
echo "" >> Makefile
cat compil/unix/incmake >> Makefile

#########

cat >> Makefile <<EOF

# creation of the library
libnetwib.a: \$(INCMAKEOBJ)
	\$(AR) -cr libnetwib.a \$(INCMAKEOBJ)
	\$(RANLIB) libnetwib.a
	@echo ""
EOF
if [ $argone != "test" ] ; then
  echo "	@echo \"$txtinsta\"" >> Makefile
fi
cat >> Makefile <<EOF

libnetwib.so: \$(INCMAKELOBJ)
	\$(CC) -o libnetwib.so \$(GCCOPTSO) \$(INCMAKELOBJ)
	@echo ""
	@echo "$txtinstso"

install.a: libnetwib.a
	cp libnetwib.a \$(INSTLIB)/libnetwib$netwv.a
	\$(RANLIB) \$(INSTLIB)/libnetwib$netwv.a
	chown \$(INSTUSERGROUP) \$(INSTLIB)/libnetwib$netwv.a
	chmod 444 \$(INSTLIB)/libnetwib$netwv.a
	rm -f \$(INSTLIB)/libnetwib.a
	ln -s libnetwib$netwv.a \$(INSTLIB)/libnetwib.a
	chown \$(INSTUSERGROUP) \$(INSTLIB)/libnetwib.a
	@echo ""

install.so: libnetwib.so
	cp libnetwib.so \$(INSTLIB)/libnetwib$netwv.so
	chown \$(INSTUSERGROUP) \$(INSTLIB)/libnetwib$netwv.so
	chmod 444 \$(INSTLIB)/libnetwib$netwv.so
	rm -f \$(INSTLIB)/libnetwib.so
	ln -s libnetwib$netwv.so \$(INSTLIB)/libnetwib.so
	chown \$(INSTUSERGROUP) \$(INSTLIB)/libnetwib.so
	@echo ""
	@echo "$txtldconf"

installnetwibconfig:
	cp compil/unix/netwib-config \$(INSTBIN)/netwib$netwv-config
	chown \$(INSTUSERGROUP) \$(INSTBIN)/netwib$netwv-config
	chmod 555 \$(INSTBIN)/netwib$netwv-config
	rm -f \$(INSTBIN)/netwib-config
	ln -s netwib$netwv-config \$(INSTBIN)/netwib-config
	chown \$(INSTUSERGROUP) \$(INSTBIN)/netwib-config

incmakeinstallman:
	cp ../doc/netwib.3 \$(INSTMAN3)/netwib$netwv.3
	chown \$(INSTUSERGROUP) \$(INSTMAN3)/netwib$netwv.3
	chmod 444 \$(INSTMAN3)/netwib$netwv.3
	rm -f \$(INSTMAN3)/netwib.3
	ln -s netwib$netwv.3 \$(INSTMAN3)/netwib.3
	chown \$(INSTUSERGROUP) \$(INSTMAN3)/netwib.3

installcommon: incmakeinstallinc incmakeinstallman installnetwibconfig

# install : to do when everything is yes
install: installcommon install.a
	@echo ""
	@echo "$txtinstox"

installso: installcommon install.so
	@echo ""
	@echo "$txtinstox"

installall: installcommon install.a install.so
	@echo ""
	@echo "$txtinstox"

# uninstallation
uninstall:
	@echo "Several versions of netwib can be installed on the same system."
	@echo "I left you remove exactly the version you want to remove :"
	@echo "  \$(INSTLIB)/libnetwib*"
	@echo "  \$(INSTINCLUDE)/netwib*"
	@echo "  \$(INSTBIN)/netwib*-config"
	@echo "  \$(INSTMAN3)/netwib*.3"
	@echo "If you are SURE about what you do, you can for example enter :"
	@echo "  rm -rf \$(INSTLIB)/libnetwib*"
	@echo "  rm -rf \$(INSTINCLUDE)/netwib*"
	@echo "  rm -rf \$(INSTBIN)/netwib*-config"
	@echo "  rm -rf \$(INSTMAN3)/netwib*.3"

# cleaning
clean: incmakecleanobj incmakecleanlobj
	rm -f libnetwib.a
	rm -f libnetwib.so

cleanall: clean
	rm -f $deffile
	rm -f Makefile
	rm -f compil/unix/netwib-config

EOF


########################################################################
########################################################################
if [ $argone != "test" ] ; then
echo "Conclusion"
echo "  We will compile with option :"
echo "    NETWIBDEF_SYSNAME=\"$NETWIBDEF_SYSNAME\""
echo "    NETWIBDEF_SYSARCH=\"$NETWIBDEF_SYSARCH\""
case $NETWIBDEF_SYSARCH in
 Unsupported* )
  if [ $NETWIBDEF_ARCH_ENDIAN -eq 0 ] ; then
    echo "     |-> NETWIBDEF_ARCH_ENDIAN=little_endian (i386, ia64, alpha)"
  fi
  if [ $NETWIBDEF_ARCH_ENDIAN -eq 1 ] ; then
    echo "     |-> NETWIBDEF_ARCH_ENDIAN=big_endian (sparc, powerpc)"
  fi
  echo "     +-> NETWIBDEF_ARCH_BITS=$NETWIBDEF_ARCH_BITS bits"
  ;;
esac
echo "  On a system :"
echo "    system   : "`(uname -s) 2>/dev/null`
echo "    release  : "`(uname -r) 2>/dev/null`
echo "    hardware : "`(uname -m) 2>/dev/null`
echo "  If it is not ok, look at INSTALLUNIX.TXT, then edit config.dat."

echo "End of genemake"
echo ""
echo "OK - You can now compile with 'make'"
fi
