4 # See ./INSTALL for more info
8 # Release numbering: even numbered dot releases are official ones, and
9 # odd numbers are development ones. The svn version of this file will
10 # only (ONLY!) ever (EVER!) contain odd numbers, so I'll always know if
11 # a particular user has the dist or svn release.
15 AC_INIT([libxo], [0.3.2], [phil@juniper.net])
16 AM_INIT_AUTOMAKE([-Wall -Werror foreign -Wno-portability])
18 # Support silent build rules. Requires at least automake-1.11.
19 # Disable with "configure --disable-silent-rules" or "make V=1"
20 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
25 AC_CONFIG_MACRO_DIR([m4])
28 # Must be after AC_PROG_AR
29 LT_INIT([dlopen shared])
31 AC_PATH_PROG(BASENAME, basename, /usr/bin/basename)
32 AC_PATH_PROG(BISON, bison, /usr/bin/bison)
33 AC_PATH_PROG(CAT, cat, /bin/cat)
34 AC_PATH_PROG(CHMOD, chmod, /bin/chmod)
35 AC_PATH_PROG(CP, cp, /bin/cp)
36 AC_PATH_PROG(DIFF, diff, /usr/bin/diff)
37 AC_PATH_PROG(MKDIR, mkdir, /bin/mkdir)
38 AC_PATH_PROG(MV, mv, /bin/mv)
39 AC_PATH_PROG(RM, rm, /bin/rm)
40 AC_PATH_PROG(SED, sed, /bin/sed)
44 # Checks for typedefs, structures, and compiler characteristics.
48 # Checks for library functions.
52 AC_CHECK_FUNCS([bzero memmove strchr strcspn strerror strspn])
53 AC_CHECK_FUNCS([sranddev srand strlcpy])
54 AC_CHECK_FUNCS([fdopen getrusage])
55 AC_CHECK_FUNCS([gettimeofday ctime])
56 AC_CHECK_FUNCS([getpass])
57 AC_CHECK_FUNCS([sysctlbyname])
58 AC_CHECK_FUNCS([flock])
59 AC_CHECK_FUNCS([asprintf])
60 AC_CHECK_FUNCS([__flbf])
62 AC_CHECK_HEADERS([dlfcn.h])
63 AC_CHECK_HEADERS([stdio_ext.h])
64 AC_CHECK_HEADERS([tzfile.h])
65 AC_CHECK_HEADERS([stdtime/tzfile.h])
66 AC_CHECK_FUNCS([dlfunc])
68 AC_CHECK_HEADERS([sys/time.h])
69 AC_CHECK_HEADERS([ctype.h errno.h stdio.h stdlib.h])
70 AC_CHECK_HEADERS([string.h sys/param.h unistd.h ])
71 AC_CHECK_HEADERS([sys/sysctl.h])
73 AC_CHECK_LIB([crypto], [MD5_Init])
74 AM_CONDITIONAL([HAVE_LIBCRYPTO], [test "$HAVE_LIBCRYPTO" != "no"])
77 dnl Some packages need to be checked against version numbers so we
78 dnl define a function here for later use
80 AC_DEFUN([VERSION_TO_NUMBER],
81 [`$1 | sed -e 's/lib.* //' | awk 'BEGIN { FS = "."; } { printf "%d", ([$]1 * 1000 + [$]2) * 1000 + [$]3;}'`])
83 LIBSLAX_CONFIG_PREFIX=""
86 AC_ARG_WITH(libslax-prefix,
87 [ --with-libslax-prefix=[PFX] Specify location of libslax config],
88 LIBSLAX_CONFIG_PREFIX=$withval
91 AC_MSG_CHECKING(for libslax)
92 if test "x$LIBSLAX_CONFIG_PREFIX" != "x"
94 SLAX_CONFIG=${LIBSLAX_CONFIG_PREFIX}/bin/slax-config
96 SLAX_CONFIG=slax-config
100 dnl make sure slax-config is executable,
101 dnl test version and init our variables
104 if ${SLAX_CONFIG} --libs > /dev/null 2>&1
106 LIBSLAX_VERSION=`$SLAX_CONFIG --version`
107 SLAX_BINDIR="`$SLAX_CONFIG --bindir | head -1`"
108 SLAX_OXTRADOCDIR="`$SLAX_CONFIG --oxtradoc | head -1`"
109 AC_MSG_RESULT($LIBSLAX_VERSION found)
117 AC_SUBST(SLAX_BINDIR)
118 AC_SUBST(SLAX_OXTRADOCDIR)
120 AC_MSG_CHECKING([whether to build with warnings])
121 AC_ARG_ENABLE([warnings],
122 [ --enable-warnings Turn on compiler warnings],
123 [LIBXO_WARNINGS=$enableval],
125 AC_MSG_RESULT([$LIBXO_WARNINGS])
126 AM_CONDITIONAL([LIBXO_WARNINGS_HIGH], [test "$LIBXO_WARNINGS" != "no"])
128 AC_MSG_CHECKING([whether to build with debugging])
129 AC_ARG_ENABLE([debug],
130 [ --enable-debug Turn on debugging],
131 [LIBXO_DEBUG=yes; AC_DEFINE([LIBXO_DEBUG], [1], [Enable debugging])],
133 AC_MSG_RESULT([$LIBXO_DEBUG])
134 AM_CONDITIONAL([LIBXO_DEBUG], [test "$LIBXO_DEBUG" != "no"])
136 AC_MSG_CHECKING([whether to build with text-only rendering])
137 AC_ARG_ENABLE([text-only],
138 [ --enable-text-only Turn on text-only rendering],
139 [LIBXO_TEXT_ONLY=yes; AC_DEFINE([LIBXO_TEXT_ONLY], [1], [Enable text-only rendering])],
140 [LIBXO_TEXT_ONLY=no])
141 AC_MSG_RESULT([$LIBXO_TEXT_ONLY])
142 AM_CONDITIONAL([LIBXO_TEXT_ONLY], [test "$LIBXO_TEXT_ONLY" != "no"])
144 AC_CHECK_LIB([m], [lrint])
145 AM_CONDITIONAL([HAVE_LIBM], [test "$HAVE_LIBM" != "no"])
147 AC_MSG_CHECKING([compiler for gcc])
149 if test "${CC}" != ""; then
150 HAVE_GCC=`${CC} --version 2>&1 | grep GCC`
151 if test "${HAVE_GCC}" != ""; then
157 AC_MSG_RESULT([$HAVE_GCC])
158 AM_CONDITIONAL([HAVE_GCC], [test "$HAVE_GCC" = "yes"])
160 AC_MSG_CHECKING([whether to build with printflike])
161 AC_ARG_ENABLE([printflike],
162 [ --enable-printflike Enable use of GCC __printflike attribute],
163 [HAVE_PRINTFLIKE=yes;
164 AC_DEFINE([HAVE_PRINTFLIKE], [1], [Support printflike])],
165 [HAVE_PRINTFLIKE=no])
166 AC_MSG_RESULT([$HAVE_PRINTFLIKE])
167 AM_CONDITIONAL([HAVE_PRINTFLIKE], [test "$HAVE_PRINTFLIKE" != ""])
169 AC_MSG_CHECKING([whether to build with LIBXO_OPTIONS])
170 AC_ARG_ENABLE([libxo-options],
171 [ --disable-libxo-options Turn off support for LIBXO_OPTIONS],
172 [LIBXO_OPTS=$enableval],
174 AC_MSG_RESULT([$LIBXO_OPTS])
175 AM_CONDITIONAL([NO_LIBXO_OPTIONS], [test "$LIBXO_OPTS" != "yes"])
182 CFLAGS="-D_GNU_SOURCE $CFLAGS"
186 LDFLAGS=-no-undefined
200 XO_INCLUDEDIR=${includedir}
205 AC_SUBST(XO_INCLUDEDIR)
207 AC_ARG_WITH(share-dir,
208 [ --with-share-dir=[DIR] Specify location of shared files],
209 [XO_SHAREDIR=$withval],
210 [XO_SHAREDIR=$datarootdir/libxo]
212 XO_SHAREDIR=`echo $XO_SHAREDIR | sed "s;\\${prefix};$prefix;"`
213 AC_SUBST(XO_SHAREDIR)
215 dnl for the spec file
216 RELDATE=`date +'%Y-%m-%d%n'`
219 AC_MSG_RESULT(Using configure dir $ac_abs_confdir)
221 if test -d $ac_abs_confdir/.git ; then
222 extra=`git branch | awk '/\*/ { print $2 }'`
223 if test "$extra" != "" -a "$extra" != "master"
225 LIBXO_VERSION_EXTRA="-git-$extra"
229 LIBXO_VERSION=$PACKAGE_VERSION
230 LIBXO_VERSION_NUMBER=VERSION_TO_NUMBER(echo $PACKAGE_VERSION)
231 AC_SUBST(LIBXO_VERSION)
232 AC_SUBST(LIBXO_VERSION_NUMBER)
233 AC_SUBST(LIBXO_VERSION_EXTRA)
235 AC_CONFIG_HEADERS([libxo/xoconfig.h])
251 packaging/libxo.rb.base
255 AC_MSG_NOTICE([summary of build options:
257 libxo version: ${VERSION} ${LIBXO_VERSION_EXTRA}
258 host type: ${host} / ${host_os}
259 install prefix: ${prefix}
263 includedir: ${XO_INCLUDEDIR}
264 share dir: ${XO_SHAREDIR}
265 oxtradoc dir: ${SLAX_OXTRADOCDIR}
267 compiler: ${CC} (${HAVE_GCC:-no})
268 compiler flags: ${CFLAGS}
269 library types: Shared=${enable_shared}, Static=${enable_static}
271 warnings: ${LIBXO_WARNINGS:-no}
272 debug: ${LIBXO_DEBUG:-no}
273 printf-like: ${HAVE_PRINTFLIKE:-no}
274 libxo-options: ${LIBXO_OPTS:-no}
275 text-only: ${LIBXO_TEXT_ONLY:-no}