blob: 523c21eae70a35b241c2b000e23f3fa175964da5 [file] [log] [blame]
#
# Copyright (C) 2017-2018 Bartosz Golaszewski <bartekgola@gmail.com>
#
# This program 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; either version 2.1 of the License, or (at
# your option) any later version.
#
AC_PREREQ(2.61)
AC_INIT([libgpiod], 1.0.2)
AC_SUBST(EXTRA_VERSION, [])
AC_DEFINE_UNQUOTED([GPIOD_VERSION_STR],
["$PACKAGE_VERSION$EXTRA_VERSION"],
[Full library version string.])
AC_SUBST(VERSION_STR, [$PACKAGE_VERSION$EXTRA_VERSION])
AC_CONFIG_AUX_DIR([autostuff])
AC_CONFIG_MACRO_DIRS([m4])
AM_INIT_AUTOMAKE([foreign subdir-objects])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_CONFIG_SRCDIR([src])
AC_CONFIG_HEADER([config.h])
AC_DEFINE([_GNU_SOURCE], [], [We want GNU extensions])
# Silence warning: ar: 'u' modifier ignored since 'D' is the default
AC_SUBST(AR_FLAGS, [cr])
AM_PROG_AR
AC_PROG_CC
AC_PROG_LIBTOOL
AC_PROG_INSTALL
AC_DEFUN([ERR_NOT_FOUND],
[AC_MSG_ERROR([$1 not found (needed to build $2)], [1])])
AC_DEFUN([FUNC_NOT_FOUND_LIB],
[ERR_NOT_FOUND([$1()], [the library])])
AC_DEFUN([HEADER_NOT_FOUND_LIB],
[ERR_NOT_FOUND([$1 header], [the library])])
# This is always checked (library needs this)
AC_HEADER_STDC
AC_FUNC_MALLOC
AC_CHECK_FUNC([ioctl], [], [FUNC_NOT_FOUND_LIB([ioctl])])
AC_CHECK_FUNC([asprintf], [], [FUNC_NOT_FOUND_LIB([asprintf])])
AC_CHECK_FUNC([scandir], [], [FUNC_NOT_FOUND_LIB([scandir])])
AC_CHECK_FUNC([alphasort], [], [FUNC_NOT_FOUND_LIB([alphasort])])
AC_CHECK_FUNC([ppoll], [], [FUNC_NOT_FOUND_LIB([ppoll])])
AC_CHECK_HEADERS([getopt.h], [], [HEADER_NOT_FOUND_LIB([getopt.h])])
AC_CHECK_HEADERS([dirent.h], [], [HEADER_NOT_FOUND_LIB([dirent.h])])
AC_CHECK_HEADERS([sys/poll.h], [], [HEADER_NOT_FOUND_LIB([sys/poll.h])])
AC_CHECK_HEADERS([linux/gpio.h], [], [HEADER_NOT_FOUND_LIB([linux/gpio.h])])
AC_ARG_ENABLE([tools],
[AC_HELP_STRING([--enable-tools],
[enable libgpiod command-line tools [default=no]])],
[
if test "x$enableval" = xyes
then
with_tools=true
else
with_tools=false
fi
],
[with_tools=false])
AM_CONDITIONAL([WITH_TOOLS], [test "x$with_tools" = xtrue])
AC_DEFUN([FUNC_NOT_FOUND_TOOLS],
[ERR_NOT_FOUND([$1()], [tools])])
AC_DEFUN([HEADER_NOT_FOUND_TOOLS],
[ERR_NOT_FOUND([$1 header], [tools])])
if test "x$with_tools" = xtrue
then
# These are only needed to build tools
AC_CHECK_FUNC([basename], [], [FUNC_NOT_FOUND_TOOLS([basename])])
AC_CHECK_FUNC([daemon], [], [FUNC_NOT_FOUND_TOOLS([daemon])])
AC_CHECK_FUNC([signalfd], [], [FUNC_NOT_FOUND_TOOLS([signalfd])])
AC_CHECK_HEADERS([sys/signalfd.h], [], [HEADER_NOT_FOUND_TOOLS([sys/signalfd.h])])
fi
AC_ARG_ENABLE([tests],
[AC_HELP_STRING([--enable-tests],
[enable libgpiod tests [default=no]])],
[
if test "x$enableval" = xyes
then
with_tests=true
else
with_tests=false
fi
],
[with_tests=false])
AM_CONDITIONAL([WITH_TESTS], [test "x$with_tests" = xtrue])
AC_DEFUN([FUNC_NOT_FOUND_TESTS],
[ERR_NOT_FOUND([$1()], [tests])])
if test "x$with_tests" = xtrue
then
AC_CHECK_FUNC([qsort], [], [FUNC_NOT_FOUND_TESTS([qsort])])
AC_CHECK_FUNC([regexec], [], [FUNC_NOT_FOUND_TESTS([regexec])])
PKG_CHECK_MODULES([KMOD], [libkmod >= 18])
PKG_CHECK_MODULES([UDEV], [libudev >= 215])
fi
AC_CHECK_PROG([has_doxygen], [doxygen], [true], [false])
AM_CONDITIONAL([HAS_DOXYGEN], [test "x$has_doxygen" = xtrue])
if test "x$has_doxygen" = xfalse
then
AC_MSG_NOTICE([doxygen not found - documentation cannot be generated])
fi
AC_CONFIG_FILES([libgpiod.pc
Makefile
include/Makefile
src/Makefile
src/lib/Makefile
src/tools/Makefile
tests/Makefile])
AC_OUTPUT