1AC_PREREQ(2.54)
2
3# Making releases:
4#   LIBGNOMECANVAS_MICRO_VERSION += 1;
5#   LIBGNOMECANVAS_INTERFACE_AGE += 1;
6# if any functions have been added, set LIBGNOMECANVAS_INTERFACE_AGE to 0.
7# if backwards compatibility has been broken,
8# set LIBGNOMECANVAS_BINARY_AGE and LIBGNOMECANVAS_INTERFACE_AGE to 0.
9#
10m4_define([libgnomecanvas_major_version], [2])
11m4_define([libgnomecanvas_minor_version], [30])
12m4_define([libgnomecanvas_micro_version], [3])
13m4_define([libgnomecanvas_interface_age], [3])
14# If you need a modifier for the version number.
15# Normally empty, but can be used to make "fixup" releases.
16m4_define([libgnomecanvas_extraversion],  [])
17
18dnl required versions of other programs
19m4_define([glib_required_version],     [2.10.0])
20m4_define([gtk_required_version],      [2.2.0])
21m4_define([gail_required_version],     [1.9.0])
22m4_define([libart_required_version],   [2.3.8])
23m4_define([pango_required_version],    [1.0.1])
24m4_define([libglade_required_version], [2.0.0])
25
26
27dnl libtool versioning from libgnome
28
29m4_define([libgnomecanvas_current], [m4_eval(100 * libgnomecanvas_minor_version + libgnomecanvas_micro_version - libgnomecanvas_interface_age)])
30m4_define([libgnomecanvas_binary_age], [m4_eval(100 * libgnomecanvas_minor_version + libgnomecanvas_micro_version)])
31m4_define([libgnomecanvas_revision], [libgnomecanvas_interface_age])
32m4_define([libgnomecanvas_age], [m4_eval(libgnomecanvas_binary_age - libgnomecanvas_interface_age)])
33m4_define([libgnomecanvas_current_minus_age], [m4_eval(libgnomecanvas_current - libgnomecanvas_age)])
34m4_define([libgnomecanvas_version], [libgnomecanvas_major_version().libgnomecanvas_minor_version().libgnomecanvas_micro_version()libgnomecanvas_extraversion()])
35
36AC_INIT([libgnomecanvas], [libgnomecanvas_version],
37        [http://bugzilla.gnome.org/enter_bug.cgi?product=libgnomecanvas])
38AC_CONFIG_SRCDIR([libgnomecanvas/libgnomecanvas.h])
39
40LIBGNOMECANVAS_MAJOR_VERSION=libgnomecanvas_major_version
41LIBGNOMECANVAS_MINOR_VERSION=libgnomecanvas_minor_version
42LIBGNOMECANVAS_MICRO_VERSION=libgnomecanvas_micro_version
43LIBGNOMECANVAS_INTERFACE_AGE=libgnomecanvas_interface_age
44
45dnl libtool versioning from libgnome
46
47LIBGNOMECANVAS_CURRENT=libgnomecanvas_current
48LIBGNOMECANVAS_REVISION=libgnomecanvas_revision
49LIBGNOMECANVAS_AGE=libgnomecanvas_age
50LIBGNOMECANVAS_CURRENT_MINUS_AGE=libgnomecanvas_current_minus_age
51
52AC_SUBST(LIBGNOMECANVAS_CURRENT)
53AC_SUBST(LIBGNOMECANVAS_REVISION)
54AC_SUBST(LIBGNOMECANVAS_AGE)
55AC_SUBST(LIBGNOMECANVAS_CURRENT_MINUS_AGE)
56
57AM_INIT_AUTOMAKE
58AM_CONFIG_HEADER(config.h)
59
60AM_MAINTAINER_MODE
61
62dnl make aclocal calls respect $ACLOCAL_FLAGS
63ACLOCAL_AMFLAGS="\${ACLOCAL_FLAGS}"
64AC_SUBST(ACLOCAL_AMFLAGS)
65
66AC_ISC_POSIX
67AC_PROG_CC
68AC_STDC_HEADERS
69AC_LIBTOOL_WIN32_DLL
70AM_PROG_LIBTOOL
71IT_PROG_INTLTOOL([0.35.0])
72
73GNOME_COMPILE_WARNINGS
74
75GETTEXT_PACKAGE=libgnomecanvas-2.0
76AC_SUBST(GETTEXT_PACKAGE)
77AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[Gettext package])
78
79AM_GLIB_GNU_GETTEXT
80AM_GLIB_DEFINE_LOCALEDIR([GNOMECANVASLOCALEDIR])
81
82dnl
83dnl GTK+ check
84dnl
85CANVAS_MODULES="dnl
86  glib-2.0 >= glib_required_version dnl
87  gtk+-2.0 >= gtk_required_version dnl
88  gail >= gail_required_version dnl
89  libart-2.0 >= libart_required_version dnl
90  pango >= pango_required_version dnl
91  pangoft2 >= pango_required_version"
92PKG_PROG_PKG_CONFIG([0.18])
93PKG_CHECK_MODULES(LIBGNOMECANVAS, $CANVAS_MODULES)
94
95LIBGNOMECANVAS_LIBS="$LIBGNOMECANVAS_LIBS -lm"
96
97if test "$enable_maintainer_mode" = "yes"; then
98	LIBGNOMECANVAS_DEPRECATED_CFLAGS="-DG_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES"
99	AC_SUBST(LIBGNOMECANVAS_DEPRECATED_CFLAGS)
100fi
101
102AC_ARG_ENABLE(glade,
103              AC_HELP_STRING([--enable-glade],
104	                     [enable glade support]),,
105	      [enable_glade=no])
106AM_CONDITIONAL(USE_GLADE, test "$enable_glade" = yes)
107
108if test "$enable_glade" = yes; then
109  PKG_CHECK_MODULES(CANVAS_GLADE, $CANVAS_MODULES libglade-2.0 >= libglade_required_version)
110fi
111
112AC_MSG_CHECKING([for native Win32])
113case "$host" in
114  *-*-mingw*)
115    native_win32=yes
116    ;;
117  *)
118    native_win32=no
119    ;;
120esac
121AC_MSG_RESULT([$native_win32])
122AM_CONDITIONAL(OS_WIN32, test "$native_win32" = yes)
123
124AC_MSG_CHECKING([for Win32 platform in general])
125case "$host" in
126  *-*-mingw*|*-*-cygwin*)
127    platform_win32=yes
128    ;;
129  *)
130    platform_win32=no
131    ;;
132esac
133AC_MSG_RESULT($platform_win32)
134AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = yes)
135
136# Ensure MSVC-compatible struct packing convention is used when
137# compiling for Win32 with gcc. GTK+ uses this convention, so we must, too.
138# What flag to depends on gcc version: gcc3 uses "-mms-bitfields", while
139# gcc2 uses "-fnative-struct".
140if test x"$native_win32" = xyes; then
141  if test x"$GCC" = xyes; then
142    msnative_struct=''
143    AC_MSG_CHECKING([how to get MSVC-compatible struct packing])
144    if test -z "$ac_cv_prog_CC"; then
145      our_gcc="$CC"
146    else
147      our_gcc="$ac_cv_prog_CC"
148    fi
149    case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
150      2.)
151	if $our_gcc -v --help 2>/dev/null | grep fnative-struct >/dev/null; then
152	  msnative_struct='-fnative-struct'
153	fi
154	;;
155      *)
156	if $our_gcc -v --help 2>/dev/null | grep ms-bitfields >/dev/null; then
157	  msnative_struct='-mms-bitfields'
158	fi
159	;;
160    esac
161    if test x"$msnative_struct" = x ; then
162      AC_MSG_RESULT([no way])
163      AC_MSG_WARN([produced libraries will be incompatible with prebuilt GTK+ DLLs])
164    else
165      CFLAGS="$CFLAGS $msnative_struct"
166      AC_MSG_RESULT([${msnative_struct}])
167    fi
168  fi
169fi
170
171dnl Don't use AC_PROG_AWK since we need the full pathname.
172AC_PATH_PROGS(AWK, mawk gawk nawk awk, )
173AC_PATH_PROGS(PERL, perl5 perl)
174
175# glib-genmarshal
176AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
177
178dnl
179dnl Check for gtk-doc
180dnl
181GTK_DOC_CHECK([1.0],[--flavour no-tmpl])
182DISTCHECK_CONFIGURE_FLAGS="--enable-gtk-doc"
183AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
184
185# define a MAINT-like variable REBUILD which is set if Perl
186# and awk are found, so autogenerated sources can be rebuilt
187AC_ARG_ENABLE(rebuilds,
188              AC_HELP_STRING([--disable-rebuilds],
189                             [disable all source autogeneration rules]),,
190              [enable_rebuilds=yes])
191REBUILD=\#
192if test "x$enable_rebuilds" = "xyes" && \
193     test -n "$PERL" && \
194     $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 && \
195     test -n "$AWK" ; then
196  REBUILD=
197fi
198AC_SUBST(REBUILD)
199
200AC_CONFIG_FILES([
201Makefile
202libgnomecanvas-zip
203po/Makefile.in
204libgnomecanvas/Makefile
205libgnomecanvas/libgnomecanvas-2.0.pc
206libgnomecanvas/libgnomecanvas-2.0-uninstalled.pc
207glade/Makefile
208demos/Makefile
209tests/Makefile
210docs/Makefile
211docs/reference/Makefile
212])
213
214AC_OUTPUT
215
216echo "
217Configure summary:
218
219	Compiler....................: ${CC}
220	Compiler Flags..............: ${CFLAGS}
221	Prefix .....................: ${prefix}
222
223	Glade support...............: ${enable_glade}
224	Rebuilds....................: ${enable_rebuilds}
225	Win32.......................: ${platform_win32}
226"
227