1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
dnl Process this file with autoconf to produce a configure script
AC_INIT(psutils, 1.23, rrt@sc3d.org)
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
dnl Check for programs
AC_PROG_CC
gl_EARLY
AC_PROG_LN_S
AM_PROG_AR
AC_USE_SYSTEM_EXTENSIONS
AC_ARG_ENABLE([gcc-warnings],
[AS_HELP_STRING([--enable-gcc-warnings],
[turn on lots of GCC warnings (for developers)])],
[case $enableval in
yes|no) ;;
*) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;;
esac
gl_gcc_warnings=$enableval],
[gl_gcc_warnings=no]
)
if test "$gl_gcc_warnings" = yes; then
gl_WARN_ADD([-Werror], [WERROR_CFLAGS])
# Set up the list of undesired warnings.
nw=
nw="$nw -Wundef" # All compiler preprocessors support #if UNDEF
nw="$nw -Wtraditional" # All compilers nowadays support ANSI C
nw="$nw -Wstrict-overflow" # Use a lower level (see below).
nw="$nw -Wconversion" # These warnings usually don’t point to mistakes.
nw="$nw -Wsign-conversion" # Likewise.
nw="$nw -Wtraditional-conversion" # Don't care.
nw="$nw -Wpadded" # Don't care.
nw="$nw -Wc++-compat" # Don't care.
nw="$nw -Woverlength-strings" # Don't care.
nw="$nw -Wmissing-format-attribute" # Don't care.
nw="$nw -Wshadow" # Don't care.
nw="$nw -Wunreachable-code" # Seems buggy.
nw="$nw -Wsystem-headers" # glibc headers fail as of glibc 2.17, gcc 4.8
nw="$nw -Wsuggest-attribute=format" # glibc headers fail as of glibc 2.17, gcc 4.8
nw="$nw -Wall"
nw="$nw -Wunused-macros" # those macros might come in handy later
gl_MANYWARN_ALL_GCC([warnings])
# Enable all GCC warnings not in this list.
gl_MANYWARN_COMPLEMENT([warnings], [$warnings], [$nw])
for w in $warnings; do
gl_WARN_ADD([$w])
done
# Add an extra warning
gl_WARN_ADD([-Wstrict-overflow=1])
# Add some more safety measures
gl_WARN_ADD([-D_FORTIFY_SOURCE=2])
gl_WARN_ADD([-fmudflap])
# When compiling with GCC, prefer -isystem to -I when including system
# include files, to avoid generating useless diagnostics for the files.
ISYSTEM='-isystem '
else
ISYSTEM='-I'
fi
AC_SUBST([ISYSTEM])
gl_INIT
dnl Check for header files
AC_HEADER_STDC
dnl Check for programs
dnl Don't use AX_WITH_PROG, as we want by default to be relocatable,
dnl hence not use a full path
AC_ARG_VAR([PAPER], [Absolute path to paper executable])
if test -z "$PAPER"; then
PAPER=paper
fi
dnl Generate output files
AC_CONFIG_MACRO_DIR(m4)
AC_CONFIG_HEADER(config.h)
AC_CONFIG_FILES(Makefile lib/Makefile)
AC_OUTPUT
|