]> git.proxmox.com Git - mirror_kronosnet.git/blame - configure.ac
Build test tools automatically
[mirror_kronosnet.git] / configure.ac
CommitLineData
99afbd6e
FDN
1# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
4AC_PREREQ([2.63])
c8ed20e0 5AC_INIT([kronosnetd], [0.1], [fabbione@kronosnet.org])
99afbd6e
FDN
6AM_INIT_AUTOMAKE([-Wno-portability])
7LT_PREREQ([2.2.6])
8LT_INIT
9
10AC_CONFIG_MACRO_DIR([m4])
11AC_CONFIG_SRCDIR([main.c])
12AC_CONFIG_HEADERS([config.h])
13
14AC_CANONICAL_HOST
15AC_PROG_LIBTOOL
16
17AC_LANG([C])
18
19if test "$prefix" = "NONE"; then
20 prefix="/usr"
21 if test "$localstatedir" = "\${prefix}/var"; then
22 localstatedir="/var"
23 fi
24 if test "$sysconfdir" = "\${prefix}/etc"; then
25 sysconfdir="/etc"
26 fi
27fi
28
29# Checks for programs.
30if ! ${MAKE-make} --version /cannot/make/this >/dev/null 2>&1; then
31 AC_MSG_ERROR([you don't seem to have GNU make; it is required])
32fi
33AC_PROG_CC
34AM_PROG_CC_C_O
35AC_PROG_LN_S
36AC_PROG_INSTALL
37AC_PROG_MAKE_SET
38AC_PROG_CXX
39AC_PROG_RANLIB
b8bf8c7f 40AC_CHECK_PROGS([PUBLICAN], [publican], [:])
99afbd6e
FDN
41AC_CHECK_PROGS([PKGCONFIG], [pkg-config])
42
43## local helper functions
44# this function checks if CC support options passed as
45# args. Global CFLAGS are ignored during this test.
46cc_supports_flag() {
47 local CFLAGS="$@"
48 AC_MSG_CHECKING([whether $CC supports "$@"])
49 AC_COMPILE_IFELSE([int main(){return 0;}] ,
50 [RC=0; AC_MSG_RESULT([yes])],
51 [RC=1; AC_MSG_RESULT([no])])
52 return $RC
53}
54
55# helper macro to check libs without adding them to LIBS
56check_lib_no_libs() {
57 lib_no_libs_arg1=$1
58 shift
59 lib_no_libs_arg2=$1
60 shift
61 lib_no_libs_args=$@
62 AC_CHECK_LIB([$lib_no_libs_arg1],
63 [$lib_no_libs_arg2],,,
64 [$lib_no_libs_args])
65 LIBS=$ac_check_lib_save_LIBS
66}
67
68# Checks for libraries.
99afbd6e
FDN
69
70# Checks for header files.
bba2a8d7
FDN
71AC_CHECK_HEADERS([fcntl.h])
72AC_CHECK_HEADERS([stdlib.h])
73AC_CHECK_HEADERS([string.h])
74AC_CHECK_HEADERS([sys/ioctl.h])
75AC_CHECK_HEADERS([syslog.h])
76AC_CHECK_HEADERS([unistd.h])
6d727d3c
FDN
77AC_CHECK_HEADERS([netinet/in.h])
78AC_CHECK_HEADERS([sys/socket.h])
99afbd6e
FDN
79
80# Checks for typedefs, structures, and compiler characteristics.
bba2a8d7 81AC_TYPE_SIZE_T
6d727d3c 82AC_TYPE_PID_T
99afbd6e
FDN
83
84# Checks for library functions.
6d727d3c
FDN
85AC_FUNC_ALLOCA
86AC_FUNC_FORK
87AC_FUNC_MALLOC
88AC_FUNC_REALLOC
bba2a8d7
FDN
89AC_CHECK_FUNCS([memset])
90AC_CHECK_FUNCS([strdup])
91AC_CHECK_FUNCS([strerror])
6d727d3c
FDN
92AC_CHECK_FUNCS([dup2])
93AC_CHECK_FUNCS([select])
94AC_CHECK_FUNCS([socket])
99afbd6e
FDN
95
96# local options
97AC_ARG_ENABLE([debug],
98 [ --enable-debug enable debug build. ],
99 [ default="no" ])
100
c8ed20e0
FDN
101AC_ARG_ENABLE([publicandocs],
102 [ --enable-publicandocs enable docs build. ],
103 [ default="no" ])
104
99afbd6e
FDN
105AC_ARG_WITH([syslogfacility],
106 [ --syslogfacility=FACILITY
107 default syslog facility. ],
108 [ SYSLOGFACILITY="$withval" ],
109 [ SYSLOGFACILITY="LOG_LOCAL4" ])
110
111AC_ARG_WITH([sysloglevel],
112 [ --sysloglevel=LEVEL
113 default syslog level. ],
114 [ SYSLOGLEVEL="$withval" ],
115 [ SYSLOGLEVEL="LOG_INFO" ])
116
117## random vars
118LOGDIR=${localstatedir}/log/
119RUNDIR=${localstatedir}/run/
120
121## do subst
122
c8ed20e0
FDN
123AM_CONDITIONAL(BUILD_DOCS, test "x${enable_publicandocs}" = xyes)
124
54b6e31d 125AC_DEFINE_UNQUOTED([CONFFILE], "$(eval echo ${sysconfdir}/kronosnetd.conf)",
99afbd6e
FDN
126 [Default config file])
127
128AC_DEFINE_UNQUOTED([LOGDIR], "$(eval echo ${LOGDIR})",
129 [Default logging directory])
130
131AC_DEFINE_UNQUOTED([RUNDIR], "$(eval echo ${RUNDIR})",
132 [Default run directory])
133
134AC_DEFINE_UNQUOTED([SYSLOGFACILITY], $(eval echo ${SYSLOGFACILITY}),
135 [Default syslog facility])
136
137AC_DEFINE_UNQUOTED([SYSLOGLEVEL], $(eval echo ${SYSLOGLEVEL}),
138 [Default syslog level])
139
140## *FLAGS handling
141ENV_CFLAGS="$CFLAGS"
142ENV_CPPFLAGS="$CPPFLAGS"
143ENV_LDFLAGS="$LDFLAGS"
144
145# debug build stuff
146if test "x${enable_debug}" = xyes; then
147 AC_DEFINE_UNQUOTED([DEBUG], [1], [Compiling Debugging code])
148 OPT_CFLAGS="-O0"
149else
150 OPT_CFLAGS="-O3"
151fi
152
153# gdb flags
154if test "x${GCC}" = xyes; then
155 GDB_FLAGS="-ggdb3"
156else
157 GDB_FLAGS="-g"
158fi
159
160# extra warnings
161EXTRA_WARNINGS=""
162
163WARNLIST="
164 all
165 shadow
166 missing-prototypes
167 missing-declarations
168 strict-prototypes
169 declaration-after-statement
170 pointer-arith
171 write-strings
172 cast-align
173 bad-function-cast
174 missing-format-attribute
175 format=2
176 format-security
177 format-nonliteral
178 no-long-long
179 unsigned-char
180 gnu89-inline
181 no-strict-aliasing
182 error
183 "
184
185for j in $WARNLIST; do
186 if cc_supports_flag -W$j; then
187 EXTRA_WARNINGS="$EXTRA_WARNINGS -W$j";
188 fi
189done
190
191CFLAGS="$ENV_CFLAGS $OPT_CFLAGS $GDB_FLAGS \
192 $EXTRA_WARNINGS $WERROR_CFLAGS"
193CPPFLAGS="$ENV_CPPFLAGS"
194LDFLAGS="$ENV_LDFLAGS"
195
19ceca42
FDN
196AC_CONFIG_FILES([
197 Makefile
198 docs/Makefile
84b47b85 199 tests/Makefile
19ceca42 200 ])
99afbd6e
FDN
201
202AC_OUTPUT