2 # Process this file with autoconf to produce a configure script.
4 AC_INIT([plover],[0.6.1],[ali@juiblex.co.uk])
6 AC_CONFIG_AUX_DIR([config])
7 AC_CONFIG_SRCDIR([plover/plover.h])
8 AC_CONFIG_HEADER([config.h])
9 AC_CONFIG_MACRO_DIR([m4])
10 AC_CONFIG_FILES([Makefile
14 plover-gtk/plover-gtk.pc
22 app-manager/resources.rc
24 plover-open/resources.rc
27 tests/plover-gtk/Makefile
28 tests/pre-inst/Makefile
30 PLOVER_MSWIN_MANIFEST([setup/setup.exe.manifest:setup/manifest.xml.in
31 update/update.exe.manifest:update/manifest.xml.in
32 pre-inst/pre-inst.exe.manifest:pre-inst/manifest.xml.in
33 app-manager/app-manager.exe.manifest:app-manager/manifest.xml.in
34 plover-open/plover-open.exe.manifest:plover-open/manifest.xml.in
36 AM_INIT_AUTOMAKE(no-define parallel-tests)
37 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
38 AC_SUBST(PLOVER_MAJOR_VERSION,[[`echo $VERSION | \
39 sed -e 's/^[^.]*$/0/' -e 's/\..*//'`]])
40 AC_SUBST(PLOVER_MINOR_VERSION,[[`echo $VERSION | \
41 sed -e 's/.*/&.0.0/' -e 's/[^.]*\.\([^.]*\)\..*/\1/'`]])
42 AC_SUBST(PLOVER_MICRO_VERSION,[[`echo $VERSION | \
43 sed -e 's/.*/&.0.0.0/' -e 's/\([^.]*\.\)\{2\}\([^.]*\)\..*/\2/'`]])
44 AC_SUBST(PLOVER_PATCH_LEVEL,[[`echo $VERSION | \
45 sed -e 's/.*/&.0.0.0.0/' -e 's/\([^.]*\.\)\{3\}\([^.]*\)\..*/\2/'`]])
47 AC_SUBST(HOST_OS,$host_os)
48 AC_SUBST(HOST_CPU,$host_cpu)
57 AM_CONDITIONAL(PLOVER_MINGW,[test -n "$host_mingw"])
59 # libtool versioning for libplover. For a release one of the following
62 # - If interfaces have been changed or added, but binary compatibility has
63 # been preserved, increment CURRENT and AGE and set REVISION to 0.
64 # - If binary compatibility has been broken (eg removed or changed interfaces),
65 # increment CURRENT and set AGE and REVISION to 0.
66 # - If the interface is the same as the previous version, increment REVISION.
71 LIBPLOVER_LT_VERSION_INFO="$lt_current:$lt_revision:$lt_age"
72 AC_SUBST(LIBPLOVER_LT_VERSION_INFO)
74 # and likewise for plover-gtk.
79 PLOVER_GTK_LT_VERSION_INFO="$lt_current:$lt_revision:$lt_age"
80 AC_SUBST(PLOVER_GTK_LT_VERSION_INFO)
82 ##################################################
83 # Checks for programs.
84 ##################################################
90 AC_CHECK_TOOL([WINDRES],[windres],[no])
91 AM_CONDITIONAL([HAVE_WINDRES],[test x$WINDRES != xno])
92 AC_CHECK_PROGS([RSVG_CONVERT],[rsvg rsvg-convert],[no])
93 if test "$RSVG_CONVERT" = no; then
94 AC_MSG_ERROR([no program found to convert SVG files to bitmaps])
96 if test "$RSVG_CONVERT" = rsvg; then
97 RSVG_CONVERT="sh \$(top_srcdir)/config/rsvg_convert"
100 AS_IF([test "$enable_valgrind" != "no"],[[
101 major=`$VALGRIND --version | \
102 sed -e 's/^valgrind-//' -e 's/^[^.]*$/0/' -e 's/\..*//'`
103 minor=`$VALGRIND --version | \
104 sed -e 's/^valgrind-//' -e 's/.*/&.0.0/' -e 's/[^.]*\.\([^.]*\)\..*/\1/'`
105 ]],[major=0; minor=0])
106 AM_CONDITIONAL([HAVE_VALGRIND_3_9],[test 0$major -gt 3 -o 0$minor -gt 8])
108 AC_CHECK_TOOL([RAZOR],[razor],[no])
109 AC_CHECK_TOOL([RPMBUILD],[rpmbuild],[no])
110 AC_CHECK_TOOL([CREATEREPO],[createrepo],[no])
111 AC_CHECK_TOOL([COMPILE_RESOURCES],[glib-compile-resources],[no])
112 AM_CONDITIONAL([HAVE_CHECK_TOOLS],
113 [test x$RAZOR != xno -a x$RPMBUILD != xno -a x$CREATEREPO != xno -a \
114 x$COMPILE_RESOURCES != xno])
116 ##################################################
117 # Checks for header files.
118 ##################################################
120 AC_CHECK_HEADERS([winhttp.h],[],[],
121 [#include <windows.h>
124 ##################################################
125 # Checks for typedefs, structures, and compiler characteristics.
126 ##################################################
127 AH_VERBATIM([NO_PARENTHESES],
128 [/* Disable warnings on parentheses even if specified in CFLAGS. */
129 #pragma GCC diagnostic ignored "-Wparentheses"])
131 ##################################################
132 # Checks for libraries.
133 ##################################################
134 PKG_CHECK_MODULES(WHELK,[whelk])
135 PKG_CHECK_MODULES(RAZOR,[razor >= 0.5.4],[:],[RAZOR_LIBS=-lrazor])
136 PKG_CHECK_MODULES(EXPAT,[expat >= 2.2],[:],
137 [PKG_CHECK_MODULES(EXPAT,[expat22],[:],[EXPAT_LIBS=-lexpat])])
138 PKG_CHECK_MODULES(ZLIB,[zlib],[:],[ZLIB_LIBS=-lz])
139 PKG_CHECK_MODULES(LUA,[lua],[:],[LUA_LIBS=-llua])
140 PKG_CHECK_MODULES(GIO,[gio-2.0])
141 PKG_CHECK_MODULES(GTK,[gtk+-2.0])
142 PKG_CHECK_MODULES(GMODULE_EXPORT,[gmodule-export-2.0])
143 LIBPLOVER_CFLAGS="$RAZOR_CFLAGS $EXPAT_CFLAGS $ZLIB_CFLAGS $GIO_CFLAGS"
144 LIBPLOVER_LIBS="$RAZOR_LIBS $EXPAT_LIBS $ZLIB_LIBS $GIO_LIBS"
145 LIBPLOVER_REQUIREMENTS="razor expat zlib glib2"
146 AC_SUBST(LIBPLOVER_CFLAGS)
147 AC_SUBST(LIBPLOVER_LIBS)
148 AC_SUBST(LIBPLOVER_REQUIREMENTS)
149 PLOVER_GTK_CFLAGS="$GTK_CFLAGS $RAZOR_CFLAGS"
150 PLOVER_GTK_LIBS="$GTK_LIBS $RAZOR_LIBS"
151 AC_SUBST(PLOVER_GTK_CFLAGS)
152 AC_SUBST(PLOVER_GTK_LIBS)
154 AC_SEARCH_LIBS([crypt],[crypt])
155 LUA_POSIX_CFLAGS="$LUA_CFLAGS"
156 LUA_POSIX_LIBS="-llua-posix $LUA_LIBS $LIBS"
158 AC_SUBST(LUA_POSIX_CFLAGS)
159 AC_SUBST(LUA_POSIX_LIBS)
160 save_PKG_CONFIG="$PKG_CONFIG"
161 PKG_CONFIG="$PKG_CONFIG --static"
162 PKG_CHECK_MODULES(SETUP,[whelk razor >= 0.5.4 expat >= 2.2 zlib gio-2.0],[:],
163 [PKG_CHECK_MODULES(SETUP,[whelk razor >= 0.5.4 expat22 zlib gio-2.0])])
164 if test -n "$host_mingw"; then
166 # -liconv is required for mingw. This probably stems from our use of
167 # libiconv rather than win-iconv that Fedora uses, but should be addressed
168 # somewhere in the stack below us.
169 # -ldnsapi is required by gio. This probably represents a gio bug.
170 SETUP_LIBS="$SETUP_LIBS -liconv -ldnsapi"
172 PKG_CONFIG="$save_PKG_CONFIG"
173 SETUP_CFLAGS="$SETUP_CFLAGS $LUA_POSIX_CFLAGS"
174 SETUP_LIBS="$SETUP_LIBS $LUA_POSIX_LIBS"
176 AC_SUBST(SETUP_CFLAGS)
178 LIBS="$LIBS -lcrypt32"
179 AC_MSG_CHECKING([for library containing CertEnumCertificatesInStore])
180 AC_LINK_IFELSE([AC_LANG_PROGRAM(
181 [[#include <windows.h>]],
182 [return !CertEnumCertificatesInStore((HCERTSTORE)0,NULL);])],
183 [FETCH_LIBS="-lcrypt32"])
184 if test -z "$FETCH_LIBS"; then
187 AC_MSG_RESULT([$FETCH_LIBS])
189 AC_SUBST([FETCH_LIBS])
191 AC_ARG_WITH([breakpad],
192 [AS_HELP_STRING([--with-breakpad],
193 [produce minidumps on crash @<:@default=check@:>@])],
194 [],[with_breakpad=check])
195 if test "$with_breakpad" != no; then
196 PKG_CHECK_MODULES([BREAKPAD],[breakpad-client],
197 [have_breakpad="yes";REQUIREMENTS="$REQUIREMENTS x11"],[have_breakpad="no"])
198 if test "$have_breakpad" = yes; then
199 AC_DEFINE([HAVE_BREAKPAD],[1],[Define if breakpad is available.])
200 LIBPLOVER_PRIVATE_REQUIREMENTS="breakpad-client"
201 # breakpad-client uses C++. This should probably go into
202 # Libs.private in breakpad-client.pc
203 AS_IF([test -n "$host_mingw"],[
204 static_stdcxx=`$CXX --print-file-name=libstdc++.a`
205 LIBPLOVER_PRIVATE_LIBS="-lversion -lgcc_eh $static_stdcxx"
207 elif test "$with_breakpad" = yes; then
208 AC_MSG_ERROR([$BREAKPAD_PKG_ERRORS])
213 AC_SUBST(LIBPLOVER_PRIVATE_REQUIREMENTS)
214 AC_SUBST(LIBPLOVER_PRIVATE_LIBS)
215 AM_CONDITIONAL([HAVE_BREAKPAD],[test $have_breakpad = yes])
216 GUI_CFLAGS="$GMODULE_EXPORT_CFLAGS $WHELK_CFLAGS $PLOVER_GTK_CFLAGS \
217 $LIBPLOVER_CFLAGS $LUA_POSIX_CFLAGS"
218 GUI_LIBS="$GMODULE_EXPORT_LIBS $WHELK_LIBS $PLOVER_GTK_LIBS \
219 $LIBPLOVER_LIBS $LIBPLOVER_PRIVATE_LIBS $LUA_POSIX_LIBS"
223 ##################################################
224 # Checks for library functions.
225 ##################################################
226 AC_CHECK_FUNCS_ONCE([fchdir fpathconf dirfd localtime_r])
228 ##################################################
229 # Checks for processor independent files.
230 ##################################################
232 ##################################################
233 # Generate the various configured files
234 ##################################################