#!/bin/csh -f

# this is a very low-tech version of configure, not built by autoconf.

# user needs to supply:
# --htdocs : top-level of www files
# --dbhost : machine running database
# --dbuser : username for database access
# --dbpass : password for database access

set htdocs  = ""
set rootdir = ""
set rootwww = ""
set dbhost  = ""
set dbuser  = ""
set dbpass  = ""

set prefix  = ""
set bindir  = ""
set libdir  = ""
set datadir = ""
set site = ""

set DBI     = "DB"

set root    = ""
set args    = ""

while ("$1" != "") 
 switch ("$1")
  # options passed by jhbuild or others which we ignore
  case --enable-maintainer-mode
  case --no-create
  case --no-recursion
  case --sbindir*
  case --libexecdir*
  case --sharedstatedir*
  case --localstatedir*
  case --oldincludedir*
  case --infodir*
  case --mandir*
  case --includedir*
  case --sysconfdir*
   # we need to strip the --opt word and --opt=word versions
   set word = `echo $1 | tr = ' '`
   if ($#word == 1) shift
   breaksw;
  case --htdocs*
   if ("$1" == "--htdocs") then
     shift
     set htdocs = $1
   else
     set htdocs = `echo $1 | tr = ' ' | awk '{print $2}'`
   endif
   breaksw;
  case --rootdir*
   if ("$1" == "--rootdir") then
     shift
     set rootdir = $1
   else
     set rootdir = `echo $1 | tr = ' ' | awk '{print $2}'`
   endif
   breaksw;
  case --rootwww*
   if ("$1" == "--rootwww") then
     shift
     set rootwww = $1
   else
     set rootwww = `echo $1 | tr = ' ' | awk '{print $2}'`
   endif
   breaksw;
  case --dbhost*
   if ("$1" == "--dbhost") then
     shift
     set dbhost = $1
   else
     set dbhost = `echo $1 | tr = ' ' | awk '{print $2}'`
   endif
   breaksw;
  case --dbuser*
   if ("$1" == "--dbuser") then
     shift
     set dbuser = $1
   else
     set dbuser = `echo $1 | tr = ' ' | awk '{print $2}'`
   endif
   breaksw;
  case --dbpass*
   if ("$1" == "--dbpass") then
     shift
     set dbpass = $1
   else
     set dbpass = `echo $1 | tr = ' ' | awk '{print $2}'`
   endif
   breaksw;
  case --prefix*
   if ("$1" == "--prefix") then
     shift
     set prefix = $1
   else
     set prefix = `echo $1 | tr = ' ' | awk '{print $2}'`
   endif
   breaksw;
  case --bindir*
   if ("$1" == "--bindir") then
     shift
     set bindir = $1
   else
     set bindir = `echo $1 | tr = ' ' | awk '{print $2}'`
   endif
   breaksw;
  case --libdir*
   if ("$1" == "--libdir") then
     shift
     set libdir = $1
   else
     set libdir = `echo $1 | tr = ' ' | awk '{print $2}'`
   endif
   breaksw;
  case --datadir*
   if ("$1" == "--datadir") then
     shift
     set datadir = $1
   else
     set datadir = `echo $1 | tr = ' ' | awk '{print $2}'`
   endif
   breaksw;
  case --site*
   if ("$1" == "--site") then
     shift
     set site = $1
   else
     set site = `echo $1 | tr = ' ' | awk '{print $2}'`
   endif
   breaksw;
  case --useMDB2
   set DBI = "MDB2"
   breaksw;
  case --help:
   goto usage
  case -*: 
   echo ""
   echo "Unknown option: $1"
   goto usage
  default:
   set args=($args $1);
   breaksw;
 endsw
 shift
end

if ($#args != 1) goto usage

set hostname = `hostname -f`

echo
echo "prefix:  $prefix"
# echo "bindir:  $bindir"
# echo "libdir:  $libdir"
# echo "datadir: $datadir"
# echo "site:    $site"
echo "htdocs:  $htdocs"
echo "rootdir: $rootdir"
echo "rootwww: $rootwww"
# echo "dbhost:  $dbhost"
# echo "dbuser:  $dbuser"
# echo "dbpass:  $dbpass"
# echo "DBI:     $DBI"
echo

if ("$htdocs" == "") goto usage
if ("$rootdir" == "") goto usage
if ("$rootwww" == "") goto usage

# unless we need a db interface, skip this
# if ("$dbhost" == "") goto usage
# if ("$dbuser" == "") goto usage
# if ("$dbpass" == "") goto usage

# BINDIR holds the output binary files
if ("$bindir" == "") then
  if ("$prefix" == "") goto usage
  set bindir = $prefix/bin
endif

# LIBDIR set the install lib directory
if ("$libdir" == "") then
  if ("$prefix" == "") goto usage
  set libdir = $prefix/lib
endif

# DATADIR holds the general non-binary files
if ("$datadir" == "") then
  if ("$prefix" == "") goto usage
  set datadir = $prefix/share
endif

# SITE defines the location of the ipprc.config file
if ("$site" == "") then
  if ("$datadir" == "") goto usage
  set site = $datadir/ippconfig/ipprc.config
endif

rm -f tmp.1 tmp.2

# convert Makefile.in to Makefile:
if (-e Makefile) mv -f Makefile Makefile~
cat Makefile.in | sed "s|@HTDOCS@|$htdocs|" > tmp.1
cat tmp.1       | sed "s|@ROOTDIR@|$rootdir|" > tmp.2
cat tmp.2       | sed "s|@BINDIR@|$bindir|" > tmp.1
cat tmp.1       | sed "s|@ROOTWWW@|$rootwww|" > Makefile
rm -f tmp.1 tmp.2

# convert mkindex.sizes.sh.in to mkindex.sizes.sh
#cat scripts/mkindex.sizes.sh.in | sed "s|@HTDOCS@|$htdocs|" > scripts/mkindex.sizes.sh
chmod +x scripts/mkindex.sizes.sh

## # convert raw/site.php.in to raw/site.php
## if (-e raw/site.php) mv -f raw/site.php raw/site.php~
## cat raw/site.php.in | sed "s|@DBHOST@|$dbhost|"  > tmp.1
## cat tmp.1           | sed "s|@DBUSER@|$dbuser|"  > tmp.2
## cat tmp.2           | sed "s|@DBPASS@|$dbpass|"  > tmp.1
## cat tmp.1           | sed "s|@BINDIR@|$bindir|"  > tmp.2
## cat tmp.2           | sed "s|@LIBDIR@|$libdir|"  > tmp.1
## cat tmp.1           | sed "s|@PERLLIB@|$libdir|" > tmp.2
## cat tmp.2           | sed "s|@SITE@|$site|"      > tmp.1
## cat tmp.1           | sed "s|@DBI@|$DBI|"        > tmp.2
## cat tmp.2           | sed "s|@HOST@|$hostname|"  > raw/site.php
## rm -f tmp.1 tmp.2

# need to set the PERLLIB and BINDIR variables (use prefix, bindir, libdir)

exit 0

usage:
if ($#args > 1) then
  echo unrecognized options: $args
endif

cat <<EOF
USAGE: configure [OPTION]

set the internal WWW installation directory root with --htdocs
set the external WWW installation directory root with --rootdir
set the IPP installation directory root with --prefix

either --prefix or both --bindir and --libdir and [--datadir or --site] are required

if both --datadir and --site are defined, --site overrides the ipprc.config definition

Configuration:
  -h, --help              display this help and exit

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX

Fine tuning of the installation directories:
  --bindir=DIR           user executables [PREFIX/bin/$ARCH] 
  --libdir=DIR           object code libraries [PREFIX/lib/$ARCH]
  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
  --site=PATH            location of the ipprc.config file [DATADIR/ippconfig/ipprc.config]

EOF
 exit 2;
