Prepare harmattan/4.10.7-1
[qtcontacts-tracker:qtcontacts-tracker.git] / configure
1 #!/bin/sh
2 # =================================================================================================
3 # Configures the project's build system
4 # =================================================================================================
5
6 VERSION_MAJOR=4
7 VERSION_MINOR=10
8 VERSION_MICRO=7
9
10 PACKAGE="libqtcontacts-tracker"
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
53 # =================================================================================================
54 # Parse command line arguments
55 # =================================================================================================
56
57 while [ "$#" -gt 0 ]
58 do
59     case "$1" in
60     -h|--help)
61         echo "Usage: ./configure [OPTION]..."
62         echo
63         echo "Configuration:"
64         echo "    -h, --help                 display this help and exit"
65         echo
66         echo "Installation directories:"
67         echo "    --prefix DIR               install everything relative to DIR"
68         echo "                               [/usr/local]"
69         echo
70         echo "Fine tuning of the installation directories:"
71         echo "    --bindir DIR               user executables [PREFIX/bin]"
72         echo "    --libdir DIR               object code libraries [PREFIX/lib]"
73         echo "    --includedir DIR           C header files [PREFIX/include]"
74         echo "    --localstatedir DIR        modifiable single-machine data [PREFIX/var]"
75         echo
76         echo "Compiling:"
77         echo "    --enable-rtti              compile with Runtime Type Information (default)"
78         echo "    --disable-rtti             do not compile with Runtime Type Information"
79         echo
80         echo "Linking:"
81         echo "    --disable-builddirs-rpath  don't add rpath with builddirs to executables"
82         echo
83         echo "Configure optional features of the package:"
84         echo "    --enable-libcreds2-qt      check process credentials using libcreds2-qt"
85         echo "    --disable-libcreds2-qt     don't check process credentials"
86         echo "    --enable-cellular-qt       permit contact handling based on SIM card information"
87         echo "    --disable-cellular-qt      don't consider SIM card information"
88         echo
89         exit
90         ;;
91
92     --prefix)
93         shift && PREFIX=$1 ;;
94     --bindir)
95         shift && BINDIR=$1 ;;
96     --libdir)
97         shift && LIBDIR=$1 ;;
98     --includedir)
99         shift && INCLUDEDIR=$1 ;;
100     --localstatedir)
101         shift && LOCALSTATEDIR=$1 ;;
102
103     --enable-rtti)
104         ENABLE_RTTI=yes ;;
105     --disable-rtti)
106         ENABLE_RTTI=no ;;
107
108     --enable-builddirs-rpath)
109         ENABLE_BUILDDIRS_RPATH=yes ;;
110     --disable-builddirs-rpath)
111         ENABLE_BUILDDIRS_RPATH=no ;;
112
113     --enable-libcreds2-qt)
114         ENABLE_LIBCREDS2=yes ;;
115     --disable-libcreds2-qt)
116         ENABLE_LIBCREDS2=no ;;
117
118     --enable-cellular-qt)
119         ENABLE_CELLULAR=yes ;;
120     --disable-cellular-qt)
121         ENABLE_CELLULAR=no ;;
122
123     *)
124         echo >&2 "configure: error: unrecognized option: '$1'"
125         echo >&2 "Try './configure --help' for more information."
126         exit
127         ;;
128     esac
129     shift
130 done
131
132 # =================================================================================================
133 # Compute values for uninitialized variables
134 # =================================================================================================
135
136 echo "Configuring $PACKAGE $VERSION_LABEL"
137
138 [ -z "$BINDIR" ]        && BINDIR="$PREFIX/bin"
139 [ -z "$LIBDIR" ]        && LIBDIR="$PREFIX/lib"
140 [ -z "$INCLUDEDIR" ]    && INCLUDEDIR="$PREFIX/include"
141 [ -z "$LOCALSTATEDIR" ] && LOCALSTATEDIR="$PREFIX/var"
142
143 # =================================================================================================
144 # Check for required packages
145 # =================================================================================================
146
147 echo -n "Checking for libcreds2-qt..."
148 echo -n "libcreds2 support disabled currently due to lockup issues."
149 ENABLE_LIBCREDS2=no
150
151 if [ -z "$ENABLE_LIBCREDS2" ]
152 then
153     [ "$TARGET_CPU" = "arm" ] && pkg-config --exists libcreds2-qt &&
154     ENABLE_LIBCREDS2=yes || ENABLE_LIBCREDS2=no
155 fi
156
157 echo " $ENABLE_LIBCREDS2"
158
159 echo -n "Checking for CellularQt..."
160
161 if [ -z "$ENABLE_CELLULAR" ]
162 then
163     pkg-config --exists CellularQt sysinfo &&
164     ENABLE_CELLULAR=yes || ENABLE_CELLULAR=no
165 fi
166
167 echo " $ENABLE_CELLULAR"
168
169 # =================================================================================================
170 # Save configuration into qmake cache
171 # =================================================================================================
172
173 cachefile=".qmake.cache"
174
175 [ -f "$cachefile" ] && rm -f "$cachefile"
176
177 cat >> "$cachefile" << EOF
178 CONFIGURED = \$\$quote(yes)
179 CONFIGURE_FLAGS = \$\$quote($CONFIGURE_FLAGS)
180 PACKAGE = \$\$quote($PACKAGE)
181 VERSION_LABEL = \$\$quote($VERSION_LABEL)
182 VERSION_MAJOR = \$\$quote($VERSION_MAJOR)
183 VERSION_MINOR = \$\$quote($VERSION_MINOR)
184 VERSION_MICRO = \$\$quote($VERSION_MICRO)
185 VERSION = \$\$quote($VERSION)
186 PREFIX = \$\$quote($PREFIX)
187 BINDIR = \$\$quote($BINDIR)
188 LIBDIR = \$\$quote($LIBDIR)
189 INCLUDEDIR = \$\$quote($INCLUDEDIR)
190 LOCALSTATEDIR = \$\$quote($LOCALSTATEDIR)
191 TOP_SOURCEDIR = \$\$quote($TOP_SOURCEDIR)
192 TOP_BUILDDIR = \$\$quote($TOP_BUILDDIR)
193 TARGET_CPU = \$\$quote($TARGET_CPU)
194 ENABLE_LIBCREDS2 = \$\$quote($ENABLE_LIBCREDS2)
195 ENABLE_CELLULAR = \$\$quote($ENABLE_CELLULAR)
196 ENABLE_RTTI = \$\$quote($ENABLE_RTTI)
197 ENABLE_BUILDDIRS_RPATH = \$\$quote($ENABLE_BUILDDIRS_RPATH)
198 EOF
199
200 # =================================================================================================
201 # Run qmake
202 # =================================================================================================
203
204 echo "Running qmake..."
205
206 touch configure-stamp
207 qmake "$relpath/$PACKAGE.pro"
208
209 # =================================================================================================
210 # Print final banner
211 # =================================================================================================
212
213 echo
214 echo "$PACKAGE is configured now."
215 echo "You can run 'make' to build the package."
216 echo
217 echo "Once everything is built, you run 'make install'."
218 echo "$PACKAGE will be installed into $PREFIX"
219 echo
220 echo "To reconfigure, run 'make distclean' and 'configure'."
221 echo