common: make the logger more useful
[gtk-doc.git] / configure.ac
blobe74e4f79c9412742b536ab8dfb4dc24d5f1ea4a1
1 dnl Process this file with autoconf to produce a configure script.
2 AC_PREREQ([2.63])
4 dnl Use a simple 2-digit version number for a while, since our old example
5 dnl Makefile can only cope with that, i.e. use 1.1, 1.2, 1.3 ... 9.9.
6 dnl FIXME: I can't see anything failing (1.14.1), lets try to use a three digit
7 dnl number for the development version
8 m4_define(gtk_doc_version, 1.25.1)
10 AC_INIT([gtk-doc],[gtk_doc_version],[http://bugzilla.gnome.org/enter_bug.cgi?product=gtk-doc],[gtk-doc])
12 AC_CONFIG_MACRO_DIR([m4])
13 AC_CONFIG_SRCDIR([gtkdoc-common.pl.in])
14 AC_CONFIG_AUX_DIR([build-aux])
16 AM_INIT_AUTOMAKE([1.11 check-news std-options -Wno-portability tar-ustar no-dist-gzip dist-xz])
17 AM_MAINTAINER_MODE([enable])
19 # Support silent build rules, requires at least automake-1.11. Disable
20 # by either passing --disable-silent-rules to configure or passing V=1
21 # to make
22 AM_SILENT_RULES([yes])
24 # Check for programs
25 AC_PROG_CC
27 # Initialize libtool
28 LT_PREREQ([2.2])
29 LT_INIT
31 dnl Make sure we have pkg-config >= 0.19, so installing in $(datadir) is OK.
32 PKG_PROG_PKG_CONFIG([0.19])
34 dnl
35 dnl Check for Perl.
36 dnl
37 AC_PATH_PROG([PERL], [perl])
38 if test -z "$PERL"; then
39         AC_MSG_ERROR([perl not found])
42 AC_MSG_CHECKING([if Perl version >= 5.16.0])
43 if "$PERL" -e "require v5.16.0"; then
44         AC_MSG_RESULT([yes])
45 else
46         AC_MSG_RESULT([no])
47         AC_MSG_ERROR([perl >= 5.16.0 is required for gtk-doc])
50 dnl
51 dnl Check for Python.
52 dnl
53 AM_PATH_PYTHON([2.7])
55 dnl
56 dnl Check for xsltproc
57 dnl
58 AC_PATH_PROG([XSLTPROC], [xsltproc])
59 if test -z "$XSLTPROC"; then
60         AC_MSG_ERROR([xsltproc not found])
63 dnl
64 dnl Check for dblatex/fop (for pdf output)
65 dnl
66 AC_PATH_PROG([DBLATEX], [dblatex])
67 if test -z "$DBLATEX"; then
68         AC_PATH_PROG([FOP], [fop])
69         if test -z "$FOP"; then
70                 AC_MSG_WARN([neither dblatex nor fop found, so no pdf output from xml])
71         fi
74 dnl check for DocBook DTD and stylesheets in the local catalog.
75 JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.3//EN], [DocBook XML DTD V4.3])
76 JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl], [DocBook XSL Stylesheets])
78 dnl
79 dnl Check for syntax highlighters
80 dnl
81 AC_ARG_WITH([highlight],
82         AS_HELP_STRING([--with-highlight], [Select source code syntax highlighter (no|source-highlight|highlight|vim|auto)]),
83         , [with_highlight=auto])
85 case $with_highlight in
86         no|source-highlight|highlight|vim|auto) ;;
87         *) AC_MSG_ERROR([Invalid value for syntax highlighting option.]) ;;
88 esac
90 HIGHLIGHT_OPTIONS=""
91 if test "$with_highlight" = "auto"; then
92         AC_PATH_PROG([HIGHLIGHT], [source-highlight])
93         if test -n "$HIGHLIGHT"; then
94                 HIGHLIGHT_OPTIONS="-t4 -s\$SRC_LANG -cstyle.css --no-doc -i"
95         else
96                 AC_PATH_PROG([HIGHLIGHT], [highlight])
97                 if test -n "$HIGHLIGHT"; then
98                         HIGHLIGHT_OPTIONS="--syntax=\$SRC_LANG --out-format=xhtml -f --class-name=gtkdoc "
99                 else
100                         AC_PATH_PROG([HIGHLIGHT], [vim])
101                         if test -n "$HIGHLIGHT"; then
102                                 dnl vim is useless if it does not support syntax highlighting
103                                 AC_MSG_CHECKING([whether vim has +syntax feature])
104                                 if $HIGHLIGHT --version | grep '+syntax' >/dev/null; then
105                                         AC_MSG_RESULT([yes])
106                                 else
107                                         AC_MSG_RESULT([no])
108                                         HIGHLIGHT=
109                                 fi
110                         fi
111                 fi
112         fi
113 else
114         if test "$with_highlight" != "no"; then
115                 AC_PATH_PROG([HIGHLIGHT], [$with_highlight], [no])
116         fi
118         case $with_highlight in
119                 source-highlight) HIGHLIGHT_OPTIONS="-t4 -s\$SRC_LANG -cstyle.css --no-doc -i";;
120                 highlight) HIGHLIGHT_OPTIONS="--syntax=\$SRC_LANG --out-format=xhtml -f --class-name=gtkdoc ";;
121                 vim)
122                         AC_MSG_CHECKING([whether vim has +syntax feature])
123                         if $HIGHLIGHT --version | grep '+syntax' >/dev/null; then
124                                 AC_MSG_RESULT([yes])
125                         else
126                                 AC_MSG_RESULT([no])
127                                 HIGHLIGHT=no
128                         fi
129                 ;;
130         esac
132         if test "$HIGHLIGHT" = "no" && test "$with_highlight" != "no"; then
133                 AC_MSG_ERROR([Could not find requested syntax highlighter])
134         fi
136 AC_SUBST([HIGHLIGHT_OPTIONS])
139 dnl Set runtime package dirs so we can find the script containing common routines.
141 dnl From Autoconf Macro Archive:
142 m4_define([AC_DEFINE_DIR], [
143         prefix_NONE=
144         exec_prefix_NONE=
145         test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix
146         test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix
147         eval ac_define_dir="\"[$]$2\""
148         eval ac_define_dir="\"$ac_define_dir\""
149         AC_SUBST($1, "$ac_define_dir")
150         test "$prefix_NONE" && prefix=NONE
151         test "$exec_prefix_NONE" && exec_prefix=NONE
153 PACKAGE_DATA_DIR="${datadir}/${PACKAGE}/data"
154 AC_DEFINE_DIR([PACKAGE_DATA_DIR], [PACKAGE_DATA_DIR])
155 PYTHON_PACKAGE_DIR="${datadir}/${PACKAGE}/python"
156 AC_DEFINE_DIR([PYTHON_PACKAGE_DIR], [PYTHON_PACKAGE_DIR])
158 dnl Only use -Wall if we have gcc
159 if test "x$GCC" = "xyes"; then
160         if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
161                 CFLAGS="$CFLAGS -Wall"
162         fi
165 dnl if glib is available we can enable the tests
166 PKG_CHECK_MODULES(TEST_DEPS, [glib-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0],
167         [       glib_prefix="`$PKG_CONFIG --variable=prefix glib-2.0`"
168                 gtk_doc_use_libtool="yes"
169                 build_tests="yes"
170         ],
171         [       gtk_doc_use_libtool="no"
172                 build_tests="no"
173         ]
175 AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, test -n "$LIBTOOL" -a x$gtk_doc_use_libtool = xyes )
176 dnl this enables the rule in test/Makefile.am
177 AM_CONDITIONAL(BUILD_TESTS, test x$build_tests = xyes)
178 AC_SUBST(glib_prefix)
180 dnl enable runtime debugging code
181 AC_MSG_CHECKING(whether to enable runtime debugging code)
182 AC_ARG_ENABLE([debug],
183         AS_HELP_STRING([--enable-debug],
184         [enable runtime debugging code (default=no)]),,
185         [enable_debug="no"])
186 AC_MSG_RESULT($enable_debug)
188 if test "x$enable_debug" != "xno"; then
189         TRACE="LogTrace"
190 else
191         TRACE="#"
193 AC_SUBST(TRACE)
195 dnl check what date format we can use for the makefile tracing in tests
196 dnl this is mostly to detect the date command on macosx that is quite cripled
197 dnl  and broken too
198 AC_MSG_CHECKING(whether date can output nanoseconds)
199 date +%s.%N | grep -q 'N'
200 if test "$?" = "1"; then
201   TS_FMT="+%s.%N"
202   ELAPSED_FMT="+%H:%M:%S.%N"
203   AC_MSG_RESULT(yes)
204 else
205   TS_FMT="+%s.0"
206   ELAPSED_FMT="+%H:%M:%S"
207   AC_MSG_RESULT(no)
209 AC_SUBST(TS_FMT)
210 AC_SUBST(ELAPSED_FMT)
212 AC_MSG_CHECKING(whether date can format dates)
213 date >/dev/null 2>&1 --utc --date @1.1 $ELAPSED_FMT
214 if test "$?" = "0"; then
215   DATE_FMT_CMD="date --utc $ELAPSED_FMT --date @0"
216   AC_MSG_RESULT(yes)
217 else
218   DATE_FMT_CMD="echo "
219   AC_MSG_RESULT(no)
221 AC_SUBST(DATE_FMT_CMD)
224 dnl Documentation
226 AC_MSG_CHECKING([for yelp-tools])
227 have_yelp_tools=no
228 m4_ifdef([YELP_HELP_INIT],[
229 AC_MSG_RESULT([yes])
230 YELP_HELP_INIT
231 have_yelp_tools=yes
233 if test "x$have_yelp_tools" != "xyes"; then
234   AC_MSG_RESULT([no])
236 AM_CONDITIONAL([HAVE_YELP_TOOLS],[test x$have_yelp_tools = xyes])
238 AC_CONFIG_FILES([Makefile
239 gtk-doc.pc
240 gtkdoc-common.pl
241 cmake/Makefile
242 cmake/GtkDocConfig.cmake
243 cmake/GtkDocConfigVersion.cmake
244 gtkdoc/config.py
245 help/Makefile
246 help/manual/Makefile
247 tests/Makefile
248 tests/gobject/Makefile
249 tests/gobject/src/Makefile
250 tests/gobject/docs/Makefile
251 tests/bugs/Makefile
252 tests/bugs/src/Makefile
253 tests/bugs/docs/Makefile
254 tests/annotations/Makefile
255 tests/annotations/src/Makefile
256 tests/annotations/docs/Makefile
257 tests/fail/Makefile
258 tests/fail/src/Makefile
259 tests/fail/docs/Makefile
260 tests/empty/Makefile
261 tests/empty/src/Makefile
262 tests/empty/docs/Makefile
263 tests/program/Makefile
264 tests/program/src/Makefile
265 tests/program/docs/Makefile
268 dnl run chmod on these after parsing them.
269 AC_CONFIG_FILES([gtkdoc-check],    [chmod +x gtkdoc-check])
270 AC_CONFIG_FILES([gtkdoc-depscan],  [chmod +x gtkdoc-depscan])
271 AC_CONFIG_FILES([gtkdoc-fixxref],  [chmod +x gtkdoc-fixxref])
272 AC_CONFIG_FILES([gtkdoc-mkdb],     [chmod +x gtkdoc-mkdb])
273 AC_CONFIG_FILES([gtkdoc-mkhtml],   [chmod +x gtkdoc-mkhtml])
274 AC_CONFIG_FILES([gtkdoc-mkman],    [chmod +x gtkdoc-mkman])
275 AC_CONFIG_FILES([gtkdoc-mkpdf],    [chmod +x gtkdoc-mkpdf])
276 AC_CONFIG_FILES([gtkdoc-rebase],   [chmod +x gtkdoc-rebase])
277 AC_CONFIG_FILES([gtkdoc-scan],     [chmod +x gtkdoc-scan])
278 AC_CONFIG_FILES([gtkdoc-scangobj], [chmod +x gtkdoc-scangobj])
279 AC_CONFIG_FILES([gtkdocize],       [chmod +x gtkdocize])
280 AC_CONFIG_FILES([tests/tools.sh],  [chmod +x tests/tools.sh])
281 AC_OUTPUT
283 AC_MSG_NOTICE([
284 gtk-doc was configured with the following options:
285 ==================================================])
287 test -n "$DBLATEX$FOP" \
288     && AC_MSG_NOTICE([** PDF support enabled, using $DBLATEX$FOP]) \
289     || AC_MSG_NOTICE([   PDF support disabled, no dblatex or fop available])
290 test -n "$HIGHLIGHT" \
291     && AC_MSG_NOTICE([** Syntax highlighting of examples enabled, using $HIGHLIGHT]) \
292     || AC_MSG_NOTICE([   Syntax highlighting of examples disabled])
293 test "x$build_tests" != "xno" \
294     && AC_MSG_NOTICE([** Building regression tests]) \
295     || AC_MSG_NOTICE([   Skipping regression tests])
296 test "x$enable_debug" != "xno" \
297     && AC_MSG_NOTICE([** Debug tracing enabled]) \
298     || AC_MSG_NOTICE([   Debug tracing disabled])
299 test "x$have_yelp_tools" != "xno" \
300     && AC_MSG_NOTICE([** Documentation enabled]) \
301     || AC_MSG_NOTICE([   Documentation disabled])