#!/bin/sh # This script was automatically generated by ACR v1.7.2 # @author: pancake # @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 printf "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 ]; 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 ($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 } 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`" uname -r | grep -qE "(Microsoft|WSL)" 2>/dev/null && OS="wsl" 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"} : ${DOCDIR:="${DATADIR}/doc/tudu"} : ${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='tudu' ; VERSION='0.10.3' ; CONTACT_MAIL="meskio@sindominio.net" ; CONTACT_NAME="Ruben Pollan" ; CONTACT="Ruben Pollan " ; } show_usage() { cat <" echo "" exit 0 } take_environ() { : ${SH:=/bin/sh} : ${CPP:=cpp} : ${CXX:=g++} : ${PREFIX:=/usr/local/} } show_version() { echo "tudu-0.10.3 configuration script done with acr v1.7.2. The 'Free Software Foundation' message is only for autodetection. Originally written by pancake ." 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.3" echo "LANGS: c++" echo "OPTIONAL: libncursesw libncurses libcurses" 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"; ;; --sharedstatedir) SHAREDSTATEDIR="$value"; ;; --localstatedir) LOCALSTATEDIR="$value"; ;; --libdir) LIBDIR="$value"; ;; --libpath) LDFLAGS="${LDFLAGS} ${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 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 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="2019" 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 " > 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 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 'int main(int ac, char **av){return 0;}' >>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 if [ 1 = "0" ]; then echo 'ERROR: required include not found.' >&2 do_remove exit 1 fi 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 "int main(int ac, char **av){return 0;}" > 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 if [ "${_REQUIRED}" = 1 ]; then echo "this library is required." do_remove exit 1 fi 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