Updated About dialog; also bumped version number to 1.0.0
[moonshot-ui.git] / configure.ac
1 AC_PREREQ([2.63])
2 AC_INIT([Moonshot-ui],
3         [1.0.0],
4         [moonshot-community@jiscmail.ac.uk],
5         [moonshot-ui],
6         [http://www.project-moonshot.org/])
7
8 # Remove this when we can depend on autoconf >= 2.64
9 AC_SUBST(PACKAGE_URL, [http://www.project-moonshot.org/])
10 AC_DEFINE(PACKAGE_URL,["http://www.project-moonshot.org"],[package URL])
11 AC_CONFIG_HEADERS([config.h])
12 AC_CONFIG_SRCDIR([configure.ac])
13 AC_CONFIG_MACRO_DIR([m4])
14 AC_CONFIG_AUX_DIR([build-aux])
15
16 AM_INIT_AUTOMAKE([1.11 -Wall foreign subdir-objects tar-pax no-dist-gzip dist-xz])
17 AM_SILENT_RULES([yes])
18 AM_MAINTAINER_MODE([enable])
19
20 LT_PREREQ([2.2])
21 LT_INIT([win32-dll])
22 AC_CHECK_FUNCS_ONCE(geteuid getpwuid)
23
24 # Checks for programs.
25 PKG_PROG_PKG_CONFIG([0.23])
26 AC_PROG_CC
27 AM_PROG_CC_C_O
28 AM_PROG_VALAC([0.9])
29
30 # Platform checks
31 AC_CANONICAL_HOST
32
33 case "$host" in
34   *-*-mingw*)
35     win32=yes
36     macos=no
37     linux=no
38     SERVER_IPC_MODULE="msrpc-glib2-1.0"
39     CLIENT_IPC_MODULE="msrpc-mingw-1.0"
40     ;;
41     
42   *darwin*) 
43     win32=no
44     macos=yes
45     linux=no
46
47     # We require dbus-glib for the client library even if we are using GDBus
48     # in the server. The reason we can't always use dbus-glib in the server is
49     # because Vala drops support for it, but as it ships with DBus there is very
50     # little danger of it being dropped by distros any time soon.
51     CLIENT_IPC_MODULE="dbus-glib-1"
52         SERVER_IPC_MODULE="dbus-glib-1"   
53         
54         PKG_CHECK_MODULES([MAC], 
55                         [gtk-mac-integration >= 1.0.1]
56         )
57
58     ;;
59   *)
60     macos=no
61     win32=no
62     linux=yes
63
64     # We require dbus-glib for the client library even if we are using GDBus
65     # in the server. The reason we can't always use dbus-glib in the server is
66     # because Vala drops support for it, but as it ships with DBus there is very
67     # little danger of it being dropped by distros any time soon.
68     CLIENT_IPC_MODULE="dbus-glib-1"
69     PKG_CHECK_MODULES([GDBUS],
70             [gio-2.0 >= 2.26],
71             [SERVER_IPC_MODULE="gio-2.0"],
72             [SERVER_IPC_MODULE="dbus-glib-1"]
73     )
74
75     ;;
76 esac
77
78
79 # For all platforms: Use Gtk+3.0 if available; else revert to Gtk+2.0
80 PKG_CHECK_MODULES([GTK],
81         [gtk+-3.0 >= 3.1],
82         [GTK_VERSION="gtk+-3.0"],
83             [PKG_CHECK_MODULES([GTK],
84                         [gtk+-2.0 >= 2.18],
85                         [GTK_VERSION="gtk+-2.0"]
86             )]                            
87 )
88 AC_SUBST(GTK_VERSION)
89
90
91 # For all platforms: Use gee-0.8 if available; else revert to gee-1.0
92 # (yes, gee-0.8 is an upgrade from gee-1.0!)
93 PKG_CHECK_MODULES([LIB_GEE],
94         [gee-0.8 >= 0.16],
95         [GEE_VERSION="gee-0.8"],
96             [PKG_CHECK_MODULES([LIB_GEE],
97                         [gee-1.0 >= 0.5],
98                         [GEE_VERSION="gee-1.0"]
99             )]                            
100 )
101 AC_SUBST(GEE_VERSION)
102
103 #enable the optional use of Log4Vala (Must have the package installed!)
104 AC_ARG_ENABLE([log4vala],
105 [  --enable-log4vala    Enable use of log4vala for logging],
106 [case "${enableval}" in
107   yes) log4vala=true ;;
108   no)  log4vala=false ;;
109   *) AC_MSG_ERROR([bad value ${enableval} for --enable-log4vala]) ;;
110 esac],[log4vala=false])
111 AM_CONDITIONAL([LOG4VALA], [test x$log4vala = xtrue])
112
113
114 AM_CONDITIONAL([OS_LINUX], [test "$linux" = "yes"])
115 AM_CONDITIONAL([OS_WIN32], [test "$win32" = "yes"])
116 AM_CONDITIONAL([OS_MACOS], [test "$macos" = "yes"])
117
118 AM_CONDITIONAL([IPC_MSRPC], [test "$SERVER_IPC_MODULE" = "msrpc-glib2-1.0"])
119 AM_CONDITIONAL([IPC_DBUS], [test "$SERVER_IPC_MODULE" != "msrpc-glib2-1.0"])
120 AM_CONDITIONAL([IPC_DBUS_GLIB], [test "$SERVER_IPC_MODULE" = "dbus-glib-1"])
121 AM_CONDITIONAL([IPC_GDBUS], [test "$SERVER_IPC_MODULE" = "gio-2.0"])
122
123 vala_version=`$VALAC --version | sed 's/Vala  *//'`
124 AS_VERSION_COMPARE(["$vala_version"], [0.11.1],
125   [gio_vapi_uses_arrays="no"],
126   [gio_vapi_uses_arrays="yes"],
127   [gio_vapi_uses_arrays="yes"])
128 AM_CONDITIONAL([GIO_VAPI_USES_ARRAYS], [test "$gio_vapi_uses_arrays" = "yes"])
129 if test "$SERVER_IPC_MODULE" = "dbus-glib-1"; then
130   AC_MSG_CHECKING([$VALAC is no greater than 0.12.1])
131   AS_VERSION_COMPARE([0.12.2], ["$vala_version"],
132     [vala_supports_dbus_glib="no"],
133     [vala_supports_dbus_glib="no"],
134     [vala_supports_dbus_glib="yes"])
135
136   AC_MSG_RESULT([$vala_supports_dbus_glib])
137   if test "$vala_supports_dbus_glib" = "no"; then
138     AC_MSG_ERROR([
139 *** Vala 0.12.1 or earlier is required for dbus-glib support. Newer versions
140 *** require that you have GLib 2.26 or newer (for GDBus support).])
141   fi
142 fi
143
144 if test "$SERVER_IPC_MODULE" = "msrpc-glib2-1.0"; then
145   # MS RPC utilities
146   AC_PATH_MSRPC_MINGW([0.1.0], :,
147     AC_MSG_ERROR([
148 *** msrpc-mingw 0.1.0 or better is required.]))
149
150   AC_PATH_PROG([MIDL], [midl], no,
151                [/c/Program\ Files/Microsoft\ SDKs/Windows/v7.0/Bin$PATH_SEPARATOR$PATH])
152   if test "$MIDL" = "no"; then
153      AC_MSG_ERROR([
154 *** Could not find the Microsoft interface compiler MIDL.EXE.
155 *** This program is available as part of the MS Windows SDK, in
156 *** the Win32 Development Tools package. If it is not in the PATH
157 *** or its default location you may set the 'MIDL' environment
158 *** variable to point to its location and rerun configure.])
159   fi
160 fi
161
162 if test "$win32" = "yes"; then
163   # Other Windows-specific tools
164
165   # LIB.EXE from MSVC to build an MSVC-compatible import library.
166   AC_PATH_PROG([MSVC_LIB], [lib], no,
167                [/c/Program\ Files/Microsoft\ Visual\ Studio\ 9.0/VC/bin$PATH_SEPARATOR/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio\ 9.0/VC/bin$PATH_SEPARATOR$PATH])
168
169   if test "$MSVC_LIB" = "no"; then
170      AC_MSG_WARN([
171 *** Could not find the Microsoft 'LIB.EXE' program. This is required
172 *** to build the Visual C import library for libmoonshot. Use the
173 *** MSVC_LIB environment variable to pass its location if this is
174 *** outside the PATH.])
175   fi
176
177
178   # ImageMagick for the 'make icons' target. Note that
179   # c:/windows/system32/convert.exe is nothing to do with ImageMagick.
180   AC_PATH_PROG([IMAGEMAGICK_CONVERT], [convert], no,
181                [/c/Program\ Files/ImageMagick$PATH_SEPARATOR/c/Program\ Files\ \(x86\)/ImageMagick$PATH_SEPARATOR$PATH])
182
183   if test "$IMAGEMAGICK_CONVERT" = "no" || test "$IMAGEMAGICK_CONVERT" = "/c/windows/system32/convert"; then
184      AC_MSG_WARN([
185 *** Could not find ImageMagick convert.exe. This is required for the
186 *** 'make icons' target. Use the IMAGEMAGICK_CONVERT environment
187 *** variable to pass its location if this is outside the PATH.])
188   fi
189
190
191   # Windows Installer XML tools
192   AC_PATH_PROG([WIX_CANDLE], [candle], no,
193                [/c/Program\ Files/Windows\ Installer\ XML\ v3.5/bin$PATH_SEPARATOR/c/Program\ Files\ \(x86\)/Windows\ Installer\ XML\ v3.5/bin$PATH_SEPARATOR$PATH])
194   AC_PATH_PROG([WIX_LIGHT], [light], no,
195                [/c/Program\ Files/Windows\ Installer\ XML\ v3.5/bin$PATH_SEPARATOR/c/Program\ Files\ \(x86\)/Windows\ Installer\ XML\ v3.5/bin$PATH_SEPARATOR$PATH])
196
197   if test "$WIX_CANDLE" = "no" || test "$WIX_LIGHT" = "no"; then
198      AC_MSG_WARN([
199 *** Could not find the Windows Installer XML tools. These are required
200 *** for the 'make installer' target. Use the WIX_CANDLE and WIX_LIGHT
201 *** environment variables to pass their locations if they are outside
202 *** the PATH.])
203   fi
204 fi
205
206 if test "$linux" = "yes"; then
207   AC_PATH_PROG([UPDATE_MIME_DATABASE], [update-mime-database], [no])
208   if test "$UPDATE_MIME_DATABASE" = "no"; then
209     AC_MSG_ERROR([
210 *** Could not find the Freedesktop.org  mime database update tool.
211 *** Web provisioning files could not be automatically installed.])
212   fi
213   AC_PATH_PROG([UPDATE_DESKTOP_DATABASE], [update-desktop-database], [no])
214   if test "$UPDATE_DESKTOP_DATABASE" = "no"; then
215     AC_MSG_ERROR([
216 *** Could not find the Freedesktop.org desktop entry database update
217 *** tool. Web provisioning files could not be automatically installed.])
218   fi
219 fi
220
221 MOONSHOT_APP="$bindir/moonshot"
222 MOONSHOT_WEBP="$bindir/moonshot-webp"
223
224 AC_SUBST(MIDL)
225 AC_SUBST(MSVC_LIB)
226 AC_SUBST(IMAGEMAGICK_CONVERT)
227 AC_SUBST(WIX_CANDLE)
228 AC_SUBST(WIX_LIGHT)
229 AC_SUBST(UPDATE_MIME_DATABASE)
230 AC_SUBST(UPDATE_DESKTOP_DATABASE)
231 AC_SUBST(MOONSHOT_APP)
232 AC_SUBST(MOONSHOT_WEBP)
233
234 # Dependencies
235 PKG_CHECK_MODULES(moonshot,[
236         atk >= 1.20
237         glib-2.0 >= 2.22
238         gobject-2.0 >= 2.22
239         $GTK_VERSION
240         $GEE_VERSION
241         $SERVER_IPC_MODULE
242                 $MAC
243 ])
244
245 PKG_CHECK_MODULES(libmoonshot,[
246         $CLIENT_IPC_MODULE
247 ])
248
249 # i18n stuff
250 AM_GNU_GETTEXT([external])
251 AM_GNU_GETTEXT_VERSION([0.17])
252
253 AC_SUBST([GETTEXT_PACKAGE],[PACKAGE_TARNAME])
254 AC_DEFINE([GETTEXT_PACKAGE],[PACKAGE_TARNAME],[Define to the gettext package name.])
255
256 AC_CONFIG_FILES([
257         Makefile
258         po/Makefile.in
259         moonshot.desktop
260         moonshot-webp.desktop
261         moonshot-ui.spec
262 ])
263
264 AC_OUTPUT