[doc] oups ;-)
[ozulis.git] / configure
blobfbf6ea010933ceccc6a8d6a3cc0dd8f205afd8eb
1 #! /bin/sh
3 ROOTDIR="$PWD"
4 BUILDDIR=build
5 VERBOSE=OFF
6 COLOR=ON
7 CCACHE=ON
8 DEBUG=1
9 MAKEOPT="--quiet -j$(($(grep processor /proc/cpuinfo | wc -l) + 1))"
10 CPPFLAGS=""
11 CFLAGS="-W -Wall -Wstrict-prototypes -pipe"
12 CFLAGS="$CFLAGS -Wfloat-equal -Wundef -Wshadow -Wpointer-arith"
13 CFLAGS="$CFLAGS -Wmissing-declarations -Wnested-externs"
14 CFLAGS="$CFLAGS -Wmissing-prototypes -fPIC"
15 CXXFLAGS="-W -Wall -pipe -Wundef -Wshadow -Wpointer-arith -Wabi -std=c++0x -fPIC"
16 LDFLAGS=""
17 PREFIX="/usr/local"
18 QTCREATOR=0
20 function usage()
22 echo -n "usage: $0
23 --verbose verbose Makefiles
24 --no-color no colors
25 --release disable debug
26 --debug enables debug
27 --qt-creator generate build dir for qt-creator
29 exit
32 function update_install_path()
34 eval 'if [[ -z "$'"$1"'" ]] ; then
35 '"$1"'="${PREFIX}/$2"
36 fi'
39 until [[ $# -eq 0 ]] ;
41 case "$1" in
42 --verbose)
43 VERBOSE=ON
44 MAKEOPT="$(echo $MAKEOPT | sed s,--quiet,,g)"
46 --no-color)
47 COLOR=OFF
49 --release)
50 DEBUG=0
52 --debug)
53 DEBUG=1
55 --ccache)
56 CCACHE=ON
58 --no-ccache)
59 CCACHE=OFF
61 --qt-creator)
62 QTCREATOR=1
64 --build-dir=*)
65 BUILDDIR="${1/--build-dir=/}"
67 --prefix=*)
68 PREFIX="${1/--prefix=/}"
70 --libdir=*)
71 LIBDIR="${1/--libdir=/}"
73 --plugindir=*)
74 PLUGINDIR="${1/--plugindir=/}"
76 --bindir=*)
77 BINDIR="${1/--bindir=/}"
80 usage
82 esac
83 shift
84 done
86 update_install_path LIBDIR lib
87 update_install_path PLUGINDIR lib/ozulis
88 update_install_path BINDIR bin
90 if ! which ccache 2>&1 >/dev/null; then
91 CCACHE=OFF
94 if [[ $DEBUG -eq 0 ]]; then
95 CFLAGS="$CFLAGS -DNDEBUG -O2 -fomit-frame-pointer -ftree-vectorize"
96 CXXFLAGS="$CXXFLAGS -DNDEBUG -O2 -fomit-frame-pointer -ftree-vectorize"
97 else
98 CFLAGS="$CFLAGS -ggdb3"
99 CXXFLAGS="$CXXFLAGS -ggdb3"
102 if [[ $CCACHE = "ON" ]] ; then
103 mkdir -p .ccache
104 ln -sf "$(which ccache)" .ccache/g++
105 ln -sf "$(which ccache)" .ccache/gcc
106 export CC="$PWD/.ccache/gcc"
107 export CXX="$PWD/.ccache/g++"
110 if [[ $QTCREATOR -eq 1 ]] ; then
111 CMAKE_GENERATOR="-GCodeBlocks - Unix Makefiles"
112 else
113 CMAKE_GENERATOR="-GUnix Makefiles"
116 CPPFLAGS="${CPPFLAGS} -DOZULIS_PREFIX=\\\"${PREFIX}\\\" -DOZULIS_LIBDIR=\\\"${LIBDIR}\\\" -DOZULIS_PLUGINDIR=\\\"${PLUGINDIR}\\\" -DOZULIS_BINDIR=\\\"${BINDIR}\\\""
117 CFLAGS="${CPPFLAGS} ${CFLAGS}"
118 CXXFLAGS="${CPPFLAGS} ${CXXFLAGS}"
120 export CPPFLAGS
121 export CFLAGS
122 export CXXFLAGS
123 export LDFLAGS
124 rm -rf "$BUILDDIR"
125 mkdir "$BUILDDIR" &&
126 cd "$BUILDDIR" &&
127 cmake "$CMAKE_GENERATOR" "$ROOTDIR"
128 cmake \
129 -DCMAKE_VERBOSE_MAKEFILE=$VERBOSE \
130 -DCMAKE_COLOR_MAKEFILE=$COLOR \
131 -DCMAKE_INSTALL_PREFIX="$PREFIX" \
134 cd "$ROOTDIR" &&
135 cat >config.mk <<EOF
136 BUILDDIR=$BUILDDIR
137 MAKEOPT=$MAKEOPT
139 rm -f ozulis
140 ln -sf "$BINDIR/ozulis"
141 ln -sf "$BUILDDIR/src/moulette/moulette" moulette