123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- #! /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 $?
|