#
# configure.in
#
# 	This library is free software; you can redistribute it and/or
#	modify it under the terms of the GNU Lesser General Public
#	License as published by the Free Software Foundation version 2.1
#	of the License.
#
# Copyright (c) 2003-2010 Thomas Graf <tgraf@suug.ch>
#

AC_INIT(libnl, 2.0, tgraf@suug.ch)
AC_CONFIG_HEADERS([lib/defs.h])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([-Wall foreign subdir-objects])

AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_INSTALL
AM_PROG_LIBTOOL
AM_PROG_LEX
AC_PROG_YACC

AC_C_CONST
AC_C_INLINE

AC_ARG_WITH([pkgconfigdir], AS_HELP_STRING([--with-pkgconfigdir=PATH],
	[Path to the pkgconfig directory [[LIBDIR/pkgconfig]]]),
	[pkgconfigdir="$withval"], [pkgconfigdir='${libdir}/pkgconfig'])
AC_SUBST([pkgconfigdir])

AC_ARG_ENABLE([cli],
	AS_HELP_STRING([--disable-cli], [Do not build command line interface utils]),
	[enable_cli="$enableval"], [enable_cli="yes"])
AM_CONDITIONAL([ENABLE_CLI], [test "$enable_cli" = "yes"])

AC_CHECK_LIB([m], [pow], [], AC_MSG_ERROR([libm is required]))

AC_CONFIG_FILES([Makefile doc/Doxyfile doc/Makefile lib/Makefile
	include/Makefile src/Makefile src/lib/Makefile \
	libnl-2.0.pc include/netlink/version.h])
AC_OUTPUT
