#!/bin/sh 

TARGET=compicc
TARGET_NAME=Compicc
TARGET_UP=COMPICC

ERROR=0
WARNING=0

ROOT_DIR="$0"
ROOT_DIR=`echo $ROOT_DIR | sed 's%/configure%%1'`
ROOT_DIR=`(cd $ROOT_DIR; pwd)`

CONF_H=config.h
CONF=makefile
CONF_TEMP_SH=config.tmp.sh
CONF_LOG=config.log
SPEC=$TARGET.spec
DEB="$TARGET"_control
VERS_H="$TARGET"_version.h
zeile="$0 $@"
MAKEFILE_DIR="."; export MAKEFILE_DIR

if [ `uname` = "Linux" ]; then
  v=-v
fi


export ROOT_DIR
export CONF_H CONF CONF_LOG CONF_TEMP_SH

test -f error.tmp && rm error.tmp
test -f $CONF_TEMP_SH && rm $CONF_TEMP_SH
test -f libXNVCtrl.a && rm libXNVCtrl.a

VERSION_A=0
VERSION_B=8
VERSION_C=11
VERSION_ABI_A=1
VERSION_ABI_B=0
RELEASE=0
OY_START_MONTH=04
OY_START_YEAR=2008
OY_DEVEL_MONTH=12
COMPICC_DEVEL_MONTH=12 # numeric
OY_DEVEL_YEAR=2016
OY_GIT_MASTER="`cat $ROOT_DIR/.git/refs/heads/master`"
time="`date +%y%m%d.%H%M%S`"
DATE="$OY_START_MONTH $OY_START_YEAR - $OY_DEVEL_MONTH $OY_DEVEL_YEAR"
VERSION=$VERSION_A.$VERSION_B.$VERSION_C
if [ $VERSION_A -gt 9 ]; then
  VERSION_L="$VERSION_A"
else
  VERSION_L="0$VERSION_A"
fi
if [ $VERSION_B -gt 9 ]; then
  VERSION_L="$VERSION_L$VERSION_B"
else
  VERSION_L="${VERSION_L}0$VERSION_B"
fi
if [ $VERSION_C -gt 9 ]; then
  VERSION_L="$VERSION_L$VERSION_C"
else
  VERSION_L="${VERSION_L}0$VERSION_C"
fi
VERSION_L=`echo $VERSION_L | sed 's/^0*//g'`

INFOECHO="echo"


debug=0
nodeps=0
openmp=1
rpm=0
static=1
verbose=1
X11=0
X_ADD_2="X11 Xext Xinerama Xxf86vm Xrandr"
LIBS_TEST="ltdl dl iconv intl m xml2 Xcm Xfixes"

if [ $# -gt 0 ]; then
  prefix=""
  while [ $# -gt 0 ]; do
    arg=$1
    # prefix exec_prefix bindir sbindir libdir includedir datadir icondir mandir
    switch=prefix
    if [ "`echo \"$1\" | sed s/\"--$switch=\"//`" != "$1" ]; then
      prefix="`echo \"$1\" | sed s/\"--$switch=\"//`"
    fi
    switch="exec-prefix"
    if [ "`echo \"$1\" | sed s/\"--$switch=\"//`" != "$1" ]; then
      exec_prefix="`echo $1 | sed s/--$switch=//`"
    fi
    switch=bindir
    if [ "`echo \"$1\" | sed s/\"--$switch=\"//`" != "$1" ]; then
      bindir="`echo $1 | sed s/--$switch=//`"
    fi
    switch=sbindir
    if [ "`echo \"$1\" | sed s/\"--$switch=\"//`" != "$1" ]; then
      sbindir="`echo $1 | sed s/--$switch=//`"
    fi
    switch=libdir
    if [ "`echo \"$1\" | sed s/\"--$switch=\"//`" != "$1" ]; then
      libdir="`echo $1 | sed s/--$switch=//`"
    fi
    switch=plugindir
    if [ "`echo \"$1\" | sed s/\"--$switch=\"//`" != "$1" ]; then
      plugindir="`echo $1 | sed s/--$switch=//`"
    fi
    switch=includedir
    if [ "`echo \"$1\" | sed s/\"--$switch=\"//`" != "$1" ]; then
      includedir="`echo $1 | sed s/--$switch=//`"
    fi
    switch=datadir
    if [ "`echo \"$1\" | sed s/\"--$switch=\"//`" != "$1" ]; then
      datadir="`echo $1 | sed s/--$switch=//`"
    fi
    switch=regdir
    if [ "`echo \"$1\" | sed s/\"--$switch=\"//`" != "$1" ]; then
      regdir="`echo $1 | sed s/--$switch=//`"
    fi
    switch=icondir
    if [ "`echo \"$1\" | sed s/\"--$switch=\"//`" != "$1" ]; then
      icondir="`echo $1 | sed s/--$switch=//`"
    fi
    switch=mandir
    if [ "`echo \"$1\" | sed s/\"--$switch=\"//`" != "$1" ]; then
      mandir="`echo $1 | sed s/--$switch=//`"
    fi
    switch=with-x
    if [ "`echo \"$1\" | sed s/\"--$switch\"//`" != "$1" ]; then
      X11=1
    fi
    switch=with-rpath
    if [ "`echo \"$1\" | sed s/\"--$switch\"//`" != "$1" ]; then
      rpath=1
    fi
    switch=rpm-only
    if [ "`echo \"$1\" | sed s/\"--$switch\"//`" != "$1" ]; then
      rpm="1"
    fi
    switch=quick
    if [ "`echo \"$1\" | sed s/\"--$switch\"//`" != "$1" ]; then
      quick="1"
    fi
    switch=enable-debug
    if [ "`echo \"$1\" | sed s/\"--$switch\"//`" != "$1" ]; then
      debug="1"
    fi
    switch=enable-devel
    if [ "`echo \"$1\" | sed s/\"--$switch\"//`" != "$1" ]; then
      devel="1"
    fi
    switch=disable-openmp
    if [ "`echo \"$1\" | sed s/\"--$switch\"//`" != "$1" ]; then
      openmp="0"
    fi
    switch=disable-static
    if [ "`echo \"$1\" | sed s/\"--$switch\"//`" != "$1" ]; then
      static="0"
    fi
    switch=enable-verbose
    if [ "`echo \"$1\" | sed s/\"--$switch\"//`" != "$1" ]; then
      verbose="1"
    fi
    switch=disable-verbose
    if [ "`echo \"$1\" | sed s/\"--$switch\"//`" != "$1" ]; then
      verbose="0"
    fi
    switch=disable-dependency-tracking
    if [ "`echo \"$1\" | sed s/\"--$switch\"//`" != "$1" ]; then
      nodeps="1"
    fi
for i in $X_ADD_2; do
    checklib=$i switch=disable-lib$checklib
    if [ "`echo \"$1\" | sed s/\"--$switch\"//`" != "$1" ]; then
      nochecklibs="$nochecklibs $checklib"
    fi
done
for i in $LIBS_TEST_1; do
    checklib=$i switch=disable-lib$checklib
    if [ "`echo \"$1\" | sed s/\"--$switch\"//`" != "$1" ]; then
      nochecklibs="$nochecklibs $checklib"
    fi
done
    switch=help
    if [ "`echo \"$1\" | sed s/\"--$switch\"//`" != "$1" ]; then
test -n "$INFOECHO" && $INFOECHO "Usage:"
test -n "$INFOECHO" && $INFOECHO "   --prefix=[/usr/local]                package prefix"
test -n "$INFOECHO" && $INFOECHO "   --exec-prefix=[\$prefix]              package exec-prefix"
test -n "$INFOECHO" && $INFOECHO "   --bindir=[\$exec-prefix/bin]          binary installation path"
test -n "$INFOECHO" && $INFOECHO "   --sbindir=[\$exec-prefix/sbin]        super user binary installation path"
test -n "$INFOECHO" && $INFOECHO "   --libdir=[\$exec-prefix/lib(64)]      main library installation path"
test -n "$INFOECHO" && $INFOECHO "   --plugindir=[\$libdir/compiz]         plugin path"
test -n "$INFOECHO" && $INFOECHO "   --includedir=[\$prefix/include]       include file installation"
test -n "$INFOECHO" && $INFOECHO "   --datadir=[\$prefix/data]             application data base path"
test -n "$INFOECHO" && $INFOECHO "   --regdir=[\$datadir/compiz]           plugin registration XML"
test -n "$INFOECHO" && $INFOECHO "   --icondir=[\$datadir/ccsm/icons/hicolor/scalable/apps/]             icon for ccsm"
test -n "$INFOECHO" && $INFOECHO "   --mandir=[\$datadir/man]              manual installation path"
test -n "$INFOECHO" && $INFOECHO ""
test -n "$INFOECHO" && $INFOECHO "   --with-x                             use X11 on Darwin"
test -n "$INFOECHO" && $INFOECHO "   --with-rpath                         use rpath for ELF linking"
test -n "$INFOECHO" && $INFOECHO "   --rpm-only                           generate only rpm spec file"
test -n "$INFOECHO" && $INFOECHO "   --enable-debug                       debug version [default disable]"
test -n "$INFOECHO" && $INFOECHO "   --enable-devel                       devel mode for osX [default disable]"
test -n "$INFOECHO" && $INFOECHO "   --disable-openmp                     SMP support [default automatic]"
test -n "$INFOECHO" && $INFOECHO "   --disable-static                     no static libraries [default enable]"
test -n "$INFOECHO" && $INFOECHO "   --enable-verbose                     verbose compiling [default enable]"
test -n "$INFOECHO" && $INFOECHO "   --disable-verbose                    verbose compiling [default enable]"
test -n "$INFOECHO" && $INFOECHO "   --disable-dependency-tracking        no dependencies [default check]"
for i in $X_ADD_2; do
checklib=$i
test -n "$INFOECHO" && $INFOECHO "   --disable-lib$checklib			do not check for $checklib"
done
for i in $LIBS_TEST_1; do
checklib=$i
test -n "$INFOECHO" && $INFOECHO "   --disable-lib$checklib			do not check for $checklib"
done

test -n "$INFOECHO" && $INFOECHO "   --quick                              generate config files only"
test -n "$INFOECHO" && $INFOECHO "   --help"
test -n "$INFOECHO" && $INFOECHO ""
test -n "$INFOECHO" && $INFOECHO " Optionally set the CC, CXX, CFLAGS, CXXFLAGS and LDFLAGS environment variables."
test -n "$INFOECHO" && $INFOECHO ""
      exit
    fi
    shift
  done
fi

# BSD sh shells do not support the -e option to echo
if [ "-e" = "`echo -e `" ]; then
  e=""
else
  e=""
fi

# config.log will not work as expected if called as pure BSD shell
test -z "$zeile" && zeile="exit 1" || echo ""

# no RPM spec file generation
if [ 0 -eq $rpm ]; then
  ECHO="echo"
  RPMECHO="echo"
  test -f $CONF_LOG && rm $CONF_LOG
  $ECHO $e "$zeile \$@" > $CONF_LOG
  $ECHO $e "exit 0" >> $CONF_LOG
  $ECHO $e "" >> $CONF_LOG
  $ECHO $e "" >> $CONF_LOG
  chmod 0755 $CONF_LOG
  # avoid a warning
  $ECHO "" >  $CONF_LOG.h
else
  ECHO=""
  RPMECHO="echo"
fi
export ECHO

if [ -n "$ECHO" ]; then
  echo_="";
  $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="################################################################"
  $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="#                                                              #"
  $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="        Welcome to $TARGET_NAME Version $VERSION configurator"
  $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="#                       $time                          #"
  $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="#                       Configuration                          #"
  $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
fi

test -n "$ECHO" && $ECHO "" > $CONF
test -n "$ECHO" && $ECHO "" > $CONF_H
test -n "$RPMECHO" && $RPMECHO "# generated $SPEC automatically by configure from $ROOT_DIR/$SPEC.in" > $SPEC
test -n "$RPMECHO" && $RPMECHO "" >> $SPEC


build_dir="`pwd`"

#prefix
if [ -z "$prefix" ]; then
  prefix=/usr/local
fi

# define some common variables in front of config.site
if [ -n "$CXX" ]; then
  CXX_saved=$CXX
fi
if [ -n "$CC" ]; then
  CC_saved=$CC
fi
if [ -n "$CFLAGS" ]; then
  CFLAGS_saved=$CFLAGS
  CFLAGS=""
fi
if [ -n "$CXXFLAGS" ]; then
  CXXFLAGS_saved=$CXXFLAGS
  CXXFLAGS=""
fi
if [ -n "$LDFLAGS" ]; then
  LDFLAGS_saved=$LDFLAGS
  LDFLAGS=""
fi

# import config.site
if [ -z "$datadir" ]; then
  if [ -f $prefix/share/config.site ]; then
    . $prefix/share/config.site
    test -n "$ECHO" && (. $prefix/share/config.site >> $CONF_LOG )
  fi
else
  if [ -f $datadir/config.site ]; then
    . $datadir/config.site
    test -n "$ECHO" && (. $datadir/config.site >> $CONF_LOG )
  fi
fi

# recover variables after config.site
if [ -n "$CXX_saved" ]; then
  CXX="$CXX_saved"
fi
if [ -n "$CC_saved" ]; then
  CC="$CC_saved"
fi
if [ -n "$CFLAGS_saved" ]; then
  CFLAGS="$CFLAGS_saved $CFLAGS"
fi
if [ -n "$CXXFLAGS_saved" ]; then
  CXXFLAGS="$CXXFLAGS_saved $CXXFLAGS"
fi
if [ -n "$LDFLAGS_saved" ]; then
  LDFLAGS="$LDFLAGS_saved $LDFLAGS"
fi

if [ -n "$ECHO" ]; then
  test -f mkdepend && rm mkdepend config.h cobjects
fi


test -n "$ECHO" && $ECHO "# automatically generated by configure from $ROOT_DIR/$CONF.in - it will be overwritten" >> $CONF
test -n "$ECHO" && $ECHO "/* automatically generated file from configure - iit will be overwritten */" >> $CONF_H
test -n "$ECHO" && $ECHO "/* automatically generated file from configure - it will be overwritten */" > $VERS_H
test -n "$ECHO" && $ECHO "" >> $CONF_H
test -n "$ECHO" && $ECHO "#ifndef OY_CONFIG_H" >> $CONF_H
test -n "$ECHO" && $ECHO "#define OY_CONFIG_H" >> $CONF_H
test -n "$ECHO" && $ECHO "" >> $CONF_H
test -n "$ECHO" && $ECHO "#define oyIGNORE_DEPRECATED $TARGET_UP'_VERSION'" >> $CONF_H
test -n "$ECHO" && $ECHO "" >> $CONF_H

test -n "$ECHO" && $ECHO "" >> $CONF
test -n "$ECHO" && $ECHO "TARGET = $TARGET" >> $CONF

if [ -n "$ECHO" ]; then
  echo_="#                                                              #"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
fi


# detect System

UNAME_=`uname`
OSUNAME=BSD
if [ $? = 0 ] && [ $UNAME_ = "Darwin" ]; then
  arch=`uname -p`
  version=`uname -r`
  echo_="Darwin $arch $version   detected";
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  APPLE="1"
  OSX_H="-DHAVE_OSX"
  test -n "$ECHO" && $ECHO "APPLE = 1" >> $CONF
  test -n "$ECHO" && $ECHO "#define APPLE 1" >> $CONF_H
  OSUNAME=Darwin
else
  if [ $UNAME_ = "Linux" ]; then
    test -n "$ECHO" && $ECHO "LINUX = 1" >> $CONF
    test -n "$ECHO" && $ECHO "#define LINUX 1" >> $CONF_H
    echo_="Linux system            detected"
    test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
    SYS=0
    if [ -f /etc/SuSE-release ]; then
      if [ `cat /etc/SuSE-release | grep Linux | wc -l` -ne 0 ]; then
        echo_="`cat /etc/SuSE-release | grep Linux`"
        test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
        SYS=1; fi
      if [ $SYS -eq 0 ]; then
        echo_="`cat /etc/SuSE-release | grep SUSE`"
        test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
        SYS=1; fi fi
    if [ -f /etc/redhat-release ]; then
      echo_="`cat /etc/redhat-release`"
      test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
      SYS=1; fi
    if [ -f /etc/debian_version ]; then
      if [ -f /etc/issue.net ]; then
        echo_="`cat /etc/issue.net || cat /etc/debian_version`"
        test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
        SYS=2; fi; fi
    if [ $SYS -eq 0 ]; then
      if [ -f /etc/issue.net ]; then
        echo_="`cat /etc/issue.net`"
        test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
    fi; fi
    OSUNAME=Linux
  else
    if [ $UNAME_ = "SunOS" ]; then
      test -n "$ECHO" && $ECHO "SOLARIS = 1" >> $CONF
      test -n "$ECHO" && $ECHO "#define SOLARIS 1" >> $CONF_H
      echo_="SunOS                   detected"
      test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
      OSUNAME=SunOS
    else
      if [ $UNAME_ = "OpenBSD" ] || [ $UNAME_ = "NetBSD" ] || [ $UNAME_ = "FreeBSD" ]; then
        test -n "$ECHO" && $ECHO "BSD = 1" >> $CONF
        OS_EXT=.bsd
        test -n "$ECHO" && $ECHO "#define BSD 1" >> $CONF_H
        echo_="BSD $UNAME_             detected"
        test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
        OSUNAME=BSD
      else
        echo_="Oyranos may or may not compile on your $UNAME_ system"
        test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
      fi
    fi
  fi
fi
OS_EXT=""

# detect the compilers bus width options
BARCH=
rm -f tests/intptr_test
if [ -z "$CC" ]; then
  COMPILER=cc
else
  COMPILER=$CC
fi
$COMPILER $CFLAGS $ROOT_DIR/tests/intptr_test.c -o tests/intptr_test 2>/dev/null
if [ -f tests/intptr_test ]; then
  tests/intptr_test
  INTPTR_SIZE=$?
  if [ $INTPTR_SIZE -eq 4 ]; then
    echo_="32-bit build            detected"
  elif [ $INTPTR_SIZE -gt 4 ]; then
    echo_="64-bit build            detected"
    BARCH=64
    FPIC=-fPIC
    DPIC=-DPIC
    test -n "$ECHO" && $ECHO "BUILD_64 = 1" >> $CONF
  elif [ $INTPTR_SIZE -ne 0 ]; then
    echo_="$INTPTR_SIZE-byte intptr_t          detected"
  else
    echo_="CPU bus width not         detected"
  fi
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  rm tests/intptr_test
else
  $COMPILER $CFLAGS $ROOT_DIR/tests/intptr_test.c -o tests/intptr_test
fi

MACH_=`uname -m`
deb_arch=$MACH_
if [ $? = 0 ]; then
  if [ "$MACH_" = "x86_64" ]; then
    echo_="X86_64                  detected"
    deb_arch=amd64
    test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  else
    if [ "$MACH_" = "sun4u" ]; then
      echo_="spark ultra 4           detected"
      test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
    else
      echo_="$MACH_ system             detected"
      test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
      if [ "$MACH_" = "i686" ]; then
        deb_arch=i386
      fi
    fi
  fi
fi
LIBDIR="lib"$BARCH
export OSUNAME 
echo_="deb_arch=$deb_arch"
test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_";
test -n "$ECHO" && $ECHO "$echo_" >> $CONF


# exec_prefix bindir sbindir libdir includedir datadir icondir
if [ -z "$exec_prefix" ]; then
  exec_prefix="$prefix"
fi
if [ -z "$bindir" ]; then
  bindir="$exec_prefix/bin"
fi
if [ -z "$sbindir" ]; then
  sbindir="$exec_prefix/sbin"
fi
if [ -z "$libdir" ]; then
  libdir="$exec_prefix/$LIBDIR"
fi
if [ -z "$plugindir" ]; then
  plugindir="$libdir/compiz"
fi
if [ -z "$includedir" ]; then
  includedir="$prefix/include"
fi
if [ -z "$datadir" ]; then
  datadir="$prefix/share"
fi
if [ -z "$regdir" ]; then
  regdir="$datadir/compiz"
fi
if [ -z "$icondir" ]; then
  icondir="$prefix/share/ccsm/icons/hicolor/scalable/apps/"
fi
if [ -z "$mandir" ]; then
  mandir="$datadir/man"
fi
export prefix exec_prefix bindir sbindir libdir plugindir includedir datadir
export regdir mandir
export debug static verbose

PATH=$bindir:$PATH
export PATH

if [ -z "$CC" ]; then
  CC=cc
fi
if [ -z "$CXX" ]; then
  CXX=c++
fi

test -n "$ECHO" && $ECHO "CXX = $CXX" >> $CONF
test -n "$ECHO" && $ECHO "CC = $CC" >> $CONF
export CC CXX

# many constant strings are much longer than the C90 allowed, skip the warning
CFLAGS_COMMON="`echo $CFLAGS_COMMON` \$(DEBUG) \$(OPENMP) -std=c99 -D__USE_POSIX2=1"
CXXFLAGS_COMMON="`echo $CXXFLAGS_COMMON` \$(DEBUG) \$(OPENMP)"
CFLAGS="`echo $CFLAGS`"
CXXFLAGS="`echo $CXXFLAGS`"

if [ -z "$LDFLAGS" ]; then
  LDFLAGS="-L./ -L$libdir"
else
  LDFLAGS="`echo $LDFLAGS` -L./ -L$libdir"
fi


# detect Libraries

test -n "$ECHO" && $ECHO "LIB=/"$LIBDIR >> $CONF

PATH=$PATH:/usr/X11R6/bin; export PATH

if [ $nodeps -eq 1 ]; then
  GCC_MM="echo \"\#disable dependency tracking\""
  nodeps_config_opt=--disable-dependency-tracking
else
  GCC_MM="$CC -MM"
fi

OYAPI="#define OYAPI"
OYEXPORT="#define OYEXPORT"

# set some compiler and linker options

if [ `$CC -MM $ROOT_DIR/tests/library.c > test_tmp.txt; cat test_tmp.txt | grep library.o | wc -l` -gt 0 ]; then
  MAKEDEPEND="$GCC_MM"
else
  MAKEDEPEND="$echo #"
  cat test_tmp.txt
fi
rm test_tmp.txt

test -n "$ECHO" && $ECHO "MAKEDEPEND	= $MAKEDEPEND" >> $CONF
if [ $OSUNAME = "Darwin" ]; then
  LIBEXT=".dylib"
  GCC_VERSION_INFO="-Wl,-compatibility_version -Wl,$VERSION_ABI_A -Wl,-current_version -Wl,$VERSION_ABI_A.$VERSION_ABI_B"
  DSO_LIB_VERSION=" -install_name "
  LINK_FLAGS_DYNAMIC="$LDFLAGS -framework Carbon -dynamiclib $GCC_VERSION_INFO"
  dyld_libdir="$libdir/"
  COPY="cp -pv"
  MOVE="mv -v"
  RM="rm -vf"
  LDFLAGS="$LDFLAGS -L."
  test -n "$ECHO" && $ECHO "MSGMERGE = msgmerge" >> $CONF
  CFLAGS="$CFLAGS $DPIC -Wunused -fno-exceptions -flat_namespace -undefined suppress"
  CXXFLAGS="$CXXFLAGS $DPIC -Wunused -fno-exceptions -flat_namespace -undefined suppress"
  test -n "$ECHO" && $ECHO "I18N_LIB = \$(iconv) \$(intl) \$(LIBNAMEV)" >> $CONF
  test -n "$ECHO" && $ECHO "I18N_LIBSTAT = \$(iconv) \$(intl) \$(LIBNAMEV)" >> $CONF
  INSTALL="install -p $DEBUG_SWITCH"
  if [ -n "$devel" ]; then
    DEVEL_LIBS="\$(LIBS_CMM)"
  fi
else
  SO=".so"
  LINK_FLAGS_DYNAMIC="$LDFLAGS -shared $GCC_VERSION_INFO"
  test -n "$ECHO" && $ECHO "MSGMERGE = msgmerge" >> $CONF
  test -n "$ECHO" && $ECHO "MSGMERG_OPTS = --update" >> $CONF
  test -n "$ECHO" && $ECHO "XGETTEXT_OPTIONS = --keyword=gettext --flag=gettext:1:pass-c-format \
        --keyword=_ --flag=_:1:pass-c-format \
        --keyword=N_ --flag=N_:1:pass-c-format \
        --copyright-holder='Kai-Uwe Behrmann' \
        --msgid-bugs-address='ku.b@gmx.de' \
        --from-code=utf-8" >> $CONF
  if [ $OSUNAME = "Linux" ]; then
    COPY="cp -vdpa"
    MOVE="mv -v"
    RM="rm -vf"
    LDFLAGS="$LDFLAGS -L."
    test -n "$ECHO" && $ECHO "LINK_FLAGS_STATIC =" >> $CONF
    if [ -n "$rpath" ]; then 
      test -n "$ECHO" && $ECHO "LINK_LIB_PATH = -Wl,--rpath -Wl," >> $CONF
      test -n "$ECHO" && $ECHO "LINK_SRC_PATH = -Wl,--rpath -Wl,\$(build_dir)" >> $CONF
    fi
    CFLAGS="$CFLAGS $FPIC $DPIC -Wno-overlength-strings"
    CXXFLAGS="$CXXFLAGS $FPIC $DPIC -Wno-overlength-strings"
    INSTALL="install -p $DEBUG_SWITCH"
  else
    COPY="cp -p"
    MOVE="mv"
    RM="rm -f"
    if [ $OSUNAME = "BSD" ]; then
      LDFLAGS="$LDFLAGS"
      if [ -n "$rpath" ]; then 
        test -n "$ECHO" && $ECHO "LINK_LIB_PATH = -Wl,--rpath -Wl," >> $CONF
        test -n "$ECHO" && $ECHO "LINK_SRC_PATH = -Wl,--rpath -Wl,\$(build_dir)" >> $CONF
      fi
      INSTALL="install -p $DEBUG_SWITCH"
    fi
    if [ $OSUNAME = "SunOS" ]; then
      LDFLAGS="$LDFLAGS -lposix4"
      INSTALL="install"
    else
      LDFLAGS="$LDFLAGS"
      INSTALL="install -p"
    fi
    test -n "$ECHO" && $ECHO "I18N_LIB = \$(iconv) \$(intl) \$(LIBNAMEV)" >> $CONF
    test -n "$ECHO" && $ECHO "I18N_LIBSTAT = \$(iconv) \$(intl) \$(LIBNAMEV)" >> $CONF
    CFLAGS="$CFLAGS $FPIC"
    CXXFLAGS="$CXXFLAGS $FPIC"
  fi
fi
 
if [ -n "$DSO_LIB_VERSION" ]; then
  test -n "$ECHO" && $ECHO "DSO_LIB_VERSION = $DSO_LIB_VERSION" >> $CONF
  export DSO_LIB_VERSION SO
fi
test -n "$ECHO" && $ECHO "LINK_FLAGS_DYNAMIC = $LINK_FLAGS_DYNAMIC \$(DSO_LIB_VERSION)" >> $CONF
test -n "$ECHO" && $ECHO "SO = $SO" >> $CONF
test -n "$ECHO" && $ECHO "LIBEXT = $LIBEXT" >> $CONF
export LINK_FLAGS_DYNAMIC SO LIBEXT

for i in $MAKEFILE_DIR; do
  mkdir -p $i
  test -n "$ECHO" && $ECHO "src_dir = $ROOT_DIR/$i" | sed 's%/\.%%' >> "$i/makefile"
  test -n "$ECHO" && $ECHO "" >> "$i/makefile"
  test -n "$ECHO" && $ECHO "COPY = $COPY" >> "$i/makefile"
  test -n "$ECHO" && $ECHO "MOVE = $MOVE" >> "$i/makefile"
  test -n "$ECHO" && $ECHO "RM = $RM" >> "$i/makefile"
  test -n "$ECHO" && $ECHO "$osuname" >> "$i/makefile"
  test -n "$ECHO" && $ECHO "OSX_H = $OSX_H" >> "$i/makefile"
  test -n "$ECHO" && $ECHO "EXEC_END = $EXEC_END" >> "$i/makefile"
  test -n "$ECHO" && $ECHO "MAKEFILE_ARCH = Makefile$OS_EXT" >> "$i/makefile"
done


# export
for i in CFLAGS CXXFLAGS LDFLAGS; do
  if [ -n "$i" ]; then
    export $i
    #test -n "$INFOECHO" && $INFOECHO export $i
  else
    unset $i
  fi
done
if [ -n "$ECHO" ]; then
  echo_="\"$CFLAGS\" \"$CXXFLAGS\" \"$LDFLAGS\""
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
fi


test -n "$INFOECHO" && $INFOECHO ""

# tell about required libs
new_libs=$LIBS_TEST_1
for i in $nochecklibs; do
  new_libs=`echo $new_libs | sed s/$i//`
done
LIBS_TEST_1=$new_libs
new_libs=$X_ADD_2
for i in $nochecklibs; do
  new_libs=`echo $new_libs | sed s/$i//`
done
export nochecklibs
X_ADD_2=$new_libs
export X_ADD
export X_ADD_2
export LIBS_TEST
export LIBS_TEST_1

# detect external libs and headers
if [ -n "$ECHO" ]; then
  ECHO="echo"; export ECHO
  LIBS=1; export LIBS
  DSO_LINKING=1; export DSO_LINKING
  test "1" = "$openmp" && OPENMP_LINKING=1; export OPENMP_LINKING
  #CUPS=2; export CUPS
  #ELEKTRA=1; export ELEKTRA
  OYRANOS=1; export OYRANOS
  #LCMS=1; export LCMS
  #LCMS2=2; export LCMS2
  #LRAW=2; export LRAW
  #LIBXML2=1; export LIBXML2
  #LIBPNG=2; export LIBPNG
  #LIBTIFF=2; export LIBTIFF
  #LIBOPENEXR=2; export LIBOPENEXR
  #SANE=2; export SANE
  #FTGL=1; export FTGL
  #FLTK=2; export FLTK
  #CAIRO=1; export CAIRO
if [ $OSUNAME != "Darwin" ] ; then
  X11=1; 
  XCM=1
  COMPIZ=1
  #QT=1
fi
  export X11 XCM COMPIZ QT
  #XINERAMA=2; export XINERAMA
  #XRANDR=2; export XRANDR
  #XF86VMODE=2; export XF86VMODE
  DOXYGEN=2; export DOXYGEN
  DEBUG=1; export DEBUG
  PO=1; export PO
  #GETTEXT=2; export GETTEXT
  for i in $nochecklibs; do
    if [ $i = Xrandr ]; then
      XRANDR=0; export XRANDR
    fi
    if [ $i = Xxf86vm ]; then
      XF86VMODE=0; export XF86VMODE
    fi
    if [ $i = Xinerama ]; then
      XINERAMA=0; export XINERAMA
    fi
    if [ $i = X11 ]; then
      X11=0; export X11
    fi
    if [ $i = cups ]; then
      CUPS=0; export CUPS
    fi
    if [ $i = sane ]; then
      SANE=0; export SANE
    fi
  done
  $ROOT_DIR/configure_tests.sh
  LIBS=0; export LIBS
  DSO_LINKING=0; export DSO_LINKING
  OPENMP_LINKING=0; export OPENMP_LINKING
  CUPS=0; export CUPS
  ELEKTRA=0; export ELEKTRA
  OYRANOS=0; export OYRANOS
  LCMS=0; export LCMS
  LCMS2=0; export LCMS2
  LRAW=0; export LRAW
  LIBXML2=0; export LIBXML2
  LIBPNG=0; export LIBPNG
  LIBTIFF=0; export LIBTIFF
  LIBOPENEXR=0; export LIBOPENEXR
  SANE=0; export SANE
  #FTGL=0; export FTGL
  FLTK=0; export FLTK
  CAIRO=0; export CAIRO
  X11=0; XCM=0; COMPIZ=0; QT=0; export X11 XCM COMPIZ QT
  XINERAMA=0; export XINERAMA
  XRANDR=0; export XRANDR
  XF86VMODE=0; export XF86VMODE
  DOXYGEN=0; export DOXYGEN
  DEBUG=0; export DEBUG
  PO=0; export PO
  GETTEXT=0; export GETTEXT
  if [ $? -gt 0 ]; then
    ERROR=1
  fi
fi


# Alle ifdefs landen hier

test -n "$ECHO" && $ECHO "" >> $CONF
test -n "$ECHO" && $ECHO "VERSION_A = $VERSION_A" >> $CONF
test -n "$ECHO" && $ECHO "VERSION_B = $VERSION_B" >> $CONF
test -n "$ECHO" && $ECHO "VERSION_C = $VERSION_C" >> $CONF
test -n "$ECHO" && $ECHO "VERSION   = $VERSION" >> $CONF
test -n "$ECHO" && $ECHO "VERSION_L = $VERSION_L" >> $CONF
test -n "$ECHO" && $ECHO "RELEASE = $RELEASE" >> $CONF
test -n "$ECHO" && $ECHO "" >> $CONF



test -n "$ECHO" && $ECHO "#ifndef $TARGET_UP'_VERSION_H'" >> $VERS_H
test -n "$ECHO" && $ECHO "#define $TARGET_UP'_VERSION_H'" >> $VERS_H
test -n "$ECHO" && $ECHO "" >> $VERS_H
test -n "$ECHO" && $ECHO "#define $TARGET_UP'_VERSION_A' $VERSION_A" >> $VERS_H
test -n "$ECHO" && $ECHO "#define $TARGET_UP'_VERSION_B' $VERSION_B" >> $VERS_H
test -n "$ECHO" && $ECHO "#define $TARGET_UP'_VERSION_C' $VERSION_C" >> $VERS_H
test -n "$ECHO" && $ECHO "#define $TARGET_UP'_VERSION_NAME' \"$VERSION\"" >> $VERS_H
test -n "$ECHO" && $ECHO "#define $TARGET_UP'_VERSION' $VERSION_L" >> $VERS_H
test -n "$ECHO" && $ECHO "#define $TARGET_UP'_START_MONTH' $OY_START_MONTH" >> $VERS_H
test -n "$ECHO" && $ECHO "#define $TARGET_UP'_START_YEAR' $OY_START_YEAR" >> $VERS_H
test -n "$ECHO" && $ECHO "#define $TARGET_UP'_DEVEL_MONTH' $TARGET_UP'_DEVEL_MONTH'" >> $VERS_H
test -n "$ECHO" && $ECHO "#define $TARGET_UP'_DEVEL_YEAR' $OY_DEVEL_YEAR" >> $VERS_H
test -n "$ECHO" && $ECHO "#define $TARGET_UP'_CONFIG_DATE' \"$time\"" >> $VERS_H
if [ `echo $OY_GIT_MASTER | grep cat | wc -l` -lt 1 ]; then
  test -n "$ECHO" && $ECHO "#define $TARGET_UP'_GIT_MASTER' \"$CI_GIT_MASTER\"" >> $VERS_H
else
  test -n "$ECHO" && $ECHO "#define $TARGET_UP'_GIT_MASTER' """ >> $VERS_H
fi
test -n "$ECHO" && $ECHO "#define $TARGET_UP'_DATE' \"$DATE\"" >> $VERS_H
test -n "$ECHO" && $ECHO "" >> $VERS_H

test -n "$RPMECHO" && $RPMECHO "Version:         $VERSION" >> $SPEC
test -n "$RPMECHO" && $RPMECHO "Source:          $TARGET"-"$VERSION".tar.bz2 >> $SPEC
test -n "$RPMECHO" && $RPMECHO "Release:         $RELEASE" >> $SPEC
test -n "$RPMECHO" && $RPMECHO "%define icondir  $icondir" >> $SPEC
test -n "$RPMECHO" && cat  $ROOT_DIR/"$SPEC.in" >> $SPEC
echo_="generated $SPEC from $ROOT_DIR/$SPEC.in"
test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"

test -n "$RPMECHO" && $RPMECHO "Version:         $VERSION-$RELEASE" > $DEB
test -n "$RPMECHO" && $RPMECHO "Architecture:    $deb_arch" >> $DEB
test -n "$RPMECHO" && cat  $ROOT_DIR/"$DEB.in" >> $DEB
echo_="generated $DEB from $ROOT_DIR/$DEB.in"
test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"


if [ -n "$ECHO" ]; then
  echo_=""
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="#                       Paths                                  #"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="#                                                              #"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="prefix          =       $prefix"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="exec_prefix     =       $exec_prefix"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="bindir          =       $bindir"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="sbindir         =       $sbindir"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="libdir          =       $libdir"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="plugindir       =       $plugindir"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="includedir      =       $includedir"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="datadir         =       $datadir"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="regdir          =       $regdir"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="icondir         =       $icondir"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="mandir          =       $mandir"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="################################################################"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_=""
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
fi

test -n "$ECHO" && $ECHO "build_dir = $build_dir" >> $CONF
test -n "$ECHO" && $ECHO "prefix=$prefix" >> $CONF
test -n "$ECHO" && $ECHO "exec_prefix=$exec_prefix" >> $CONF
test -n "$ECHO" && $ECHO "bindir=$bindir" >> $CONF
test -n "$ECHO" && $ECHO "sbindir=$sbindir" >> $CONF
test -n "$ECHO" && $ECHO "libdir=$libdir" >> $CONF
test -n "$ECHO" && $ECHO "plugindir=$plugindir" >> $CONF
test -n "$ECHO" && $ECHO "includedir=$includedir" >> $CONF
test -n "$ECHO" && $ECHO "dyld_libdir=$dyld_libdir" >> $CONF
test -n "$ECHO" && $ECHO "datadir=$datadir" >> $CONF
test -n "$ECHO" && $ECHO "regdir=$regdir" >> $CONF
test -n "$ECHO" && $ECHO "icondir=$icondir" >> $CONF
test -n "$ECHO" && $ECHO "mandir=$mandir" >> $CONF
test -n "$ECHO" && $ECHO "" >> $CONF


test -n "$ECHO" && $ECHO "" >> $CONF_H
test -n "$ECHO" && $ECHO "" >> $CONF_H
test -n "$ECHO" && $ECHO $OYAPI >> $VERS_H
test -n "$ECHO" && $ECHO $OYEXPORT >> $VERS_H
test -n "$ECHO" && $ECHO "" >> $VERS_H
test -n "$ECHO" && $ECHO "" >> $VERS_H
test -n "$ECHO" && $ECHO "#endif /*$TARGET_UP'_VERSION_H'*/" >> $VERS_H

CFLAGS="$CFLAGS_COMMON `echo $CFLAGS`"
CXXFLAGS="$CXXFLAGS_COMMON `echo $CXXFLAGS`"
LDFLAGS="`echo $LDFLAGS` \$(dl) \$(DEVEL_LIBS)"

test -n "$ECHO" && $ECHO "CFLAGS = $CFLAGS"   >> $CONF
test -n "$ECHO" && $ECHO "CXXFLAGS = $CXXFLAGS">>$CONF
test -n "$ECHO" && $ECHO "DEVEL_LIBS = $DEVEL_LIBS" >> $CONF
test -n "$ECHO" && $ECHO "LDFLAGS = $LDFLAGS" >> $CONF
test -n "$ECHO" && $ECHO "INSTALL = $INSTALL" >> $CONF


test -n "$ECHO" && $ECHO "" >> $CONF
test -n "$ECHO" && $ECHO "" >> $CONF

test -n "$INFOECHO" && $INFOECHO ""
test -n "$INFOECHO" && $INFOECHO ""

# prepare makefile from MAKEFILE_DIR
if [ -n "$ECHO" ]; then
  PREPARE_MAKEFILES=1; export PREPARE_MAKEFILES
  $ROOT_DIR/configure_tests.sh
  PREPARE_MAKEFILES=0; export PREPARE_MAKEFILES
fi

test -n "$ECHO" && $ECHO "" >> $CONF_H
test -n "$ECHO" && $ECHO "#endif /* OY_CONFIG_H */" >> $CONF_H

test -f error.tmp && ERROR=1
test -f error.tmp && rm error.tmp
if [ $ERROR != 0 ] && [ -z "$quick" ]; then
  echo_="!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="!!!                     An ERROR occured                     !!!"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="!!!                     See Log above                        !!!"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="!!!                     remove  $CONF                     !!!"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  test -n "$INFOECHO" && $INFOECHO ""
  rm Makefile $CONF_H $SPEC
  exit
elif [ $WARNING != 0 ]; then
  echo_="!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="!!!                     Warning                              !!!"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="!!!                     See Log above                        !!!"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
  echo_="!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
  test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG; test -n "$INFOECHO" && $INFOECHO "$echo_"
fi

if [ -z "$quick" ]; then
  test -n "$ECHO" && $ECHO "" > mkdepend
  test -n "$ECHO" && $ECHO "" > cobjects
  make depend
fi

echo_="char * oy_config_log_=\" \\"
test -n "$ECHO" && $ECHO "$echo_" >  $CONF_LOG.h
test -n "$ECHO" && cat $CONF_LOG | sed 's/\"/\\\"/g ; s/$/\ \\n\\/g'  >> $CONF_LOG.h
echo_="\";"
test -n "$ECHO" && $ECHO $e "$echo_" >> $CONF_LOG.h


if [ -f error.txt ] && [ `cat error.txt | wc -l` -lt 1 ]; then
  rm error.txt
fi

exit 0
