root/trunk/configure.in

Revision 96, 5.7 kB (checked in by tibob, 6 years ago)

- added an option in ./configure to activate additional IP checks
- updated TODO

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1dnl
2dnl autoconf for ipfm.
3dnl Copyright (c) 1999-2002 Robert CHERAMY <robert@cheramy.net>
4dnl Copyright (c) 2001 Loïc Tortay & IN2P3 Computing Center <tortay@cc.in2p3.fr>
5dnl
6dnl 20021020 : tibob : added --enable-debug-messages option
7
8dnl Initialisation
9AC_INIT(Makefile.in)
10AC_CONFIG_HEADER(source/config.h)
11
12dnl
13dnl options
14dnl
15dnl I can't get AC_HELP_STRING working... If somone has an idea...
16
17AC_ARG_ENABLE([debug-messages],
18[  --enable-debug-messages      Use debug messages],
19[
20  if test $enableval = "yes"; then
21    AC_DEFINE(DEBUG_MESSAGES)
22  fi
23])
24
25AC_ARG_ENABLE([ip-check],
26[  --enable-ip-check      Additional IP packets checks],
27[
28  if test $enableval = "yes"; then
29    AC_DEFINE(IP_CHECK)
30  fi
31])
32
33
34
35dnl Version
36VERSION=`cat $srcdir/VERSION`
37AC_SUBST(VERSION)
38
39echo "Configuring ipfm $VERSION..."
40echo
41
42dnl Checks for uname.
43AC_CHECK_PROG(UNAME, uname, uname)
44if test "x$UNAME" = "x"; then
45  echo
46  echo "No uname. can't find your OS"
47  echo
48  exit 1
49fi
50
51dnl Finds out OS.
52AC_MSG_CHECKING(your OS)
53system=`$UNAME`
54case $system in
55  Linux)
56    AC_MSG_RESULT(Linux)
57    AC_DEFINE(__OS_LINUX__)
58    ;;
59  FreeBSD)
60    AC_MSG_RESULT(FreeBSD)
61    AC_DEFINE(__OS_FREEBSD__)
62    ;;
63  OpenBSD)
64    AC_MSG_RESULT(OpenBSD)
65    AC_DEFINE(__OS_OPENBSD__)
66    ;;
67  SunOS)
68    AC_MSG_RESULT(SunOS)
69    AC_DEFINE(__OS_SUNOS__)
70    LIBS="$LIBS -lnsl -lsocket"
71    ;;
72  AIX)
73    AC_MSG_RESULT(AIX)
74    AC_DEFINE(__OS_AIX__)
75    ;;
76  HP-UX)
77    AC_MSG_RESULT(HPUX)
78    AC_DEFINE(__OS_HPUX__)
79    ;;
80  OSF1)
81    AC_MSG_RESULT(OSF1)
82    AC_DEFINE(__OS_OSF1__)
83    ;;
84esac
85
86dnl
87dnl Checks for programs.
88dnl
89AC_PROG_CC
90AC_PROG_CPP
91AC_PROG_INSTALL
92AC_PROG_LEX
93AC_PROG_RANLIB
94AC_PROG_YACC
95AC_PATH_PROG(AR, ar)
96
97if test -z "$AR" ; then
98        AC_MSG_ERROR(You need 'ar' in order to compile ipfm)
99fi
100
101dnl
102dnl Checks for libpcap
103dnl
104
105AC_MSG_CHECKING(for local libpcap)
106dnl checks for local libpcap lib
107pcapdirs=`ls .. | grep libpcap | sed -e 's:/$::' -e 's:^:../:' | tr '\n' ' '`
108libpcap=FAIL
109for pcapdir in `echo $pcapdirs` ; do
110  pcapdir=`pwd`/$pcapdir
111  if test -d $pcapdir -a -f $pcapdir/libpcap.a -a -f $pcapdir/pcap.h ; then
112    libpcap=$pcapdir/libpcap.a
113    AC_MSG_RESULT(Using $libpcap)
114    INCLS="-I$pcapdir"
115    break
116  fi
117done
118
119dnl checks for pcap install
120if test "x$libpcap" = "xFAIL" ; then
121  AC_MSG_RESULT(no)
122  AC_CHECK_LIB(pcap, main, libpcap="-lpcap", AC_MSG_ERROR(You need libpcap in order to use ipfm))
123  pcapdir=""
124  dnl I ought to put here a test to find where pcap.h is
125  AC_CHECK_HEADER(pcap.h,, NO_PCAP_H=1)
126  if test "x$NO_PCAP_H" = "x1"; then
127    AC_MSG_CHECKING(for exotic pcap.h places)
128    if test -r /usr/include/pcap/pcap.h; then
129      INCLS="$INCLS -I/usr/include/pcap"
130      AC_MSG_RESULT(/usr/include/pcap/)
131    else if test -r /usr/local/include/pcap.h; then
132      INCLS="$INCLS -I/usr/local/include"
133      AC_MSG_RESULT(/usr/local/include/)
134    else
135      AC_MSG_WARN(pcap.h not found.)
136      AC_MSG_WARN(Specify pcap.h PATH in source/Makefile (INCLS=-I/pcap/path))
137    fi; fi
138  fi
139fi
140LIBS="$LIBS $libpcap"
141AC_SUBST(INCLS)
142
143dnl Checks for typedefs, structures, and compiler characteristics.
144if test "x$CC" = "xgcc" ; then
145  WARNINGS="-Wall"
146  AC_SUBST(WARNINGS)
147fi
148
149dnl
150dnl Checks for library functions.
151dnl
152AC_MSG_CHECKING(for strftime)
153AC_TRY_COMPILE([#include <time.h>],
154                        [strftime(NULL, 0, NULL, NULL);],
155                        [AC_DEFINE(HAVE_STRFTIME)
156                        AC_MSG_RESULT(yes)],
157               [AC_MSG_ERROR(You need strftime support in order to compile ipfm)])
158
159AC_MSG_CHECKING(for snprintf)
160AC_TRY_COMPILE([#include <stdio.h>],
161                        [snprintf(NULL, 0, NULL);],
162                        [AC_DEFINE(HAVE_SNPRINTF)
163                        AC_MSG_RESULT(yes)],
164               [AC_MSG_ERROR(You need snprintf support in order to compile ipfm)])
165
166lockf_found=yes
167AC_MSG_CHECKING(for lockf)
168AC_TRY_COMPILE([#include <unistd.h>],
169                        [lockf(0, 0, 0);],
170                        [AC_DEFINE(HAVE_LOCKF)
171                        AC_MSG_RESULT(yes)],
172            [AC_MSG_RESULT(no) lockf_found=no])
173
174flock_found=yes
175AC_MSG_CHECKING(for flock)
176AC_TRY_COMPILE([#include <fcntl.h>],
177                       [flock(0, 0);],
178                       [AC_DEFINE(HAVE_FLOCK)
179                       AC_MSG_RESULT(yes)],
180            [AC_MSG_RESULT(no) flockf_found=no])
181
182if test $lockf_found = "no" -a $flock_found = "no" ; then
183       AC_MSG_ERROR(You need either flock or lockf support in order to compile ipfm)
184fi
185
186AC_CHECK_FUNC(daemon,
187        [AC_DEFINE(HAVE_DAEMON)],
188        [AC_CHECK_LIB(bsd, daemon, [LIBS="$LIBS -lbsd"; AC_DEFINE(HAVE_DAEMON)])]
189)
190
191AC_CHECK_FUNCS(strlcat strlcpy inet_aton inet_ntoa)
192
193
194dnl
195dnl Checks for useful types
196dnl
197
198dnl AC_CHECK_TYPE(unsigned long long int, unsigned long)
199dnl AC_CHECK_TYPE(long long, longlong)
200dnl if test  $ac_cv_type_long_long = no; then
201dnl     AC_MSG_ERROR(You need an \`\`long long int\'\' in order to use ipfm))
202dnl fi
203dnl AC_MSG_CHECKING(for long long int)
204dnl AC_TRY_COMPILE(, [unsigned long long int ulli;]
205dnl                    [AC_DEFINE(HAVE_LONGLONG)
206dnl                    AC_MSG_RESULT(yes)],
207dnl            [AC_MSG_RESULT(no)])
208dnl            [AC_MSG_ERROR(You need long long int support in order to compile ipfm)])
209
210AC_CHECK_TYPE(u_int32_t, uint32_t)
211if test $ac_cv_type_u_int32_t = no; then
212        AC_CHECK_TYPE(uint32_t, unsigned long int)
213fi
214
215AC_CHECK_TYPE(u_int8_t, uint8_t)
216if test $ac_cv_type_u_int8_t = no; then
217        AC_CHECK_TYPE(uint8_t, unsigned char)
218fi
219
220dnl
221dnl Generate output files
222dnl
223
224AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
225
226AC_OUTPUT(Makefile Makefile.common source/Makefile source/missing/Makefile doc/Makefile)
227
228echo
229make configdump
230echo
231echo Please check this is correct and modify Makefile.common
232echo and source/config.h in consequence.
233echo You can now type \`\` make \'\'.
Note: See TracBrowser for help on using the browser.