Fixes: NB#275842 - Legal bug - license header change in libqtcontacts-telepathy.
[qtcontacts-tracker:qtcontacts-telepathy.git] / configure
1 #!/bin/sh
2 # =================================================================================================
3 # Configures the project's build system
4 # =================================================================================================
5
6 VERSION_MAJOR=0
7 VERSION_MINOR=1
8 VERSION_MICRO=0
9
10 PACKAGE="libqtcontacts-telepathy"
11 VERSION="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MICRO}"
12 VERSION_LABEL="${VERSION}"
13 CONFIGURE_FLAGS="$@"
14
15 # =================================================================================================
16 # Compute real package version
17 # =================================================================================================
18
19 relpath=`dirname "$0"`
20 changelog="$relpath/debian/changelog"
21
22 if [ -x "/usr/bin/dpkg-parsechangelog" -a -f "$changelog" ]
23 then
24     VERSION_LABEL=`/usr/bin/dpkg-parsechangelog -l"$changelog" | sed -ne 's/^Version: //p'`
25
26     case "${VERSION_LABEL}" in
27     ${VERSION}|${VERSION}[~-]*);;
28     *)
29         echo "ERROR: Package version $VERSION doesn't match changelog version $VERSION_LABEL." >&2
30         exit 1;;
31     esac
32 fi
33
34 # =================================================================================================
35 # Set default values for configuration settings
36 # =================================================================================================
37
38 PREFIX="/usr/local"
39 BINDIR=
40 LIBDIR=
41 INCLUDEDIR=
42 LOCALSTATEDIR=
43 TOP_BUILDDIR=`/bin/pwd`
44 TOP_SOURCEDIR=`cd "$relpath"; /bin/pwd`
45 TARGET_CPU=`c++ -dumpmachine | sed s/-.*//`
46
47 # keep in sync with (default) info in --help output
48 ENABLE_RTTI=yes
49 ENABLE_BUILDDIRS_RPATH=yes
50 ENABLE_CELLULAR=
51 ENABLE_LIBCREDS2=
52 ENABLE_SCHEMA_LIST=yes
53 ENABLE_COVERAGE=no
54
55 # =================================================================================================
56 # Parse command line arguments
57 # =================================================================================================
58
59 while [ "$#" -gt 0 ]
60 do
61     case "$1" in
62     -h|--help)
63         echo "Usage: ./configure [OPTION]..."
64         echo
65         echo "Configuration:"
66         echo "    -h, --help                 display this help and exit"
67         echo
68         echo "Installation directories:"
69         echo "    --prefix=DIR               install everything relative to DIR"
70         echo "                               [/usr/local]"
71         echo
72         echo "Fine tuning of the installation directories:"
73         echo "    --bindir=DIR               user executables [PREFIX/bin]"
74         echo "    --libdir=DIR               object code libraries [PREFIX/lib]"
75         echo "    --includedir=DIR           C header files [PREFIX/include]"
76         echo "    --localstatedir=DIR        modifiable single-machine data [PREFIX/var]"
77         echo
78         echo "Compiling:"
79         echo "    --enable-rtti              compile with Runtime Type Information (default)"
80         echo "    --disable-rtti             do not compile with Runtime Type Information"
81         echo
82         echo "Linking:"
83         echo "    --disable-builddirs-rpath  don't add rpath with builddirs to executables"
84         echo
85         echo "Configure optional features of the package:"
86         echo "    --enable-coverage          generate code coverage reports for unit tests"
87         echo "    --disable-coverage         don't generate coverage reports"
88         echo
89         exit
90         ;;
91
92     --prefix|-prefix) shift && PREFIX=$1 ;;
93     --prefix=*) PREFIX=${1#--prefix=} ;;
94
95     --bindir|-bindir) shift && BINDIR=$1 ;;
96     --bindir=*) BINDIR=${1#--bindir=} ;;
97
98     --libdir|-libdir) shift && LIBDIR=$1 ;;
99     --libdir=*) LIBDIR=${1#--libdir=} ;;
100
101     --includedir|-includedir) shift && INCLUDEDIR=$1 ;;
102     --includedir=*) INCLUDEDIR=${1#--includedir=} ;;
103
104     --localstatedir|-localstatedir) shift && LOCALSTATEDIR=$1 ;;
105     --localstatedir=*) LOCALSTATEDIR=${1#--localstatedir=} ;;
106
107     --enable-rtti) ENABLE_RTTI=yes ;;
108     --disable-rtti) ENABLE_RTTI=no ;;
109
110     --enable-builddirs-rpath) ENABLE_BUILDDIRS_RPATH=yes ;;
111     --disable-builddirs-rpath) ENABLE_BUILDDIRS_RPATH=no ;;
112
113     --enable-coverage) ENABLE_COVERAGE=yes ;;
114     --disable-coverage) ENABLE_COVERAGE=no ;;
115
116
117     *)
118         echo >&2 "configure: error: unrecognized option: '$1'"
119         echo >&2 "Try './configure --help' for more information."
120         exit
121         ;;
122     esac
123     shift
124 done
125
126 # =================================================================================================
127 # Compute values for uninitialized variables
128 # =================================================================================================
129
130 echo "Configuring $PACKAGE $VERSION_LABEL"
131
132 [ -z "$BINDIR" ]        && BINDIR="$PREFIX/bin"
133 [ -z "$LIBDIR" ]        && LIBDIR="$PREFIX/lib"
134 [ -z "$INCLUDEDIR" ]    && INCLUDEDIR="$PREFIX/include"
135 [ -z "$LOCALSTATEDIR" ] && LOCALSTATEDIR="$PREFIX/var"
136
137 echo
138
139 # =================================================================================================
140 # List used configuration
141 # =================================================================================================
142 echo "Add rpath with builddirs to executables... $ENABLE_BUILDDIRS_RPATH"
143 echo "Compile with runtime type information (RTTI)... $ENABLE_RTTI"
144 echo "Generate code coverage reports... $ENABLE_COVERAGE"
145 echo
146
147 # =================================================================================================
148 # Save configuration into qmake cache
149 # =================================================================================================
150
151 cachefile=".qmake.cache"
152
153 [ -f "$cachefile" ] && rm -f "$cachefile"
154
155 cat >> "$cachefile" << EOF
156 CONFIGURED = \$\$quote(yes)
157 CONFIGURE_FLAGS = \$\$quote($CONFIGURE_FLAGS)
158 PACKAGE = \$\$quote($PACKAGE)
159 VERSION_LABEL = \$\$quote($VERSION_LABEL)
160 VERSION_MAJOR = \$\$quote($VERSION_MAJOR)
161 VERSION_MINOR = \$\$quote($VERSION_MINOR)
162 VERSION_MICRO = \$\$quote($VERSION_MICRO)
163 VERSION = \$\$quote($VERSION)
164 PREFIX = \$\$quote($PREFIX)
165 BINDIR = \$\$quote($BINDIR)
166 LIBDIR = \$\$quote($LIBDIR)
167 INCLUDEDIR = \$\$quote($INCLUDEDIR)
168 LOCALSTATEDIR = \$\$quote($LOCALSTATEDIR)
169 TOP_SOURCEDIR = \$\$quote($TOP_SOURCEDIR)
170 TOP_BUILDDIR = \$\$quote($TOP_BUILDDIR)
171 TARGET_CPU = \$\$quote($TARGET_CPU)
172 ENABLE_RTTI = \$\$quote($ENABLE_RTTI)
173 ENABLE_BUILDDIRS_RPATH = \$\$quote($ENABLE_BUILDDIRS_RPATH)
174 ENABLE_COVERAGE = \$\$quote($ENABLE_COVERAGE)
175 EOF
176
177 if [ "$ENABLE_COVERAGE" = "yes" ]
178 then
179     # disable ccache when generating coverage information
180     echo 'QMAKE_CXX = SBOX_USE_CCACHE=no $$QMAKE_CXX' >> "$cachefile"
181     echo 'QMAKE_LINK = SBOX_USE_CCACHE=no $$QMAKE_LINK' >> "$cachefile"
182     echo 'QMAKE_CXXFLAGS = $$QMAKE_CXXFLAGS -ftest-coverage -fprofile-arcs -O0' >> "$cachefile"
183     echo 'QMAKE_LIBS = $$QMAKE_LIBS -lgcov' >> "$cachefile"
184     echo 'QMAKE_CLEAN = $$QMAKE_CLEAN *.gcov *.gcda *.gcno' >> "$cachefile"
185 fi
186
187 # =================================================================================================
188 # Run qmake
189 # =================================================================================================
190
191 echo "Running qmake..."
192
193 touch configure-stamp
194 qmake "$relpath/$PACKAGE.pro"
195
196 # =================================================================================================
197 # Print final banner
198 # =================================================================================================
199
200 echo
201 echo "$PACKAGE is configured now."
202 echo "You can run 'make' to build the package."
203 echo
204 echo "Once everything is built, you run 'make install'."
205 echo "$PACKAGE will be installed into $PREFIX"
206 echo
207 echo "To reconfigure, run 'make distclean' and 'configure'."
208 echo