settings: Some code refactoring
[people/ms/network.git] / configure.ac
1 ###############################################################################
2 #                                                                             #
3 # Pakfire - The IPFire package management system                              #
4 # Copyright (C) 2013 IPFire Network Development Team                          #
5 #                                                                             #
6 # This program is free software: you can redistribute it and/or modify        #
7 # it under the terms of the GNU General Public License as published by        #
8 # the Free Software Foundation, either version 3 of the License, or           #
9 # (at your option) any later version.                                         #
10 #                                                                             #
11 # This program is distributed in the hope that it will be useful,             #
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of              #
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
14 # GNU General Public License for more details.                                #
15 #                                                                             #
16 # You should have received a copy of the GNU General Public License           #
17 # along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
18 #                                                                             #
19 ###############################################################################
20
21 AC_PREREQ([2.64])
22
23 AC_INIT([network],
24         [011],
25         [info@ipfire.org],
26         [network],
27         [http://www.ipfire.org/])
28
29 AC_CONFIG_AUX_DIR([build-aux])
30
31 AC_PREFIX_DEFAULT([/usr])
32
33 AM_INIT_AUTOMAKE([
34         foreign
35         1.11
36         -Wall
37         -Wno-portability
38         silent-rules
39         tar-pax
40         subdir-objects
41 ])
42 AM_SILENT_RULES([yes])
43
44 LT_INIT([
45         disable-static
46         pic-only
47 ])
48
49 AC_PROG_LN_S
50 AC_PROG_MKDIR_P
51 AC_PROG_SED
52
53 AC_PATH_PROG([NITSI], [nitsi])
54 AC_PATH_PROG([WGET], [wget])
55 AC_PATH_PROG([XSLTPROC], [xsltproc])
56
57 # pkg-config
58 PKG_PROG_PKG_CONFIG
59 # This makes sure pkg.m4 is available.
60 m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
61
62 # C Compiler
63 AC_PROG_CC
64 AC_PROG_CC_C99
65 AC_PROG_CC_C_O
66 AC_PROG_GCC_TRADITIONAL
67
68 CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
69         -pipe \
70         -Wall \
71         -Wextra \
72         -Wno-inline \
73         -Wundef \
74         "-Wformat=2 -Wformat-security -Wformat-nonliteral" \
75         -Wno-unused-parameter \
76         -Wno-unused-result \
77         -fno-strict-aliasing \
78         -ffunction-sections \
79         -fdata-sections \
80         -fstack-protector-all \
81         --param=ssp-buffer-size=4])
82 AC_SUBST([OUR_CFLAGS], $with_cflags)
83
84 AS_CASE([$CFLAGS], [*-O[[12345g\ ]]*],
85         [CC_CHECK_FLAGS_APPEND([with_cppflags], [CPPFLAGS], [\
86                 -Wp,-D_FORTIFY_SOURCE=2])],
87         [AC_MSG_RESULT([skipping -D_FORTIFY_SOURCE, optimization not enabled])])
88 AC_SUBST([OUR_CPPFLAGS], $with_cppflags)
89
90 CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
91         -Wl,--as-needed \
92         -Wl,--no-undefined \
93         -Wl,--gc-sections \
94         -Wl,-z,relro \
95         -Wl,-z,now])
96 AC_SUBST([OUR_LDFLAGS], $with_ldflags)
97
98 # ------------------------------------------------------------------------------
99
100 AC_CHECK_HEADERS_ONCE([
101         ctype.h
102         errno.h
103         linux/netlink.h
104         net/if.h
105         stdarg.h
106         stdio.h
107         stdlib.h
108         string.h
109         syslog.h
110 ])
111
112 AC_CHECK_FUNCS([ \
113         __secure_getenv \
114         secure_getenv \
115 ])
116
117 # ------------------------------------------------------------------------------
118
119 AC_ARG_ENABLE([debug],
120         AS_HELP_STRING([--enable-debug], [enable debug messages @<:@default=disabled@:>@]),
121         [], [enable_debug=no])
122 AS_IF([test "x$enable_debug" = "xyes"], [
123         AC_DEFINE(ENABLE_DEBUG, [1], [Debug messages.])
124 ])
125
126 # ------------------------------------------------------------------------------
127 AC_ARG_WITH([systemdsystemunitdir],
128         AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
129         [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
130 AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
131 AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir"])
132
133 # ------------------------------------------------------------------------------
134 AC_ARG_WITH([udevdir],
135         AS_HELP_STRING([--with-udevdir=DIR], [Directory for udev files]),
136         [], [with_udevdir=$($PKG_CONFIG --variable=udevdir udev)])
137 AC_SUBST([udevdir], [$with_udevdir])
138 AM_CONDITIONAL(HAVE_UDEV, [test -n "$with_udevdir"])
139
140 # ------------------------------------------------------------------------------
141
142 PKG_CHECK_MODULES([LIBNL], [libnl-3.0 libnl-genl-3.0])
143
144 # ------------------------------------------------------------------------------
145
146 AC_CONFIG_HEADERS(config.h)
147 AC_CONFIG_FILES([
148         Makefile
149 ])
150
151 AC_OUTPUT
152 AC_MSG_RESULT([
153         $PACKAGE_NAME $VERSION
154
155         CFLAGS:               ${OUR_CFLAGS} ${CFLAGS}
156         CPPFLAGS:             ${OUR_CPPFLAGS} ${CPPFLAGS}
157         LDFLAGS:              ${OUR_LDFLAGS} ${LDFLAGS}
158
159         prefix:               $prefix
160
161         systemdsystemunitdir: $systemdsystemunitdir
162         udevdir:              $udevdir
163 ])