configure.ac revision a301690be6581e23a39813444b2904addcb26ab7
1e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering# -*- Autoconf -*-
2e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering# Process this file with autoconf to produce a configure script.
3e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering
4e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering# This file is part of libdaemon.
5e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering#
67892e9b63584b3bc9965e1d4e7d0188ba6fab8c5Lennart Poettering# Copyright 2003-2008 Lennart Poettering
77892e9b63584b3bc9965e1d4e7d0188ba6fab8c5Lennart Poettering#
8e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering# libdaemon is free software; you can redistribute it and/or modify it
970df7aaa8a9571fa70f0f4f8aa0a363be0ac3cdcLennart Poettering# under the terms of the GNU Lesser General Public License as
107892e9b63584b3bc9965e1d4e7d0188ba6fab8c5Lennart Poettering# published by the Free Software Foundation, either version 2.1 of the
1170df7aaa8a9571fa70f0f4f8aa0a363be0ac3cdcLennart Poettering# License, or (at your option) any later version.
12e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering#
13e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering# libdaemon is distributed in the hope that it will be useful, but
14e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering# WITHOUT ANY WARRANTY; without even the implied warranty of
157892e9b63584b3bc9965e1d4e7d0188ba6fab8c5Lennart Poettering# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1670df7aaa8a9571fa70f0f4f8aa0a363be0ac3cdcLennart Poettering# Lesser General Public License for more details.
17e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering#
1870df7aaa8a9571fa70f0f4f8aa0a363be0ac3cdcLennart Poettering# You should have received a copy of the GNU Lesser General Public
197892e9b63584b3bc9965e1d4e7d0188ba6fab8c5Lennart Poettering# License along with libdaemon. If not, see
207892e9b63584b3bc9965e1d4e7d0188ba6fab8c5Lennart Poettering# <http://www.gnu.org/licenses/>.
21e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering
2274229094319e534c8c3ccef9ec842ae71b75b4b8Lennart PoetteringAC_PREREQ(2.59)
23ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering
244aafaf32676bcf5343f9c9b3650c20251b7ac756Lennart PoetteringAC_INIT([libdaemon],[0.13],[mzqnrzba (at) 0pointer (dot) de])
2591511db7500439088b8b3bb08ce6ee6f8f8e6499Lennart PoetteringAC_CONFIG_SRCDIR([libdaemon/dfork.c])
26e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_CONFIG_HEADERS([config.h])
27ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering
28453fa807d7ffd3f0ce2e419a7ea919329f3149c1Lennart PoetteringAM_INIT_AUTOMAKE([foreign 1.9 -Wall])
29e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering
308f34edf681b6a5d80af6cde9bd0cb72197e88b33Lennart PoetteringAC_SUBST(PACKAGE_URL, [http://0pointer.de/lennart/projects/libdaemon/])
318f34edf681b6a5d80af6cde9bd0cb72197e88b33Lennart Poettering
324aafaf32676bcf5343f9c9b3650c20251b7ac756Lennart PoetteringAC_SUBST(LIBDAEMON_VERSION_INFO, [4:0:4])
33ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering
348f34edf681b6a5d80af6cde9bd0cb72197e88b33Lennart Poetteringif type -p stow > /dev/null && test -d /usr/local/stow ; then
358f34edf681b6a5d80af6cde9bd0cb72197e88b33Lennart Poettering   AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
368f34edf681b6a5d80af6cde9bd0cb72197e88b33Lennart Poettering   ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
378f34edf681b6a5d80af6cde9bd0cb72197e88b33Lennart Poetteringfi
388f34edf681b6a5d80af6cde9bd0cb72197e88b33Lennart Poettering
39e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering# Checks for programs.
40e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_PROG_CC
41cfcb13954cdcaed4d9650b47ce480675f7378562Lennart PoetteringAC_GNU_SOURCE
42e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_PROG_CXX
438f34edf681b6a5d80af6cde9bd0cb72197e88b33Lennart PoetteringAC_PROG_MAKE_SET
4470df7aaa8a9571fa70f0f4f8aa0a363be0ac3cdcLennart PoetteringAC_PROG_LIBTOOL
45e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering
46ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poetteringtest_gcc_flag() {
47ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering    AC_LANG_CONFTEST([int main(int argc, char*argv[]) {}])
48ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering    $CC -c conftest.c $CFLAGS "$1" -o conftest.o > /dev/null 2> /dev/null
49ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering    ret=$?
50ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering    rm -f conftest.o
51ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering    return $ret
52ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering}
53ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering
54c73f5e4e6922363cc7cbf4f39f236e310845f9b9Lennart Poettering# If using GCC specify some additional parameters
55e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poetteringif test "x$GCC" = "xyes" ; then
56ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering    # We use gnu99 instead of c99 because many have interpreted the standard
57ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering    # in a way that int64_t isn't defined on non-64 bit platforms.
58ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering    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"
59ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering
60ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering    for flag in $DESIRED_FLAGS ; do
61ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering        AC_MSG_CHECKING([whether $CC accepts $flag])
62ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering        if test_gcc_flag $flag ; then
63ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering           CFLAGS="$CFLAGS $flag"
64ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering           CXXFLAGS="$CXXFLAGS $flag"
65ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering           AC_MSG_RESULT([yes])
66ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering        else
67ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering           AC_MSG_RESULT([no])
68ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering        fi
69ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering    done
70e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poetteringfi
71e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering
72e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering# Checks for header files.
73e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_HEADER_STDC
74c73f5e4e6922363cc7cbf4f39f236e310845f9b9Lennart PoetteringAC_CHECK_HEADERS([fcntl.h limits.h stdlib.h string.h syslog.h unistd.h sys/ioctl.h sys/time.h])
758f34edf681b6a5d80af6cde9bd0cb72197e88b33Lennart PoetteringAC_HEADER_SYS_WAIT
76e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering
77e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering# Checks for typedefs, structures, and compiler characteristics.
78e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_C_CONST
79e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_TYPE_PID_T
80e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_HEADER_TIME
81e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_C_VOLATILE
82e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering
83e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering# Checks for library functions.
84e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_FUNC_FORK
85e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_FUNC_SELECT_ARGTYPES
86e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_FUNC_VPRINTF
873ff2f54d8ecaa1cacfbfddc61daeda1bcee8dfecLennart PoetteringAC_CHECK_FUNCS([select strerror dup2 memset strrchr asprintf])
88e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_TYPE_MODE_T
89c73f5e4e6922363cc7cbf4f39f236e310845f9b9Lennart PoetteringAC_FUNC_SETPGRP
90c73f5e4e6922363cc7cbf4f39f236e310845f9b9Lennart PoetteringAC_TYPE_SIGNAL
91c73f5e4e6922363cc7cbf4f39f236e310845f9b9Lennart PoetteringAC_TYPE_SIZE_T
92e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering
93ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart PoetteringAC_SYS_LARGEFILE
94ebe00d640b9f57411d41fea038bf6b9fc55795d0Lennart Poettering
95e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering# LYNX documentation generation
96e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_ARG_ENABLE(lynx,
9724fb7e886251e5e836f1a54463ba9e5bab792be7Lennart Poettering        AC_HELP_STRING(--disable-lynx,Turn off lynx usage for documentation generation),
98e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering[case "${enableval}" in
99e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering  yes) lynx=yes ;;
100e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering  no)  lynx=no ;;
101e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering  *) AC_MSG_ERROR(bad value ${enableval} for --disable-lynx) ;;
102e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poetteringesac],[lynx=yes])
103e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering
10424fb7e886251e5e836f1a54463ba9e5bab792be7Lennart Poetteringif test x$lynx = xyes ; then
105e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering   AC_CHECK_PROG(have_lynx, lynx, yes, no)
106e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering
10724fb7e886251e5e836f1a54463ba9e5bab792be7Lennart Poettering   if test x$have_lynx = xno ; then
10824fb7e886251e5e836f1a54463ba9e5bab792be7Lennart Poettering     AC_MSG_WARN([*** lynx not found, plain text README will not be built ***])
109e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering   fi
110e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poetteringfi
111e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering
11224fb7e886251e5e836f1a54463ba9e5bab792be7Lennart PoetteringAM_CONDITIONAL([USE_LYNX], [test "x$lynx" = xyes])
113e774e8ef3467e81ed502e19b1719b4ab384d008Lennart Poettering
114a301690be6581e23a39813444b2904addcb26ab7Lennart PoetteringAC_ARG_ENABLE(examples,
115a301690be6581e23a39813444b2904addcb26ab7Lennart Poettering       AS_HELP_STRING([--disable-examples], [Don't build examples during make]),,
116a301690be6581e23a39813444b2904addcb26ab7Lennart Poettering       enable_examples="yes")
117a301690be6581e23a39813444b2904addcb26ab7Lennart PoetteringAM_CONDITIONAL(EXAMPLES, [test "$enable_examples" = "yes"])
118a301690be6581e23a39813444b2904addcb26ab7Lennart Poettering
119fbfaf950e6299952f9d2add5bb69c617f0bd91a9Lennart PoetteringAC_CONFIG_FILES([libdaemon/Makefile Makefile doc/Makefile doc/README.html doc/doxygen.conf examples/Makefile libdaemon.pc])
120e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_OUTPUT
121