#!/bin/sh
# This script was automatically generated by ACR v0.9.4
# @author: pancake <youterm.com>
# @url:    http://www.nopcode.org
# @repo:   hg clone http://hg.youterm.com/acr

do_remove() {
if [ "${ACR_RMFILES}" ]; then
  printf "cleaning temporally files... "
  rm -f ${ACR_RMFILES}
  echo "done"
fi
}
control_c() {
  printf "\n\n^C control-c : script execution interrupted.\n"
  do_remove
  exit 1
}
trap control_c 2
printf "checking for cpp... "
if [ "${CROSSBUILD}" = 1 ]; then
(exec ${HOST}-${CPP} --help >/dev/null 2>&1)
[ $? = 0 ] && CPP="${HOST}-${CPP}"
fi
(echo "main(){}" | ${CPP}  >/dev/null 2>&1)
if [ $? = 0 ]; then echo ${CPP}; else
echo "ERROR: ${CPP} cannot parse sources"; fi

split_host() {
S="$"
while : ; do
ENVWORDS="${ENVWORDS} $1_CPU $1_OS"
STR=`eval "echo ${S}$1"`
SPLIT_CPU="`echo "$STR" | cut -d - -f 1`"
SPLIT_OS="`echo "$STR" | awk -F - '{if(NF==4){print $4}else{print $2}}'`"
eval "$1_CPU=\"$SPLIT_CPU\""
eval "$1_OS=\"$SPLIT_OS\""
shift
[ -z "$1" ] && break
done
}

VPATH=`dirname ${0}`
if [ "${VPATH}" = "." ]; then 
	WODIS=current
else
	if [ "${VPATH}" = "${PWD}" ]; then
		VPATH=.
		WODIS=current
	else
		WODIS=crosspath
		CURDIR=$PWD
		cd $VPATH
		VPATH="${PWD}/"
		cd $CURDIR
	fi
fi

guess_os() {
if [ -e "${VPATH}/config.guess" ]; then
	sh ${VPATH}/config.guess
	return
fi
CPU="`uname -m|sed -e 's, ,,g'|cut -d - -f 1`"
OS="`uname -s|tr A-Z a-z`"
GNU="`uname --help 2>&1 | grep gnu`"
[ "${GNU}" ] && OS="${OS}-gnu"
[ "${CPU}" = ppc ] && CPU="powerpc"
echo "${CPU}-unknown-${OS}"
}

SEARCHPATH="/usr /usr/local /usr/pkg /sw"

: ${PREFIX:=/usr/local}
CROSSBUILD=0
BUILD=`guess_os`
HOST="${BUILD}"
TARGET="${HOST}"
SYSCONFDIR=""

create_environ() {
: ${EPREFIX:=${PREFIX}}
: ${SPREFIX:=${PREFIX}}
: ${BINDIR:=${SPREFIX}/bin}
: ${SBINDIR:=${PREFIX}/sbin}
: ${SYSCONFDIR:=${SPREFIX}/etc}
: ${LIBDIR:=${SPREFIX}/lib}
: ${LIBEXECDIR:=${SPREFIX}/libexec}
: ${INCLUDEDIR:=${SPREFIX}/include}
: ${DATADIR:=${SPREFIX}/share}
: ${INFODIR:=${DATADIR}/info}
: ${MANDIR:=${DATADIR}/man}
: ${LOCALSTATEDIR:=${SPREFIX}/var}
for A in `echo ${PATH} | sed -e 's,:, ,g'` ; do
  [ -e $A/ginstall ] && : ${INSTALL:=$A/ginstall} && break
  [ -e $A/install ] && : ${INSTALL:=$A/install} && break
done
: ${INSTALL_DIR:=${INSTALL} -d}
: ${INSTALL_DATA:=${INSTALL} -m 644}
: ${INSTALL_SCRIPT:=${INSTALL} -m 755}
: ${INSTALL_PROGRAM:=${INSTALL} -m 755}
: ${INSTALL_PROGRAM_STRIP:=${INSTALL} -m 755 -s}
: ${INSTALL_MAN:=${INSTALL} -m 444}
: ${INSTALL_LIB:=${INSTALL} -c}
 PKGNAME='tudu' ; VERSION='0.10.4' ; CONTACT_MAIL="meskio@sindominio.net" ; CONTACT_NAME="Ruben Pollan" ; CONTACT="Ruben Pollan <meskio@sindominio.net>" ;
}
                
show_usage() {
cat <<EOF2
'configure' configures tudu-0.10.4 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
  -V, --version           display version information and exit
  -r, --report            show what libs/programs require to work

Installation directories:
  --prefix=PREFIX        install arch-independent files in PREFIX [/usr/local]
  --exec-prefix=EPREFIX  install arch-dependent files in EPREFIX [PREFIX]
  --sandbox=SPREFIX      sandbox prefix directory: SPREFIX [PREFIX]

Fine tuning of the installation directories:
  --bindir=DIR           user executables [EPREFIX/bin]
  --sbindir=DIR          system admin executables [EPREFIX/sbin]
  --libexecdir=DIR       program executables [EPREFIX/libexec]
  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
  --libdir=DIR           object code libraries [EPREFIX/lib]
  --includedir=DIR       C header files [PREFIX/include]
  --infodir=DIR          info documentation [DATADIR/info]
  --mandir=DIR           man documentation [DATADIR/man]

System types:
  --build=BUILD          configure for building on BUILD [guessed]
  --host=HOST            cross-compile to build programs to run on HOST [BUILD]
  --target=TARGET        configure for building compilers for TARGET [HOST]
EOF2

printf "
Some influential environment variables:
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
"
printf "
Report bugs to: Ruben Pollan <meskio@sindominio.net>"
echo ""
exit 0
}

take_environ() {
: ${SH:=/bin/sh}
: ${CPP:=cpp}
: ${CXX:=g++}
: ${PREFIX:=/usr/local/}
}

show_version() {
echo "tudu-0.10.4 configuration script done with acr v0.9.4.
The 'Free Software Foundation' message is only for autodetection.
Originally written by pancake <youterm.com>."
exit 0
}

parse_options() {
flag=`echo $1| cut -d = -f 1`
value=`echo $1| awk 'BEGIN{FS="=";}{print $2}'`
flag2=`echo $flag|cut -f2- -d -| sed -e 's,-,_,g' -e 's,^_,,g'|tr '[a-z]' '[A-Z]'`

if [ "${TARGET_OS}" = "darwin" ]; then
	LIBPATH=-Wl,-install_name,
else
	LIBPATH=-Wl,-R
fi

case $flag in
"-h"|"--help"|"--hel"|"--h"|"--he"|"-help")
	show_usage ; ;;
"-V"|"-version"|"--version")
	show_version ; ;;
"-r"|"--r"|"--report")
echo "PKGNAME:   tudu"
echo "VERSION:   0.10.4"
echo "LANGS:     c++"
echo "OPTIONAL:  libncursesw"
	exit 0
	;;
"--cache-file") 
	# ignored: acr have no cache
	;;
"--build")
	BUILD="$value"; split_host BUILD ; ;;
"--host")
	CROSSBUILD=1 # XXX
	HOST="$value"; split_host HOST ; ;;
"--target")
	TARGET="$value"; split_host TARGET ; ;;
"--prefix")
	PREFIX="$value"; ;;
"--exec-prefix")
	EPREFIX="$value"; ;;
"--sandbox"|"--sprefix")
	SPREFIX="$value"; ;;
"--bindir")
	BINDIR="$value"; ;;
"--sbindir")
	SBINDIR="$value"; ;;
"--libexecdir")
	LIBEXECDIR="$value"; ;;
"--datadir")
	DATADIR="$value"; ;;
"--sysconfdir")
	SYSCONFDIR="$value"; ;;
"--sharedstatedir")
	SHAREDSTATEDIR="$value"; ;;
"--localstatedir")
	LOCALSTATEDIR="$value"; ;;
"--libdir")
	LIBDIR="$value"; LDFLAGS="${LDFLAGS} -L$value ${LIBPATH}$value"; ;;
"--includedir")
	INCLUDEDIR="$value"; CFLAGS="${CFLAGS} -I$value"; ;;
"--infodir")
	INFODIR="$value"; ;;
"--mandir")
	MANDIR="$value"; ;;

*) if [ "$value" ]; then eval "`echo $flag2=$value`" ; 
else echo ; echo "WARNING: Unknown flag '$flag'." >&2 ; echo ; fi ;;
esac
}

# MAIN #
take_environ
split_host BUILD HOST TARGET
[ -z "$ACRHOOK" ] && ACRHOOK=./configure.hook
[ -e "$ACRHOOK" ] && . ${ACRHOOK}

while : ; do
[ -z "$1" ] && break
parse_options $1
shift
done

ENVWORDS="MANDIR INFODIR LIBDIR INCLUDEDIR LOCALSTATEDIR SYSCONFDIR DATADIR LIBEXECDIR SBINDIR BINDIR EPREFIX PREFIX SPREFIX TARGET HOST BUILD INSTALL INSTALL_LIB INSTALL_MAN INSTALL_PROGRAM INSTALL_PROGRAM_STRIP INSTALL_DIR INSTALL_SCRIPT INSTALL_DATA HOST_OS HOST_CPU BUILD_OS BUILD_CPU TARGET_OS TARGET_CPU PKGNAME VPATH VERSION CONTACT CONTACT_NAME CONTACT_MAIL YEAR CXX CXXFLAGS LDFLAGS HAVE_LANG_CXX CPP CPPFLAGS SRCS HAVE_XCURSES_H HAVE_NCURSESW_CURSES_H HAVE_NCURSES_CURSES_H HAVE_NCURSES_H HAVE_CURSES_H CURSES_INCLUDE HAVE_LIB_NCURSESW HAVE_LIB_NCURSES HAVE_LIB_CURSES LD_CURSES WIDEC_CURSES HAVE_STRING HAVE_VECTOR HAVE_MAP HAVE_FSTREAM HAVE_LIST HAVE_STACK HAVE_ALGORITHM HAVE_SET HAVE_CTIME HAVE_CSTRING HAVE_CSIGNAL HAVE_CSTDIO HAVE_CSTDLIB HAVE_SYS_TYPES_H HAVE_SYS_WAIT_H HAVE_SYS_STAT_H HAVE_UNISTD_H HAVE_FCNTL_H HAVE_LOCALE HAVE_CWCHAR HAVE_CLOCALE HAVE_CLIMITS HAVE_IOSTREAM HAVE_IOMANIP HAVE_SSTREAM HAVE_CERRNO"

create_environ

echo "checking build system type... ${BUILD}"
echo "checking host system type... ${HOST}"
echo "checking target system type... ${TARGET}"
[ "${CROSSBUILD}" = 1 ] && echo "using crosscompilation mode."

#split_host BUILD HOST TARGET
[ -n "${prefix}" ] && PREFIX=${prefix}
echo "checking for working directories... ${WODIS}"
echo "using prefix '${PREFIX}'"
ACR_RMFILES=" test.c test.cxx a.out a.exe"







: 
YEAR="2020"
COMPILER=CXX
HAVE_LANG_CXX=1
printf "checking for c++ compiler... "
if [ "${CROSSBUILD}" = 1 ]; then
(command -v ${HOST}-${CXX} 2>&1 >/dev/null)
if [ "$?" = 0 ]; then CXX="${HOST}-${CXX}"; fi
fi
echo "#include <iostream>" > test.cxx
echo "main(){ std::cout << 1; }" >> test.cxx
(exec ${CXX} ${CXXFLAGS} ${LDFLAGS} test.cxx -lstdc++ >/dev/null 2>&1)
if [ $? = 0 ]; then echo ${CXX}; else
HAVE_LANG_CXX=0
echo no

echo "ERROR: ${CXX} cannot create executables" >&2 ;
do_remove
exit 1
 fi
CXXFLAGS="${CXXFLAGS} -Wall -O2"
CPPFLAGS="${CPPFLAGS} "
SRCS="${SRCS} tudu.cc data.cc editor.cc interface.cc window.cc text.cc parser.cc config.cc date.cc screen.cc scheduler.cc cmd.cc"
check_include() {
VAR=$1
INC=$2
_REQUIRED=$3
printf "checking for $2... "
echo > test.c
echo "#include <${INC}>" >>test.c
echo "main(){}" >>test.c
eval \$${COMPILER} ${CFLAGS} ${CPPFLAGS} ${CXXFLAGS} test.c >/dev/null 2>&1
if [ $? = 0 ]; then
	eval ${VAR}=1
	echo yes
else
	eval ${VAR}=0
	echo no ; fi }
check_include HAVE_XCURSES_H xcurses.h 0

check_include HAVE_NCURSESW_CURSES_H ncursesw/curses.h 0

check_include HAVE_NCURSES_CURSES_H ncurses/curses.h 0

check_include HAVE_NCURSES_H ncurses.h 0

check_include HAVE_CURSES_H curses.h 0

if [ "$HAVE_XCURSES_H" = "1" ]; then
CURSES_INCLUDE="xcurses.h"; fi
if [ "$HAVE_NCURSESW_CURSES_H" = "1" ]; then
[ -z "${CURSES_INCLUDE}" ]  && CURSES_INCLUDE="ncursesw/curses.h"; fi
if [ "$HAVE_NCURSES_CURSES_H" = "1" ]; then
[ -z "${CURSES_INCLUDE}" ]  && CURSES_INCLUDE="ncurses/curses.h"; fi
if [ "$HAVE_NCURSES_H" = "1" ]; then
[ -z "${CURSES_INCLUDE}" ]  && CURSES_INCLUDE="ncurses.h"; fi
if [ "$HAVE_CURSES_H" = "1" ]; then
[ -z "${CURSES_INCLUDE}" ]  && CURSES_INCLUDE="curses.h"; fi
if [ "$CURSES_INCLUDE" = "" ]; then
case "$undefined_variable" in 0|"") echo ; echo "ERROR: There is no curses installed!" >&2 ; echo ; exit 1 ;; esac; fi
check_library() {
VAR=$1
S="$"
_REQUIRED=$3
_CHKLIB_NAME=$2
_CHKLIB_LIBS=$(echo "-l${_CHKLIB_NAME}" | sed 's,\+, -l,g')
printf "checking for lib${_CHKLIB_NAME} ... "
echo "main(){ }" > test.c
eval ${S}${COMPILER} ${CFLAGS} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} ${_CHKLIB_LIBS} test.c >/dev/null 2>&1
if [ $? = 0 ]; then
	eval ${VAR}=1
	echo yes
else
	eval ${VAR}=0
	echo no  ; fi }
check_library HAVE_LIB_NCURSESW ncursesw 0 
check_library HAVE_LIB_NCURSES ncurses 0 
check_library HAVE_LIB_CURSES curses 0 
if [ "$HAVE_LIB_NCURSESW" = "1" ]; then
LD_CURSES="-lncursesw"; fi
if [ "$HAVE_LIB_NCURSES" = "1" ]; then
[ -z "${LD_CURSES}" ]  && LD_CURSES="-lncurses"; fi
if [ "$HAVE_LIB_CURSES" = "1" ]; then
[ -z "${LD_CURSES}" ]  && LD_CURSES="-lcurses"; fi
if [ "$LD_CURSES" = "" ]; then
case "$undefined_variable" in 0|"") echo ; echo "ERROR: There is no curses installed!" >&2 ; echo ; exit 1 ;; esac; fi
LDFLAGS="${LDFLAGS} $LD_CURSES"
printf "checking for WIDEC_CURSES... "
echo "#define _XOPEN_SOURCE_EXTENDED" > test.c  ; echo "#include<$CURSES_INCLUDE>" >> test.c  ; echo "int main(){ addwstr(L\"\"); }" >> test.c  ; eval \$${COMPILER} ${CXXFLAGS} test.c ${LDFLAGS} >/dev/null 2>&1  ; WIDEC_CURSES=$?  ; rm test.c  
if [ "$WIDEC_CURSES" = 0 ]; then
	WIDEC_CURSES=1
	echo yes
else
	WIDEC_CURSES=0
	echo no
fi
if [ "$WIDEC_CURSES" = "0" ]; then
case "$undefined_variable" in 0|"") echo ; echo "ERROR: There is no wide character support on curses!" >&2 ; echo ; exit 1 ;; esac; fi
check_include HAVE_STRING string 1

check_include HAVE_VECTOR vector 1

check_include HAVE_MAP map 1

check_include HAVE_FSTREAM fstream 1

check_include HAVE_LIST list 1

check_include HAVE_STACK stack 1

check_include HAVE_ALGORITHM algorithm 1

check_include HAVE_SET set 1

check_include HAVE_CTIME ctime 1

check_include HAVE_CSTRING cstring 1

check_include HAVE_CSIGNAL csignal 1

check_include HAVE_CSTDIO cstdio 1

check_include HAVE_CSTDLIB cstdlib 1

check_include HAVE_SYS_TYPES_H sys/types.h 1

check_include HAVE_SYS_WAIT_H sys/wait.h 1

check_include HAVE_SYS_STAT_H sys/stat.h 1

check_include HAVE_UNISTD_H unistd.h 1

check_include HAVE_FCNTL_H fcntl.h 1

check_include HAVE_LOCALE locale 1

check_include HAVE_CWCHAR cwchar 1

check_include HAVE_CLOCALE clocale 1

check_include HAVE_CLIMITS climits 1

check_include HAVE_IOSTREAM iostream 1

check_include HAVE_IOMANIP iomanip 1

check_include HAVE_SSTREAM sstream 1

check_include HAVE_CERRNO cerrno 1

SEDFLAGS=" -e '"
COUNT=0
for A in ${ENVWORDS} ; do
	[ "${A}" = VPATH ] && continue
	[ "${A}" = srcdir ] && continue 
	eval "VAR=\$${A}"
	VAR="`echo ${VAR} | sed -e 's/\,/\\\,/g'`"
	[ $COUNT = 10 ] && COUNT=0 && SEDFLAGS="${SEDFLAGS}' -e '"
	COUNT=$(($COUNT+1))
	SEDFLAGS="${SEDFLAGS}s,@${A}@,${VAR},g;"
done
SEDFLAGS="${SEDFLAGS}'"
for A in . src data src/defs.h  ; do # SUBDIRS
if [ -f "${VPATH}/${A}.acr" ]; then
  SD_TARGET=${A}
 else
  if [ -d "${VPATH}/${A}" ]; then
   SD_TARGET=${A}/Makefile
   mkdir -p ${A}
  else
   echo "ERROR: Cannot find ${VPATH}/${A}.acr" >&2
   exit 1
  fi
 fi
 echo "creating ${SD_TARGET}"
mkdir -p $(echo ${A} | sed -e "s,/`basename ${A}`$,,g")
 cat ${VPATH}/${SD_TARGET}.acr | \
eval sed -e "s,@VPATH@,${VPATH}/${A},g" ${SEDFLAGS} > ${SD_TARGET}.tmp

for A in ${ENVWORDS}; do
VALUE=`eval echo "$"${A}`
if [ "$VALUE" = 0 ]; then ## FALSE
 MARK="##${A}##"
if [ -n "`grep \"${MARK}\" ${SD_TARGET}.tmp`" ]; then
 mv ${SD_TARGET}.tmp ${SD_TARGET}.tmp2
 cat ${SD_TARGET}.tmp2 | MARK=$MARK awk 'BEGIN{a=0;}{if($1==ENVIRON["MARK"]){if(a)a=0;else a=1}else{if(!a)print;}}' > ${SD_TARGET}.tmp
 fi
fi
done
 mv ${SD_TARGET}.tmp ${SD_TARGET} && rm -f ${SD_TARGET}.tmp2
 if [ ! $? = 0 ]; then echo Cannot write target file ; control_c ; fi
done

do_remove
