README updates
[ugit.git] / configure
blobf9b88cbd6ab5d358d30e6ace144a30fa16af09bf
1 #! /bin/sh
3 # waf configure wrapper
5 # Fancy colors used to beautify the output a bit.
7 if [ $NOCOLOR ] ; then
8 NORMAL=""
9 BOLD=""
10 RED=""
11 YELLOW=""
12 GREEN=""
13 else
14 NORMAL="\033[0m"
15 BOLD="\033[1m"
16 RED="\033[91m"
17 YELLOW="\033[01;93m"
18 GREEN="\033[92m"
21 EXIT_SUCCESS=0
22 EXIT_FAILURE=1
23 EXIT_ERROR=2
24 EXIT_BUG=10
26 CUR_DIR=$PWD
28 #possible relative path
29 WORKINGDIR=`dirname $0`
30 cd $WORKINGDIR
31 #abs path
32 WORKINGDIR=`pwd`
33 cd $CUR_DIR
35 # We store waf under buildutils/
36 PATH=$WORKINGDIR/buildutils:$PATH
37 export PATH
39 # Checks for Python interpreter. Honours $PYTHON if set. Stores path to
40 # interpreter in $PYTHON.
42 checkPython()
44 if [ -z "$PYTHON" ] ; then
45 PYTHON=`which python 2>/dev/null`
47 printf "Checking for Python\t\t\t: "
48 if [ ! -x "$PYTHON" ] ; then
49 printf $RED"not found!"$NORMAL"\n"
50 echo "Please make sure that the Python interpreter is available in your PATH"
51 echo "or invoke configure using the PYTHON flag, e.g."
52 echo "$ PYTHON=/usr/local/bin/python configure"
53 exit $EXIT_FAILURE
55 printf $GREEN"$PYTHON"$NORMAL"\n"
58 # Checks for WAF. Honours $WAF if set. Stores path to 'waf' in $WAF.
59 # Requires that $PYTHON is set.
61 checkWAF()
63 printf "Checking for WAF\t\t\t: "
64 #installed miniwaf in sourcedir
65 if [ -z "$WAF" ] ; then
66 if [ -f "${WORKINGDIR}/waf" ] ; then
67 WAF="${WORKINGDIR}/waf"
68 if [ ! -x $WAF ] ; then
69 chmod +x $WAF
73 #global installed waf with waf->waf.py link
74 if [ -z $WAF ] ; then
75 WAF=`which waf 2>/dev/null`
77 # neither waf nor miniwaf could be found
78 if [ ! -x "$WAF" ] ; then
79 printf $RED"not found"$NORMAL"\n"
80 echo "Goto http://www.freehackers.org/~tnagy/bksys.html"
81 echo "and download a waf version"
82 exit $EXIT_FAILURE
83 else
84 printf $GREEN"$WAF"$NORMAL"\n"
88 # Generates a Makefile. Requires that $WAF is set.
90 generateMakefile()
92 cat > Makefile << EOF
93 #!/usr/bin/make -f
95 # Waf Makefile wrapper
96 # http://www.freehackers.org/~tnagy/waf.html
97 WAF_HOME=$CUR_DIR
99 all:
100 @$WAF build
102 all_debug:
103 @$WAF -v build
105 all_progress:
106 @$WAF -p build
108 install:
109 @$WAF install
111 uninstall:
112 @$WAF uninstall
114 clean:
115 @$WAF clean
117 distclean:
118 @$WAF distclean
119 @-rm -rf cache/
120 @-rm -rf _build_
121 @-rm -f Makefile
123 check:
124 @$WAF check
126 dist:
127 @$WAF dist
132 checkPython
133 checkWAF
135 echo "calling waf configure with parameters"
136 $WAF configure $* || exit $EXIT_ERROR
138 #create a Makefile if waf configure succeeds
139 if [ -f "${WORKINGDIR}/.lock-wscript" ] ; then
140 if [ -f "Makefile" ] ; then
141 echo ""
142 else
143 generateMakefile
146 exit $EXIT_SUCCESS