build: improved silent rules handling
[adg.git] / configure.ac
blob90f990f9610cbd0203ab13cb3a184f202a0fc4e2
1 m4_define([adg_version],[0.6.3])
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([gtk_prereq],[2.12.0])
13 m4_define([pangocairo_prereq],[1.18.0])
14 m4_define([gi_prereq],[0.9.5])dnl Picked up from clutter
17 # Initialization
19 dnl autoconf 2.62 is required by GObject introspection:
20 dnl http://live.gnome.org/GObjectIntrospection/AutotoolsIntegration
21 AC_PREREQ([2.62])
22 AC_INIT([adg-1],adg_version,[http://dev.entidi.com/p/adg/],[adg],[http://adg.entidi.com/])
23 AC_CONFIG_SRCDIR([configure.ac])
24 AC_CONFIG_HEADERS([src/config.h])
25 AC_CONFIG_AUX_DIR([build])
26 AC_CONFIG_MACRO_DIR([build])
27 AM_INIT_AUTOMAKE([1.10 gnits no-dist-gzip dist-bzip2 -Wall -Wno-portability])
29 dnl m4 backward compatibility stuff
30 m4_ifdef([AM_SILENT_RULES],
31          [AM_SILENT_RULES([yes])],
32          [AC_SUBST([AM_V_GEN],[])])
33 m4_ifdef([AM_SUBST_NOTMAKE],[],
34          [AC_DEFUN([AM_SUBST_NOTMAKE],[_AM_SUBST_NOTMAKE($@)])])
35 m4_ifdef([AM_COND_IF],[],
36          [AC_DEFUN([AM_COND_IF],
37                    [AS_IF([test -z "$$1_TRUE"],[$2],[$3])])])
40 # Check for host information
42 AC_CANONICAL_HOST
43 case "${host}" in
44   *-*-linux*)
45     guessed_host=linux
46     ;;
47   *-*-freebsd*)
48     guessed_host=freebsd
49     ;;
50   *-*-mingw*)
51     guessed_host=mingw
52     ;;
53   *-*-solaris*)
54     guessed_host=solaris
55     ;;
56   *-*-darwin*)
57     guessed_host=darwin
58     ;;
59   *-*-beos*)
60     guessed_host=beos
61     ;;
62   *-*-cygwin*)
63     guessed_host=cygwin
64     ;;
65   *-*-minix)
66     guessed_host=minix
67     ;;
68   *-*-aix*)
69     guessed_host=aix
70     ;;
71   *)
72     guessed_host=unknown
73     ;;
74 esac
75 AM_CONDITIONAL([OS_UNIX],[test "${guessed_host}" != "mingw"])
76 AM_CONDITIONAL([OS_WINDOWS],[test "${guessed_host}" = "mingw" -o "${guessed_host}" = "cygwin"])
79 # Check for programs
81 AC_PROG_CC
82 AC_PROG_SED
83 PKG_PROG_PKG_CONFIG
84 AC_PATH_PROG([XSLTPROC],[xsltproc],[/usr/bin/xsltproc])
85 AC_PATH_PROG([GLIB_MKENUMS],[glib-mkenums],[/usr/bin/glib-mkenums])
86 AC_PATH_PROG([GLIB_GENMARSHAL],[glib-genmarshal],[/usr/bin/glib-genmarshal])
87 AC_PATH_PROG([GTESTER],[gtester],[/usr/bin/gtester])
88 AC_PATH_PROG([GTESTER_REPORT],[gtester-report],[/usr/bin/gtester-report])
89 AC_PATH_PROG([GLADE3],[glade-3],[/usr/bin/glade-3])
92 # Check for libraries
94 AC_CHECK_LIB([m],[cos])
97 # Libtool initialization
99 AC_MSG_CHECKING([which libtool initialization strategy to adopt])
100 AC_MSG_RESULT([m4_ifset([LT_INIT],[LT-INIT],[AC-PROG-LIBTOOL])])
101 m4_ifset([LT_INIT],
102          [LT_INIT([disable-static win32-dll])],
103          [AC_DISABLE_STATIC
104           AC_LIBTOOL_WIN32_DLL
105           AC_PROG_LIBTOOL])
108 # I18n
110 AC_SUBST([ADG_API_PACKAGE],AC_PACKAGE_TARNAME-adg_api_version)
111 AC_SUBST([GETTEXT_PACKAGE],[${ADG_API_PACKAGE}])
112 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${ADG_API_PACKAGE}"],
113                    [Define to the domain used by gettext.])
114 ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
115 IT_PROG_INTLTOOL(0.40.1)
116 AM_GLIB_GNU_GETTEXT
117 GLIB_DEFINE_LOCALEDIR([LOCALEDIR])
118 AC_CONFIG_COMMANDS([default],
119                    [case "${CONFIG_FILES}" in *po-properties/Makefile.in*)
120         ${SED} -e "/POTFILES =/r po-properties/POTFILES" po-properties/Makefile.in > po-properties/Makefile
121     esac],
122                    [SED="${SED}"])
125 # Check for required packages
127 PKG_CHECK_MODULES([GLIB],[glib-2.0])
128 PKG_CHECK_MODULES([GOBJECT],[gobject-2.0 >= ]gobject_prereq)
129 PKG_CHECK_MODULES([CAIRO],[cairo >= ]cairo_prereq)
132 # Check for optional packages
134 dnl PangoCairo
135 AC_ARG_ENABLE([pango],
136               [AS_HELP_STRING([--enable-pango],
137                               [use pango for rendering text @<:@default=check@:>@])],
138               [],[enable_pango=check])
139 AS_IF([test "x${enable_pango}" != "xno"],
140       [PKG_CHECK_MODULES([PANGO],[pangocairo >= ]pangocairo_prereq,
141                          [enable_pango=yes
142                           AC_DEFINE_UNQUOTED([PANGO_ENABLED],[1],
143                                              [Defined if the pango support is enabled.])],
144                          [AS_IF([test "x${enable_pango}" = "xyes"],
145                                 [AC_MSG_ERROR([${PANGO_PKG_ERRORS} and pango support requested])],
146                                 [enable_pango=no])])])
147 AM_CONDITIONAL([HAVE_PANGO],[test "x${enable_pango}" = "xyes"])
149 dnl GTK+2
150 AC_ARG_ENABLE([gtk2],
151               [AS_HELP_STRING([--enable-gtk2],
152                               [include GKT+2 specific widgets @<:@default=check@:>@])],
153               [],[enable_gtk2=check])
154 AS_IF([test "x${enable_gtk2}" != "xno"],
155       [PKG_CHECK_MODULES([GTK2],[gtk+-2.0 >= ]gtk_prereq,
156                          [enable_gtk2=yes
157                           AC_DEFINE_UNQUOTED([GTK2_ENABLED],[1],
158                                              [Defined if the GTK+2 support is enabled.])],
159                          [AS_IF([test "x${enable_gtk2}" = "xyes"],
160                                 [AC_MSG_ERROR([${GTK2_PKG_ERRORS} and GTK+2 support requested])],
161                                 [enable_gtk2=no])])])
162 AM_CONDITIONAL([HAVE_GTK2],[test "x${enable_gtk2}" = "xyes"])
164 dnl Glade
165 AC_ARG_ENABLE([glade],
166               [AS_HELP_STRING([--enable-glade],
167                               [install glade catalog file @<:@default=check@:>@])],
168               [],[enable_glade=check])
169 AS_IF([test "x${enable_glade}" != "xno"],
170       [PKG_CHECK_MODULES([GLADE],[gladeui-1.0],
171                          [enable_glade=yes],
172                          [AS_IF([test "x${enable_glade}" = "xyes"],
173                                 [AC_MSG_ERROR([${GLADE_PKG_ERRORS} and glade support requested])],
174                                 [enable_glade=no])])])
175 AM_CONDITIONAL([HAVE_GLADE],[test "x${enable_glade}" = "xyes"])
177 dnl gtk-doc
178 GTK_DOC_CHECK(gtkdoc_prereq)
180 dnl GObject introspection
181 GOBJECT_INTROSPECTION_CHECK(gi_prereq)
182 AM_COND_IF([HAVE_INTROSPECTION],
183            [enable_introspection='yes'],
184            [enable_introspection='no'])
187 dnl GLib test framework
188 AC_ARG_ENABLE([test_framework],
189               [AS_HELP_STRING([--enable-test-framework],
190                               [enable GLib test framework @<:@default=check@:>@])],
191               [],[enable_test_framework=check])
192 AS_IF([test "x${enable_test_framework}" != "xno"],
193       [PKG_CHECK_EXISTS([glib-2.0 >= 2.16.0],
194                         [enable_test_framework=yes],
195                         [AS_IF([test "x${enable_test_framework}" = "xyes"],
196                                [AC_MSG_ERROR([The test framework needs glib2-2.16.0 or later])],
197                                [enable_test_framework=no])])])
198 AM_CONDITIONAL([HAVE_TEST_FRAMEWORK],[test "x${enable_test_framework}" = "xyes"])
201 # Check for compiler characteristics
203 AC_C_CONST
206 # Substitutions
208 DLLDIR="$(${PKG_CONFIG} --variable=prefix gobject-2.0)/bin"
209 CPML_REQUIRES='cairo >= cairo_prereq'
210 AM_COND_IF([HAVE_PANGO],
211       [ADG_REQUIRES='pangocairo >= pangocairo_prereq'
212        ADG_H_ADDITIONAL='
213 #include <pango/pango.h>
214 #include "adg/adg-text.h"
215 #include "adg/adg-pango-style.h"
217       [ADG_REQUIRES='gobject-2.0 >= gobject_prereq'
218        ADG_H_ADDITIONAL=''])
219 AM_COND_IF([HAVE_GTK2],
220            [ADG_REQUIRES='gtk+-2.0 >= gtk_prereq'
221             ADG_H_ADDITIONAL="${ADG_H_ADDITIONAL}
222 #include <gtk/gtk.h>
223 #include \"adg/adg-gtk-utils.h\"
224 #include \"adg/adg-gtk-area.h\"
225 #include \"adg/adg-gtk-layout.h\"
227             ADG_CANVAS_H_ADDITIONAL='
228 void            adg_canvas_set_paper            (AdgCanvas      *canvas,
229                                                  const gchar    *paper_name,
230                                                  GtkPageOrientation orientation);
231 void            adg_canvas_set_page_setup       (AdgCanvas      *canvas,
232                                                  GtkPageSetup   *page_setup);
234            [ADG_CANVAS_H_ADDITIONAL=''])
235 AM_COND_IF([HAVE_GLADE],
236            [gladeroot=`${PKG_CONFIG} --variable=datarootdir gladeui-1.0`
237             AS_IF([test "x${gladeroot}" = "x"],
238                   [GLADE_CATALOGDIR="\${datarootdir}/glade3/catalogs}"],
239                   [gladecatalog=`${PKG_CONFIG} --variable=catalogdir gladeui-1.0`
240                    GLADE_CATALOGDIR=`echo "${gladecatalog}" | ${SED} -e "s|^${gladeroot}|"'${datarootdir}|'`])
241             report_glade_catalogdir="
242                   Glade catalog dir: ${GLADE_CATALOGDIR}"],
243            [GLADE_CATALOGDIR=''
244             report_glade_catalogdir=''])
246 AC_SUBST([CPML_API_VERSION],cpml_api_version)
247 AC_SUBST([CPML_LT_VERSION],cpml_lt_version)
248 AC_SUBST([CPML_REQUIRES])
249 AC_SUBST([ADG_API_VERSION],adg_api_version)
250 AC_SUBST([ADG_LT_VERSION],adg_lt_version)
251 AC_SUBST([ADG_REQUIRES])
252 AC_SUBST([ADG_H_ADDITIONAL])
253 AC_SUBST([ADG_CANVAS_H_ADDITIONAL])
254 AC_SUBST([DLLDIR])
255 AC_SUBST([GLADE_CATALOGDIR])
257 AM_SUBST_NOTMAKE([CPML_REQUIRES])
258 AM_SUBST_NOTMAKE([ADG_REQUIRES])
259 AM_SUBST_NOTMAKE([ADG_H_ADDITIONAL])
260 AM_SUBST_NOTMAKE([ADG_CANVAS_H_ADDITIONAL])
261 AM_SUBST_NOTMAKE([DLLDIR])
264 # Generation
266 AC_CONFIG_FILES([build/adg.nsi
267                  Makefile
268                  src/Makefile
269                  src/cpml/cpml-1.pc
270                  src/cpml/Makefile
271                  src/cpml/tests/Makefile
272                  src/adg/adg-1.pc
273                  src/adg.h
274                  src/adg/Makefile
275                  src/adg/adg-canvas.h
276                  src/adg/tests/Makefile
277                  demo/Makefile
278                  demo/cpml-demo.ui
279                  demo/adg-demo.ui
280                  po/Makefile.in
281                  po-properties/Makefile.in
282                  docs/Makefile
283                  docs/cpml/Makefile
284                  docs/cpml/bookinfo.xml
285                  docs/adg/Makefile
286                  docs/adg/bookinfo.xml])
287 AC_CONFIG_FILES([demo/adg-glade],[chmod +x demo/adg-glade])
288 AC_OUTPUT
291 # Report
293 AC_MSG_NOTICE([generating report
295 AC_PACKAGE_NAME adg_version will be built with the following options:
296 ----------------------------------------------------------
297                   API compatibility: adg_api_version
298                 CPML library to use: internal (cpml-adg_version)
299          Build pango based entities: ${enable_pango}
300                       GTK+2 support: ${enable_gtk2}
301              Install glade catalogs: ${enable_glade}${report_glade_catalogdir}
302                 Build API reference: ${enable_gtk_doc}
303              GObject instrospection: ${enable_introspection}
304              Test framework support: ${enable_test_framework}