configure.ac revision 4aafaf32676bcf5343f9c9b3650c20251b7ac756
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 114fbfaf950e6299952f9d2add5bb69c617f0bd91a9Lennart PoetteringAC_CONFIG_FILES([libdaemon/Makefile Makefile doc/Makefile doc/README.html doc/doxygen.conf examples/Makefile libdaemon.pc]) 115e774e8ef3467e81ed502e19b1719b4ab384d008Lennart PoetteringAC_OUTPUT 116