1 m4_define([adg_version],[0.7.3])
2 m4_define([adg_api_version],[1.0])
3 m4_define([adg_lt_version],[3:0:0])
5 m4_define([cpml_version],adg_version)
6 m4_define([cpml_api_version],adg_api_version)
7 m4_define([cpml_lt_version],[2:0:0])
9 m4_define([gtkdoc_prereq],[1.12])dnl Support introspection annotations
10 m4_define([gobject_prereq],[2.10.1])
11 m4_define([cairo_prereq],[1.7.4])
12 m4_define([gtk2_prereq],[2.12.0])
13 m4_define([gtk3_prereq],[3.0.0])
14 m4_define([pangocairo_prereq],[1.18.0])
15 m4_define([gi_prereq],[0.9.5])dnl Picked up from clutter
20 dnl autoconf 2.62 is required by GObject introspection:
21 dnl http://live.gnome.org/GObjectIntrospection/AutotoolsIntegration
23 AC_INIT([adg-1],adg_version,[http://dev.entidi.com/p/adg/],[adg],[http://adg.entidi.com/])
24 AC_CONFIG_SRCDIR([configure.ac])
25 AC_CONFIG_HEADERS([src/config.h])
26 AC_CONFIG_AUX_DIR([build])
27 AC_CONFIG_MACRO_DIR([build])
28 AM_INIT_AUTOMAKE([1.10 gnits no-dist-gzip dist-bzip2 -Wall -Wno-portability])
30 dnl m4 backward compatibility stuff
31 m4_ifdef([AM_SILENT_RULES],
32 [AM_SILENT_RULES([yes])],
33 [AC_SUBST([AM_V_GEN],[])])
34 m4_ifdef([AM_SUBST_NOTMAKE],[],
35 [AC_DEFUN([AM_SUBST_NOTMAKE],[_AM_SUBST_NOTMAKE($@)])])
36 m4_ifdef([AM_COND_IF],[],
37 [AC_DEFUN([AM_COND_IF],
38 [AS_IF([test -z "$$1_TRUE"],[$2],[$3])])])
40 AC_DEFUN([ADG_DEPENDENCY],
41 [EXTRADIR="$EXTRADIR --extra-dir=$($PKG_CONFIG --variable=prefix $1)/share/gtk-doc/html/$2"])
43 # Check for host information
78 AM_CONDITIONAL([OS_UNIX],[test "${guessed_host}" != "mingw"])
79 AM_CONDITIONAL([OS_WINDOWS],[test "${guessed_host}" = "mingw" -o "${guessed_host}" = "cygwin"])
87 AC_PATH_PROG([XSLTPROC],[xsltproc],[/usr/bin/xsltproc])
88 AC_PATH_PROG([GLIB_MKENUMS],[glib-mkenums],[/usr/bin/glib-mkenums])
89 AC_PATH_PROG([GLIB_GENMARSHAL],[glib-genmarshal],[/usr/bin/glib-genmarshal])
90 AC_PATH_PROG([GTESTER],[gtester],[/usr/bin/gtester])
91 AC_PATH_PROG([GTESTER_REPORT],[gtester-report],[/usr/bin/gtester-report])
92 AC_PATH_PROG([GLADE3],[glade-3],[/usr/bin/glade-3])
93 AM_COND_IF([OS_WINDOWS],
94 [AC_PATH_PROG([MAKENSIS],[makensis],[/usr/bin/makensis])
95 AC_PATH_PROG([WINE],[wine])])
100 AC_CHECK_LIB([m],[cos])
103 # Libtool initialization
105 AC_MSG_CHECKING([which libtool initialization strategy to adopt])
106 AC_MSG_RESULT([m4_ifset([LT_INIT],[LT-INIT],[AC-PROG-LIBTOOL])])
108 [LT_INIT([disable-static win32-dll])],
116 AC_SUBST([ADG_API_PACKAGE],AC_PACKAGE_TARNAME-adg_api_version)
117 AC_SUBST([GETTEXT_PACKAGE],[${ADG_API_PACKAGE}])
118 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${ADG_API_PACKAGE}"],
119 [Define to the domain used by gettext.])
120 ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
121 IT_PROG_INTLTOOL([0.35.0])
123 GLIB_DEFINE_LOCALEDIR([LOCALEDIR])
124 AC_CONFIG_COMMANDS([default],
125 [case "${CONFIG_FILES}" in *po-properties/Makefile.in*)
126 ${SED} -e "/POTFILES =/r po-properties/POTFILES" po-properties/Makefile.in > po-properties/Makefile
131 # Check for required packages
133 PKG_CHECK_MODULES([GLIB],[glib-2.0])
134 ADG_DEPENDENCY([glib-2.0],[glib])
135 PKG_CHECK_MODULES([GOBJECT],[gobject-2.0 >= ]gobject_prereq)
136 ADG_DEPENDENCY([gobject-2.0],[gobject])
137 PKG_CHECK_MODULES([CAIRO],[cairo >= ]cairo_prereq)
138 ADG_DEPENDENCY([cairo],[cairo])
141 # Check for optional packages
144 AC_ARG_ENABLE([pango],
145 [AS_HELP_STRING([--enable-pango],
146 [use pango for rendering text @<:@default=check@:>@])],
147 [],[enable_pango=check])
148 AS_IF([test "x${enable_pango}" != "xno"],
149 [PKG_CHECK_MODULES([PANGO],[pangocairo >= ]pangocairo_prereq,
151 AC_DEFINE_UNQUOTED([PANGO_ENABLED],[1],
152 [Defined if the pango support is enabled.])
153 ADG_DEPENDENCY([pangocairo],[pango])],
154 [AS_IF([test "x${enable_pango}" = "xyes"],
155 [AC_MSG_ERROR([${PANGO_PKG_ERRORS} and pango support requested])],
156 [enable_pango=no])])])
157 AM_CONDITIONAL([HAVE_PANGO],[test "x${enable_pango}" = "xyes"])
161 [AS_HELP_STRING([--with-gtk@<:@=gtk2/gtk3@:>@],
162 [include GTK+ specific widgets @<:@default=check@:>@])],
164 AS_CASE(["${with_gtk}"],
165 [gtk2], [gtk2_pkg=yes; gtk3_pkg=no],
166 [gtk3], [gtk2_pkg=no; gtk3_pkg=yes],
167 [check|yes], [gtk2_pkg=yes; gtk3_pkg=yes],
168 [no], [gtk2_pkg=no; gtk3_pkg=no],
169 [AC_MSG_ERROR([Invalid option passed to --with-gtk])])
171 # GTK+ autodetection, giving precedence to GTK+3
172 AS_IF([test "x${gtk3_pkg}" = "xyes"],
173 [PKG_CHECK_MODULES([GTK3],[gtk+-3.0 >= ]gtk3_prereq,
175 ADG_DEPENDENCY([gtk+-3.0],[gtk3])],
177 AS_IF([test "x${gtk2_pkg}" = "xyes" -a "x${gtk_pkg}" = "x"],
178 [PKG_CHECK_MODULES([GTK2],[gtk+-2.0 >= ]gtk2_prereq,
180 ADG_DEPENDENCY([gtk+-2.0],[gtk2])],
182 AS_IF([test "x${gtk_pkg}" != "x"],[with_gtk=${gtk_pkg}])
184 # Handle "check" graceful degradation
185 AS_IF([test "x${with_gtk}" = "xcheck"],[with_gtk=no])
188 AS_IF([test "x${with_gtk}" != "xno" -a "x${gtk_pkg}" = "x"],
189 [AC_MSG_ERROR([GTK+ support explicitely required but no valid GTK+ found])])
191 AS_IF([test "x${with_gtk}" = "xgtk3"],
192 [AC_DEFINE_UNQUOTED([GTK3_ENABLED],[1],
193 [Defined if the GTK+3 support is enabled.])])
194 AS_IF([test "x${with_gtk}" = "xgtk2"],
195 [AC_DEFINE_UNQUOTED([GTK2_ENABLED],[1],
196 [Defined if the GTK+2 support is enabled.])])
198 AM_CONDITIONAL([HAVE_GTK], [test "x${with_gtk}" != "xno"])
199 AM_CONDITIONAL([HAVE_GTK2],[test "x${with_gtk}" = "xgtk2"])
200 AM_CONDITIONAL([HAVE_GTK3],[test "x${with_gtk}" = "xgtk3"])
202 dnl Glade catalog dir
203 AC_ARG_WITH(glade_catalogdir,
204 [AS_HELP_STRING([--with-glade-catalogdir@<:@=DIR@:>@],
205 [where to install the glade catalogs @<:@default=check@:>@])],
206 [],[with_glade_catalogdir=check])
208 # Both "check" and "yes" mean gladeui autodetection,
209 # but "yes" will fail on gladeui not found
210 AS_IF([test "x${with_glade_catalogdir}" = "xcheck" -o "x${with_glade_catalogdir}" = "xyes"],
213 # gladeui autodetection, giving precedence to gladeui-2.0 if possible
214 AS_IF([test "x${glade_pkg}" = "xcheck" -a "x${with_gtk}" != "xgtk2"],
215 [PKG_CHECK_MODULES([GLADEUI2],[gladeui-2.0],[glade_pkg=gladeui-2.0],[:])])
216 AS_IF([test "x${glade_pkg}" = "xcheck"],
217 [PKG_CHECK_MODULES([GLADEUI1],[gladeui-1.0],[glade_pkg=gladeui-1.0],[:])])
218 AS_IF([test "x${glade_pkg}" != "x" -a "x${glade_pkg}" != "xcheck"],
219 [NTD_UNEXPAND([${glade_pkg}],
221 [with_glade_catalogdir="${NTD_UNEXPANDED}"],
222 [AC_MSG_ERROR([${glade_pkg} found but pkg-config file invalid])])])
224 # Handle "yes" failure
225 AS_IF([test "x${glade_pkg}" = "xcheck" -a "x${with_glade_catalogdir}" = "xyes"],
226 [AC_MSG_ERROR([Glade support explicitely required but no valid gladeui found])])
228 # Handle "check" graceful degradation
229 AS_IF([test "x${glade_pkg}" = "xcheck" -a "x${with_glade_catalogdir}" = "xcheck"],
230 [with_glade_catalogdir=no])
232 AM_CONDITIONAL([HAVE_GLADE],[test "x${with_glade_catalogdir}" != "xno"])
233 AM_COND_IF([HAVE_GLADE],
236 Glade catalog dir: ${with_glade_catalogdir}"],
239 AC_SUBST([GLADE_CATALOGDIR],${with_glade_catalogdir})
242 GTK_DOC_CHECK(gtkdoc_prereq)
244 dnl GObject introspection
245 GOBJECT_INTROSPECTION_CHECK(gi_prereq)
247 [AS_HELP_STRING([--with-girdir=DIR],
248 [where the gir files are installed @<:@default=check@:>@])],
249 [],[with_girdir=check])
250 AS_IF([test "x${enable_introspection}" = "xyes" -a "x${with_girdir}" = "xcheck"],
251 [NTD_UNEXPAND([gobject-introspection-1.0],
253 [with_girdir="${NTD_UNEXPANDED}"])])
254 AC_SUBST([GIRDIR],${with_girdir})
255 AC_ARG_WITH(typelibdir,
256 [AS_HELP_STRING([--with-typelibdir=DIR],
257 [where the typelib files are installed @<:@default=check@:>@])],
258 [],[with_typelibdir=check])
259 AS_IF([test "x${enable_introspection}" = "xyes" -a "x${with_typelibdir}" = "xcheck"],
260 [NTD_UNEXPAND([gobject-introspection-1.0],
262 [with_typelibdir="${NTD_UNEXPANDED}"])])
263 AC_SUBST([TYPELIBDIR],${with_typelibdir})
264 AM_COND_IF([HAVE_INTROSPECTION],
265 [report_introspection="
266 Where to install gir files: ${with_girdir}
267 Where to install the typelib files: ${with_typelibdir}"],
268 [report_introspection=""])
270 dnl If introspection is used GObject support in cairo must be enabled,
271 dnl that is the cairo-gobject library must be present. That support
272 dnl was introduced since cairo 1.10.0.
273 PKG_CHECK_MODULES([CAIRO_GOBJECT],[cairo-gobject],
274 [AC_DEFINE_UNQUOTED([CAIRO_GOBJECT_ENABLED],[1],
275 [Defined if GObject support in cairo is present.])],
276 [AS_IF([test "x${enable_introspection}" = "xyes"],
277 [AC_MSG_ERROR([GObject introspection requires the cairo-gobject library])])])
279 dnl GLib test framework
280 AC_ARG_ENABLE([test_framework],
281 [AS_HELP_STRING([--enable-test-framework],
282 [enable GLib test framework @<:@default=check@:>@])],
283 [],[enable_test_framework=check])
284 AS_IF([test "x${enable_test_framework}" != "xno"],
285 [PKG_CHECK_EXISTS([glib-2.0 >= 2.16.0],
286 [enable_test_framework=yes],
287 [AS_IF([test "x${enable_test_framework}" = "xyes"],
288 [AC_MSG_ERROR([The test framework needs glib2-2.16.0 or later])],
289 [enable_test_framework=no])])])
290 AM_CONDITIONAL([HAVE_TEST_FRAMEWORK],[test "x${enable_test_framework}" = "xyes"])
293 # Check for compiler characteristics
298 # Windows substitutions for NSis installer
300 dnl By default DLLDIR is set to "$prefix/bin", with "$prefix" got from
301 dnl gobject-2.0.pc: all the DLLs *must* be under the same directory.
302 AC_ARG_VAR([DLLDIR], Place where Windows DLLs must be picked from)
303 AS_IF([test -z "$DLLDIR"],
304 [DLLDIR="$($PKG_CONFIG --variable=prefix gobject-2.0)/bin"])
305 AM_SUBST_NOTMAKE([DLLDIR])
307 dnl -win$ARCH will be appended to the installer file name
308 AS_IF([test "x${host_cpu}" = "xx86_64"],[ARCH=64],[ARCH=32])
310 AM_SUBST_NOTMAKE([ARCH])
313 # Additional substitutions
315 dnl The GObject dependency can be made optional by skipping
316 dnl the building of the GObject wrappers.
317 CPML_REQUIRES='cairo >= cairo_prereq gobject-2.0 >= gobject_prereq'
318 AM_COND_IF([HAVE_PANGO],
319 [ADG_REQUIRES='pangocairo >= pangocairo_prereq'
321 #include <pango/pango.h>
322 #include "adg/adg-text.h"
323 #include "adg/adg-pango-style.h"
325 [ADG_REQUIRES='gobject-2.0 >= gobject_prereq'
326 ADG_H_ADDITIONAL=''])
327 AM_COND_IF([HAVE_GTK3],[ADG_REQUIRES='gtk+-3.0 >= gtk3_prereq'])
328 AM_COND_IF([HAVE_GTK2],[ADG_REQUIRES='gtk+-2.0 >= gtk2_prereq'])
329 AM_COND_IF([HAVE_GTK],
330 [ADG_H_ADDITIONAL="${ADG_H_ADDITIONAL}
332 #include \"adg/adg-gtk-utils.h\"
333 #include \"adg/adg-gtk-area.h\"
334 #include \"adg/adg-gtk-layout.h\"
336 ADG_CANVAS_H_ADDITIONAL='
339 void adg_canvas_set_paper (AdgCanvas *canvas,
340 const gchar *paper_name,
341 GtkPageOrientation orientation);
342 void adg_canvas_set_page_setup (AdgCanvas *canvas,
343 GtkPageSetup *page_setup);
344 GtkPageSetup * adg_canvas_get_page_setup (AdgCanvas *canvas);
346 [ADG_CANVAS_H_ADDITIONAL=''])
348 AC_SUBST([CPML_API_VERSION],cpml_api_version)
349 AC_SUBST([CPML_LT_VERSION],cpml_lt_version)
350 AC_SUBST([CPML_REQUIRES])
351 AC_SUBST([ADG_API_VERSION],adg_api_version)
352 AC_SUBST([ADG_LT_VERSION],adg_lt_version)
353 AC_SUBST([ADG_REQUIRES])
354 AC_SUBST([ADG_H_ADDITIONAL])
355 AC_SUBST([ADG_CANVAS_H_ADDITIONAL])
357 AM_SUBST_NOTMAKE([CPML_REQUIRES])
358 AM_SUBST_NOTMAKE([ADG_REQUIRES])
359 AM_SUBST_NOTMAKE([ADG_H_ADDITIONAL])
360 AM_SUBST_NOTMAKE([ADG_CANVAS_H_ADDITIONAL])
362 dnl CPML compiler flags and library dependencies
363 CPML_CFLAGS="$CAIRO_CFLAGS $GOBJECT_CFLAGS"
364 CPML_LIBS="$CAIRO_LIBS $GOBJECT_LIBS"
365 AC_SUBST([CPML_CFLAGS])
366 AC_SUBST([CPML_LIBS])
368 dnl ADG compiler flags and library dependencies
369 ADG_CFLAGS="$CAIRO_GOBJECT_CFLAGS"
370 ADG_LIBS="$CAIRO_GOBJECT_LIBS"
371 AM_COND_IF([HAVE_PANGO],
372 [ADG_CFLAGS="$PANGO_CFLAGS $ADG_CFLAGS"
373 ADG_LIBS="$PANGO_LIBS $ADG_LIBS"])
374 AM_COND_IF([HAVE_GTK2],
375 [ADG_CFLAGS="$GTK2_CFLAGS $ADG_CFLAGS"
376 ADG_LIBS="$GTK2_LIBS $ADG_LIBS"])
377 AM_COND_IF([HAVE_GTK3],
378 [ADG_CFLAGS="$GTK3_CFLAGS $ADG_CFLAGS"
379 ADG_LIBS="$GTK3_LIBS $ADG_LIBS"])
380 AC_SUBST([ADG_CFLAGS])
388 AC_CONFIG_FILES([build/adg.nsi
393 src/cpml/tests/Makefile
398 src/adg/tests/Makefile
403 po-properties/Makefile.in
406 docs/cpml/bookinfo.xml
408 docs/adg/bookinfo.xml])
409 AC_CONFIG_FILES([demo/adg-glade],[chmod +x demo/adg-glade])
415 AC_MSG_NOTICE([generating report
417 AC_PACKAGE_NAME adg_version will be built with the following options:
418 ----------------------------------------------------------
419 API compatibility: adg_api_version
420 CPML library to use: internal (cpml-adg_version)
421 Build pango based entities: ${enable_pango}
422 GTK+ support: ${with_gtk}
423 Install glade catalogs: ${enable_glade}${report_glade}
424 Build API reference: ${enable_gtk_doc}
425 GObject instrospection: ${enable_introspection}${report_introspection}
426 Test framework support: ${enable_test_framework}