# Checks for programs.
AC_PROG_MAKE_SET
LT_INIT(win32-dll)
-AC_PROG_YACC
-AC_PROG_LEX
AC_PROG_MKDIR_P
AC_PROG_LN_S
sys/socket.h \
])
-if test ! -f "$srcdir/plugins/ctf/common/metadata/parser.h"; then
- if test x"$(basename "$YACC")" != "xbison -y"; then
- AC_MSG_ERROR([[bison not found and is required when building from git.
- Please install bison]])
- fi
- AC_PATH_PROG([BISON],[bison])
- AX_PROG_BISON_VERSION([2.4], [],[
- AC_MSG_ERROR([[Bison >= 2.4 is required when building from git]])
- ])
-fi
+# set $IN_GIT_REPO if we're in the Git repository; the `bootstrap` file
+# is not distributed in tarballs
+AS_IF([test -f "$srcdir/bootstrap"], [in_git_repo=yes], [in_git_repo=no])
+AM_CONDITIONAL([IN_GIT_REPO], [test "x$in_git_repo" = "xyes"])
-if test ! -f "$srcdir/plugins/ctf/common/metadata/lexer.c"; then
- if test x"$LEX" != "xflex"; then
- AC_MSG_ERROR([[flex not found and is required when building from git.
- Please install flex]])
- fi
- AC_PATH_PROG([FLEX],[flex])
- AX_PROG_FLEX_VERSION([2.5.35], [],[
- AC_MSG_ERROR([[Flex >= 2.5.35 is required when building from git]])
- ])
-fi
+# check for bison
+AC_PROG_YACC
+AX_PROG_BISON_VERSION([2.4], [have_bison=yes])
+
+AS_IF([test "x$have_bison" != "xyes"], [
+ AS_IF([test "x$in_git_repo" = "xyes"], [
+ AC_MSG_FAILURE([
+Bison >= 2.4 is required when building from the Git repository. You can
+set the YACC variable to override automatic detection.
+ ])
+ ], [
+ AC_MSG_WARN([
+Missing Bison >= 2.4. Note that the parser files are already built in
+this distribution tarball, so Bison is only needed if you intend to
+modify their sources. You can set the YACC variable to override automatic
+detection.
+ ])
+ ])
+])
+AM_CONDITIONAL([HAVE_BISON], [test "x$have_bison" = "xyes"])
+
+# check for flex
+AC_PROG_LEX
+AX_PROG_FLEX_VERSION([2.5.35], [have_flex=yes])
+
+AS_IF([test "x$have_flex" != "xyes"], [
+ AS_IF([test "x$in_git_repo" = "xyes"], [
+ AC_MSG_FAILURE([
+Flex >= 2.5.35 is required when building from the Git repository. You can
+set the LEX variable to override automatic detection.
+ ])
+ ], [
+ AC_MSG_WARN([
+Missing Flex >= 2.5.35. Note that the lexer files are already built in
+this distribution tarball, so Flex is only needed if you intend to
+modify their sources. You can set the LEX variable to override automatic
+detection.
+ ])
+ ])
+])
+AM_CONDITIONAL([HAVE_FLEX], [test "x$have_flex" = "xyes"])
AM_PATH_GLIB_2_0(2.22.0, ,AC_MSG_ERROR([glib is required in order to compile BabelTrace - download it from ftp://ftp.gtk.org/pub/gtk]) , gmodule-no-export)
AM_CONDITIONAL([BABELTRACE_BUILD_WITH_MINGW], [test "x$MINGW32" = "xyes"])
AC_SUBST(LT_NO_UNDEFINED)
-# Check for uuid in system libs
+# First, check for uuid in system libs
+AH_TEMPLATE([BABELTRACE_HAVE_LIBUUID], [Define if you have libuuid support])
AC_CHECK_FUNCS([uuid_generate],
-[
- AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBUUID], 1, [Has libuuid support.])
- link_with_libuuid=no
-],
-[
- # First, check the pkg-config module is available, otherwise explicitly check
- # for libuuid, or uuid support in the C-library.
- PKG_CHECK_MODULES([UUID], [uuid],
[
- AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBUUID], 1, [Has libuuid support.])
- link_with_libuuid=yes
+ AC_DEFINE([BABELTRACE_HAVE_LIBUUID], [1])
+ UUID_LIBS=""
],
[
- # Check for libuuid
- AC_CHECK_LIB([uuid], [uuid_generate],
- [
- AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBUUID], 1, [Has libuuid support.])
- link_with_libuuid=yes
- ],
- [
- # libuuid not found, check for uuid_create in libc.
- AC_CHECK_LIB([c], [uuid_create],
+ # Then, check if the pkg-config module is available, otherwise explicitly check
+ # for libuuid, or uuid support in the C-library.
+ PKG_CHECK_MODULES([UUID], [uuid],
[
- AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBC_UUID], 1, [Has libc uuid support.])
- link_with_libc_uuid=yes
+ AC_DEFINE([BABELTRACE_HAVE_LIBUUID], [1])
+ dnl PKG_CHECK_MODULES defines UUID_LIBS
],
[
- # for MinGW32 we have our own internal implementation of uuid using Windows functions.
- if test "x$MINGW32" = xno; then
- AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Use [LDFLAGS]=-Ldir to specify their location.])
- fi
- ])
- ])
- ])
-])
-
-AM_CONDITIONAL([BABELTRACE_BUILD_WITH_LIBUUID], [test "x$link_with_libuuid" = "xyes"])
-AM_CONDITIONAL([BABELTRACE_BUILD_WITH_LIBC_UUID], [test "x$link_with_libc_uuid" = "xyes"])
+ AC_MSG_WARN([pkg-config was unable to find a valid .pc for libuuid. Set PKG_CONFIG_PATH to specify the pkgconfig configuration file location])
+ AC_MSG_WARN([Finding libuuid without pkg-config.])
+ AC_CHECK_LIB([uuid], [uuid_generate],
+ [
+ AC_DEFINE([BABELTRACE_HAVE_LIBUUID], [1])
+ UUID_LIBS="-luuid"
+ ],
+ [
+ # libuuid not found, check for uuid_create in libc.
+ AC_CHECK_LIB([c], [uuid_create],
+ [
+ AC_DEFINE([BABELTRACE_HAVE_LIBUUID], [1])
+ UUID_LIBS="-lc"
+ ],
+ [
+ # for MinGW32 we have our own internal implementation of uuid using Windows functions.
+ if test "x$MINGW32" = xno; then
+ AC_MSG_FAILURE([Cannot find libuuid uuid_generate nor libc uuid_create. Either set PKG_CONFIG_PATH to the configuration file location or use LDFLAGS=-Ldir to specify the library location])
+ fi
+ ]
+ )
+ ]
+ )
+ ]
+ )
+ ]
+)
+AC_SUBST(UUID_LIBS)
# Check for fmemopen
AC_CHECK_LIB([c], [fmemopen],
]
)
-AC_CHECK_LIB([popt], [poptGetContext], [],
- [AC_MSG_ERROR([Cannot find popt.])]
+# Check libpopt
+PKG_CHECK_MODULES([POPT], [popt],
+ [
+ dnl PKG_CHECK_MODULES defines POPT_LIBS
+ ],
+ [
+ AC_MSG_WARN([pkg-config was unable to find a valid .pc for libpopt. Set PKG_CONFIG_PATH to specify the pkgconfig configuration file location])
+ AC_MSG_WARN([Finding libpopt without pkg-config.])
+ AC_CHECK_LIB([popt],
+ [poptGetContext],
+ [POPT_LIBS="-lpopt"],
+ [
+ AC_MSG_FAILURE([Cannot find libpopt. Either set PKG_CONFIG_PATH to the configuration file location or use LDFLAGS=-Ldir to specify the library location])
+ ]
+ )
+ ]
)
+AC_SUBST(POPT_LIBS)
# Plugins
AC_ARG_VAR([PLUGINSDIR], [built-in plugins install directory [LIBDIR/babeltrace/plugins]])