:

# Define the variables. Edit config.dat if you want to make changes.
# Appel de toutes les variables modifiables par l'utilisateur.
# C'est donc dans config.dat que vous devez faire vos modifications.
. ./config.dat
. ./version.sh


########################################################################
echo "Language selection - selection de langue"
if [ $LCRZODEF_LANG = 1 ] ; then
  echo " English - Anglais"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo " Francais - French"
else
  echo "Error : Unknown language : verify LCRZODEF_LANG"
  echo "Erreur : Langue inconnue : verifiez LCRZODEF_LANG"
  exit
fi


########################################################################
if [ $LCRZODEF_LANG = 1 ] ; then
  echo "System selection"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo "Selection du systeme"
fi

case $LCRZODEF_SYS in
 "FreeBSD_3_i386" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="FreeBSD"
    LCRZODEF_SYSVER="FreeBSD_3"
    LCRZODEF_SYSTEMVERS="3"
    LCRZODEF_SYSTEMARCH="i386"
    ;;
 "FreeBSD_4_i386" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="FreeBSD"
    LCRZODEF_SYSVER="FreeBSD_4"
    LCRZODEF_SYSTEMVERS="4"
    LCRZODEF_SYSTEMARCH="i386"
    ;;
 "FreeBSD_4_alpha" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="FreeBSD"
    LCRZODEF_SYSVER="FreeBSD_4"
    LCRZODEF_SYSTEMVERS="4"
    LCRZODEF_SYSTEMARCH="alpha"
    ;;
 "Linux_X_i386" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="Linux"
    LCRZODEF_SYSVER="Linux_X"
    LCRZODEF_SYSTEMVERS="X"
    LCRZODEF_SYSTEMARCH="i386"
    ;;
 "Linux_X_ia64" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="Linux"
    LCRZODEF_SYSVER="Linux_X"
    LCRZODEF_SYSTEMVERS="X"
    LCRZODEF_SYSTEMARCH="ia64"
    ;;
 "Linux_X_alpha" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="Linux"
    LCRZODEF_SYSVER="Linux_X"
    LCRZODEF_SYSTEMVERS="X"
    LCRZODEF_SYSTEMARCH="alpha"
    ;;
 "MacOS_10_ppc" )
    LCRZODEF_ENDIANLITTLE=0
    LCRZODEF_ENDIANBIG=1
    LCRZODEF_SYSTEM="MacOS"
    LCRZODEF_SYSVER="MacOS_10"
    LCRZODEF_SYSTEMVERS="10"
    LCRZODEF_SYSTEMARCH="ppc"
    ;;
 "OpenBSD_27_i386" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="OpenBSD"
    LCRZODEF_SYSVER="OpenBSD_27"
    LCRZODEF_SYSTEMVERS="27"
    LCRZODEF_SYSTEMARCH="i386"
    ;;
 "OpenBSD_28_i386" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="OpenBSD"
    LCRZODEF_SYSVER="OpenBSD_28"
    LCRZODEF_SYSTEMVERS="28"
    LCRZODEF_SYSTEMARCH="i386"
    ;;
 "OpenBSD_29_i386" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="OpenBSD"
    LCRZODEF_SYSVER="OpenBSD_29"
    LCRZODEF_SYSTEMVERS="29"
    LCRZODEF_SYSTEMARCH="i386"
    ;;
 "OpenBSD_30_i386" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="OpenBSD"
    LCRZODEF_SYSVER="OpenBSD_30"
    LCRZODEF_SYSTEMVERS="30"
    LCRZODEF_SYSTEMARCH="i386"
    ;;
 "OpenBSD_30_alpha" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="OpenBSD"
    LCRZODEF_SYSVER="OpenBSD_30"
    LCRZODEF_SYSTEMVERS="30"
    LCRZODEF_SYSTEMARCH="alpha"
    ;;
 "Solaris_24_sparc" )
    LCRZODEF_ENDIANLITTLE=0
    LCRZODEF_ENDIANBIG=1
    LCRZODEF_SYSTEM="Solaris"
    LCRZODEF_SYSVER="Solaris_24"
    LCRZODEF_SYSTEMVERS="24"
    LCRZODEF_SYSTEMARCH="sparc"
    ;;
 "Solaris_25_sparc" )
    LCRZODEF_ENDIANLITTLE=0
    LCRZODEF_ENDIANBIG=1
    LCRZODEF_SYSTEM="Solaris"
    LCRZODEF_SYSVER="Solaris_25"
    LCRZODEF_SYSTEMVERS="25"
    LCRZODEF_SYSTEMARCH="sparc"
    ;;
 "Solaris_26_sparc" )
    LCRZODEF_ENDIANLITTLE=0
    LCRZODEF_ENDIANBIG=1
    LCRZODEF_SYSTEM="Solaris"
    LCRZODEF_SYSVER="Solaris_26"
    LCRZODEF_SYSTEMVERS="26"
    LCRZODEF_SYSTEMARCH="sparc"
    ;;
 "Solaris_27_i386" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="Solaris"
    LCRZODEF_SYSVER="Solaris_27"
    LCRZODEF_SYSTEMVERS="27"
    LCRZODEF_SYSTEMARCH="i386"
    ;;
 "Solaris_27_sparc" )
    LCRZODEF_ENDIANLITTLE=0
    LCRZODEF_ENDIANBIG=1
    LCRZODEF_SYSTEM="Solaris"
    LCRZODEF_SYSVER="Solaris_27"
    LCRZODEF_SYSTEMVERS="27"
    LCRZODEF_SYSTEMARCH="sparc"
    ;;
 "Solaris_28_i386" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="Solaris"
    LCRZODEF_SYSVER="Solaris_28"
    LCRZODEF_SYSTEMVERS="28"
    LCRZODEF_SYSTEMARCH="i386"
    ;;
 "Solaris_28_sparc" )
    LCRZODEF_ENDIANLITTLE=0
    LCRZODEF_ENDIANBIG=1
    LCRZODEF_SYSTEM="Solaris"
    LCRZODEF_SYSVER="Solaris_28"
    LCRZODEF_SYSTEMVERS="28"
    LCRZODEF_SYSTEMARCH="sparc"
    ;;
 "Unsupported_0_i386" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="Unsupported"
    LCRZODEF_SYSVER="Unsupported_0"
    LCRZODEF_SYSTEMVERS="0"
    LCRZODEF_SYSTEMARCH="i386"
    ;;
 "Unsupported_0_ia64" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="Unsupported"
    LCRZODEF_SYSVER="Unsupported_0"
    LCRZODEF_SYSTEMVERS="0"
    LCRZODEF_SYSTEMARCH="ia64"
    ;;
 "Unsupported_0_alpha" )
    LCRZODEF_ENDIANLITTLE=1
    LCRZODEF_ENDIANBIG=0
    LCRZODEF_SYSTEM="Unsupported"
    LCRZODEF_SYSVER="Unsupported_0"
    LCRZODEF_SYSTEMVERS="0"
    LCRZODEF_SYSTEMARCH="alpha"
    ;;
 "Unsupported_0_sparc" )
    LCRZODEF_ENDIANLITTLE=0
    LCRZODEF_ENDIANBIG=1
    LCRZODEF_SYSTEM="Unsupported"
    LCRZODEF_SYSVER="Unsupported_0"
    LCRZODEF_SYSTEMVERS="0"
    LCRZODEF_SYSTEMARCH="sparc"
    ;;
 "Unsupported_0_ppc" )
    LCRZODEF_ENDIANLITTLE=0
    LCRZODEF_ENDIANBIG=1
    LCRZODEF_SYSTEM="Unsupported"
    LCRZODEF_SYSVER="Unsupported_0"
    LCRZODEF_SYSTEMVERS="0"
    LCRZODEF_SYSTEMARCH="ppc"
    ;;
 * )
    if [ $LCRZODEF_LANG = 1 ] ; then
      echo "Error: unknown LCRZODEF_SYS";
    elif [ $LCRZODEF_LANG = 2 ] ; then
      echo "Erreur: LCRZODEF_SYS inconnu";
    fi
    exit ;;
esac


########################################################################
if [ $LCRZODEF_LANG = 1 ] ; then
  echo "Program selection"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo "Selection des programmes"
fi

case $LCRZODEF_SYSTEM in
 "FreeBSD" )
    LCRZODEF_PROGCC=gcc
    LCRZODEF_PROGAR=ar
    LCRZODEF_PROGRANLIB=ranlib
    ;;
 "Linux" )
    LCRZODEF_PROGCC=gcc
    LCRZODEF_PROGAR=ar
    LCRZODEF_PROGRANLIB=ranlib
    ;;
 "MacOS" )
    LCRZODEF_PROGCC=gcc
    LCRZODEF_PROGAR=ar
    LCRZODEF_PROGRANLIB=ranlib
    ;;
 "OpenBSD" )
    LCRZODEF_PROGCC=gcc
    LCRZODEF_PROGAR=ar
    LCRZODEF_PROGRANLIB=ranlib
    ;;
 "Solaris" )
    LCRZODEF_PROGCC=gcc
    LCRZODEF_PROGAR=ar
    LCRZODEF_PROGRANLIB=ranlib
    ;;
 "Unsupported" )
    LCRZODEF_PROGCC=gcc
    LCRZODEF_PROGAR=ar
    LCRZODEF_PROGRANLIB=ranlib
    ;;
 * )
    if [ $LCRZODEF_LANG = 1 ] ; then
      echo "Error: unknown LCRZODEF_SYSTEM";
    elif [ $LCRZODEF_LANG = 2 ] ; then
      echo "Erreur: LCRZODEF_SYSTEM inconnu";
    fi
    exit ;;
esac

type $LCRZODEF_PROGCC 2> /dev/null 1> /dev/null
if [ "$?Z" != "0Z" ] ; then
  if [ $LCRZODEF_LANG = 1 ] ; then
    echo "Error: the compiler '$LCRZODEF_PROGCC' wasn't found"
  elif [ $LCRZODEF_LANG = 2 ] ; then
    echo "Erreur: le compilateur '$LCRZODEF_PROGCC' n'a pas ete trouve"
  fi
  exit
else
  echo " $LCRZODEF_PROGCC ok"
fi

type $LCRZODEF_PROGAR 2> /dev/null 1> /dev/null
if [ "$?Z" != "0Z" ] ; then
  if [ $LCRZODEF_LANG = 1 ] ; then
    echo "Erreur: the archive program '$LCRZODEF_PROGAR' wasn't found"
  elif [ $LCRZODEF_LANG = 2 ] ; then
    echo "Erreur: l'archiveur '$LCRZODEF_PROGAR' n'a pas ete trouve"
  fi
  exit
else
  echo " $LCRZODEF_PROGAR ok"
fi

type $LCRZODEF_PROGRANLIB 2> /dev/null 1> /dev/null
if [ "$?Z" != "0Z" ] ; then
  if [ $LCRZODEF_LANG = 1 ] ; then
    echo "Erreur: the '$LCRZODEF_PROGRANLIB' program wasn't found"
    echo "You may want to use 'ar -s' instead"
  elif [ $LCRZODEF_LANG = 2 ] ; then
    echo "Erreur: le programme '$LCRZODEF_PROGRANLIB' n'a pas ete trouve"
  fi
  exit
else
  echo " $LCRZODEF_PROGRANLIB ok"
fi


########################################################################
if [ $LCRZODEF_LANG = 1 ] ; then
  echo "Directory selection"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo "Selection des repertoires"
fi

case $LCRZODEF_SYSTEM in
 "FreeBSD" )
    LCRZODEF_INSTINCLUDE=/usr/local/include
    LCRZODEF_INSTLIB=/usr/local/lib
    LCRZODEF_INSTBIN=/usr/local/bin
    LCRZODEF_INSTMAN1=/usr/local/man/man1
    LCRZODEF_INSTMAN3=/usr/local/man/man3
    ;;
 "Linux" )
    LCRZODEF_INSTINCLUDE=/usr/local/include
    LCRZODEF_INSTLIB=/usr/local/lib
    LCRZODEF_INSTBIN=/usr/local/bin
    LCRZODEF_INSTMAN1=/usr/local/man/man1
    LCRZODEF_INSTMAN3=/usr/local/man/man3
    ;;
 "MacOS" )
    LCRZODEF_INSTINCLUDE=/usr/local/include
    LCRZODEF_INSTLIB=/usr/local/lib
    LCRZODEF_INSTBIN=/usr/local/bin
    LCRZODEF_INSTMAN1=/usr/share/man/man1
    LCRZODEF_INSTMAN3=/usr/share/man/man3
    ;;
 "OpenBSD" )
    LCRZODEF_INSTINCLUDE=/usr/local/include
    LCRZODEF_INSTLIB=/usr/local/lib
    LCRZODEF_INSTBIN=/usr/local/bin
    LCRZODEF_INSTMAN1=/usr/local/man/man1
    LCRZODEF_INSTMAN3=/usr/local/man/man3
    ;;
 "Solaris" )
    LCRZODEF_INSTINCLUDE=/usr/local/include
    LCRZODEF_INSTLIB=/usr/local/lib
    LCRZODEF_INSTBIN=/usr/local/bin
    LCRZODEF_INSTMAN1=/usr/local/man/man1
    LCRZODEF_INSTMAN3=/usr/local/man/man3
    ;;
 "Unsupported" )
    LCRZODEF_INSTINCLUDE=/usr/local/include
    LCRZODEF_INSTLIB=/usr/local/lib
    LCRZODEF_INSTBIN=/usr/local/bin
    LCRZODEF_INSTMAN1=/usr/local/man/man1
    LCRZODEF_INSTMAN3=/usr/local/man/man3
    ;;
 * )
    if [ $LCRZODEF_LANG = 1 ] ; then
      echo "Error: unknown LCRZODEF_SYSTEM";
    elif [ $LCRZODEF_LANG = 2 ] ; then
      echo "Erreur: LCRZODEF_SYSTEM inconnu";
    fi
    exit ;;
esac

if [ ! -d $LCRZODEF_INSTINCLUDE ] ; then
  if [ $LCRZODEF_LANG = 1 ] ; then
    echo "Error: the include directory '$LCRZODEF_INSTINCLUDE' doesn't exists"
  elif [ $LCRZODEF_LANG = 2 ] ; then
    echo "Erreur: le repertoire d'include '$LCRZODEF_INSTINCLUDE' n'existe pas"
  fi
  exit
else
  echo " $LCRZODEF_INSTINCLUDE ok"
fi
if [ ! -d $LCRZODEF_INSTLIB ] ; then
  if [ $LCRZODEF_LANG = 1 ] ; then
    echo "Error: the library directory '$LCRZODEF_INSTLIB' doesn't exists"
  elif [ $LCRZODEF_LANG = 2 ] ; then
    echo "Erreur: le repertoire de biblio. '$LCRZODEF_INSTLIB' n'existe pas"
  fi 
  exit
else
  echo " $LCRZODEF_INSTLIB ok"
fi
if [ ! -d $LCRZODEF_INSTBIN ] ; then
  if [ $LCRZODEF_LANG = 1 ] ; then
    echo "Error: the binary directory '$LCRZODEF_INSTBIN' doesn't exists"
  elif [ $LCRZODEF_LANG = 2 ] ; then
    echo "Erreur: le repertoire de binaire '$LCRZODEF_INSTBIN' n'existe pas"
  fi
  exit
else
  echo " $LCRZODEF_INSTBIN ok"
  foundit=`echo $PATH | grep $LCRZODEF_INSTBIN | wc -l`
  if [ $foundit -ne 1 ] ; then
    if [ $LCRZODEF_LANG = 1 ] ; then
      echo "Warning: the directory '$LCRZODEF_INSTBIN' is not in the PATH"
      echo "To execute any lcrzo program, you'll have to run '$LCRZODEF_INSTBIN/program' instead of 'program'. For example '$LCRZODEF_INSTBIN/lcrzo-config' instead of 'lcrzo-config'."
      echo "Press enter to continue"
    elif [ $LCRZODEF_LANG = 2 ] ; then
      echo "Warning: le repertoire '$LCRZODEF_INSTBIN' n'est pas dans le PATH"
      echo "Pour executer un programme de lcrzo, vous devrez entrer '$LCRZODEF_INSTBIN/programme' au lieu de 'programme'. Par exemple '$LCRZODEF_INSTBIN/lcrzo-config' au lieu de 'lcrzo-config'."
      echo "Pressez entree pour continuer"
    fi
    read toto
  fi
fi
if [ ! -d $LCRZODEF_INSTMAN1 ] ; then
  if [ $LCRZODEF_LANG = 1 ] ; then
    echo "Error: the help directory '$LCRZODEF_INSTMAN1' doesn't exists"
  elif [ $LCRZODEF_LANG = 2 ] ; then
    echo "Erreur: le repertoire d'aide '$LCRZODEF_INSTMAN1' n'existe pas"
  fi
  exit
else
  echo " $LCRZODEF_INSTMAN1 ok"
fi
if [ ! -d $LCRZODEF_INSTMAN3 ] ; then
  if [ $LCRZODEF_LANG = 1 ] ; then
    echo "Error: the help directory '$LCRZODEF_INSTMAN3' doesn't exists"
  elif [ $LCRZODEF_LANG = 2 ] ; then
    echo "Erreur: le repertoire d'aide '$LCRZODEF_INSTMAN3' n'existe pas"
  fi
  exit
else
  echo " $LCRZODEF_INSTMAN3 ok"
fi

########################################################################

lcrzovsov=liblcrzo$LCRZODEF_VERSIONMAJOR.so.$LCRZODEF_VERSIONMINOR
lcrzovso=liblcrzo$LCRZODEF_VERSIONMAJOR.so
lcrzoso=liblcrzo.so

########################################################################
if [ $LCRZODEF_LANG = 1 ] ; then
  echo "Compilation options selection"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo "Selection des options de compilation"
fi

case $LCRZODEF_SYSTEM in
 "FreeBSD" )
    gccOpt="-Wall -ansi"
    gccPic="-fpic"
    gccShared="-shared -Xlinker \"-h$lcrzovso\""
    ;;
 "Linux" )
    gccOpt="-Wall -ansi"
    gccPic="-fpic"
    gccShared="-shared -Xlinker \"-h$lcrzovso\""
    ;;
 "MacOS" )
    gccOpt="-Wall -ansi"
    gccPic="-fpic"
    gccShared="-shared -Xlinker \"-h$lcrzovso\""
    ;;
 "OpenBSD" )
    gccOpt="-Wall -ansi"
    gccPic="-fpic"
    gccShared="-shared"
    ;;
 "Solaris" )
    gccOpt="-Wall -ansi"
    gccPic="-fpic"
    gccShared="-shared -Xlinker \"-h$lcrzovso\""
    ;;
 "Unsupported" )
    gccOpt="-Wall -ansi"
    gccPic="-fpic"
    gccShared="-shared -Xlinker \"-h$lcrzovso\""
    ;;
 * )
    if [ $LCRZODEF_LANG = 1 ] ; then
      echo "Error: unknown LCRZODEF_SYSTEM";
    elif [ $LCRZODEF_LANG = 2 ] ; then
      echo "Erreur: LCRZODEF_SYSTEM inconnu";
    fi
    exit ;;
esac


########################################################################
if [ $LCRZODEF_LANG = 1 ] ; then
  echo "Library selection"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo "Selection des bibliotheques"
fi


case $LCRZODEF_SYSTEM in
 "FreeBSD" )
    gccLib=""
    ;;
 "Linux" )
    gccLib=""
    ;;
 "MacOS" )
    gccLib=""
    ;;
 "OpenBSD" )
    gccLib=""
    ;;
 "Solaris" )
    gccLib="-lsocket -lnsl"
    ;;
 "Unsupported" )
    gccLib=""
    ;;
 * )
    if [ $LCRZODEF_LANG = 1 ] ; then
      echo "Error: unknown LCRZODEF_SYSTEM";
    elif [ $LCRZODEF_LANG = 2 ] ; then
      echo "Erreur: LCRZODEF_SYSTEM inconnu";
    fi
    exit ;;
esac

#---------
# we have libpcap - disponibilite de libpcap
gccOptLibpcap="$gccOpt"
LCRZODEF_LIBPCAPFROMREDHAT=0
if [ $LCRZODEF_LIBPCAPINSTALLED = 1 ] ; then
  if [ -d /usr/include/pcap/ ] ; then
    if [ $LCRZODEF_LANG = 1 ] ; then
      echo " /usr/include/pcap/ exists"
    else
      echo " /usr/include/pcap/ existe"
    fi 
    gccPcapInc="-I/usr/include/pcap/"
    gccOptLibpcap="$gccOptLibpcap $gccPcapInc"
    LCRZODEF_LIBPCAPFROMREDHAT=1
  else
    gccPcapInc=""
  fi
  gccLib="$gccLib -lpcap"
  # on tente de compiler le programme factice suivant
  cat > config.verif.tmp.c <<EOF
   #include <pcap.h>
   int main(void);
   int main(void)
   { char e[1000];
     void * t;
     t = pcap_open_live(e, 0, 0, 0, e);
     return(0);
   }
EOF
  commande_compil="$LCRZODEF_PROGCC -o config.verif.tmp config.verif.tmp.c $gccPcapInc $gccLib"
  $commande_compil 2> config.verif.tmp.err 1> config.verif.tmp.err
  if [ "$?Z" != "0Z" ] ; then
    if [ $LCRZODEF_LANG = 1 ] ; then
      echo "Error: the library libpcap is not installed"
      echo "--------I used the command :"
      echo "  $commande_compil"
      echo "--------I wasn't able to compile the following test :"
      cat config.verif.tmp.c
      echo "--------I got the following errors :"
      cat config.verif.tmp.err
      echo "--------If you do not want to use libpcap, edit config.dat"
      echo "to put inside 'LCRZODEF_LIBPCAPINSTALLED=0'. Then, you will not "
      echo "be able to sniff packets on the wire."
    elif [ $LCRZODEF_LANG = 2 ] ; then
      echo "Erreur: la bibliotheque libpcap ne semble pas installee"
      echo "--------J'ai utilise la commande :"
      echo "  $commande_compil"
      echo "--------Je n'ai pas pu compiler le programme de test suivant :"
      cat config.verif.tmp.c
      echo "--------J'ai obtenu les erreurs suivantes :"
      cat config.verif.tmp.err
      echo "--------Si vous desirez ne pas utiliser libpcap, editez config.dat"
      echo "pour y mettre 'LCRZODEF_LIBPCAPINSTALLED=0'. Vous ne pourrez "
      echo "alors pas sniffer les paquets du reseau."
    fi
    exit
  else
    echo " libpcap ok"
  fi
  rm -f config.verif.tmp.c config.verif.tmp config.verif.tmp.err 
fi

#---------
# we have libnet - disponibilite de libnet
LCRZODEF_LIBNETINSTALLED=0
gccOptLibnet="$gccOpt"
if [ $LCRZODEF_LIBNETINSTALLED = 1 ] ; then
  gccLib="$gccLib -lnet"
  type libnet-config 2> /dev/null 1> /dev/null
  if [ "$?Z" != "0Z" ] ; then
    if [ $LCRZODEF_LANG = 1 ] ; then
      echo "Warning: the program libnet-config wasn't found"
      echo "         You may encounter problems with libnet."
      echo "Press ENTER to continue."
    elif [ $LCRZODEF_LANG = 2 ] ; then
      echo "Warning: le programme libnet-config n'a pas ete trouve"
      echo "         vous risquez de rencontrer des problemes avec libnet."
      echo "Pressez la touche ENTREE pour continuer."
    fi
    read toto
  else
    echo " libnet-config ok"
    gccOptLibnet="$gccOpt "`libnet-config --defines`
  fi

  # on tente de compiler le programme factice suivant
  cat > config.verif.tmp.c <<EOF
   int libnet_destroy_packet(char **b);
   int main(void);
   int main(void)
   { char ** t;
     libnet_destroy_packet(t);
     return(0);
   }
EOF
  commande_compil="$LCRZODEF_PROGCC -o config.verif.tmp config.verif.tmp.c $gccLib"
  $commande_compil 2> config.verif.tmp.err 1> config.verif.tmp.err
  if [ "$?Z" != "0Z" ] ; then
    if [ $LCRZODEF_LANG = 1 ] ; then
      echo "Error: the library libnet doesn't seemed to be installed"
      echo "--------I used the command :"
      echo "  $commande_compil"
      echo "--------I wasn't able to compile the following test :"
      cat config.verif.tmp.c
      echo "--------I got the following errors :"
      cat config.verif.tmp.err
      echo "--------If you do not want to use libnet, edit config.dat"
      echo "to put inside 'LCRZODEF_LIBPCAPINSTALLED=0'."
    elif [ $LCRZODEF_LANG = 2 ] ; then
      echo "Erreur: la bibliotheque libnet ne semble pas installee"
      echo "--------J'ai utilise la commande :"
      echo "  $commande_compil"
      echo "--------Je n'ai pas pu compiler le programme de test suivant :"
      cat config.verif.tmp.c
      echo "--------J'ai obtenu les erreurs suivantes :"
      cat config.verif.tmp.err
      echo "--------Si vous desirez ne pas utiliser libnet, editez config.dat "
      echo "pour y mettre 'LCRZODEF_LIBNETINSTALLED=0'."
    fi
    exit
  else
    echo " libnet ok"
  fi
  rm -f config.verif.tmp.c config.verif.tmp config.verif.tmp.err 

fi


########################################################################
########################################################################
if [ $LCRZODEF_LANG = 1 ] ; then
  echo "Verify the present types"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo "Verification de la presence de certains types"
fi

#---
# on tente de compiler le programme factice suivant
cat > config.verif.tmp.c <<EOF
 #include <stdlib.h>
 #include <stdio.h>
 #include <unistd.h>
 int main(void);
 int main(void)
 { size_t s;
   return(0);
 }
EOF
commande_compil="$LCRZODEF_PROGCC -o config.verif.tmp config.verif.tmp.c $gccLib"
$commande_compil 2> config.verif.tmp.err 1> config.verif.tmp.err
if [ "$?Z" != "0Z" ] ; then
  echo " size_t ko"
  LCRZODEF_HAVETYPE_SIZE_T=0
else
  echo " size_t ok"
  LCRZODEF_HAVETYPE_SIZE_T=1
fi
rm -f config.verif.tmp.c config.verif.tmp config.verif.tmp.err

#---
# on tente de compiler le programme factice suivant
cat > config.verif.tmp.c <<EOF
 #include <stdlib.h>
 #include <stdio.h>
 #include <unistd.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 int main(void);
 int main(void)
 { socklen_t s;
   return(0);
 }
EOF
commande_compil="$LCRZODEF_PROGCC -o config.verif.tmp config.verif.tmp.c $gccLib"
$commande_compil 2> config.verif.tmp.err 1> config.verif.tmp.err
if [ "$?Z" != "0Z" ] ; then
  echo " socklen_t ko"
  LCRZODEF_HAVETYPE_SOCKLEN_T=0
else
  echo " socklen_t ok"
  LCRZODEF_HAVETYPE_SOCKLEN_T=1
fi
rm -f config.verif.tmp.c config.verif.tmp config.verif.tmp.err


########################################################################
########################################################################
if [ $LCRZODEF_LANG = 1 ] ; then
  echo "Verify the present functions"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo "Verification de la presence de certaines fonctions"
fi

#---
# on tente de compiler le programme factice suivant
cat > config.verif.tmp.c <<EOF
 int ether_ntohost(char *para1, char *para2);
 int main(void);
 int main(void)
 { char p1[10], p2[10];
   ether_ntohost(p1, p2);
   return(0);
 }
EOF
commande_compil="$LCRZODEF_PROGCC -o config.verif.tmp config.verif.tmp.c $gccLib"
$commande_compil 2> config.verif.tmp.err 1> config.verif.tmp.err
if [ "$?Z" != "0Z" ] ; then
  echo " ether_ntohost ko"
  LCRZODEF_HAVEFONC_ETHER_NTOHOST=0
else
  echo " ether_ntohost ok"
  LCRZODEF_HAVEFONC_ETHER_NTOHOST=1
fi
rm -f config.verif.tmp.c config.verif.tmp config.verif.tmp.err

#---
# on tente de compiler le programme factice suivant
cat > config.verif.tmp.c <<EOF
 int ether_hostton(char *para1, char *para2);
 int main(void);
 int main(void)
 { char p1[10], p2[10];
   int t;
   t=strlen("t")+strlen("u"); /*sans cela, pas de bug ...*/
   ether_hostton(p1, p2);
   return(0);
 }
EOF
commande_compil="$LCRZODEF_PROGCC -o config.verif.tmp config.verif.tmp.c $gccLib"
$commande_compil 2> config.verif.tmp.err 1> config.verif.tmp.err
if [ "$?Z" != "0Z" ] ; then
  echo " ether_hostton ko"
  LCRZODEF_HAVEFONC_ETHER_HOSTTON=0
else
  echo " ether_hostton ok"
  ./config.verif.tmp 2> config.verif.tmp.err 1> config.verif.tmp.err
  if [ "$?Z" != "0Z" ] ; then
    echo " exec ether_hostton ko"
    rm -f core
    LCRZODEF_HAVEFONC_ETHER_HOSTTON=0
    if [ $LCRZODEF_LANG = 1 ] ; then
      echo "Warning: you are on a computer with a bad ether_hostton."
      echo "         The library lcrzo will still be usable, but read "
      echo "         ../doc/probleminstallunix_en.txt if you want to"
      echo "         use the file /etc/ethers."
      echo "Press ENTER to continue."
    elif [ $LCRZODEF_LANG = 2 ] ; then
      echo "Warning: vous etes sur une machine avec ether_hostton bogue."
      echo "         La bibliotheque lcrzo fonctionnera quand meme, mais"
      echo "         lisez ../doc/probleminstallunix_fr.txt si vous"
      echo "         voulez utiliser le contenu de /etc/ethers."
      echo "Pressez la touche ENTREE pour continuer."
    fi
    read toto
  else
    echo " exec ether_hostton ok"
    LCRZODEF_HAVEFONC_ETHER_HOSTTON=1
  fi
fi
rm -f config.verif.tmp.c config.verif.tmp config.verif.tmp.err 

#---
# on tente de compiler le programme factice suivant
cat > config.verif.tmp.c <<EOF
 char *hstrerror(int para);
 int main(void);
 int main(void)
 { char *p;
   p=hstrerror(10);
   return(0);
 }
EOF
commande_compil="$LCRZODEF_PROGCC -o config.verif.tmp config.verif.tmp.c $gccLib"
$commande_compil 2> config.verif.tmp.err 1> config.verif.tmp.err
if [ "$?Z" != "0Z" ] ; then
  echo " hstrerror ko"
  LCRZODEF_HAVEFONC_HSTRERROR=0
else
  echo " hstrerror ok"
  LCRZODEF_HAVEFONC_HSTRERROR=1
fi
rm -f config.verif.tmp.c config.verif.tmp config.verif.tmp.err 

#---
# on tente de compiler le programme factice suivant
cat > config.verif.tmp.c <<EOF
 int snprintf(char *str, int n, const char *format, ... );
 int main(void);
 int main(void)
 { char *p;
   snprintf(p, 3, "%d",5);
   return(0);
 }
EOF
commande_compil="$LCRZODEF_PROGCC -o config.verif.tmp config.verif.tmp.c $gccLib"
$commande_compil 2> config.verif.tmp.err 1> config.verif.tmp.err
if [ "$?Z" != "0Z" ] ; then
  echo " snprintf ko"
  LCRZODEF_HAVEFONC_SNPRINTF=0
else
  echo " snprintf ok"
  LCRZODEF_HAVEFONC_SNPRINTF=1
fi
rm -f config.verif.tmp.c config.verif.tmp config.verif.tmp.err 

#---
# on tente de compiler le programme factice suivant
cat > config.verif.tmp.c <<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 main(void)
 { int fd, un;
   ioctl(fd, BIOCSHDRCMPLT, &un);
   return(0);
 }
EOF
commande_compil="$LCRZODEF_PROGCC -o config.verif.tmp config.verif.tmp.c $gccLib"
$commande_compil 2> config.verif.tmp.err 1> config.verif.tmp.err
if [ "$?Z" != "0Z" ] ; then
  echo " ioctl_biocshdrcmplt ko"
  LCRZODEF_HAVEFONC_IOCTL_BIOCSHDRCMPLT=0
else
  echo " ioctl_biocshdrcmplt ok"
  LCRZODEF_HAVEFONC_IOCTL_BIOCSHDRCMPLT=1
fi
rm -f config.verif.tmp.c config.verif.tmp config.verif.tmp.err 

#---
LCRZODEF_HAVEFONC_PCAP_FREECODE=0
if [ $LCRZODEF_LIBPCAPINSTALLED = 1 ] ; then
  # on tente de compiler le programme factice suivant
  cat > config.verif.tmp.c <<EOF
   #include <pcap.h>
   int main(void);
   int main(void)
   { pcap_freecode(NULL);
     return(0);
   }
EOF
  commande_compil="$LCRZODEF_PROGCC -o config.verif.tmp config.verif.tmp.c $gccPcapInc $gccLib"
  $commande_compil 2> config.verif.tmp.err 1> config.verif.tmp.err
  if [ "$?Z" != "0Z" ] ; then
    echo " pcap_freecode ko"
    LCRZODEF_HAVEFONC_PCAP_FREECODE=0
  else
    echo " pcap_freecode ok"
    LCRZODEF_HAVEFONC_PCAP_FREECODE=1
  fi
  rm -f config.verif.tmp.c config.verif.tmp config.verif.tmp.err 
fi

#---
LCRZODEF_HAVEFONC_PCAP_OPENDEAD=0
if [ $LCRZODEF_LIBPCAPINSTALLED = 1 ] ; then
  # on tente de compiler le programme factice suivant
  cat > config.verif.tmp.c <<EOF
   #include <pcap.h>
   int main(void);
   int main(void)
   { pcap_open_dead(0, 0);
     return(0);
   }
EOF
  commande_compil="$LCRZODEF_PROGCC -o config.verif.tmp config.verif.tmp.c $gccPcapInc $gccLib"
  $commande_compil 2> config.verif.tmp.err 1> config.verif.tmp.err
  if [ "$?Z" != "0Z" ] ; then
    echo " pcap_open_dead ko"
    LCRZODEF_HAVEFONC_PCAP_OPENDEAD=0
  else
    echo " pcap_open_dead ok"
    LCRZODEF_HAVEFONC_PCAP_OPENDEAD=1
  fi
  rm -f config.verif.tmp.c config.verif.tmp config.verif.tmp.err 
fi

#---
# on tente de compiler le programme factice suivant
cat > config.verif.tmp.c <<EOF
 #include <stdlib.h>
 #include <sys/poll.h>
 int main(void);
 int main(void)
 { char *p;
   poll(NULL, 0, 0);
   return(0);
 }
EOF
commande_compil="$LCRZODEF_PROGCC -o config.verif.tmp config.verif.tmp.c $gccLib"
$commande_compil 2> config.verif.tmp.err 1> config.verif.tmp.err
if [ "$?Z" != "0Z" ] ; then
  echo " poll ko"
  LCRZODEF_HAVEFONC_POLL=0
else
  echo " poll ok"
  LCRZODEF_HAVEFONC_POLL=1
fi
rm -f config.verif.tmp.c config.verif.tmp config.verif.tmp.err 

########################################################################
########################################################################
if [ $LCRZODEF_LANG = 1 ] ; then
  echo "Verify the present includes"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo "Verification de la presence de certains includes"
fi

# on tente de compiler le programme factice suivant
cat > config.verif.tmp.c <<EOF
 #include <netpacket/packet.h>
 int main(void);
 int main(void)
 { return(0);
 }
EOF
commande_compil="$LCRZODEF_PROGCC -o config.verif.tmp config.verif.tmp.c $gccLib"
$commande_compil 2> config.verif.tmp.err 1> config.verif.tmp.err
if [ "$?Z" != "0Z" ] ; then
  echo " netpacket/packet.h ko"
  LCRZODEF_HAVEINCL_NETPACKET_PACKET=0
else
  echo " netpacket/packet.h ok"
  LCRZODEF_HAVEINCL_NETPACKET_PACKET=1
fi
rm -f config.verif.tmp.c config.verif.tmp config.verif.tmp.err 

# on tente de compiler le programme factice suivant
cat > config.verif.tmp.c <<EOF
 #include <sys/bufmod.h>
 int main(void);
 int main(void)
 { return(0);
 }
EOF
commande_compil="$LCRZODEF_PROGCC -o config.verif.tmp config.verif.tmp.c $gccLib"
$commande_compil 2> config.verif.tmp.err 1> config.verif.tmp.err
if [ "$?Z" != "0Z" ] ; then
  echo " sys/bufmod.h ko"
  LCRZODEF_HAVEINCL_SYS_BUFMOD=0
else
  echo " sys/bufmod.h ok"
  LCRZODEF_HAVEINCL_SYS_BUFMOD=1
fi
rm -f config.verif.tmp.c config.verif.tmp config.verif.tmp.err 


#########
if [ $LCRZODEF_LANG = 1 ] ; then
  echo "Determine user:group needed to install"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo "Determination du user:groupe d'installation"
fi
case $LCRZODEF_SYSTEM in
 "FreeBSD" )
    LCRZODEF_INSTUSERGROUP="root:wheel"
    ;;
 "Linux" )
    LCRZODEF_INSTUSERGROUP="root:root"
    ;;
 "MacOS" )
    LCRZODEF_INSTUSERGROUP="root:wheel"
    ;;
 "OpenBSD" )
    LCRZODEF_INSTUSERGROUP="root:bin"
    ;;
 "Solaris" )
    LCRZODEF_INSTUSERGROUP="bin:bin"
    ;;
 "Unsupported" )
    LCRZODEF_INSTUSERGROUP="root:root"
    ;;
 * )
    if [ $LCRZODEF_LANG = 1 ] ; then
      echo "Error: unknown LCRZODEF_SYSTEM";
    elif [ $LCRZODEF_LANG = 2 ] ; then
      echo "Erreur: LCRZODEF_SYSTEM inconnu";
    fi
    exit ;;
esac


########################################################################
########################################################################
if [ $LCRZODEF_LANG = 1 ] ; then
  echo "Generate the different files"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo "Generation des differents fichiers"
fi

#########
if [ $LCRZODEF_LANG = 1 ] ; then
  echo " Creation of lcrzo_defs.h"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo " Creation de lcrzo_defs.h"
fi
echo "#define LCRZODEF_LANG $LCRZODEF_LANG" > lcrzo_defs.h
echo "#define LCRZODEF_SYS \"$LCRZODEF_SYS\"" >> lcrzo_defs.h
echo "#define LCRZODEF_SYS_$LCRZODEF_SYS 1" >> lcrzo_defs.h
echo "#define LCRZODEF_SYSTEM \"$LCRZODEF_SYSTEM\"" >> lcrzo_defs.h
echo "#define LCRZODEF_SYSTEM_$LCRZODEF_SYSTEM 1" >> lcrzo_defs.h
echo "#define LCRZODEF_SYSVER \"$LCRZODEF_SYSVER\"" >> lcrzo_defs.h
echo "#define LCRZODEF_SYSVER_$LCRZODEF_SYSVER 1" >> lcrzo_defs.h
echo "#define LCRZODEF_SYSTEMVERS \"$LCRZODEF_SYSTEMVERS\"" >> lcrzo_defs.h
echo "#define LCRZODEF_SYSTEMVERS_$LCRZODEF_SYSTEMVERS 1" >> lcrzo_defs.h
echo "#define LCRZODEF_SYSTEMARCH \"$LCRZODEF_SYSTEMARCH\"" >> lcrzo_defs.h
echo "#define LCRZODEF_SYSTEMARCH_$LCRZODEF_SYSTEMARCH 1" >> lcrzo_defs.h
echo "#define LCRZODEF_ENDIANLITTLE $LCRZODEF_ENDIANLITTLE" >> lcrzo_defs.h
echo "#define LCRZODEF_ENDIANBIG $LCRZODEF_ENDIANBIG" >> lcrzo_defs.h
echo "#define LCRZODEF_VERSION \"$LCRZODEF_VERSION\"" >> lcrzo_defs.h
echo "#define LCRZODEF_VERSIONMAJOR $LCRZODEF_VERSIONMAJOR" >> lcrzo_defs.h
echo "#define LCRZODEF_VERSIONMINOR $LCRZODEF_VERSIONMINOR" >> lcrzo_defs.h
echo "#define LCRZODEF_LIBPCAPINSTALLED $LCRZODEF_LIBPCAPINSTALLED">>lcrzo_defs.h
echo "#define LCRZODEF_LIBPCAPFROMREDHAT $LCRZODEF_LIBPCAPFROMREDHAT">>lcrzo_defs.h
echo "#define LCRZODEF_LIBNETINSTALLED $LCRZODEF_LIBNETINSTALLED" >> lcrzo_defs.h
echo "#define LCRZODEF_PROGCC \"$LCRZODEF_PROGCC\"" >> lcrzo_defs.h
echo "#define LCRZODEF_PROGAR \"$LCRZODEF_PROGAR\"" >> lcrzo_defs.h
echo "#define LCRZODEF_PROGRANLIB \"$LCRZODEF_PROGRANLIB\"" >> lcrzo_defs.h
echo "#define LCRZODEF_INSTINCLUDE \"$LCRZODEF_INSTINCLUDE\"" >> lcrzo_defs.h
echo "#define LCRZODEF_INSTLIB \"$LCRZODEF_INSTLIB\"" >> lcrzo_defs.h
echo "#define LCRZODEF_INSTBIN \"$LCRZODEF_INSTBIN\"" >> lcrzo_defs.h
echo "#define LCRZODEF_INSTMAN1 \"$LCRZODEF_INSTMAN1\"" >> lcrzo_defs.h
echo "#define LCRZODEF_INSTMAN3 \"$LCRZODEF_INSTMAN3\"" >> lcrzo_defs.h
echo "#define LCRZODEF_INSTUSERGROUP \"$LCRZODEF_INSTUSERGROUP\"" >> lcrzo_defs.h
echo "#define LCRZODEF_HAVETYPE_SIZE_T $LCRZODEF_HAVETYPE_SIZE_T" >> lcrzo_defs.h
echo "#define LCRZODEF_HAVETYPE_SOCKLEN_T $LCRZODEF_HAVETYPE_SOCKLEN_T" >> lcrzo_defs.h
echo "#define LCRZODEF_HAVEFONC_ETHER_NTOHOST $LCRZODEF_HAVEFONC_ETHER_NTOHOST" >> lcrzo_defs.h
echo "#define LCRZODEF_HAVEFONC_ETHER_HOSTTON $LCRZODEF_HAVEFONC_ETHER_HOSTTON" >> lcrzo_defs.h
echo "#define LCRZODEF_HAVEFONC_HSTRERROR $LCRZODEF_HAVEFONC_HSTRERROR" >> lcrzo_defs.h
echo "#define LCRZODEF_HAVEFONC_SNPRINTF $LCRZODEF_HAVEFONC_SNPRINTF" >> lcrzo_defs.h
echo "#define LCRZODEF_HAVEFONC_IOCTL_BIOCSHDRCMPLT $LCRZODEF_HAVEFONC_IOCTL_BIOCSHDRCMPLT" >> lcrzo_defs.h
echo "#define LCRZODEF_HAVEFONC_PCAP_FREECODE $LCRZODEF_HAVEFONC_PCAP_FREECODE" >> lcrzo_defs.h
echo "#define LCRZODEF_HAVEFONC_PCAP_OPENDEAD $LCRZODEF_HAVEFONC_PCAP_OPENDEAD" >> lcrzo_defs.h
echo "#define LCRZODEF_HAVEFONC_POLL $LCRZODEF_HAVEFONC_POLL" >> lcrzo_defs.h
echo "#define LCRZODEF_HAVEINCL_NETPACKET_PACKET $LCRZODEF_HAVEINCL_NETPACKET_PACKET" >> lcrzo_defs.h
echo "#define LCRZODEF_HAVEINCL_SYS_BUFMOD $LCRZODEF_HAVEINCL_SYS_BUFMOD" >> lcrzo_defs.h


#########
if [ $LCRZODEF_LANG = 1 ] ; then
  echo " Creation of lcrzo-config"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo " Creation de lcrzo-config"
fi
cat > ./lcrzo-config <<EOF
#!/bin/sh
#----------------------------------------------------------------------
# This file was generated with ./genemake
# Ce fichier a ete genere avec ./genemake

# this function displays usage of lcrzo-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__lcrzo_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
    LANG) echo $LCRZODEF_LANG ;;
    SYS) echo $LCRZODEF_SYS ;;
    SYS_$LCRZODEF_SYS) echo 1 ;;
    SYSTEM) echo $LCRZODEF_SYSTEM ;;
    SYSTEM_$LCRZODEF_SYSTEM) echo 1 ;;
    SYSVER) echo $LCRZODEF_SYSVER ;;
    SYSVER_$LCRZODEF_SYSVER) echo 1 ;;
    SYSTEMVERS) echo $LCRZODEF_SYSTEMVERS ;;
    SYSTEMVERS_$LCRZODEF_SYSTEMVERS) 1 ;;
    SYSTEMARCH) echo $LCRZODEF_SYSTEMARCH ;;
    SYSTEMARCH_$LCRZODEF_SYSTEMARCH) 1 ;;
    ENDIANLITTLE) echo $LCRZODEF_ENDIANLITTLE ;;
    ENDIANBIG) echo $LCRZODEF_ENDIANBIG ;;
    VERSION) echo $LCRZODEF_VERSION ;;
    VERSIONMAJOR) echo $LCRZODEF_VERSIONMAJOR ;;
    VERSIONMINOR) echo $LCRZODEF_VERSIONMINOR ;;
    LIBPCAPINSTALLED) echo $LCRZODEF_LIBPCAPINSTALLED ;;
    LIBPCAPFROMREDHAT) echo $LCRZODEF_LIBPCAPFROMREDHAT ;;
    LIBNETINSTALLED) echo $LCRZODEF_LIBNETINSTALLED ;;
    PROGCC) echo $LCRZODEF_PROGCC ;;
    PROGAR) echo $LCRZODEF_PROGAR ;;
    PROGRANLIB) echo $LCRZODEF_PROGRANLIB ;;
    INSTINCLUDE) echo $LCRZODEF_INSTINCLUDE ;;
    INSTLIB) echo $LCRZODEF_INSTLIB ;;
    INSTBIN) echo $LCRZODEF_INSTBIN ;;
    INSTMAN1) echo $LCRZODEF_INSTMAN1 ;;
    INSTMAN3) echo $LCRZODEF_INSTMAN3 ;;
    INSTUSERGROUP) echo $LCRZODEF_INSTUSERGROUP ;;
    HAVETYPE_SIZE_T) echo $LCRZODEF_HAVETYPE_SIZE_T ;;
    HAVETYPE_SOCKLEN_T) echo $LCRZODEF_HAVETYPE_SOCKLEN_T ;;
    HAVEFONC_ETHER_NTOHOST) echo $LCRZODEF_HAVEFONC_ETHER_NTOHOST ;;
    HAVEFONC_ETHER_HOSTTON) echo $LCRZODEF_HAVEFONC_ETHER_HOSTTON ;;
    HAVEFONC_HSTRERROR) echo $LCRZODEF_HAVEFONC_HSTRERROR ;;
    HAVEFONC_SNPRINTF) echo $LCRZODEF_HAVEFONC_SNPRINTF ;;
    HAVEFONC_IOCTL_BIOCSHDRCMPLT) echo $LCRZODEF_HAVEFONC_IOCTL_BIOCSHDRCMPLT;;
    HAVEFONC_PCAP_FREECODE) echo $LCRZODEF_HAVEFONC_PCAP_FREECODE ;;
    HAVEFONC_PCAP_OPENDEAD) echo $LCRZODEF_HAVEFONC_PCAP_OPENDEAD ;;
    HAVEFONC_POLL) echo $LCRZODEF_HAVEFONC_POLL ;;
    HAVEINCL_NETPACKET_PACKET) echo $LCRZODEF_HAVEINCL_NETPACKET_PACKET ;;
    HAVEINCL_SYS_BUFMOD) echo $LCRZODEF_HAVEINCL_SYS_BUFMOD ;;
  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 "$LCRZODEF_VERSION"
  exit 0
fi

EOF

echo "#initialize printed variables" >> ./lcrzo-config

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

# if LCRZODEF_INSTLIB==/usr/lib, do not add it
if test $LCRZODEF_INSTLIB = "/usr/lib" ; then
  echo "echo_l_=\"-llcrzo $gccLib\"" >> ./lcrzo-config
else
  echo "echo_l_=\"-L$LCRZODEF_INSTLIB -llcrzo $gccLib\"" >> ./lcrzo-config
fi

cat >> ./lcrzo-config <<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 ./lcrzo-config


#########
# special end ; you should not use
if [ "$1." = "test." ] ; then
  return
fi


#########
if [ $LCRZODEF_LANG = 1 ] ; then
  echo " Creation of makefile in src"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo " Creation du makefile de src"
fi

case $LCRZODEF_SYSTEM in
 "FreeBSD" )
    txtldconffr="Vous pouvez avoir besoin d'ajouter \$(INSTLIB) dans la variable ldconfig_paths de /etc/rc.conf, ou dans la variable LD_LIBRARY_PATH, ou executer \"ldconfig -R \$(INSTLIB)\""
    txtldconfen="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" )
    txtldconffr="Vous pouvez avoir besoin d'ajouter \$(INSTLIB) dans /etc/ld.so.conf, puis d'executer ldconfig"
    txtldconfen="You might need to add \$(INSTLIB) in /etc/ld.so.conf, and run ldconfig"
    ;;
 "MacOS" )
    txtldconffr="Verifiez que les bibliotheques dynamiques du repertoire \$(INSTLIB) soient prisent en compte"
    txtldconfen="Check if dynamic libraries in directory \$(INSTLIB) are used"
    ;;
 "OpenBSD" )
    txtldconffr="Vous pouvez avoir besoin d'ajouter \$(INSTLIB) dans la variable shlib_dirs de /etc/rc.conf, ou dans la variable LD_LIBRARY_PATH, ou executer \"ldconfig -R \$(INSTLIB)\""
    txtldconfen="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" )
    txtldconffr="Vous pouvez avoir besoin d'ajouter \$(INSTLIB) dans la variable LD_LIBRARY_PATH."
    txtldconfen="You might need to add \$(INSTLIB) in the variable LD_LIBRARY_PATH."
    ;;
 "Unsupported" )
    txtldconffr="Verifiez que les bibliotheques dynamiques du repertoire \$(INSTLIB) soient prisent en compte"
    txtldconfen="Check if dynamic libraries in directory \$(INSTLIB) are used"
    ;;
 * )
    if [ $LCRZODEF_LANG = 1 ] ; then
      echo "Error: unknown LCRZODEF_SYSTEM";
    elif [ $LCRZODEF_LANG = 2 ] ; then
      echo "Erreur: LCRZODEF_SYSTEM inconnu";
    fi
    exit ;;
esac

if [ $LCRZODEF_LANG = 2 ] ; then
  txtinsta="OK - Vous pouvez maintenant installer liblcrzo.a avec 'make install'"
  txtinstso="OK - Vous pouvez maintenant installer liblcrzo.so avec 'make installso'"
  txtinstex="OK - Vous pouvez maintenant telecharger et installer lcrzoex"
  txtldconf=$txtldconffr
else
  txtinsta="OK - You can now install liblcrzo.a with 'make install'"
  txtinstso="OK - You can now install liblcrzo.so with 'make installso'"
  txtinstex="OK - You can now download and install lcrzoex"
  txtldconf=$txtldconfen
fi

cat > Makefile <<EOF
#----------------------------------------------------------------------
# This file was generated with ./genemake
# Ce fichier a ete genere avec ./genemake

#----------------------------------------------------------------------
# variables modifiables
CC=$LCRZODEF_PROGCC
AR=$LCRZODEF_PROGAR
RANLIB=$LCRZODEF_PROGRANLIB
INSTINCLUDE=$LCRZODEF_INSTINCLUDE
INSTLIB=$LCRZODEF_INSTLIB
INSTBIN=$LCRZODEF_INSTBIN
INSTMAN1=$LCRZODEF_INSTMAN1
INSTMAN3=$LCRZODEF_INSTMAN3
INSTUSERGROUP=$LCRZODEF_INSTUSERGROUP

GCCOPTa=-g -O -Wtraditional -pedantic -W
GCCOPTb=-Wshadow -Wpointer-arith -Wid-clash-48 -Wundef -Wsign-compare
GCCOPTc=-Wwrite-strings -Wcast-align -Wstrict-prototypes -Wcast-qual
GCCOPTd=-Wnested-externs
GCCOPTe=-Wbad-function-cast
GCCOPTf=-Werror

GCCOPTx=\$(GCCOPTa) \$(GCCOPTb) \$(GCCOPTc) \$(GCCOPTd) \$(GCCOPTe) \$(GCCOPTf)
GCCOPTz=-Wmissing-prototypes -Wmissing-declarations

#GCCOPT=$gccOpt \$(GCCOPTx) \$(GCCOPTz)
#GCCOPTL=$gccOptLibnet \$(GCCOPTx) \$(GCCOPTz)
#GCCOPTP=$gccOptLibpcap \$(GCCOPTx) \$(GCCOPTz)
GCCOPT=$gccOpt
GCCOPTL=$gccOptLibnet
GCCOPTP=$gccOptLibpcap

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

# we want ... - on veut ...
all: liblcrzo.a
#all: liblcrzo.a $lcrzoso

# object list
# liste des objets a faire
OBJETS1=lcrzo_data.o lcrzo_string.o lcrzo_time.o 
OBJETS2=lcrzo_file.o lcrzo_fd2.o lcrzo_winhandle.o 
OBJETS3=lcrzo_address.o lcrzo_device.o lcrzo_list.o  
OBJETS4=lcrzo_process.o lcrzo_ipc.o lcrzo_header.o 
OBJETS5=lcrzo_ipopt.o lcrzo_tcpopt.o lcrzo_packet.o  
OBJETS6=lcrzo_icmp.o lcrzo_print.o lcrzo_record.o 
OBJETS7=lcrzo_conf.o lcrzo_spoof.o lcrzo_sniff.o 
OBJETS8=lcrzo_sock.o lcrzo_wait.o lcrzo_global.o 
OBJETS9=lcrzo_error.o lcrzo_misc.o lcrzo_priv.o 
OBJETSa=lcrzo_sysdep.o lcrzo_obso.o lcrzo_debug.o 
OBJETSt=\$(OBJETS1) \$(OBJETS2) \$(OBJETS3) \$(OBJETS4) \$(OBJETS5)
OBJETSu=\$(OBJETS6) \$(OBJETS7) \$(OBJETS8) \$(OBJETS9) \$(OBJETSa)
OBJETS=\$(OBJETSt) \$(OBJETSu) 

LOBJETS1=lcrzo_data.lo lcrzo_string.lo lcrzo_time.lo 
LOBJETS2=lcrzo_file.lo lcrzo_fd2.lo lcrzo_winhandle.lo 
LOBJETS3=lcrzo_address.lo lcrzo_device.lo lcrzo_list.lo 
LOBJETS4=lcrzo_process.lo lcrzo_ipc.lo lcrzo_header.lo 
LOBJETS5=lcrzo_ipopt.lo lcrzo_tcpopt.lo lcrzo_packet.lo 
LOBJETS6=lcrzo_icmp.lo lcrzo_print.lo lcrzo_record.lo 
LOBJETS7=lcrzo_conf.lo lcrzo_spoof.lo lcrzo_sniff.lo 
LOBJETS8=lcrzo_sock.lo lcrzo_wait.lo lcrzo_global.lo 
LOBJETS9=lcrzo_error.lo lcrzo_misc.lo lcrzo_priv.lo 
LOBJETSa=lcrzo_sysdep.lo lcrzo_obso.lo lcrzo_debug.lo
LOBJETSt=\$(LOBJETS1) \$(LOBJETS2) \$(LOBJETS3) \$(LOBJETS4) \$(LOBJETS5)
LOBJETSu=\$(LOBJETS6) \$(LOBJETS7) \$(LOBJETS8) \$(LOBJETS9) \$(LOBJETSa)
LOBJETS=\$(LOBJETSt) \$(LOBJETSu) 

DEPALLa=lcrzo_defs.h lcrzo_debugdefs.h lcrzo.h lcrzo_incl.h
DEPALL=\$(DEPALLa) lcrzo_priv2.h lcrzo_sysdep2.h 

lcrzo_data.o: lcrzo_data.h lcrzo_data.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_data.c -o lcrzo_data.o
lcrzo_data.lo: lcrzo_data.h lcrzo_data.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_data.c -o lcrzo_data.lo
lcrzo_string.o: lcrzo_string.h lcrzo_string.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_string.c -o lcrzo_string.o
lcrzo_string.lo: lcrzo_string.h lcrzo_string.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_string.c -o lcrzo_string.lo
lcrzo_time.o: lcrzo_time.h lcrzo_time.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_time.c -o lcrzo_time.o
lcrzo_time.lo: lcrzo_time.h lcrzo_time.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_time.c -o lcrzo_time.lo
lcrzo_file.o: lcrzo_file.h lcrzo_file.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_file.c -o lcrzo_file.o
lcrzo_file.lo: lcrzo_file.h lcrzo_file.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_file.c -o lcrzo_file.lo
lcrzo_fd2.o: lcrzo_fd2.h lcrzo_fd2.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_fd2.c -o lcrzo_fd2.o
lcrzo_fd2.lo: lcrzo_fd2.h lcrzo_fd2.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_fd2.c -o lcrzo_fd2.lo
lcrzo_winhandle.o: lcrzo_winhandle.h lcrzo_winhandle.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_winhandle.c -o lcrzo_winhandle.o
lcrzo_winhandle.lo: lcrzo_winhandle.h lcrzo_winhandle.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_winhandle.c -o lcrzo_winhandle.lo
lcrzo_address.o: lcrzo_address.h lcrzo_address.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_address.c -o lcrzo_address.o
lcrzo_address.lo: lcrzo_address.h lcrzo_address.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_address.c -o lcrzo_address.lo
lcrzo_device.o: lcrzo_device.h lcrzo_device.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_device.c -o lcrzo_device.o
lcrzo_device.lo: lcrzo_device.h lcrzo_device.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_device.c -o lcrzo_device.lo
lcrzo_list.o: lcrzo_list.h lcrzo_list.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_list.c -o lcrzo_list.o
lcrzo_list.lo: lcrzo_list.h lcrzo_list.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_list.c -o lcrzo_list.lo
lcrzo_process.o: lcrzo_process.h lcrzo_process.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_process.c -o lcrzo_process.o
lcrzo_process.lo: lcrzo_process.h lcrzo_process.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_process.c -o lcrzo_process.lo
lcrzo_ipc.o: lcrzo_ipc.h lcrzo_ipc.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_ipc.c -o lcrzo_ipc.o
lcrzo_ipc.lo: lcrzo_ipc.h lcrzo_ipc.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_ipc.c -o lcrzo_ipc.lo
lcrzo_header.o: lcrzo_header.h lcrzo_header.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_header.c -o lcrzo_header.o
lcrzo_header.lo: lcrzo_header.h lcrzo_header.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_header.c -o lcrzo_header.lo
lcrzo_ipopt.o: lcrzo_ipopt.h lcrzo_ipopt.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_ipopt.c -o lcrzo_ipopt.o
lcrzo_ipopt.lo: lcrzo_ipopt.h lcrzo_ipopt.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_ipopt.c -o lcrzo_ipopt.lo
lcrzo_tcpopt.o: lcrzo_tcpopt.h lcrzo_tcpopt.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_tcpopt.c -o lcrzo_tcpopt.o
lcrzo_tcpopt.lo: lcrzo_tcpopt.h lcrzo_tcpopt.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_tcpopt.c -o lcrzo_tcpopt.lo
lcrzo_packet.o: lcrzo_packet.h lcrzo_packet.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_packet.c -o lcrzo_packet.o
lcrzo_packet.lo: lcrzo_packet.h lcrzo_packet.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_packet.c -o lcrzo_packet.lo
lcrzo_icmp.o: lcrzo_icmp.h lcrzo_icmp.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_icmp.c -o lcrzo_icmp.o
lcrzo_icmp.lo: lcrzo_icmp.h lcrzo_icmp.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_icmp.c -o lcrzo_icmp.lo
lcrzo_print.o: lcrzo_print.h lcrzo_print.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_print.c -o lcrzo_print.o
lcrzo_print.lo: lcrzo_print.h lcrzo_print.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_print.c -o lcrzo_print.lo
lcrzo_record.o: lcrzo_record.h lcrzo_record.c \$(DEPALL)
	\$(CC) \$(GCCOPTP) -c lcrzo_record.c -o lcrzo_record.o
lcrzo_record.lo: lcrzo_record.h lcrzo_record.c \$(DEPALL)
	\$(CC) \$(GCCOPTP) $gccPic -c lcrzo_record.c -o lcrzo_record.lo
lcrzo_conf.o: lcrzo_conf.h lcrzo_conf.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_conf.c -o lcrzo_conf.o
lcrzo_conf.lo: lcrzo_conf.h lcrzo_conf.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_conf.c -o lcrzo_conf.lo
lcrzo_spoof.o: lcrzo_spoof.h lcrzo_spoof.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_spoof.c -o lcrzo_spoof.o
lcrzo_spoof.lo: lcrzo_spoof.h lcrzo_spoof.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_spoof.c -o lcrzo_spoof.lo
lcrzo_sniff.o: lcrzo_sniff.h lcrzo_sniff.c \$(DEPALL)
	\$(CC) \$(GCCOPTP) -c lcrzo_sniff.c -o lcrzo_sniff.o
lcrzo_sniff.lo: lcrzo_sniff.h lcrzo_sniff.c \$(DEPALL)
	\$(CC) \$(GCCOPTP) $gccPic -c lcrzo_sniff.c -o lcrzo_sniff.lo
lcrzo_sock.o: lcrzo_sock.h lcrzo_sock.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_sock.c -o lcrzo_sock.o
lcrzo_sock.lo: lcrzo_sock.h lcrzo_sock.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_sock.c -o lcrzo_sock.lo
lcrzo_wait.o: lcrzo_wait.h lcrzo_wait.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_wait.c -o lcrzo_wait.o
lcrzo_wait.lo: lcrzo_wait.h lcrzo_wait.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_wait.c -o lcrzo_wait.lo
lcrzo_global.o: lcrzo_global.h lcrzo_global.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_global.c -o lcrzo_global.o
lcrzo_global.lo: lcrzo_global.h lcrzo_global.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_global.c -o lcrzo_global.lo
lcrzo_error.o: lcrzo_error.h lcrzo_error.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_error.c -o lcrzo_error.o
lcrzo_error.lo: lcrzo_error.h lcrzo_error.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_error.c -o lcrzo_error.lo
lcrzo_misc.o: lcrzo_misc.h lcrzo_misc.c \$(DEPALL)
	\$(CC) \$(GCCOPT) -c lcrzo_misc.c -o lcrzo_misc.o
lcrzo_misc.lo: lcrzo_misc.h lcrzo_misc.c \$(DEPALL)
	\$(CC) \$(GCCOPT) $gccPic -c lcrzo_misc.c -o lcrzo_misc.lo
lcrzo_priv.o: lcrzo_priv.h lcrzo_priv.c \$(DEPALL)
	\$(CC) \$(GCCOPTP) -c lcrzo_priv.c -o lcrzo_priv.o
lcrzo_priv.lo: lcrzo_priv.h lcrzo_priv.c \$(DEPALL)
	\$(CC) \$(GCCOPTP) $gccPic -c lcrzo_priv.c -o lcrzo_priv.lo
lcrzo_sysdep.o: lcrzo_sysdep.h lcrzo_sysdep.c \$(DEPALL)
	\$(CC) \$(GCCOPTL) -c lcrzo_sysdep.c -o lcrzo_sysdep.o
lcrzo_sysdep.lo: lcrzo_sysdep.h lcrzo_sysdep.c \$(DEPALL)
	\$(CC) \$(GCCOPTL) $gccPic -c lcrzo_sysdep.c -o lcrzo_sysdep.lo
lcrzo_obso.o: lcrzo_obso.h lcrzo_obso.c \$(DEPALL)
	\$(CC) \$(GCCOPTL) -c lcrzo_obso.c -o lcrzo_obso.o
lcrzo_obso.lo: lcrzo_obso.h lcrzo_obso.c \$(DEPALL)
	\$(CC) \$(GCCOPTL) $gccPic -c lcrzo_obso.c -o lcrzo_obso.lo
lcrzo_debug.o: lcrzo_debug.h lcrzo_debug.c \$(DEPALL)
	\$(CC) \$(GCCOPTL) -c lcrzo_debug.c -o lcrzo_debug.o
lcrzo_debug.lo: lcrzo_debug.h lcrzo_debug.c \$(DEPALL)
	\$(CC) \$(GCCOPTL) $gccPic -c lcrzo_debug.c -o lcrzo_debug.lo

# creation of the library
# creation de la librairie
liblcrzo.a: \$(OBJETS)
	\$(AR) -cr liblcrzo.a \$(OBJETS1)
	\$(AR) -r  liblcrzo.a \$(OBJETS2)
	\$(AR) -r  liblcrzo.a \$(OBJETS3)
	\$(AR) -r  liblcrzo.a \$(OBJETS4)
	\$(AR) -r  liblcrzo.a \$(OBJETS5)
	\$(AR) -r  liblcrzo.a \$(OBJETS6)
	\$(AR) -r  liblcrzo.a \$(OBJETS7)
	\$(AR) -r  liblcrzo.a \$(OBJETS8)
	\$(AR) -r  liblcrzo.a \$(OBJETS9)
	\$(AR) -r  liblcrzo.a \$(OBJETSa)
	\$(RANLIB) liblcrzo.a
	@echo ""
	@echo "$txtinsta"

$lcrzoso: \$(LOBJETS)
	\$(CC) -o $lcrzovsov $gccShared \$(LOBJETS)
	rm -f $lcrzovso
	ln -s $lcrzovsov $lcrzovso
	rm -f $lcrzoso
	ln -s $lcrzovso $lcrzoso
	@echo ""
	@echo "$txtinstso"

installcommon:
EOF

if [ $LCRZODEF_LANG = 2 ] ; then
  l="fr.3 \$(INSTMAN3)"
else
  l="en.3 \$(INSTMAN3)"
fi
echo "	cp lcrzo.h \$(INSTINCLUDE)" >> Makefile
echo "	cp lcrzo_defs.h \$(INSTINCLUDE)" >> Makefile
echo "	cp lcrzo_debugdefs.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_$l/lcrzo.3" >> Makefile
echo "	cp lcrzo_address.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_address_$l/lcrzo_address.3" >> Makefile
echo "	cp lcrzo_conf.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_conf_$l/lcrzo_conf.3" >> Makefile
echo "	cp lcrzo_data.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_data_$l/lcrzo_data.3" >> Makefile
echo "	cp lcrzo_device.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_device_$l/lcrzo_device.3" >> Makefile
echo "	cp lcrzo_error.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_error_$l/lcrzo_error.3" >> Makefile
echo "	cp lcrzo_file.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_file_$l/lcrzo_file.3" >> Makefile
echo "	cp lcrzo_fd2.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_fd2_$l/lcrzo_fd2.3" >> Makefile
echo "	cp lcrzo_winhandle.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_winhandle_$l/lcrzo_winhandle.3" >> Makefile
echo "	cp lcrzo_global.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_global_$l/lcrzo_global.3" >> Makefile
echo "	cp lcrzo_header.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_header_$l/lcrzo_header.3" >> Makefile
echo "	cp lcrzo_icmp.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_icmp_$l/lcrzo_icmp.3" >> Makefile
echo "	cp lcrzo_ipc.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_ipc_$l/lcrzo_ipc.3" >> Makefile
echo "	cp lcrzo_ipopt.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_ipopt_$l/lcrzo_ipopt.3" >> Makefile
echo "	cp lcrzo_list.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_list_$l/lcrzo_list.3" >> Makefile
echo "	cp lcrzo_misc.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_misc_$l/lcrzo_misc.3" >> Makefile
echo "	cp lcrzo_obso.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_obso_$l/lcrzo_obso.3" >> Makefile
echo "	cp lcrzo_packet.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_packet_$l/lcrzo_packet.3" >> Makefile
echo "	cp lcrzo_print.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_print_$l/lcrzo_print.3" >> Makefile
echo "	cp lcrzo_process.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_process_$l/lcrzo_process.3" >> Makefile
echo "	cp lcrzo_record.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_record_$l/lcrzo_record.3" >> Makefile
echo "	cp lcrzo_sniff.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_sniff_$l/lcrzo_sniff.3" >> Makefile
echo "	cp lcrzo_sock.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_sock_$l/lcrzo_sock.3" >> Makefile
echo "	cp lcrzo_spoof.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_spoof_$l/lcrzo_spoof.3" >> Makefile
echo "	cp lcrzo_string.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_string_$l/lcrzo_string.3" >> Makefile
echo "	cp lcrzo_tcpopt.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_tcpopt_$l/lcrzo_tcpopt.3" >> Makefile
echo "	cp lcrzo_time.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_time_$l/lcrzo_time.3" >> Makefile
echo "	cp lcrzo_types.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_types_$l/lcrzo_types.3" >> Makefile
echo "	cp lcrzo_wait.h \$(INSTINCLUDE)" >> Makefile
echo "	cp ../doc/man/lcrzo_wait_$l/lcrzo_wait.3" >> Makefile

# we start again - on recommence
cat >> Makefile <<EOF
	cp lcrzo-config \$(INSTBIN)
	chown \$(INSTUSERGROUP) \$(INSTINCLUDE)/lcrzo*.h
	chown \$(INSTUSERGROUP) \$(INSTMAN3)/lcrzo.3
	chown \$(INSTUSERGROUP) \$(INSTBIN)/lcrzo-config
	chmod 444 \$(INSTINCLUDE)/lcrzo*.h
	chmod 444 \$(INSTMAN3)/lcrzo*.3
	chmod 555 \$(INSTBIN)/lcrzo-config
	@echo ""

install.a: liblcrzo.a
	cp liblcrzo.a \$(INSTLIB)
	\$(RANLIB) \$(INSTLIB)/liblcrzo.a
	chown \$(INSTUSERGROUP) \$(INSTLIB)/liblcrzo.a
	chmod 444 \$(INSTLIB)/liblcrzo.a
	@echo ""

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

# install : to do when everything is ok
# installation : a faire quand tout est ok
install: installcommon install.a
	@echo ""
	@echo "$txtinstex"

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

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

# desinstallation (remove liblcrzo* because we do not know installed versions)
uninstall: 
	rm -f \$(INSTINCLUDE)/lcrzo*.h 
	rm -f \$(INSTMAN3)/lcrzo*.3
	rm -f \$(INSTLIB)/liblcrzo*
	rm -f \$(INSTBIN)/lcrzo-config

# cleaning - menage
clean:
	rm -f \$(OBJETS1)
	rm -f \$(OBJETS2)
	rm -f \$(OBJETS3)
	rm -f \$(OBJETS4)
	rm -f \$(OBJETS5)
	rm -f \$(OBJETS6)
	rm -f \$(OBJETS7)
	rm -f \$(OBJETS8)
	rm -f \$(OBJETS9)
	rm -f \$(OBJETSa)
	rm -f \$(LOBJETS1)
	rm -f \$(LOBJETS2)
	rm -f \$(LOBJETS3)
	rm -f \$(LOBJETS4)
	rm -f \$(LOBJETS5)
	rm -f \$(LOBJETS6)
	rm -f \$(LOBJETS7)
	rm -f \$(LOBJETS8)
	rm -f \$(LOBJETS9)
	rm -f \$(LOBJETSa)
	rm -f liblcrzo.a
	rm -f $lcrzoso
	rm -f $lcrzovso
	rm -f $lcrzovsov

cleanall: clean
	rm -f lcrzo_defs.h Makefile lcrzo-config

EOF


########################################################################
########################################################################
echo "Conclusion"
if [ $LCRZODEF_LANG = 1 ] ; then
  echo "  We will compile with option :"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo "  Vous allez compiler avec l'option :"
fi
echo "    LCRZODEF_SYS=\"$LCRZODEF_SYS\""
echo "    LCRZODEF_SYSVER=\"$LCRZODEF_SYSVER\""
echo "    LCRZODEF_SYSTEM=\"$LCRZODEF_SYSTEM\""
echo "    LCRZODEF_SYSTEMVERS=\"$LCRZODEF_SYSTEMVERS\""
echo "    LCRZODEF_SYSTEMARCH=\"$LCRZODEF_SYSTEMARCH\""

if [ $LCRZODEF_ENDIANLITTLE = 1 ] ; then
  echo "    LCRZODEF_ENDIANLITTLE=$LCRZODEF_ENDIANLITTLE (i386, ia64, alpha)"
fi
if [ $LCRZODEF_ENDIANBIG = 1 ] ; then
  echo "    LCRZODEF_ENDIANBIG=$LCRZODEF_ENDIANBIG (sparc)"
fi
if [ $LCRZODEF_LANG = 1 ] ; then
  echo "  On a system :"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo "  Sur une architecture :"
fi
echo "    system   : "`(uname -s) 2>/dev/null`
echo "    release  : "`(uname -r) 2>/dev/null`
echo "    hardware : "`(uname -m) 2>/dev/null`
if [ $LCRZODEF_LANG = 1 ] ; then
  echo "  If it is not ok, look at INSTALLUNIX_EN.TXT, then edit config.dat."
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo "  Si c'est incorrect, regardez INSTALLUNIX_FR.TXT et editez config.dat."
fi

if [ $LCRZODEF_LANG = 1 ] ; then
  echo "End of genemake"
elif [ $LCRZODEF_LANG = 2 ] ; then
  echo "Fin de genemake"
fi

###########
echo ""
if [ $LCRZODEF_LANG = 2 ] ; then
  echo "OK - Vous pouvez maintenant compiler avec 'make'"
else
  echo "OK - You can now compile with 'make'"
fi
