1273562Smarcel#
2273562Smarcel# $Id$
3273562Smarcel#
4273562Smarcel# See ./INSTALL for more info
5273562Smarcel#
6273562Smarcel
7273562Smarcel#
8273562Smarcel# Release numbering: even numbered dot releases are official ones, and
9273562Smarcel# odd numbers are development ones.  The svn version of this file will
10273562Smarcel# only (ONLY!) ever (EVER!) contain odd numbers, so I'll always know if
11273562Smarcel# a particular user has the dist or svn release.
12273562Smarcel#
13273562Smarcel
14273562SmarcelAC_PREREQ(2.2)
15302321SngieAC_INIT([libxo], [0.6.3], [phil@juniper.net])
16273562SmarcelAM_INIT_AUTOMAKE([-Wall -Werror foreign -Wno-portability])
17273562Smarcel
18273562Smarcel# Support silent build rules.  Requires at least automake-1.11.
19273562Smarcel# Disable with "configure --disable-silent-rules" or "make V=1"
20273562Smarcelm4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
21273562Smarcel
22273562SmarcelAC_PROG_CC
23273562SmarcelAM_PROG_AR
24273562SmarcelAC_PROG_INSTALL
25273562SmarcelAC_CONFIG_MACRO_DIR([m4])
26273562SmarcelAC_PROG_LN_S
27273562Smarcel
28273562Smarcel# Must be after AC_PROG_AR
29273562SmarcelLT_INIT([dlopen shared])
30273562Smarcel
31273562SmarcelAC_PATH_PROG(BASENAME, basename, /usr/bin/basename)
32273562SmarcelAC_PATH_PROG(BISON, bison, /usr/bin/bison)
33273562SmarcelAC_PATH_PROG(CAT, cat, /bin/cat)
34273562SmarcelAC_PATH_PROG(CHMOD, chmod, /bin/chmod)
35273562SmarcelAC_PATH_PROG(CP, cp, /bin/cp)
36273562SmarcelAC_PATH_PROG(DIFF, diff, /usr/bin/diff)
37273562SmarcelAC_PATH_PROG(MKDIR, mkdir, /bin/mkdir)
38273562SmarcelAC_PATH_PROG(MV, mv, /bin/mv)
39273562SmarcelAC_PATH_PROG(RM, rm, /bin/rm)
40273562SmarcelAC_PATH_PROG(SED, sed, /bin/sed)
41273562Smarcel
42273562SmarcelAC_STDC_HEADERS
43273562Smarcel
44273562Smarcel# Checks for typedefs, structures, and compiler characteristics.
45273562SmarcelAC_C_INLINE
46273562SmarcelAC_TYPE_SIZE_T
47273562Smarcel
48273562Smarcel# Checks for library functions.
49273562SmarcelAC_FUNC_ALLOCA
50273562SmarcelAC_FUNC_MALLOC
51273562SmarcelAC_FUNC_REALLOC
52273562SmarcelAC_CHECK_FUNCS([bzero memmove strchr strcspn strerror strspn])
53273562SmarcelAC_CHECK_FUNCS([sranddev srand strlcpy])
54273562SmarcelAC_CHECK_FUNCS([fdopen getrusage])
55273562SmarcelAC_CHECK_FUNCS([gettimeofday ctime])
56273562SmarcelAC_CHECK_FUNCS([getpass])
57287111SmarcelAC_CHECK_FUNCS([getprogname])
58273562SmarcelAC_CHECK_FUNCS([sysctlbyname])
59273562SmarcelAC_CHECK_FUNCS([flock])
60273562SmarcelAC_CHECK_FUNCS([asprintf])
61277353SmarcelAC_CHECK_FUNCS([__flbf])
62287111SmarcelAC_CHECK_FUNCS([sysctlbyname])
63273562Smarcel
64287111Smarcel
65273562SmarcelAC_CHECK_HEADERS([dlfcn.h])
66287111SmarcelAC_CHECK_HEADERS([dlfcn.h])
67277353SmarcelAC_CHECK_HEADERS([stdio_ext.h])
68273562SmarcelAC_CHECK_HEADERS([tzfile.h])
69273562SmarcelAC_CHECK_HEADERS([stdtime/tzfile.h])
70273562SmarcelAC_CHECK_FUNCS([dlfunc])
71273562Smarcel
72273562SmarcelAC_CHECK_HEADERS([sys/time.h])
73273562SmarcelAC_CHECK_HEADERS([ctype.h errno.h stdio.h stdlib.h])
74273562SmarcelAC_CHECK_HEADERS([string.h sys/param.h unistd.h ])
75273562SmarcelAC_CHECK_HEADERS([sys/sysctl.h])
76287111SmarcelAC_CHECK_HEADERS([threads.h])
77298083SphilAC_CHECK_HEADERS([monitor.h])
78273562Smarcel
79287111Smarceldnl humanize_number(3) is a great function, but it's not standard.
80287111Smarceldnl Note Macosx has the function in libutil.a but doesn't ship the
81287111Smarceldnl header file, so I'll need to carry my own implementation.  See:
82287111Smarceldnl    https://devforums.apple.com/thread/271121
83287111SmarcelAC_CHECK_HEADERS([libutil.h])
84287111SmarcelAC_CHECK_LIB([util], [humanize_number],
85287111Smarcel     [HAVE_HUMANIZE_NUMBER=$ac_cv_header_libutil_h],
86287111Smarcel     [HAVE_HUMANIZE_NUMBER=no])
87287111Smarcel
88287111SmarcelAC_MSG_RESULT(humanize_number results: :${HAVE_HUMANIZE_NUMBER}:${ac_cv_header_libutil_h}:)
89287111Smarcel
90287111Smarcelif test "$HAVE_HUMANIZE_NUMBER" = "yes"; then
91287111Smarcel    AC_DEFINE([HAVE_HUMANIZE_NUMBER], [1], [humanize_number(3)])
92287111Smarcelfi
93287111Smarcel
94287111SmarcelAM_CONDITIONAL([HAVE_HUMANIZE_NUMBER], [test "$HAVE_HUMANIZE_NUMBER" = "yes"])
95287111Smarcel
96287111SmarcelAC_ARG_ENABLE([gettext],
97287111Smarcel    [  --disable-gettext  Turn off support for gettext],
98287111Smarcel    [GETTEXT_ENABLE=$enableval],
99287111Smarcel    [GETTEXT_ENABLE=yes])
100287111Smarcel
101287111Smarceldnl Looking for gettext(), assumably in libintl
102287111SmarcelAC_ARG_WITH(gettext,
103287111Smarcel        [  --with-gettext=[PFX]           Specify location of gettext installation],
104287111Smarcel        [GETTEXT_PREFIX=$withval],
105287111Smarcel	[GETTEXT_PREFIX=/usr],
106287111Smarcel)
107287111Smarcel
108287111SmarcelHAVE_GETTEXT=no
109287111Smarcel
110287111Smarcelif test "$GETTEXT_ENABLE" != "no"; then
111287111Smarcel
112287111Smarcel  AC_MSG_CHECKING([gettext in ${GETTEXT_PREFIX}])
113287111Smarcel
114287111Smarcel  _save_cflags="$CFLAGS"
115287111Smarcel  CFLAGS="$CFLAGS -I${GETTEXT_PREFIX}/include -L${GETTEXT_PREFIX}/lib -Werror -lintl"
116287111Smarcel  AC_LINK_IFELSE([AC_LANG_SOURCE([[#include <libintl.h>]
117287111Smarcel             [int main() {char *cp = dgettext(NULL, "xx"); return 0; }]])],
118287111Smarcel             [HAVE_GETTEXT=yes],
119287111Smarcel             [HAVE_GETTEXT=no])
120287111Smarcel  CFLAGS="$_save_cflags"
121287111Smarcel
122287111Smarcel  AC_MSG_RESULT([$HAVE_GETTEXT])
123287111Smarcel
124287111Smarcel  if test "$HAVE_GETTEXT" != "yes"; then
125287111Smarcel      GETTEXT_PREFIX=/opt/local
126287111Smarcel      AC_MSG_CHECKING([gettext in ${GETTEXT_PREFIX}])
127287111Smarcel
128287111Smarcel      _save_cflags="$CFLAGS"
129287111Smarcel      CFLAGS="$CFLAGS -I${GETTEXT_PREFIX}/include -L${GETTEXT_PREFIX}/lib -Werror -lintl"
130287111Smarcel      AC_LINK_IFELSE([AC_LANG_SOURCE([[#include <libintl.h>]
131287111Smarcel                 [int main() {char *cp = dgettext(NULL, "xx"); return 0; }]])],
132287111Smarcel                 [HAVE_GETTEXT=yes],
133287111Smarcel                 [HAVE_GETTEXT=no])
134287111Smarcel      CFLAGS="$_save_cflags"
135287111Smarcel
136287111Smarcel      AC_MSG_RESULT([$HAVE_GETTEXT])
137287111Smarcel  fi
138287111Smarcelfi
139287111Smarcel
140287111Smarcelif test "$HAVE_GETTEXT" = "yes"; then
141287111Smarcel    AC_DEFINE([HAVE_GETTEXT], [1], [gettext(3)])
142287111Smarcel    GETTEXT_CFLAGS="-I${GETTEXT_PREFIX}/include"
143287111Smarcel    GETTEXT_LIBS="-L${GETTEXT_PREFIX}/lib -lintl"
144287111Smarcelelse
145287111Smarcel    GETTEXT_PREFIX=none
146287111Smarcel    GETTEXT_CFLAGS=
147287111Smarcel    GETTEXT_LIBS=
148287111Smarcelfi
149287111SmarcelAC_SUBST(GETTEXT_CFLAGS)
150287111SmarcelAC_SUBST(GETTEXT_LIBS)
151287111Smarcel
152287111SmarcelGETTEXT_LIBDIR=${GETTEXT_PREFIX}/lib
153287111SmarcelAC_SUBST(GETTEXT_LIBDIR)
154298083Sphilif test -x ${GETTEXT_PREFIX}/bin/msgfmt ; then
155298083Sphil    GETTEXT_BINDIR=${GETTEXT_PREFIX}/bin
156298083Sphilelif test -x ${GETTEXT_PREFIX}/local/bin/msgfmt ; then
157298083Sphil    GETTEXT_BINDIR=${GETTEXT_PREFIX}/local/bin
158298083Sphilelse
159298083Sphil    AC_MSG_NOTICE("could not find msgfmt tool")
160298083Sphil    # Use a (bad) fall back value
161298083Sphil    GETTEXT_BINDIR=${GETTEXT_PREFIX}/bin
162298083Sphilfi
163298083SphilAC_SUBST(GETTEXT_BINDIR)
164287111Smarcel
165287111SmarcelAM_CONDITIONAL([HAVE_GETTEXT], [test "$HAVE_GETTEXT" = "yes"])
166287111Smarcel
167287111Smarceldnl Looking for how to do thread-local variables
168287111SmarcelAC_ARG_WITH(threads,
169287111Smarcel        [  --with-threads=[STYLE]           Specify style of thread-local support (none)],
170287111Smarcel        [THREAD_LOCAL=$withval],
171287111Smarcel	[THREAD_LOCAL=unknown],
172287111Smarcel)
173287111Smarcel
174287111SmarcelAC_MSG_CHECKING([thread-locals are ${THREAD_LOCAL}])
175287111Smarcel
176287111Smarcelif test "$THREAD_LOCAL" = "unknown"; then
177287111Smarcel     AC_LINK_IFELSE([AC_LANG_SOURCE([[]
178287111Smarcel           [__thread int foo; int main() { foo++; return foo; }]])],
179287111Smarcel           [THREAD_LOCAL=before],
180287111Smarcel           [THREAD_LOCAL=unknown])
181287111Smarcel
182287111Smarcel    AC_MSG_RESULT([$THREAD_LOCAL])
183287111Smarcelfi
184287111Smarcel
185287111Smarcelif test "$THREAD_LOCAL" = "unknown"; then
186287111Smarcel    AC_LINK_IFELSE([AC_LANG_SOURCE([[]
187287111Smarcel           [int __thread foo; int main() { foo++; return foo; }]])],
188287111Smarcel           [THREAD_LOCAL=after],
189287111Smarcel           [THREAD_LOCAL=unknown])
190287111Smarcel    AC_MSG_RESULT([$THREAD_LOCAL])
191287111Smarcelfi
192287111Smarcel
193287111Smarcelif test "$THREAD_LOCAL" = "unknown"; then
194287111Smarcel    AC_LINK_IFELSE([AC_LANG_SOURCE([[]
195287111Smarcel           [__declspec(int) foo; int main() { foo++; return foo; }]])],
196287111Smarcel           [THREAD_LOCAL=declspec],
197287111Smarcel           [THREAD_LOCAL=unknown])
198287111Smarcel    AC_MSG_RESULT([$THREAD_LOCAL])
199287111Smarcelfi
200287111Smarcel
201287111Smarcelif test "$THREAD_LOCAL" != "unknown"; then
202287111Smarcel    AC_DEFINE_UNQUOTED([HAVE_THREAD_LOCAL], 
203287111Smarcel              THREAD_LOCAL_${THREAD_LOCAL}, [thread-local setting])
204287111Smarcelfi
205287111Smarcel
206287111Smarceldnl Looking for libcrypto....
207273562SmarcelAC_CHECK_LIB([crypto], [MD5_Init])
208273562SmarcelAM_CONDITIONAL([HAVE_LIBCRYPTO], [test "$HAVE_LIBCRYPTO" != "no"])
209273562Smarcel
210287111SmarcelAC_CHECK_MEMBER([struct sockaddr_un.sun_len],
211287111Smarcel    [HAVE_SUN_LEN=yes ;
212287111Smarcel        AC_DEFINE([HAVE_SUN_LEN], [1], [Have struct sockaddr_un.sun_len])],
213287111Smarcel    [HAS_SUN_LEN=no], [[#include <sys/un.h>]])
214287111Smarcel
215287111SmarcelAC_CHECK_DECLS([__isthreaded], [], [], [#include <stdio.h>])
216287111SmarcelHAVE_ISTHREADED=${ac_cv_have_decl___isthreaded}
217287111Smarcel
218273562Smarceldnl
219273562Smarceldnl Some packages need to be checked against version numbers so we
220273562Smarceldnl define a function here for later use
221273562Smarceldnl
222273562SmarcelAC_DEFUN([VERSION_TO_NUMBER],
223273562Smarcel[`$1 | sed -e 's/lib.* //' | awk 'BEGIN { FS = "."; } { printf "%d", ([$]1 * 1000 + [$]2) * 1000 + [$]3;}'`])
224273562Smarcel
225273562SmarcelLIBSLAX_CONFIG_PREFIX=""
226273562SmarcelLIBSLAX_SRC=""
227273562Smarcel
228273562SmarcelAC_ARG_WITH(libslax-prefix,
229273562Smarcel        [  --with-libslax-prefix=[PFX]           Specify location of libslax config],
230273562Smarcel        LIBSLAX_CONFIG_PREFIX=$withval
231273562Smarcel)
232273562Smarcel
233273562SmarcelAC_MSG_CHECKING(for libslax) 
234273562Smarcelif test "x$LIBSLAX_CONFIG_PREFIX" != "x"
235273562Smarcelthen
236273562Smarcel        SLAX_CONFIG=${LIBSLAX_CONFIG_PREFIX}/bin/slax-config
237273562Smarcelelse
238273562Smarcel        SLAX_CONFIG=slax-config
239273562Smarcelfi
240273562Smarcel
241273562Smarceldnl
242273562Smarceldnl make sure slax-config is executable,
243273562Smarceldnl test version and init our variables
244273562Smarceldnl
245273562Smarcel
246273562Smarcelif ${SLAX_CONFIG} --libs > /dev/null 2>&1
247273562Smarcelthen
248273562Smarcel	LIBSLAX_VERSION=`$SLAX_CONFIG --version`
249273562Smarcel	SLAX_BINDIR="`$SLAX_CONFIG --bindir | head -1`"
250273562Smarcel	SLAX_OXTRADOCDIR="`$SLAX_CONFIG --oxtradoc | head -1`"
251273562Smarcel	AC_MSG_RESULT($LIBSLAX_VERSION found)
252287111Smarcel	HAVE_OXTRADOC=yes
253273562Smarcelelse
254273562Smarcel	LIBSLAX_VERSION=
255273562Smarcel	SLAX_BINDIR=
256273562Smarcel	SLAX_OXTRADOCDIR=
257273562Smarcel	AC_MSG_RESULT([no])
258287111Smarcel	HAVE_OXTRADOC=no
259273562Smarcelfi
260287111SmarcelAM_CONDITIONAL([HAVE_OXTRADOC], [test "$HAVE_OXTRADOC" != "no"])
261273562Smarcel
262273562SmarcelAC_SUBST(SLAX_BINDIR)
263273562SmarcelAC_SUBST(SLAX_OXTRADOCDIR)
264273562Smarcel
265273562SmarcelAC_MSG_CHECKING([whether to build with warnings])
266273562SmarcelAC_ARG_ENABLE([warnings],
267273562Smarcel    [  --enable-warnings    Turn on compiler warnings],
268273562Smarcel    [LIBXO_WARNINGS=$enableval],
269273562Smarcel    [LIBXO_WARNINGS=no])
270273562SmarcelAC_MSG_RESULT([$LIBXO_WARNINGS])
271273562SmarcelAM_CONDITIONAL([LIBXO_WARNINGS_HIGH], [test "$LIBXO_WARNINGS" != "no"])
272273562Smarcel
273273562SmarcelAC_MSG_CHECKING([whether to build with debugging])
274273562SmarcelAC_ARG_ENABLE([debug],
275273562Smarcel    [  --enable-debug    Turn on debugging],
276273562Smarcel    [LIBXO_DEBUG=yes; AC_DEFINE([LIBXO_DEBUG], [1], [Enable debugging])],
277273562Smarcel    [LIBXO_DEBUG=no])
278273562SmarcelAC_MSG_RESULT([$LIBXO_DEBUG])
279273562SmarcelAM_CONDITIONAL([LIBXO_DEBUG], [test "$LIBXO_DEBUG" != "no"])
280273562Smarcel
281282100SmarcelAC_MSG_CHECKING([whether to build with text-only rendering])
282282100SmarcelAC_ARG_ENABLE([text-only],
283282100Smarcel    [  --enable-text-only    Turn on text-only rendering],
284282100Smarcel    [LIBXO_TEXT_ONLY=yes; AC_DEFINE([LIBXO_TEXT_ONLY], [1], [Enable text-only rendering])],
285282100Smarcel    [LIBXO_TEXT_ONLY=no])
286282100SmarcelAC_MSG_RESULT([$LIBXO_TEXT_ONLY])
287282100SmarcelAM_CONDITIONAL([LIBXO_TEXT_ONLY], [test "$LIBXO_TEXT_ONLY" != "no"])
288282100Smarcel
289287111SmarcelAC_MSG_CHECKING([whether to build with local wcwidth implementation])
290287111SmarcelAC_ARG_ENABLE([wcwidth],
291287111Smarcel    [  --disable-wcwidth        Disable local wcwidth implementation],
292287111Smarcel    [LIBXO_WCWIDTH=$enableval],
293287111Smarcel    [LIBXO_WCWIDTH=yes])
294287111SmarcelAC_MSG_RESULT([$LIBXO_WCWIDTH])
295287111Smarcelif test "${LIBXO_WCWIDTH}" != "no"; then
296287111Smarcel  AC_DEFINE([LIBXO_WCWIDTH], [1], [Enable local wcwidth implementation])
297287111Smarcelfi
298287111Smarcel
299298083SphilAC_MSG_CHECKING([retain hash bucket size])
300298083SphilAC_ARG_WITH(retain-size,
301298083Sphil        [  --with-retain-size=[DIR]           Specify retain hash bucket size (in bits)],
302298083Sphil        [XO_RETAIN_SIZE=$withval],
303298083Sphil        [XO_RETAIN_SIZE=default]
304298083Sphil)
305298083Sphil
306298083SphilAC_MSG_RESULT([$XO_RETAIN_SIZE])
307298083Sphilif test "${XO_RETAIN_SIZE}" != "default"; then
308298083Sphil  AC_DEFINE_UNQUOTED([XO_RETAIN_SIZE], ${XO_RETAIN_SIZE}, [Retain hash bucket size])
309298083Sphilfi
310298083Sphil
311273562SmarcelAC_CHECK_LIB([m], [lrint])
312273562SmarcelAM_CONDITIONAL([HAVE_LIBM], [test "$HAVE_LIBM" != "no"])
313273562Smarcel
314273562SmarcelAC_MSG_CHECKING([compiler for gcc])
315273562SmarcelHAVE_GCC=no
316273562Smarcelif test "${CC}" != ""; then
317273562Smarcel    HAVE_GCC=`${CC} --version 2>&1 | grep GCC`
318273562Smarcel    if test "${HAVE_GCC}" != ""; then
319273562Smarcel        HAVE_GCC=yes
320273562Smarcel    else
321273562Smarcel        HAVE_GCC=no
322273562Smarcel    fi
323273562Smarcelfi
324273562SmarcelAC_MSG_RESULT([$HAVE_GCC])
325273562SmarcelAM_CONDITIONAL([HAVE_GCC], [test "$HAVE_GCC" = "yes"])
326273562Smarcel
327273562SmarcelAC_MSG_CHECKING([whether to build with printflike])
328273562SmarcelAC_ARG_ENABLE([printflike],
329273562Smarcel    [  --enable-printflike    Enable use of GCC __printflike attribute],
330273562Smarcel    [HAVE_PRINTFLIKE=yes;
331273562Smarcel           AC_DEFINE([HAVE_PRINTFLIKE], [1], [Support printflike])],
332273562Smarcel    [HAVE_PRINTFLIKE=no])
333273562SmarcelAC_MSG_RESULT([$HAVE_PRINTFLIKE])
334273562SmarcelAM_CONDITIONAL([HAVE_PRINTFLIKE], [test "$HAVE_PRINTFLIKE" != ""])
335273562Smarcel
336273562SmarcelAC_MSG_CHECKING([whether to build with LIBXO_OPTIONS])
337273562SmarcelAC_ARG_ENABLE([libxo-options],
338273562Smarcel    [  --disable-libxo-options  Turn off support for LIBXO_OPTIONS],
339273562Smarcel    [LIBXO_OPTS=$enableval],
340273562Smarcel    [LIBXO_OPTS=yes])
341273562SmarcelAC_MSG_RESULT([$LIBXO_OPTS])
342273562SmarcelAM_CONDITIONAL([NO_LIBXO_OPTIONS], [test "$LIBXO_OPTS" != "yes"])
343273562Smarcel
344273562Smarcelcase $host_os in
345273562Smarcel     darwin*)
346273562Smarcel        LIBTOOL=glibtool
347287111Smarcel	XO_LIBEXT=dylib
348273562Smarcel	;;
349273562Smarcel     Linux*|linux*)
350273562Smarcel        CFLAGS="-D_GNU_SOURCE $CFLAGS"
351273562Smarcel	LDFLAGS=-ldl
352287111Smarcel	XO_LIBEXT=so
353273562Smarcel	;;
354273562Smarcel     cygwin*|CYGWIN*)
355273562Smarcel	LDFLAGS=-no-undefined
356287111Smarcel	XO_LIBEXT=ddl
357273562Smarcel	;;
358273562Smarcelesac
359273562Smarcel
360273562Smarcelcase $prefix in
361273562Smarcel     NONE)
362273562Smarcel	prefix=/usr/local
363273562Smarcel	;;
364273562Smarcelesac
365273562Smarcel
366273562SmarcelXO_LIBS=-lxo
367273562SmarcelXO_SRCDIR=${srcdir}
368273562SmarcelXO_LIBDIR=${libdir}
369273562SmarcelXO_BINDIR=${bindir}
370273562SmarcelXO_INCLUDEDIR=${includedir}
371298083SphilXO_CFLAGS="${CFLAGS}"
372273562Smarcel
373298083SphilAC_SUBST(XO_LIBS)
374273562SmarcelAC_SUBST(XO_SRCDIR)
375273562SmarcelAC_SUBST(XO_LIBDIR)
376273562SmarcelAC_SUBST(XO_BINDIR)
377273562SmarcelAC_SUBST(XO_INCLUDEDIR)
378287111SmarcelAC_SUBST(XO_LIBEXT)
379298083SphilAC_SUBST(XO_CFLAGS)
380273562Smarcel
381287111SmarcelAC_ARG_WITH(encoder-dir,
382287111Smarcel        [  --with-encoder-dir=[DIR]           Specify location of encoder libraries],
383287111Smarcel        [XO_ENCODERDIR=$withval],
384287111Smarcel        [XO_ENCODERDIR=$libdir/libxo/encoder]
385287111Smarcel)
386287111SmarcelAC_SUBST(XO_ENCODERDIR)
387287111Smarcel
388273562SmarcelAC_ARG_WITH(share-dir,
389273562Smarcel        [  --with-share-dir=[DIR]           Specify location of shared files],
390273562Smarcel        [XO_SHAREDIR=$withval],
391273562Smarcel        [XO_SHAREDIR=$datarootdir/libxo]
392273562Smarcel)
393273562SmarcelXO_SHAREDIR=`echo $XO_SHAREDIR | sed "s;\\${prefix};$prefix;"`
394273562SmarcelAC_SUBST(XO_SHAREDIR)
395273562Smarcel
396273562Smarceldnl for the spec file
397273562SmarcelRELDATE=`date +'%Y-%m-%d%n'`
398273562SmarcelAC_SUBST(RELDATE)
399273562Smarcel
400273562SmarcelAC_MSG_RESULT(Using configure dir $ac_abs_confdir)
401273562Smarcel
402273562Smarcelif test -d $ac_abs_confdir/.git ; then
403273562Smarcel  extra=`git branch | awk '/\*/ { print $2 }'`
404273562Smarcel  if test "$extra" != "" -a "$extra" != "master"
405273562Smarcel  then
406273562Smarcel      LIBXO_VERSION_EXTRA="-git-$extra"
407273562Smarcel  fi
408273562Smarcelfi
409273562Smarcel
410273562SmarcelLIBXO_VERSION=$PACKAGE_VERSION
411273562SmarcelLIBXO_VERSION_NUMBER=VERSION_TO_NUMBER(echo $PACKAGE_VERSION)
412273562SmarcelAC_SUBST(LIBXO_VERSION)
413273562SmarcelAC_SUBST(LIBXO_VERSION_NUMBER)
414273562SmarcelAC_SUBST(LIBXO_VERSION_EXTRA)
415273562Smarcel
416287111SmarcelAC_DEFINE_UNQUOTED(LIBXO_VERSION, ["$LIBXO_VERSION"],
417287111Smarcel    [Version number as dotted value])
418287111SmarcelAC_DEFINE_UNQUOTED(LIBXO_VERSION_NUMBER, [$LIBXO_VERSION_NUMBER],
419287111Smarcel    [Version number as a number])
420287111SmarcelAC_DEFINE_UNQUOTED(LIBXO_VERSION_STRING, ["$LIBXO_VERSION_NUMBER"],
421287111Smarcel    [Version number as string])
422287111SmarcelAC_DEFINE_UNQUOTED(LIBXO_VERSION_EXTRA, ["$LIBXO_VERSION_EXTRA"],
423287111Smarcel    [Version number extra information])
424287111Smarcel
425287111SmarcelAC_CONFIG_HEADERS([libxo/xo_config.h])
426273562SmarcelAC_CONFIG_FILES([
427273562Smarcel  Makefile
428273562Smarcel  libxo-config
429273562Smarcel  xohtml/xohtml.sh
430273562Smarcel  libxo/Makefile
431287111Smarcel  libxo/add.man
432287111Smarcel  encoder/Makefile
433287111Smarcel  encoder/cbor/Makefile
434287111Smarcel  encoder/test/Makefile
435273562Smarcel  xo/Makefile
436273562Smarcel  xolint/Makefile
437282100Smarcel  xohtml/Makefile
438287111Smarcel  xopo/Makefile
439273562Smarcel  packaging/libxo.pc
440273562Smarcel  doc/Makefile
441273562Smarcel  tests/Makefile
442273562Smarcel  tests/core/Makefile
443287111Smarcel  tests/gettext/Makefile
444273562Smarcel  tests/xo/Makefile
445273562Smarcel  packaging/libxo.spec
446277353Smarcel  packaging/libxo.rb.base
447273562Smarcel])
448273562SmarcelAC_OUTPUT
449273562Smarcel
450273562SmarcelAC_MSG_NOTICE([summary of build options:
451273562Smarcel
452273562Smarcel  libxo version:    ${VERSION} ${LIBXO_VERSION_EXTRA}
453273562Smarcel  host type:        ${host} / ${host_os}
454273562Smarcel  install prefix:   ${prefix}
455273562Smarcel  srcdir:           ${XO_SRCDIR}
456273562Smarcel  libdir:           ${XO_LIBDIR}
457273562Smarcel  bindir:           ${XO_BINDIR}
458273562Smarcel  includedir:       ${XO_INCLUDEDIR}
459273562Smarcel  share dir:        ${XO_SHAREDIR}
460287111Smarcel  extensions dir:   ${XO_ENCODERDIR}
461282100Smarcel  oxtradoc dir:     ${SLAX_OXTRADOCDIR}
462273562Smarcel
463273562Smarcel  compiler:         ${CC} (${HAVE_GCC:-no})
464273562Smarcel  compiler flags:   ${CFLAGS}
465273562Smarcel  library types:    Shared=${enable_shared}, Static=${enable_static}
466273562Smarcel
467273562Smarcel  warnings:         ${LIBXO_WARNINGS:-no}
468273562Smarcel  debug:            ${LIBXO_DEBUG:-no}
469273562Smarcel  printf-like:      ${HAVE_PRINTFLIKE:-no}
470273562Smarcel  libxo-options:    ${LIBXO_OPTS:-no}
471282100Smarcel  text-only:        ${LIBXO_TEXT_ONLY:-no}
472287111Smarcel  gettext:          ${HAVE_GETTEXT:-no} (${GETTEXT_PREFIX})
473287111Smarcel  isthreaded:       ${HAVE_ISTHREADED:-no}
474287111Smarcel  thread-local:     ${THREAD_LOCAL:-no}
475287111Smarcel  local wcwidth:    ${LIBXO_WCWIDTH:-no}
476298083Sphil  retain size:      ${XO_RETAIN_SIZE:-no}
477273562Smarcel])
478