#! /bin/sh # waf configure wrapper # Fancy colors used to beautify the output a bit. # if [ "$NOCOLOR" ] ; then NORMAL="" BOLD="" RED="" YELLOW="" GREEN="" else NORMAL='\033[0m' BOLD='\033[01;1m' RED='\033[01;91m' YELLOW='\033[00;33m' GREEN='\033[01;92m' fi EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_ERROR=2 EXIT_BUG=10 CUR_DIR=$PWD #possible relative path WORKINGDIR=`dirname $0` cd $WORKINGDIR #abs path WORKINGDIR=`pwd` cd $CUR_DIR # Checks for WAF. Honours $WAF if set. Stores path to 'waf' in $WAF. # Requires that $PYTHON is set. # checkWAF() { printf "Checking for WAF\t\t\t: " #installed miniwaf in sourcedir if [ -z "$WAF" ] ; then if [ -f "${WORKINGDIR}/waf" ] ; then WAF="${WORKINGDIR}/waf" if [ ! -x "$WAF" ] ; then chmod +x $WAF fi fi fi if [ -z "$WAF" ] ; then if [ -f "${WORKINGDIR}/waf-light" ] ; then ${WORKINGDIR}/waf-light --make-waf WAF="${WORKINGDIR}/waf" fi fi #global installed waf with waf->waf.py link if [ -z "$WAF" ] ; then WAF=`which waf 2>/dev/null` fi # neither waf nor miniwaf could be found if [ ! -x "$WAF" ] ; then printf "$RED""not found""$NORMAL""\n" echo "Go to https://waf.io/" echo "and download a waf version" exit $EXIT_FAILURE else printf "$GREEN""$WAF""$NORMAL""\n" fi } # Generates a Makefile. Requires that $WAF is set. # generateMakefile() { cat > Makefile << EOF #!/usr/bin/make -f # Waf Makefile wrapper WAF_HOME=$CUR_DIR all: #@$WAF build all-debug: @$WAF -v build all-progress: @$WAF -p build install: $WAF install --yes; uninstall: $WAF uninstall clean: @$WAF clean distclean: @$WAF distclean @-rm -rf build @-rm -f Makefile check: @$WAF check dist: @$WAF dist .PHONY: clean dist distclean check uninstall install all EOF } checkWAF generateMakefile "${WAF}" configure $* exit $?