build: bumped version to 0.6.6
[adg.git] / configure.ac
blob4df2fc6ee49be499dd47009e02450d3d546af3f9
1 m4_define([adg_version],[0.6.6])
2 m4_define([adg_api_version],[1.0])
3 m4_define([adg_lt_version],[1:0:0])
5 m4_define([cpml_version],adg_version)
6 m4_define([cpml_api_version],adg_api_version)
7 m4_define([cpml_lt_version],[1:0:0])
9 m4_define([gtkdoc_prereq],[1.9])
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
18 # Initialization
20 dnl autoconf 2.62 is required by GObject introspection:
21 dnl http://live.gnome.org/GObjectIntrospection/AutotoolsIntegration
22 AC_PREREQ([2.62])
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])])])
41 # Check for host information
43 AC_CANONICAL_HOST
44 case "${host}" in
45   *-*-linux*)
46     guessed_host=linux
47     ;;
48   *-*-freebsd*)
49     guessed_host=freebsd
50     ;;
51   *-*-mingw*)
52     guessed_host=mingw
53     ;;
54   *-*-solaris*)
55     guessed_host=solaris
56     ;;
57   *-*-darwin*)
58     guessed_host=darwin
59     ;;
60   *-*-beos*)
61     guessed_host=beos
62     ;;
63   *-*-cygwin*)
64     guessed_host=cygwin
65     ;;
66   *-*-minix)
67     guessed_host=minix
68     ;;
69   *-*-aix*)
70     guessed_host=aix
71     ;;
72   *)
73     guessed_host=unknown
74     ;;
75 esac
76 AM_CONDITIONAL([OS_UNIX],[test "${guessed_host}" != "mingw"])
77 AM_CONDITIONAL([OS_WINDOWS],[test "${guessed_host}" = "mingw" -o "${guessed_host}" = "cygwin"])
79 AS_IF([test "x${host_cpu}" = "xx86_64"],
80       [WINSUFFIX="win64"],[WINSUFFIX="win32"])
81 AC_SUBST([WINSUFFIX])
82 AM_SUBST_NOTMAKE([WINSUFFIX])
85 # Check for programs
87 AC_PROG_CC
88 AC_PROG_SED
89 PKG_PROG_PKG_CONFIG
90 AC_PATH_PROG([XSLTPROC],[xsltproc],[/usr/bin/xsltproc])
91 AC_PATH_PROG([GLIB_MKENUMS],[glib-mkenums],[/usr/bin/glib-mkenums])
92 AC_PATH_PROG([GLIB_GENMARSHAL],[glib-genmarshal],[/usr/bin/glib-genmarshal])
93 AC_PATH_PROG([GTESTER],[gtester],[/usr/bin/gtester])
94 AC_PATH_PROG([GTESTER_REPORT],[gtester-report],[/usr/bin/gtester-report])
95 AC_PATH_PROG([GLADE3],[glade-3],[/usr/bin/glade-3])
98 # Check for libraries
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])])
107 m4_ifset([LT_INIT],
108          [LT_INIT([disable-static win32-dll])],
109          [AC_DISABLE_STATIC
110           AC_LIBTOOL_WIN32_DLL
111           AC_PROG_LIBTOOL])
114 # I18n
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.40.1)
122 AM_GLIB_GNU_GETTEXT
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
127     esac],
128                    [SED="${SED}"])
131 # Check for required packages
133 PKG_CHECK_MODULES([GLIB],[glib-2.0])
134 PKG_CHECK_MODULES([GOBJECT],[gobject-2.0 >= ]gobject_prereq)
135 PKG_CHECK_MODULES([CAIRO],[cairo >= ]cairo_prereq)
138 # Check for optional packages
140 dnl PangoCairo
141 AC_ARG_ENABLE([pango],
142               [AS_HELP_STRING([--enable-pango],
143                               [use pango for rendering text @<:@default=check@:>@])],
144               [],[enable_pango=check])
145 AS_IF([test "x${enable_pango}" != "xno"],
146       [PKG_CHECK_MODULES([PANGO],[pangocairo >= ]pangocairo_prereq,
147                          [enable_pango=yes
148                           AC_DEFINE_UNQUOTED([PANGO_ENABLED],[1],
149                                              [Defined if the pango support is enabled.])],
150                          [AS_IF([test "x${enable_pango}" = "xyes"],
151                                 [AC_MSG_ERROR([${PANGO_PKG_ERRORS} and pango support requested])],
152                                 [enable_pango=no])])])
153 AM_CONDITIONAL([HAVE_PANGO],[test "x${enable_pango}" = "xyes"])
155 dnl GTK+ support
156 AC_ARG_WITH(gtk,
157             [AS_HELP_STRING([--with-gtk@<:@=gtk2/gtk3@:>@],
158                             [include GTK+ specific widgets @<:@default=check@:>@])],
159             [],[with_gtk=check])
160 AS_CASE(["${with_gtk}"],
161         [gtk2],      [gtk2_pkg=yes; gtk3_pkg=no],
162         [gtk3],      [gtk2_pkg=no;  gtk3_pkg=yes],
163         [check|yes], [gtk2_pkg=yes; gtk3_pkg=yes],
164         [no],        [gtk2_pkg=no;  gtk3_pkg=no],
165         [AC_MSG_ERROR([Invalid option passed to --with-gtk])])
167 # GTK+ autodetection, giving precedence to GTK+3
168 AS_IF([test "x${gtk3_pkg}" = "xyes"],
169       [PKG_CHECK_MODULES([GTK3],[gtk+-3.0 >= ]gtk3_prereq,[gtk_pkg=gtk3],[:])])
170 AS_IF([test "x${gtk2_pkg}" = "xyes" -a "x${gtk_pkg}" = "x"],
171       [PKG_CHECK_MODULES([GTK2],[gtk+-2.0 >= ]gtk2_prereq,[gtk_pkg=gtk2],[:])])
172 AS_IF([test "x${gtk_pkg}" != "x"],[with_gtk=${gtk_pkg}])
175 # Handle "check" graceful degradation
176 AS_IF([test "x${with_gtk}" = "xcheck"],[with_gtk=no])
178 # Handle failures
179 AS_IF([test "x${with_gtk}" != "xno" -a "x${gtk_pkg}" = "x"],
180       [AC_MSG_ERROR([GTK+ support explicitely required but no valid GTK+ found])])
182 AS_IF([test "x${with_gtk}" = "xgtk3"],
183       [AC_DEFINE_UNQUOTED([GTK3_ENABLED],[1],
184                           [Defined if the GTK+3 support is enabled.])])
185 AS_IF([test "x${with_gtk}" = "xgtk2"],
186       [AC_DEFINE_UNQUOTED([GTK2_ENABLED],[1],
187                           [Defined if the GTK+2 support is enabled.])])
189 AM_CONDITIONAL([HAVE_GTK], [test "x${with_gtk}" != "xno"])
190 AM_CONDITIONAL([HAVE_GTK2],[test "x${with_gtk}" = "xgtk2"])
191 AM_CONDITIONAL([HAVE_GTK3],[test "x${with_gtk}" = "xgtk3"])
193 dnl Glade catalog dir
194 AC_ARG_WITH(glade_catalogdir,
195             [AS_HELP_STRING([--with-glade-catalogdir@<:@=DIR@:>@],
196                             [where to install the glade catalogs @<:@default=check@:>@])],
197             [],[with_glade_catalogdir=check])
199 # Both "check" and "yes" mean gladeui autodetection,
200 # but "yes" will fail on gladeui not found
201 AS_IF([test "x${with_glade_catalogdir}" = "xcheck" -o "x${with_glade_catalogdir}" = "xyes"],
202       [glade_pkg=check])
204 # gladeui autodetection, giving precedence to gladeui-2.0 if possible
205 AS_IF([test "x${glade_pkg}" = "xcheck" -a "x${with_gtk}" != "xgtk2"],
206       [PKG_CHECK_MODULES([GLADEUI2],[gladeui-2.0],[glade_pkg=gladeui-2.0],[:])])
207 AS_IF([test "x${glade_pkg}" = "xcheck"],
208       [PKG_CHECK_MODULES([GLADEUI1],[gladeui-1.0],[glade_pkg=gladeui-1.0],[:])])
209 AS_IF([test "x${glade_pkg}" != "x" -a "x${glade_pkg}" != "xcheck"],
210       [NTD_UNEXPAND([${glade_pkg}],
211                     [catalogdir],
212                     [with_glade_catalogdir="${NTD_UNEXPANDED}"],
213                     [AC_MSG_ERROR([${glade_pkg} found but pkg-config file invalid])])])
215 # Handle "yes" failure
216 AS_IF([test "x${glade_pkg}" = "xcheck" -a "x${with_glade_catalogdir}" = "xyes"],
217       [AC_MSG_ERROR([Glade support explicitely required but no valid gladeui found])])
219 # Handle "check" graceful degradation
220 AS_IF([test "x${glade_pkg}" = "xcheck" -a "x${with_glade_catalogdir}" = "xcheck"],
221       [with_glade_catalogdir=no])
223 AM_CONDITIONAL([HAVE_GLADE],[test "x${with_glade_catalogdir}" != "xno"])
224 AM_COND_IF([HAVE_GLADE],
225            [enable_glade=yes
226             report_glade="
227                   Glade catalog dir: ${with_glade_catalogdir}"],
228            [enable_glade=no
229             report_glade=""])
230 AC_SUBST([GLADE_CATALOGDIR],${with_glade_catalogdir})
232 dnl gtk-doc
233 GTK_DOC_CHECK(gtkdoc_prereq)
235 dnl GObject introspection
236 GOBJECT_INTROSPECTION_CHECK(gi_prereq)
237 AC_ARG_WITH(girdir,
238             [AS_HELP_STRING([--with-girdir=DIR],
239                             [where the gir files are installed @<:@default=check@:>@])],
240             [],[with_girdir=check])
241 AS_IF([test "x${with_girdir}" = "xcheck"],
242       [NTD_UNEXPAND([gobject-introspection-1.0],
243                     [girdir],
244                     [with_girdir="${NTD_UNEXPANDED}"])])
245 AC_SUBST([GIRDIR],${with_girdir})
246 AC_ARG_WITH(typelibdir,
247             [AS_HELP_STRING([--with-typelibdir=DIR],
248                             [where the typelib files are installed @<:@default=check@:>@])],
249             [],[with_typelibdir=check])
250 AS_IF([test "x${with_typelibdir}" = "xcheck"],
251       [NTD_UNEXPAND([gobject-introspection-1.0],
252                     [typelibdir],
253                     [with_typelibdir="${NTD_UNEXPANDED}"])])
254 AC_SUBST([TYPELIBDIR],${with_typelibdir})
255 AM_COND_IF([HAVE_INTROSPECTION],
256            [enable_introspection='yes'
257             report_introspection="
258          Where to install gir files: ${with_girdir}
259  Where to install the typelib files: ${with_typelibdir}"],
260            [enable_introspection='no'
261             report_introspection=""])
263 dnl GLib test framework
264 AC_ARG_ENABLE([test_framework],
265               [AS_HELP_STRING([--enable-test-framework],
266                               [enable GLib test framework @<:@default=check@:>@])],
267               [],[enable_test_framework=check])
268 AS_IF([test "x${enable_test_framework}" != "xno"],
269       [PKG_CHECK_EXISTS([glib-2.0 >= 2.16.0],
270                         [enable_test_framework=yes],
271                         [AS_IF([test "x${enable_test_framework}" = "xyes"],
272                                [AC_MSG_ERROR([The test framework needs glib2-2.16.0 or later])],
273                                [enable_test_framework=no])])])
274 AM_CONDITIONAL([HAVE_TEST_FRAMEWORK],[test "x${enable_test_framework}" = "xyes"])
277 # Check for compiler characteristics
279 AC_C_CONST
282 # Additional substitutions
284 USRDIR="$($PKG_CONFIG --variable=prefix gobject-2.0)"
285 CPML_REQUIRES='cairo >= cairo_prereq'
286 AM_COND_IF([HAVE_PANGO],
287       [ADG_REQUIRES='pangocairo >= pangocairo_prereq'
288        ADG_H_ADDITIONAL='
289 #include <pango/pango.h>
290 #include "adg/adg-text.h"
291 #include "adg/adg-pango-style.h"
293       [ADG_REQUIRES='gobject-2.0 >= gobject_prereq'
294        ADG_H_ADDITIONAL=''])
295 AM_COND_IF([HAVE_GTK3],[ADG_REQUIRES='gtk+-3.0 >= gtk3_prereq'])
296 AM_COND_IF([HAVE_GTK2],[ADG_REQUIRES='gtk+-2.0 >= gtk2_prereq'])
297 AM_COND_IF([HAVE_GTK],
298            [ADG_H_ADDITIONAL="${ADG_H_ADDITIONAL}
299 #include <gtk/gtk.h>
300 #include \"adg/adg-gtk-utils.h\"
301 #include \"adg/adg-gtk-area.h\"
302 #include \"adg/adg-gtk-layout.h\"
304             ADG_CANVAS_H_ADDITIONAL='
305 void            adg_canvas_set_paper            (AdgCanvas      *canvas,
306                                                  const gchar    *paper_name,
307                                                  GtkPageOrientation orientation);
308 void            adg_canvas_set_page_setup       (AdgCanvas      *canvas,
309                                                  GtkPageSetup   *page_setup);
311            [ADG_CANVAS_H_ADDITIONAL=''])
313 AC_SUBST([CPML_API_VERSION],cpml_api_version)
314 AC_SUBST([CPML_LT_VERSION],cpml_lt_version)
315 AC_SUBST([CPML_REQUIRES])
316 AC_SUBST([ADG_API_VERSION],adg_api_version)
317 AC_SUBST([ADG_LT_VERSION],adg_lt_version)
318 AC_SUBST([ADG_REQUIRES])
319 AC_SUBST([ADG_H_ADDITIONAL])
320 AC_SUBST([ADG_CANVAS_H_ADDITIONAL])
321 AC_SUBST([USRDIR])
323 AM_SUBST_NOTMAKE([CPML_REQUIRES])
324 AM_SUBST_NOTMAKE([ADG_REQUIRES])
325 AM_SUBST_NOTMAKE([ADG_H_ADDITIONAL])
326 AM_SUBST_NOTMAKE([ADG_CANVAS_H_ADDITIONAL])
327 AM_SUBST_NOTMAKE([USRDIR])
330 # Generation
332 AC_CONFIG_FILES([build/adg.nsi
333                  Makefile
334                  src/Makefile
335                  src/cpml/cpml-1.pc
336                  src/cpml/Makefile
337                  src/cpml/tests/Makefile
338                  src/adg/adg-1.pc
339                  src/adg.h
340                  src/adg/Makefile
341                  src/adg/adg-canvas.h
342                  src/adg/tests/Makefile
343                  demo/Makefile
344                  demo/cpml-demo.ui
345                  demo/adg-demo.ui
346                  po/Makefile.in
347                  po-properties/Makefile.in
348                  docs/Makefile
349                  docs/cpml/Makefile
350                  docs/cpml/bookinfo.xml
351                  docs/adg/Makefile
352                  docs/adg/bookinfo.xml])
353 AC_CONFIG_FILES([demo/adg-glade],[chmod +x demo/adg-glade])
354 AC_OUTPUT
357 # Report
359 AC_MSG_NOTICE([generating report
361 AC_PACKAGE_NAME adg_version will be built with the following options:
362 ----------------------------------------------------------
363                   API compatibility: adg_api_version
364                 CPML library to use: internal (cpml-adg_version)
365          Build pango based entities: ${enable_pango}
366                        GTK+ support: ${with_gtk}
367              Install glade catalogs: ${enable_glade}${report_glade}
368                 Build API reference: ${enable_gtk_doc}
369              GObject instrospection: ${enable_introspection}${report_introspection}
370              Test framework support: ${enable_test_framework}