Fix solaris build from Brian Cameron. (Must we worry about sys/socket.h ?)
[dasher.git] / configure.in
blobc452d74b1c36428a99499a9df953d2317d9573c1
1 AC_PREREQ(2.56)
2 AC_INIT([dasher],[4.9.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=dasher])
3 AC_REVISION([$Id: configure.in,v])
4 AC_CONFIG_SRCDIR([Src/main.cc])
5 AC_CONFIG_HEADERS(config.h)
7 dnl The following two changes are required currently for the Maemo build (but will break the GNOME build)
9 dnl AM_INIT_AUTOMAKE([1.9 gnu check-news dist-bzip2 no-dist-gzip])
10 AM_INIT_AUTOMAKE([1.8 gnu check-news dist-bzip2 no-dist-gzip])
11 AM_MAINTAINER_MODE
13 AC_PROG_MAKE_SET
14 IT_PROG_INTLTOOL([0.34.90])
15 dnl AC_PROG_INTLTOOL(0.30)
17 AC_DISABLE_STATIC
18 AC_PROG_LIBTOOL
20 dnl AM_ICONV
22 GETTEXT_PACKAGE=dasher
23 AC_SUBST(GETTEXT_PACKAGE)
24 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package])
25 AM_GLIB_GNU_GETTEXT
27 AC_PROG_CXX
29 AC_PROG_LD_GNU
31 WITHGTK2=true;
33 PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.4)
35 AC_CHECK_LIB(expat, XML_Parse,, AC_MSG_ERROR([Expat library not found.]))
36 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
38 AC_ARG_ENABLE(debug,
39         AC_HELP_STRING([--enable-debug],[build with additional debugging checks (default is NO)]),
40          if test $withval = "no"; then
41            DEBUG=false;
42          else
43            DEBUG=true;
44          fi,
45          DEBUG=false)
47 AC_ARG_WITH([gnome],
48          AC_HELP_STRING([--with-gnome],[build with GNOME support (default is YES)]), 
49          if test $withval = "no"; then
50            WITHGNOME=false; 
51          else
52            WITHGNOME=true;
53          fi, 
54          WITHGNOME=true)
56 dnl Just useful for debugging
57 AC_ARG_WITH([gvfs],
58         AC_HELP_STRING([--with-gvfs],
59                 [build with gvfs from gio in glib (default is YES)]),
60         [],
61         with_gvfs="yes")
62 if test $with_gvfs != "no"; then
63         PKG_CHECK_MODULES(GIO, gio-2.0,
64                 [have_gio=true
65                 AC_DEFINE(HAVE_GIO, 1, [gio exists so use gvfs])],
66                 [have_gio=false])
69 AC_ARG_ENABLE([speech],
70          AC_HELP_STRING([--enable-speech],[build with speech support (default is NO)]),
71          if test $enableval = "no"; then
72            WITHSPEECH=false; 
73          else
74            WITHSPEECH=true;
75          fi, 
76          WITHSPEECH=false)
78 AC_ARG_WITH([qte],
79          AC_HELP_STRING([--with-qte],[build with QTE support (default is NO -- currently untested)]), 
80          if test $withval = "no"; then
81            WITHQTE=false; 
82          else
83            WITHQTE=true;
84          fi, 
85          WITHQTE=false)
87 AC_ARG_WITH([gpe],
88          AC_HELP_STRING([--with-gpe],[build with GPE support (default is NO -- currently untested)]), 
89          if test $withval = "no"; then
90            WITHGPE=false; 
91          else
92            WITHGPE=true;
93          fi, 
94          WITHGPE=false)
96 AC_ARG_ENABLE([a11y],
97          AC_HELP_STRING([--enable-a11y],[build with support for the GNOME accessibility framework (default is YES)]),
98          if test $enableval = "no"; then
99            WITHA11Y=false; 
100          else
101            WITHA11Y=true;
102          fi, 
103          WITHA11Y=true)
105 AC_ARG_ENABLE([japanese],
106          AC_HELP_STRING([--enable-japanese],[build with support for Japanese Kanji entry (experimental -- default is NO)]),
107          if test $enableval = "no"; then
108            WITHJAPANESE=false; 
109          else
110            AC_CHECK_LIB(canna, RkBgnBun,, AC_MSG_ERROR([Canna library not found (required for Japanese).]))
111            WITHJAPANESE=true;
112          fi, 
113          WITHJAPANESE=false)
115 AC_ARG_ENABLE([chinese],
116          AC_HELP_STRING([--enable-chinese],[build with support for Chinese PinYin entry (experimental -- default is NO)]),
117          if test $enableval = "no"; then
118            WITHCHINESE=false; 
119          else
120            WITHCHINESE=true;
121          fi, 
122          WITHCHINESE=false)
124 AC_ARG_ENABLE([joystick],
125          AC_HELP_STRING([--enable-joystick],[Build with Linux joystick support (note that other UNIX based operating systems aren't supported here)]),
126          if test $enableval = "no"; then
127            WITHJOYSTICK=false; 
128          else
129            WITHJOYSTICK=true;
130          fi, 
131          WITHJOYSTICK=false)
134 AC_ARG_ENABLE([tilt],
135          AC_HELP_STRING([--enable-tilt],[Build with experimental support for tilt sensor input (experimental -- default is NO)]),
136          if test $enableval = "no"; then
137            WITHTILT=false; 
138          else
139            WITHTILT=true;
140          fi, 
141          WITHTILT=false)
144 AC_ARG_WITH([maemo],
145         AC_HELP_STRING([--with-maemo],[build with Maemo support (default is NO)]),
146         if test $withval = "yes"; then
147            WITHMAEMO=true;
148            WITHGNOME=false;
149            WITHA11Y=false;
150         else
151            WITHMAEMO=false;
152         fi,
153         WITHMAEMO=false)
155 AC_ARG_WITH([maemo-fullscreen],
156         AC_HELP_STRING([--with-maemo-fullscreen],[build as standalone Maemo fullscreen app (default is NO)]),
157         if test $withval = "yes"; then
158            WITHMAEMOFULLSCREEN=true;
159            WITHMAEMO=true;
160            WITHGNOME=false;
161            WITHA11Y=false;
162         else
163            WITHMAEMOFULLSCREEN=false;
164         fi,
165         WITHMAEMOFULLSCREEN=false)
168 dnl AC_ARG_WITH([darwin],
169 dnl     AC_HELP_STRING([--with-darwin],[build with Darwin (Mac OS X) support (default is NO)]),
170 dnl     if test $withval = "yes"; then
171 dnl        WITHDARWIN=true;
172 dnl     else
173 dnl        WITHDARWIN=false;
174 dnl     fi,
175 dnl     WITHDARWIN=false)
177 AC_ARG_WITH([cairo],
178          AC_HELP_STRING([--with-cairo],[build with cairo support (default is YES)]),
179          if test $withval = "no"; then
180            WITHCAIRO=false; 
181          else
182            WITHCAIRO=true;
183          fi, 
184          WITHCAIRO=true)
186 if [[ x"$WITHGTK2" = xtrue ]]
187 then 
188         PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.4.0,[GTK2HERE=true],[GTK2HERE=false]) 
189         PKG_CHECK_MODULES(GCONF, gconf-2.0,[GCONF2HERE=true],[GCONF2HERE=false])
190         if [[ x$GCONF2HERE = xfalse ]]; then
191            AC_MSG_WARN("GConf was not detected - user preferences will not be stored.")
192         fi
195 if [[ x"$GTK2HERE" = xtrue ]] && [[ x"$WITHGTK2" = xtrue ]] && [[ x"$WITHQTE" != xtrue ]]
196 then
197         BUILDGTK2=true
198 elif [[ x"$GTK2HERE" = xtrue ]] && [[ x"$WITHQTE" != xtrue ]]
199 then
200         BUILDGTK2=true
201 else 
202         BUILDGTK2=false
205 if [[ x$BUILDGTK2 = xfalse ]] && [[ x"$WITHQTE" != xtrue ]]
206 then
207         echo $WITHGTK2
208         AC_ERROR("Unable to find GTK2 or another necessary library. See the previous line for more useful data.")
211 if [[ x"$WITHQTE" != xtrue ]]
212 then
213 dnl test for X libraries
214         if test x$no_x = xyes ; then
215           AC_MSG_ERROR([X development libraries not found])
216         else
217           X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
218         fi
220 dnl path to Xtst
221         AC_CHECK_LIB(Xtst, XTestFakeKeyEvent, XTST_LIBS=-lXtst)
222         if test "x$XTST_LIBS" = x; then
223           save_LIBS="$LIBS"
224           for xtstpath in /usr/X11R6/lib64 /usr/X11R6/lib /usr/openwin/lib $x_libraries; do
225             LIBS="-L$xtstpath -lXtst"
226             case "$host" in
227             *solaris*) XTST_RPATH_FLAGS="-R$xtstpath" ;;
228             esac
229             AC_MSG_CHECKING(for -lXtst in $xtstpath)
230             AC_TRY_LINK([], [XTestFakeKeyEvent()], [
231                 AC_MSG_RESULT(yes)
232                 XTST_LIBS="$XTST_RPATH_FLAGS -L$xtstpath -lXtst"
233                 LIBS="$save_LIBS"
234                 break],[AC_MSG_RESULT(no)])
235           done
236         fi
237         if test "x$XTST_LIBS" = x; then
238           AC_MSG_ERROR(Couldn't find the Xtst library. Check config.log for details)
239         else
240           X_LIBS="$X_LIBS $XTST_LIBS"
241           AC_DEFINE(HAVE_XTST, 1, [The XTest extension is present])
242         fi
244 AC_SUBST(X_LIBS)
247 if [[ x"$DEBUG" = xtrue ]]; then
248         AC_DEFINE([DEBUG], 1, [Additional debug checks enabled])
251 if [[ x"$WITHGNOME" = xtrue ]]; then
252         PKG_CHECK_MODULES(gnome, libgnome-2.0 libgnomeui-2.0 )
253         AC_DEFINE([GNOME_LIBS], 1, [libgnome-2 and libgnomeui-2 are present])
256 if [[ x"$WITHSPEECH" = xtrue ]]; then
257         PKG_CHECK_MODULES(gnome_speech, gnome-speech-1.0 bonobo-activation-2.0 libbonobo-2.0 ORBit-2.0)
258         AC_DEFINE([GNOME_SPEECH], 1, [gnome_speech-1 libraries are present])
259 #       SPEECH_SOURCES='speech.$(OBJEXT)'
262 if [[ x"$WITHA11Y" = xtrue ]]; then
263         PKG_CHECK_MODULES(gnome_a11y, bonobo-activation-2.0 libbonobo-2.0 ORBit-2.0 libgnomeui-2.0 cspi-1.0 atk)
264         AC_DEFINE([GNOME_A11Y], 1, [gnome_a11y libraries are present])
267 if [[ x"$WITHJAPANESE" = xtrue ]]; then
268         AC_DEFINE([JAPANESE], 1, [Japanese support enabled])
269         JAPANESE_SOURCES='CannaConversionHelper.$(OBJEXT)'
270 else
271         JAPANESE_SOURCES=
274 AC_SUBST(JAPANESE_SOURCES)
276 if [[ x"$WITHCHINESE" = xtrue ]]; then
277         AC_DEFINE([CHINESE], 1, [Chinese support enabled])
278         CHINESE_SOURCES='PinYinConversionHelper.$(OBJEXT) PinyinParser.$(OBJEXT)'
280 else
281         CHINESE_SOURCES=
284 AC_SUBST(CHINESE_SOURCES)
286 if [[ x"$WITHJOYSTICK" = xtrue ]]; then
287         AC_DEFINE([JOYSTICK], 1, [Linux joystick support enabled])
290 if [[ x"$WITHTILT" = xtrue ]]; then
291         AC_DEFINE([TILT], 1, [Tilt input support enabled])
294 if [[ x"$WITHGPE" = xtrue ]]; then
295         AC_DEFINE([WITH_GPE], 1, [gpe is present])
298 dnl if [[ x"$WITHDARWIN" = xtrue ]]; then
299 dnl         AC_DEFINE([WITH_DARWIN], 1, [Targeting Darwin/X11])
300 dnl fi
302 if [[ x"$WITHMAEMO" = xtrue ]]; then
303       AC_DEFINE([WITH_MAEMO], 1, [Maemo is present])
304       dnl Yes, this sucks
305       glade_LIBS="/usr/lib/libglade-2.0.a"
306       PKG_CHECK_MODULES(hildon, hildon-libs)
307       AC_CHECK_LIB(osso, osso_initialize,, AC_MSG_ERROR([Osso library not found.]))
308 fi                      
310 if [[ x"$WITHMAEMOFULLSCREEN" = xtrue ]]; then
311       AC_DEFINE([WITH_MAEMOFULLSCREEN], 1, [Building as fullscreen Maemo app])
314 if [[ x"$WITHCAIRO" = xtrue ]]; then
315         PKG_CHECK_MODULES(cairo, gtk+-2.0 >= 2.8.0)
316         AC_DEFINE([WITH_CAIRO], 1, [use cairo (needs Gtk+ >= 2.8.0)])
319 if [[ x"$BUILDGTK2" = xtrue ]]; then 
320         PKG_CHECK_MODULES(glade, libglade-2.0)
321         if [[ x"$WITHMAEMO" = xtrue ]]; then
322                 dnl Yes, this sucks
323                 glade_LIBS=`echo $glade_LIBS | sed s/-lglade-2.0//`
324                 glade_LIBS="$glade_LIBS /usr/lib/libglade-2.0.a"
325         fi
327         PKG_CHECK_MODULES(gthread, gthread-2.0)
330 dnl     if [[ x"$WITHMAEMO" = xfalse ]]; then
331 dnl             PKG_CHECK_MODULES(wnck, libwnck-1.0)
332 dnl             AC_DEFINE([HAVE_WNCK], 1, [wnck is present])
333 dnl     fi
336 # libglade's autoconnect feature requires dasher to be linked with
337 # the --export-dynamic flag. pkg-config does not provide it, and libtool
338 # knows what to do with -export-dynamic.
339 if [[ x"$glade_LIBS" != x ]]; then
340         glade_LIBS="$glade_LIBS -export-dynamic"
343 if [[ x"$GCONF2HERE" = xtrue ]]; then
344         AM_GCONF_SOURCE_2
345         AC_DEFINE([WITH_GCONF], 1, [Use GConf])
348 AC_SUBST(gnome_speech_LIBS)
349 AC_SUBST(gnome_speech_CFLAGS)
350 AC_SUBST([SPEECH_SOURCES])
352 AC_SUBST(gnome_a11y_LIBS)
353 AC_SUBST(gnome_a11y_CFLAGS)
354 AC_SUBST([A11Y_SOURCES])
356 AC_SUBST(gnome_LIBS)
357 AC_SUBST(gnome_CFLAGS)
359 AC_SUBST(glade_LIBS)
360 AC_SUBST(glade_CFLAGS)
362 AC_SUBST(gthread_LIBS)
363 AC_SUBST(gthread_CFLAGS)
365 AC_SUBST(wnck_LIBS)
366 AC_SUBST(wnck_CFLAGS)
368 AC_SUBST(hildon_LIBS)
369 AC_SUBST(hildon_CFLAGS)
371 AC_SUBST(GETTEXT_PACKAGE)
373 AM_CONDITIONAL(DOGTK2, test x$BUILDGTK2 = xtrue)        
374 AM_CONDITIONAL(DOQTE, test x$WITHQTE = xtrue)
375 AM_CONDITIONAL(GNOME_SPEECH, test x$WITHSPEECH = xtrue)
376 AM_CONDITIONAL(GNOME_A11Y, test x$WITHA11Y = xtrue)
377 AM_CONDITIONAL(GNOME_HELP, test x$WITHGNOME = xtrue)
378 AM_CONDITIONAL(WITH_GPE, test x$WITHGPE = xtrue)
379 AM_CONDITIONAL(WITH_MAEMO, test x$WITHMAEMO = xtrue)
380 AM_CONDITIONAL(WITH_MAEMOFULLSCREEN, test x$WITHMAEMOFULLSCREEN = xtrue)
381 AM_CONDITIONAL(JAPANESE, test x$WITHJAPANESE = xtrue)
382 AM_CONDITIONAL(CHINESE, test x$WITHCHINESE = xtrue)
383 AM_CONDITIONAL(JOYSITICK, test x$WITHJOYSTICK = xtrue)
385 AC_SUBST(GTK2_CFLAGS)
386 AC_SUBST(GTK2_LIBS)
388 AC_SUBST(GCONF_CFLAGS)
389 AC_SUBST(GCONF_LIBS)
391 if [[ x"$WITHGPE" = xtrue ]]; then
392         SETTINGS_CFLAGS=" "
393         SETTINGS_LIBS="-lgpewidget -lXsettings-client -lXsettings"
394 else
395         SETTINGS_CFLAGS=$GCONF_CFLAGS
396         SETTINGS_LIBS=$GCONF_LIBS
398 AC_SUBST(SETTINGS_CFLAGS)
399 AC_SUBST(SETTINGS_LIBS)
401 GTK2BUILD_CFLAGS="$GTK2_CFLAGS $GIO_CFLAGS $SETTINGS_CFLAGS $gthread_CFLAGS $gnome_speech_CFLAGS $gnome_a11y_CFLAGS $glade_CFLAGS $gnome_CFLAGS $wnck_CFLAGS $hildon_CFLAGS"
403 GTK2BUILD_LIBS="$X_LIBS $GTK2_LIBS $GIO_LIBS $SETTINGS_LIBS $gthread_LIBS $gnome_speech_LIBS $gnome_a11y_LIBS $glade_LIBS $gnome_LIBS $wnck_LIBS $hildon_LIBS"
405 AC_SUBST(GTK2BUILD_CFLAGS)
406 AC_SUBST(GTK2BUILD_LIBS)
408 AC_MSG_CHECKING([for gnome-doc-utils])
409 GNOME_DOC_INIT([0.9.0],[have_gdu=yes],[have_gdu=no])
410 AC_MSG_RESULT($have_gdu)
412 if [[ x"$WITHGNOME" = xtrue ]] && [[ x"$have_gdu" = xno ]]; then
413     AC_MSG_ERROR([gnome-doc-utils not found!])
416 AM_CONDITIONAL(ENABLE_SK, test x"$WITHGNOME" = xfalse -a x"$enable_scrollkeeper" = "xyes")
418 AC_CONFIG_FILES([Data/dasher.desktop.in
419                  Data/Makefile
420                  Data/training/Makefile
421                  Data/alphabets/Makefile
422                  Data/glade/Makefile
423                  Data/colours/Makefile
424                  Data/controllabels/Makefile
425                  Data/Help/Makefile
426                  Data/Help/Gnome/Makefile
427                  Doc/Makefile
428                  Doc/user/Makefile
429                  Makefile
430                  Src/Makefile
431                  Src/Common/Makefile
432                  Src/DasherCore/Makefile
433                  Src/DasherCore/LanguageModelling/Makefile
434                  Src/DasherIM/Makefile
435                  Src/Gtk2/Makefile
436                  Src/Installer/Makefile
437                  Src/InstallerTobii/Makefile
438                  Src/InstallerW2K/Makefile
439                  Src/Win32/Makefile
440                  po/Makefile.in])
442 AC_OUTPUT