#!/bin/sh
# This script was automatically generated by ACR v2.2.4
# @author: pancake <nopcode.org>
# @url:    http://www.nopcode.org
# @repo:   git clone https://github.com/radare/acr

[ -z "${AWK}" ] && AWK=awk
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
WANT_QMAKE6=0
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 ($2=="unknown"){
		if (NF<3) { print $2; } else { print $3; }
	} else {
		if ($2=="linux") { print $2; } else
		if (NF<3) { print $2; } else { print $3; }
	}
}'`"
eval "$1_CPU=\"$SPLIT_CPU\""
eval "$1_OS=\"$SPLIT_OS\""
shift
[ -z "$1" ] && break
done
}

QUIET=0
be_quiet() {
	QUIET=1
}

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 | tr 'A-Z' 'a-z' | sed -e 's, ,,g' | cut -d - -f 1`"
OS="`uname -s|tr A-Z a-z`"
uname -r | grep -qE "(Microsoft|WSL)" 2>/dev/null && OS="wsl"
GNU="`uname --help 2>&1 | grep gnu`"
[ "${GNU}" ] && OS="${OS}-gnu"
# normalize CPU
case "${CPU}" in
	ppc*|powermac*|powermacintosh*|powerpc*)
		if echo "${CPU}" | grep -q '64'; then
			CPU=powerpc64
		else
			CPU=powerpc
		fi
		;;
	*) ;;
esac
VENDOR="unknown"
if [ "${OS}" = "darwin" ]; then
	VENDOR=apple
fi
echo "${CPU}-${VENDOR}-${OS}"
}

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

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

create_environ() {
: ${EPREFIX:="${PREFIX}"}
: ${SPREFIX:="${PREFIX}"}
: ${BINDIR:="${SPREFIX}/bin"}
: ${SBINDIR:="${PREFIX}/sbin"}
: ${ETCDIR:="${SPREFIX}/etc"}
: ${LIBDIR:="${SPREFIX}/lib"}
: ${PKGCFG_LIBDIR:='${exec_prefix}/lib'}
: ${PKGCFG_INCDIR:='${prefix}/include'}
: ${LIBEXECDIR:="${SPREFIX}/libexec"}
: ${INCLUDEDIR:="${SPREFIX}/include"}
: ${DATADIR:="${SPREFIX}/share"}
: ${INFODIR:="${DATADIR}/info"}
: ${MANDIR:="${DATADIR}/man"}
: ${DOCDIR:="${DATADIR}/doc/iaito"}
: ${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} -m 755 -c}
 PKGNAME='iaito' ; VERSION='6.0.2' ; VERSION_MAJOR=6; VERSION_MINOR=0; VERSION_PATCH=2; VERSION_NUMBER=60002; CONTACT_MAIL="pancake@nopcode.org" ; CONTACT_NAME="pancake" ; CONTACT="pancake <pancake@nopcode.org>" ;
}

show_usage() {
cat <<EOF2
'configure' configures iaito-6.0.2 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
  -r, --report            show what libs/programs require to work
  -q, --quiet             be quiet, less verbose (see ./configure -qV)
  -V, --version           display version information and exit

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

Fine tuning of the installation directories:
  --bindir=DIR           user executables [EPREFIX/bin]
  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
  --docdir=DIR           documentation directory [DATADIR/doc/iaito]
  --includedir=DIR       C header files [PREFIX/include]
  --infodir=DIR          info documentation [DATADIR/info]
  --libexecdir=DIR       program executables [EPREFIX/libexec]
  --libdir=DIR           object code libraries [EPREFIX/lib]
  --libpath=DIR          set rpath/libname-path to linker
  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
  --mandir=DIR           man documentation [DATADIR/man]
  --sbindir=DIR          system admin executables [EPREFIX/sbin]
  --etcdir=DIR           same as --sysconfdir (/etc)
  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]

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 "
Optional Features:
  --with-qmake6          ignore qmake in path when qmake6 is found
"
printf "
Some influential environment variables:
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
"
printf "
Report bugs to: pancake <pancake@nopcode.org>"
echo ""
exit 0
}

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

ochof() {
	[ "$QUIET" = 1 ] && return
	printf "$*"
}

ocho() {
	[ "$QUIET" = 1 ] && return
	echo "$*"
}

show_version() {
if [ "$QUIET" = 1 ]; then
	echo "6.0.2"
	exit 0
fi
echo "iaito-6.0.2 configuration script done with acr v2.2.4.
The 'Free Software Foundation' message is only for autodetection.
Originally written by pancake <nopcode.org>."
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 ; ;;
-qV|-quiet-version|--quiet-version)
	be_quiet
	show_version ; ;;
-q|-quiet|--quiet)
	be_quiet ; ;;
-V|-version|--version)
	show_version ; ;;
-r|--r|--report)
echo "PKGNAME:     iaito"
echo "VERSION:     6.0.2"
echo "AUTHOR:      pancake"
echo "EMAIL:       pancake@nopcode.org"
echo "LANGS:       c++"
echo "PKGCONFIG:   r_core"
echo "FLAGS:       --with-qmake6"
	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"; ;;
--docdir)
	DOCDIR="$value"; ;;
--datadir)
	DATADIR="$value"; ;;
--sysconfdir)
	SYSCONFDIR="$value"
	ETCDIR="$value"; ;;
--etcdir)
	SYSCONFDIR="$value"
	ETCDIR="$value"; ;;
--sharedstatedir)
	SHAREDSTATEDIR="$value"; ;;
--localstatedir)
	LOCALSTATEDIR="$value"; ;;
--libdir)
	LIBDIR="$value"
	PKGCFG_LIBDIR="$value"; ;;
--libpath)
	LDFLAGS="${LDFLAGS} ${LIBPATH}$value"; ;;
--includedir)
	PKGCFG_INCDIR="$value"
	INCLUDEDIR="$value"; CFLAGS="${CFLAGS} -I$value"; ;;
--infodir)
	INFODIR="$value"; ;;
--mandir)
	MANDIR="$value"; ;;

"--with-qmake6") WANT_QMAKE6="1"; ;;
*) 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 DESCRIPTION INFODIR LIBDIR INCLUDEDIR LOCALSTATEDIR ETCDIR SYSCONFDIR DATADIR DOCDIR 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 VERSION VERSION_MAJOR VERSION_MINOR VERSION_PATCH VERSION_NUMBER PKGCFG_LIBDIR PKGCFG_INCDIR PKGNAME VPATH CONTACT CONTACT_NAME CONTACT_MAIL CXX CXXFLAGS LDFLAGS HAVE_LANG_CXX CPP PKGCONFIG HAVE_R2 R2 R2_CFLAGS R2_LDFLAGS HAVE_PKGCFG_R_CORE HAVE_QMAKE QMAKE HAVE_QMAKE6 QMAKE6 WANT_QMAKE6 QMAKE_BIN WANT_PYTHON WANT_PYTHON_BINDINGS WANT_CRASH_REPORTS"

create_environ

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

#split_host BUILD HOST TARGET
[ -n "${prefix}" ] && PREFIX="${prefix}"
ocho "checking for working directories... ${WODIS}"
ocho "using prefix '${PREFIX}'"
ACR_RMFILES=" test.c test.cxx a.out a.exe"
	
COMPILER=CXX
HAVE_LANG_CXX=1
ochof "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 "int main(){ std::cout << 1; return 0;}" >> 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
	ochof "checking for cpp... "
	if [ "${CROSSBUILD}" = 1 ]; then
	(exec ${HOST}-${CPP} --help >/dev/null 2>&1)
	[ $? = 0 ] && CPP="${HOST}-${CPP}"
	fi
	(echo "int main(int ac, char **av){return 0;}" | ${CPP}  >/dev/null 2>&1)
	if [ 0 = 0 ]; then echo ${CPP}; else
	echo "ERROR: ${CPP} cannot parse sources"; fi
ochof "checking for pkg-config... "
ENVWORDS="${ENVWORDS} HAVE_PKGCONFIG"
if [ -n "$PKGCONFIG" ]; then
	if [ -x "$PKGCONFIG" ]; then
		_HAVE_PKGCONFIG="${PKGCONFIG}"
	else
		ocho "PKGCONFIG env is not executable"
		PKGCONFIG=""
	fi
else
	IFS=:
	for A in ${PATH} ; do
		if [ -x "${A}/pkg-config" ]; then
			PKGCONFIG="${A}/pkg-config"
		elif [ -x "${A}/pkgconf" ]; then
			PKGCONFIG="${A}/pkgconf"
		else
			continue
		fi
		break
	done
	unset IFS
fi
if [ -n "${PKGCONFIG}" ]; then
	ocho ${PKGCONFIG}
	HAVE_PKGCONFIG=1
else
	HAVE_PKGCONFIG=0
	echo "Cannot find pkg-config or pkgconf in PATH" >&2
	exit 1
ocho no; fi
ochof "checking for r2... "
if [ -x "${R2}" ]; then
	FIND=${R2}
else
	FIND=""
	IFS=:
	for A in ${PATH} ; do
		if [ -x "${A}/r2" ]; then
			FIND="${A}/r2"
			break;
		fi
	done
	unset IFS
fi
if [ -n "${FIND}" ]; then
	ocho ${FIND};
HAVE_R2=1
	R2=${FIND}
else
	HAVE_R2=0
	R2=r2
if [ "" = 1 ]; then
echo "Cannot find r2" >&2
else
echo no
fi
	echo "error: This program is required." >&2
	exit 1 ; fi
if [ -z "${PKGCONFIG}" ]; then pkg-config --version >/dev/null 2>&1 ; if [ 0 = 0 ]; then PKGCONFIG=pkg-config ; else PKGCONFIG=pkgconf ; fi; fi
type ${PKGCONFIG} > /dev/null 2>&1 || echo "ERROR: Cannot find valid PKGCONFIG, pkg-config or pkgconf in PATH"
echo 'Using PKGCONFIG: '${PKGCONFIG}
printf 'checking pkg-config flags for r_core... '
tmp=`${PKGCONFIG} --cflags r_core 2>/dev/null`
if [ $? != 0 ]; then echo no ; HAVE_PKGCFG_R_CORE=0;
R2_CFLAGS='';R2_LDFLAGS='';
echo 'This package is required'
exit 1
else
R2_CFLAGS=$tmp;
tmp=`${PKGCONFIG} --libs r_core 2>/dev/null`
if [ $? = 0 ]; then
echo yes; HAVE_PKGCFG_R_CORE=1;
R2_LDFLAGS=$tmp; fi; fi
ochof "checking for qmake... "
if [ -x "${QMAKE}" ]; then
	FIND=${QMAKE}
else
	FIND=""
	IFS=:
	for A in ${PATH} ; do
		if [ -x "${A}/qmake" ]; then
			FIND="${A}/qmake"
			break;
		fi
	done
	unset IFS
fi
if [ -n "${FIND}" ]; then
	ocho ${FIND};
HAVE_QMAKE=1
	QMAKE=${FIND}
else
	HAVE_QMAKE=0
	QMAKE=qmake
if [ "" = 1 ]; then
echo "Cannot find qmake" >&2
else
echo no
fi ; fi
ochof "checking for qmake6... "
if [ -x "${QMAKE6}" ]; then
	FIND=${QMAKE6}
else
	FIND=""
	IFS=:
	for A in ${PATH} ; do
		if [ -x "${A}/qmake6" ]; then
			FIND="${A}/qmake6"
			break;
		fi
	done
	unset IFS
fi
if [ -n "${FIND}" ]; then
	ocho ${FIND};
HAVE_QMAKE6=1
	QMAKE6=${FIND}
else
	HAVE_QMAKE6=0
	QMAKE6=qmake6
if [ "" = 1 ]; then
echo "Cannot find qmake6" >&2
else
echo no
fi ; fi
if [ "$WANT_QMAKE6" = "1" ]; then
if [ "$HAVE_QMAKE6" = "1" ]; then
QMAKE_BIN="${QMAKE6}"
else
case "$undefined_variable" in 0|"") echo ; echo "ERROR: Missing qmake6" >&2 ; echo ; exit 1 ;; esac; fi
else
if [ "$HAVE_QMAKE" = "1" ]; then
QMAKE_BIN="${QMAKE}"; fi; fi
if [ "$QMAKE_BIN" = """" ]; then
case "$undefined_variable" in 0|"") echo ; echo "ERROR: Missing qmake" >&2 ; echo ; exit 1 ;; esac; fi
WANT_PYTHON="0"
WANT_PYTHON_BINDINGS="0"
WANT_CRASH_REPORTS="0"
SEDFLAGS=" -e '"
COUNT=0
for A in ${ENVWORDS} ; do
	[ "${A}" = VPATH ] && continue
	[ "${A}" = srcdir ] && continue
	eval "VAR=\$${A}"
	case "" in
	mingw*|cygwin*|msys*)
		VAR="`echo ${VAR} | sed -e 's/\\/\\\\/g' -e 's/\,/\\\,/g'`"
		;;
	*)
		VAR="`echo ${VAR} | sed -e 's/\,/\\\,/g'`"
		;;
	esac
	[ $COUNT = 10 ] && COUNT=0 && SEDFLAGS="${SEDFLAGS}' -e '"
	COUNT=$(($COUNT+1))
	SEDFLAGS="${SEDFLAGS}s,@${A}@,${VAR},g;"
done
SEDFLAGS="${SEDFLAGS}'"
for A in config.mk  ; 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
 ocho "creating ${SD_TARGET}"
[ "${VPATH}" != '.' ] &&  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
if [ "$QUIET" = 0 ]; then
echo
echo "Final report:"
for A in  R2 QMAKE_BIN ; do
eval VAL="\$${A}"
[ -z "${VAL}" ] && VAL="\"\""
echo " - ${A} = ${VAL}"
done
fi
