forked from mirror/waf
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
1.8 KiB
Bash
120 lines
1.8 KiB
Bash
#! /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 $?
|