blob: 3f2ab05af703807d67ef70a0d5d06511001e3970 [file] [log] [blame]
Lennart Poetteringe774e8e2003-07-31 14:18:41 +00001# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
Lennart Poetteringe774e8e2003-07-31 14:18:41 +00004# This file is part of libdaemon.
5#
Lennart Poettering7892e9b2008-07-28 20:50:57 +02006# Copyright 2003-2008 Lennart Poettering
7#
Lennart Poetteringe774e8e2003-07-31 14:18:41 +00008# libdaemon is free software; you can redistribute it and/or modify it
Lennart Poettering70df7aa2005-11-18 20:39:12 +00009# under the terms of the GNU Lesser General Public License as
Lennart Poettering7892e9b2008-07-28 20:50:57 +020010# published by the Free Software Foundation, either version 2.1 of the
Lennart Poettering70df7aa2005-11-18 20:39:12 +000011# License, or (at your option) any later version.
Lennart Poetteringe774e8e2003-07-31 14:18:41 +000012#
13# libdaemon is distributed in the hope that it will be useful, but
14# WITHOUT ANY WARRANTY; without even the implied warranty of
Lennart Poettering7892e9b2008-07-28 20:50:57 +020015# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lennart Poettering70df7aa2005-11-18 20:39:12 +000016# Lesser General Public License for more details.
Lennart Poetteringe774e8e2003-07-31 14:18:41 +000017#
Lennart Poettering70df7aa2005-11-18 20:39:12 +000018# You should have received a copy of the GNU Lesser General Public
Lennart Poettering7892e9b2008-07-28 20:50:57 +020019# License along with libdaemon. If not, see
20# <http://www.gnu.org/licenses/>.
Lennart Poetteringe774e8e2003-07-31 14:18:41 +000021
Lennart Poettering74229092004-01-11 00:43:42 +000022AC_PREREQ(2.59)
Lennart Poetteringebe00d62008-07-28 20:35:53 +020023
Lennart Poettering4aafaf32008-07-29 00:35:08 +020024AC_INIT([libdaemon],[0.13],[mzqnrzba (at) 0pointer (dot) de])
Lennart Poettering91511db2004-12-18 23:29:50 +000025AC_CONFIG_SRCDIR([libdaemon/dfork.c])
Lennart Poetteringe774e8e2003-07-31 14:18:41 +000026AC_CONFIG_HEADERS([config.h])
Lennart Poetteringebe00d62008-07-28 20:35:53 +020027
Lennart Poettering453fa802005-08-24 22:48:39 +000028AM_INIT_AUTOMAKE([foreign 1.9 -Wall])
Lennart Poetteringe774e8e2003-07-31 14:18:41 +000029
Lennart Poetteringce36dd02003-10-20 21:53:46 +000030AC_SUBST(PACKAGE_URL, [http://0pointer.de/lennart/projects/libdaemon/])
31
Lennart Poettering4aafaf32008-07-29 00:35:08 +020032AC_SUBST(LIBDAEMON_VERSION_INFO, [4:0:4])
Lennart Poetteringebe00d62008-07-28 20:35:53 +020033
Lennart Poetteringce36dd02003-10-20 21:53:46 +000034if type -p stow > /dev/null && test -d /usr/local/stow ; then
Lennart Poetteringf4aa9a82003-12-11 18:56:42 +000035 AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
36 ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
Lennart Poetteringce36dd02003-10-20 21:53:46 +000037fi
Lennart Poetteringe774e8e2003-07-31 14:18:41 +000038
Lennart Poettering8f34edf2004-01-10 18:45:49 +000039# Checks for programs.
40AC_PROG_CC
Lennart Poetteringcfcb1392007-05-23 01:22:36 +000041AC_GNU_SOURCE
Lennart Poettering8f34edf2004-01-10 18:45:49 +000042AC_PROG_CXX
43AC_PROG_MAKE_SET
Lennart Poettering70df7aa2005-11-18 20:39:12 +000044AC_PROG_LIBTOOL
Lennart Poettering8f34edf2004-01-10 18:45:49 +000045
Lennart Poetteringebe00d62008-07-28 20:35:53 +020046test_gcc_flag() {
47 AC_LANG_CONFTEST([int main(int argc, char*argv[]) {}])
48 $CC -c conftest.c $CFLAGS "$1" -o conftest.o > /dev/null 2> /dev/null
49 ret=$?
50 rm -f conftest.o
51 return $ret
52}
53
Lennart Poetteringc73f5e42004-12-18 22:22:54 +000054# If using GCC specify some additional parameters
Lennart Poettering8f34edf2004-01-10 18:45:49 +000055if test "x$GCC" = "xyes" ; then
Lennart Poetteringebe00d62008-07-28 20:35:53 +020056 # We use gnu99 instead of c99 because many have interpreted the standard
57 # in a way that int64_t isn't defined on non-64 bit platforms.
58 DESIRED_FLAGS="-std=gnu99 -Wall -W -Wextra -pedantic -pipe -Wformat -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wpointer-arith -Wcast-align -Wwrite-strings -Winline -Wno-unused-parameter -ffast-math"
Lennart Poetteringc73f5e42004-12-18 22:22:54 +000059
Lennart Poetteringebe00d62008-07-28 20:35:53 +020060 for flag in $DESIRED_FLAGS ; do
61 AC_MSG_CHECKING([whether $CC accepts $flag])
62 if test_gcc_flag $flag ; then
63 CFLAGS="$CFLAGS $flag"
64 CXXFLAGS="$CXXFLAGS $flag"
65 AC_MSG_RESULT([yes])
66 else
67 AC_MSG_RESULT([no])
68 fi
69 done
Lennart Poettering8f34edf2004-01-10 18:45:49 +000070fi
71
Lennart Poetteringe774e8e2003-07-31 14:18:41 +000072# Checks for header files.
73AC_HEADER_STDC
Lennart Poetteringc73f5e42004-12-18 22:22:54 +000074AC_CHECK_HEADERS([fcntl.h limits.h stdlib.h string.h syslog.h unistd.h sys/ioctl.h sys/time.h])
Lennart Poettering8f34edf2004-01-10 18:45:49 +000075AC_HEADER_SYS_WAIT
Lennart Poetteringe774e8e2003-07-31 14:18:41 +000076
77# Checks for typedefs, structures, and compiler characteristics.
78AC_C_CONST
79AC_TYPE_PID_T
80AC_HEADER_TIME
81AC_C_VOLATILE
82
83# Checks for library functions.
84AC_FUNC_FORK
85AC_FUNC_SELECT_ARGTYPES
86AC_FUNC_VPRINTF
Lennart Poettering3ff2f542008-03-26 22:27:20 +000087AC_CHECK_FUNCS([select strerror dup2 memset strrchr asprintf])
Lennart Poetteringe774e8e2003-07-31 14:18:41 +000088AC_TYPE_MODE_T
Lennart Poetteringc73f5e42004-12-18 22:22:54 +000089AC_FUNC_SETPGRP
90AC_TYPE_SIGNAL
91AC_TYPE_SIZE_T
Lennart Poetteringe774e8e2003-07-31 14:18:41 +000092
Lennart Poetteringebe00d62008-07-28 20:35:53 +020093AC_SYS_LARGEFILE
94
Lennart Poetteringe774e8e2003-07-31 14:18:41 +000095# LYNX documentation generation
96AC_ARG_ENABLE(lynx,
Lennart Poettering24fb7e82008-03-26 22:23:57 +000097 AC_HELP_STRING(--disable-lynx,Turn off lynx usage for documentation generation),
Lennart Poetteringe774e8e2003-07-31 14:18:41 +000098[case "${enableval}" in
99 yes) lynx=yes ;;
100 no) lynx=no ;;
101 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lynx) ;;
102esac],[lynx=yes])
103
Lennart Poettering24fb7e82008-03-26 22:23:57 +0000104if test x$lynx = xyes ; then
Lennart Poetteringe774e8e2003-07-31 14:18:41 +0000105 AC_CHECK_PROG(have_lynx, lynx, yes, no)
106
Lennart Poettering24fb7e82008-03-26 22:23:57 +0000107 if test x$have_lynx = xno ; then
108 AC_MSG_WARN([*** lynx not found, plain text README will not be built ***])
Lennart Poetteringe774e8e2003-07-31 14:18:41 +0000109 fi
110fi
111
Lennart Poettering24fb7e82008-03-26 22:23:57 +0000112AM_CONDITIONAL([USE_LYNX], [test "x$lynx" = xyes])
Lennart Poetteringe774e8e2003-07-31 14:18:41 +0000113
Lennart Poetteringfbfaf952008-07-28 20:49:35 +0200114AC_CONFIG_FILES([libdaemon/Makefile Makefile doc/Makefile doc/README.html doc/doxygen.conf examples/Makefile libdaemon.pc])
Lennart Poetteringe774e8e2003-07-31 14:18:41 +0000115AC_OUTPUT