X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=configure.ac;h=4dba234be16cb30df7c5f9df39a6e0f2356194a4;hb=22b48064409c870d7dc9253f22bd74b1767afe9d;hp=d3f05aa19de3257758a82d1e5d2a76f497069da9;hpb=379e19a21ba6937215bcd3eb9db8d5d54c286eae;p=template.git diff --git a/configure.ac b/configure.ac index d3f05aa..4dba234 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,52 @@ dnl Process this file with autoconf to produce a configure script. - -AC_INIT([foobar],[m4_esyscmd(./version-gen.sh)], - [Sebastian Harl ]) +dnl +dnl This is the foobar configure script. +dnl +dnl Copyright (C) 2012 Sebastian 'tokkee' Harl +dnl +dnl This program is free software; you can redistribute it and/or modify it +dnl under the terms of the GNU General Public License as published by the +dnl Free Software Foundation; only version 2 of the License is applicable. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License along +dnl with this program; if not, write to the Free Software Foundation, Inc., +dnl 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +dnl OR: +dnl All rights reserved. +dnl +dnl Redistribution and use in source and binary forms, with or without +dnl modification, are permitted provided that the following conditions +dnl are met: +dnl 1. Redistributions of source code must retain the above copyright +dnl notice, this list of conditions and the following disclaimer. +dnl 2. Redistributions in binary form must reproduce the above copyright +dnl notice, this list of conditions and the following disclaimer in the +dnl documentation and/or other materials provided with the distribution. +dnl +dnl THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +dnl ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +dnl TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +dnl PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR +dnl CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +dnl EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +dnl PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +dnl OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +dnl WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +dnl ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +AC_INIT([foobar full name],[m4_esyscmd(./version-gen.sh)], + [sh@tokkee.org], + [foobar], + [http://git.tokkee.org/?p=template.git]) +PACKAGE_MAINTAINER="Sebastian 'tokkee' Harl " +AC_DEFINE_UNQUOTED([PACKAGE_MAINTAINER], ["$PACKAGE_MAINTAINER"], + [Define to the name of the maintainer of this package.]) AC_CONFIG_SRCDIR([src/foobar.c]) AC_CONFIG_HEADERS([src/config.h]) AC_PREFIX_DEFAULT([/opt/foobar]) @@ -20,20 +65,32 @@ AC_PROG_MAKE_SET AM_PROG_CC_C_O -AC_PROG_LIBTOOL +m4_ifdef([LT_INIT], + [ + LT_INIT + ], + # else + # (older libtools) + [ + AC_PROG_LIBTOOL + ] +) test_cc_flags() { - AC_LANG_CONFTEST([int main() {}]) + AC_LANG_CONFTEST([AC_LANG_PROGRAM([[ ]], [[ ]])]) $CC -c conftest.c $CFLAGS $@ > /dev/null 2> /dev/null ret=$? rm -f conftest.o return $ret } -dnl Optionally stick to standard C99 and POSIX.1 2001 as close as possible. +m4_divert_once([HELP_ENABLE], [ +Build options:]) + +dnl Optionally stick to standard C99 and POSIX:2001 as close as possible. AC_ARG_ENABLE([standards], AS_HELP_STRING([--enable-standards], - [Enable standards compliance mode]), + [C99 / POSIX standards compliance mode @<:@default=no@:>@]), [enable_standards="$enableval"], [enable_standards="no"]) @@ -66,7 +123,7 @@ AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to enable protection against static sized buffer overflows.]) AC_ARG_ENABLE([hardening], AS_HELP_STRING([--disable-hardening], - [Disable hardening options]), + [hardening options @<:@default=yes@:>@]), [enable_hardening="$enableval"], [enable_hardening="yes"]) @@ -91,7 +148,15 @@ if test "x$enable_hardening" = "xyes"; then fi fi -for flag in -Wall -Wextra -Werror; do +dnl Strict checking for potential problems. +AC_ARG_ENABLE([strict-checks], + AS_HELP_STRING([--disable-strict-checks], + [strict compiler checks @<:@default=yes@:>@]), + [enable_strict_checks="$enableval"], + [enable_strict_checks="yes"]) + +STRICT_CFLAGS="" +for flag in -Wall -Werror; do AC_MSG_CHECKING([whether $CC accepts $flag]) if test_cc_flags $flag; then @@ -101,30 +166,77 @@ for flag in -Wall -Wextra -Werror; do AC_MSG_RESULT([no]) fi done -AC_SUBST([STRICT_CFLAGS]) - -build_date="`date --utc '+%F %T'` (UTC)" -AC_DEFINE_UNQUOTED([BUILD_DATE], ["$build_date"], - [Define to the date the package has been built on.]) -AC_CHECK_HEADERS(libgen.h) +if test "x$enable_strict_checks" = "xyes"; then + for flag in -Wextra \ + -Wbad-function-cast \ + -Wcast-align \ + -Wcast-qual \ + -Wconversion \ + -Wdeclaration-after-statement \ + -Wmissing-prototypes \ + -Wpointer-arith \ + -Wshadow \ + -Wstrict-prototypes \ + -Wunreachable-code; do + AC_MSG_CHECKING([whether $CC accepts $flag]) -AC_CONFIG_FILES([Makefile src/Makefile]) -AC_OUTPUT + if test_cc_flags $flag; then + STRICT_CFLAGS="$STRICT_CFLAGS $flag" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + done +fi +AC_SUBST([STRICT_CFLAGS]) -cat <