#! /bin/bash

# Load the shell functions needed for the rest of this script.

BASH_BASED_CONFIGURE=./scripts/bash-based-configure
REQUIRED_CFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" 
RECOMMENDED_CFLAGS="-O2 -Wall"
DEBUG_CFLAGS="-ggdb -Wall"

CFG_USE_CYGWIN="no"   # do not change

if test -e $BASH_BASED_CONFIGURE; then
   source $BASH_BASED_CONFIGURE
else
   echo "Could not find $BASH_BASED_CONFIGURE"
   echo "You're probably not in the right directory."
   exit 1
fi

# Set the package name and version

PACKAGE dvdisaster 0.64pl2

DEFINE_STRING RELEASE_STATUS "-"
#DEFINE_STRING RELEASE_STATUS "\(pre-1\)"
#DEFINE_STRING RELEASE_STATUS "(rc1)"

# Check for some essential tools.

REQUIRE_GMAKE
REQUIRE_GCC

# Find out and verify the basedir of the source installation,
# and where to install the binary.

GET_SRCDIR Makefile.template
GET_PKGNAME
GET_PREFIX /usr/local
GET_BINDIR
GET_MANDIR
GET_DOCDIR /usr/share/doc
GET_DIR "$PKGNAME" docsub "Documentation sub"\
        "       put documentation into this subdirectory\n                        under \$DOCDIR "
GET_LOCALEDIR /usr/share/locale

# Look for required libraries

PRINT_MESSAGE "\nLooking for includes and libraries:"

REQUIRE_GTK2  WITH_THREADS
echo

if ! CHECK_INCLUDE locale.h locale || ! CHECK_INCLUDE libintl.h intl ; then
  echo " [previous test forces -with-nls=no]"
  cfg_force_with_nls=no
fi

CHECK_LIBRARY intl gettext intl

# Look for required functions

PRINT_MESSAGE "\nChecking for functions and symbols..."

if ! CHECK_FUNCTION gettext ; then
  echo " [previous test forces -with-nls=no]"
  cfg_force_with_nls=no
fi

SAVE_CFLAGS=$CFG_CFLAGS
CFG_CFLAGS="$CFG_CFLAGS -D_LARGEFILE64_SOURCE"
CHECK_SYMBOL fcntl.h O_LARGEFILE
CFG_CFLAGS=$SAVE_CFLAGS

# Look for required tools

PRINT_MESSAGE "\nChecking for additional tools..."

if ! EXECUTE_PROGRAM "xgettext --help" xgettext \
 ||! EXECUTE_PROGRAM "msgmerge --help" msgmerge \
 ||! EXECUTE_PROGRAM "msgfmt --help" msgfmt ; then
  echo "* You need to install the GNU gettext tools"
  echo "* for localization support."
  echo " [previous test forces -with-nls=no]"
  cfg_force_with_nls=no
fi

# Evaluate the --with* customization options

PRINT_MESSAGE "\nAdditional configuration options:"

WITH_OPTION nls yes "[yes | no]"
WITH_OPTION memdebug no "[no | yes]"
WITH_OPTION efence no "[no | yes]"

if test "$cfg_with_efence" == "yes"; then
  if ! CHECK_LIBRARY efence malloc efence; then
    exit 1;
  fi
fi

# Do not proceed further if in --help mode

if test -n "$cfg_help_mode"; then
     exit 0
fi

# Fetch the source files and build the CFILES/OFILES list

PRINT_MESSAGE "\nCollecting source files:"

rm -f conftest.c method-link.c
cfiles="method-link.c"
ofiles="method-link.o"

for cfile in *.c; do
  cfile_prefix=`echo $cfile | sed -e 's/\.c//'`
  cfiles="$cfiles $cfile"
  ofiles="$ofiles $cfile_prefix.o"
  echo -n " $cfile_prefix"
done

echo
echo -e "\nCFG_CFILES = $cfiles" >> Makefile.config
echo "CFG_OFILES = $ofiles" >> Makefile.config

# Create the method wrapper

PRINT_MESSAGE "\nCollecting methods:"

cat >> method-link.c <<EOF
/* Automatically generated wrapper for registering the methods */
 
void BindMethods(void)
{
EOF

for method in ecc-*.c; do
  method_name=`echo $method | sed -e 's/\.c//' -e 's/ecc-//'`
  method_prefix="$method_prefix $method_name"
  echo -n " $method_name"
done

for method in $method_prefix; do
  echo "   void register_${method}(void);" >> method-link.c
done

echo >> method-link.c

for method in $method_prefix; do
  echo "   register_${method}();" >> method-link.c
done

echo "}" >> method-link.c
echo 

# Okay, hopefully we've got everything together now.

(cd locale; bash create-makefile)
CREATE_MAKEFILES Makefile 

echo
echo "Configuration is complete."
echo "Type 'make show' to verify the settings,"
echo "or enter 'make' to start the build immediately."
echo 

if test -n "$CFLAGS"; then
  echo "* Note that your \$CFLAGS=$CFLAGS"
  echo "* have been included into the configuration."
  echo "* It is recommended not to specify additional \$CFLAGS,"
  echo "* but feel free to continue at your own risk."
  echo
fi
