root/common/trunk/configure.in @ 3922

Revision 3922, 9.7 KB (checked in by ucacsva, 7 years ago)

1. Removed some tagged comments from previous commits (//SV-XXX).
2. Added newer config.[sub/guess]
3. Various fixes to sync common library with that of ANL:

  • Replaced some "dnl" comments with "#" and stripped off some dnl's from the end of lines
  • Require autoconf v2.5 with AC_PREREQ(2.5)
  • Replaced LIBOBJS="$LIBOBJS inet_ntop.o" by AC_LIBOBJ([inet_ntop])
  • Find which network interface is in use (WinXP).
  • Forgotten NDEF replaced by HAVE_MSGHDR_MSGCTRL.
  • Sets event.data to s->last.active (used by AccessGrid?'s logging code).
  • Introduced rtp_get_ssrc_count() (AccessGrid? logging code).


  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1# Process this file with autoconf to produce a configure script.
2
3AC_PREREQ(2.5)
4
5AC_INIT(src/base64.c)
6
7AC_CANONICAL_HOST
8
9AC_PROG_CC
10AC_PROG_CPP
11AC_PROG_RANLIB
12
13AC_HEADER_STDC
14AC_HEADER_SYS_WAIT
15AC_CHECK_HEADERS(sys/time.h)
16if test "$ac_cv_header_sys_time_h" = "yes"; then
17        AC_HEADER_TIME
18fi
19AC_C_CONST
20AC_TYPE_SIZE_T
21
22AC_CHECK_HEADERS(stropts.h sys/filio.h)
23AC_CHECK_HEADERS(stdint.h inttypes.h)
24
25###############################################################################
26# Check for standard size types.  The defaults are only valid on some
27# systems so we hope that <inttypes.h> exists when they're wrong.
28AC_CHECK_TYPE(int8_t,  signed char)
29AC_CHECK_TYPE(int16_t, short)
30AC_CHECK_TYPE(int32_t, long)
31AC_CHECK_TYPE(int64_t, long long)
32
33# Some systems have these in <stdint.h>, just to be difficult...
34AC_CACHE_CHECK(for uint8_t in <stdint.h>, ucl_cv_uint8_t_in_stdint_h,
35        AC_EGREP_HEADER(uint8_t,
36                        stdint.h,
37                        ucl_cv_uint8_t_in_stdint_h=yes,
38                        ucl_cv_uint8_t_in_stdint_h=no))
39if test $ucl_cv_uint8_t_in_stdint_h = "no"
40then
41         AC_CHECK_TYPE(uint8_t,  unsigned char)
42fi
43
44AC_CACHE_CHECK(for uint16_t in <stdint.h>, ucl_cv_uint16_t_in_stdint_h,
45        AC_EGREP_HEADER(uint16_t,
46                        stdint.h,
47                        ucl_cv_uint16_t_in_stdint_h=yes,
48                        ucl_cv_uint16_t_in_stdint_h=no))
49if test $ucl_cv_uint16_t_in_stdint_h = "no"
50then
51         AC_CHECK_TYPE(uint16_t,  unsigned short)
52fi
53
54AC_CACHE_CHECK(for uint32_t in <stdint.h>, ucl_cv_uint32_t_in_stdint_h,
55        AC_EGREP_HEADER(uint32_t,
56                        stdint.h,
57                        ucl_cv_uint32_t_in_stdint_h=yes,
58                        ucl_cv_uint32_t_in_stdint_h=no))
59if test $ucl_cv_uint32_t_in_stdint_h = "no"
60then
61         AC_CHECK_TYPE(uint32_t,  unsigned int)
62fi
63
64###############################################################################
65# The following two macros cause autoconf to complain.
66AC_C_BIGENDIAN
67AC_C_CHAR_UNSIGNED
68#
69# Some of the codecs in rat don't with with unsigned characters.
70# Force the compiler to use signed chars, to be consistent.
71if test $ac_cv_c_char_unsigned = yes
72then
73        if test "$GCC" = yes
74        then
75                CFLAGS="$CFLAGS -fsigned-char"
76        else
77                case "$host_os" in
78                # I don't know when "-signed" was added to IRIX CC
79                # so err on the side of using it.
80                irix*)  CFLAGS="$CFLAGS -signed"
81                        ;;
82                # need e.g. --force-signed-chars=-signed
83                *)      AC_MSG_ERROR([I don't know how to force signed chars])
84                        ;;
85                esac
86        fi
87fi
88#  __CHAR_UNSIGNED__ will be defined; hope this is OK.
89
90###############################################################################
91# The following causes autoconf to complain.
92AC_CHECK_FILE(/dev/urandom,AC_DEFINE(HAVE_DEV_URANDOM))
93
94# If more files than mbus.c use vsnprintf, split it out into
95# vsnprintf.c and add it to AC_REPLACE_FUNCS
96# AC_CHECK_FUNC(vsnprintf,,AC_DEFINE(NEED_VSNPRINTF))
97AC_REPLACE_FUNCS(vsnprintf)
98
99###############################################################################
100# If inet_aton is actually needed somewhere, split it out into
101# inet_aton.c and add it to AC_REPLACE_FUNCS
102#
103# AC_CHECK_FUNC succeeds on our IRIX 6.2 boxes, but it is not
104# declared anywhere, use egrep header to check (ugh lame, but works)
105
106AC_CACHE_CHECK(for inet_pton in <arpa/inet.h>, ucl_cv_inet_pton_in_inet_h,
107        AC_EGREP_HEADER(uint16_t,
108                        stdint.h,
109                        ucl_cv_inet_pton_in_inet_h=yes,
110                        ucl_cv_inet_pton_in_inet_h=no))
111if test $ucl_cv_inet_pton_in_inet_h = "no"
112then
113        AC_DEFINE(NEED_INET_PTON)
114        AC_LIBOBJ([inet_pton])
115fi
116AC_CACHE_CHECK(for inet_ntop in <arpa/inet.h>, ucl_cv_inet_ntop_in_inet_h,
117        AC_EGREP_HEADER(uint16_t,
118                        stdint.h,
119                        ucl_cv_inet_ntop_in_inet_h=yes,
120                        ucl_cv_inet_ntop_in_inet_h=no))
121if test $ucl_cv_inet_ntop_in_inet_h = "no"
122then
123        AC_DEFINE(NEED_INET_NTOP)
124        AC_LIBOBJ([inet_ntop])
125else
126        AC_DEFINE(HAVE_INET_NTOP)
127fi
128#AC_SUBST(LIBOBJS)
129
130# AC_REPLACE_FUNCS(inet_pton inet_ntop)
131
132AC_SEARCH_LIBS(socket, socket)
133AC_SEARCH_LIBS(inet_addr, nsl)
134
135###############################################################################
136#  -profile
137AC_ARG_ENABLE(profile,
138        [  --enable-profile        enable profiling],
139        [if test $enableval = yes
140        then
141                if test "$GCC" = yes
142                then
143                        CFLAGS="$CFLAGS -pg"
144                else
145                        AC_ERROR([Don't know how to enable profiling for $CC])
146                fi
147        fi])
148
149#  -bounds
150#       add -fbounds-checking to CFLAGS
151#       add -lcheck to LIBS
152AC_ARG_ENABLE(bounds,
153        [  --enable-bounds         enable bounds checking],
154        [if test $enableval = yes
155        then
156                if test "$GCC" = yes
157                then
158                        CFLAGS="$CFLAGS -fbounds-checking"
159                        LIBS="$LIBS -lcheck"
160                else
161                        AC_ERROR([Don't know how to enable profiling for $CC])
162                fi
163        fi])
164
165# -DDEBUG
166# -DDEBUG_MEM
167# -DNDEBUG
168AC_ARG_ENABLE(debug,
169        [  --enable-debug          enable debug messages and code],
170        [if test $enableval = yes
171        then
172                AC_DEFINE(DEBUG)
173        fi])
174AC_ARG_ENABLE(debug-mem,
175        [  --enable-debug-mem      enable memory debugging code],
176        [if test $enableval = yes
177        then
178                AC_DEFINE(DEBUG_MEM)
179        fi])
180
181###############################################################################
182# IPv6 related configuration options (using tcpdump's configure.in)
183AC_MSG_CHECKING([whether to enable IPv6])
184AC_ARG_ENABLE(ipv6,
185        [  --enable-ipv6           enable ipv6],
186        [ case "$enableval" in
187          yes)  AC_MSG_RESULT(yes)
188                AC_DEFINE(HAVE_IPv6)
189                ipv6=yes
190                ;;
191          *)    AC_MSG_RESULT(no)
192                ipv6=no
193                ;;
194          esac
195        ],
196        [ AC_MSG_RESULT(no)
197          ipv6=no
198        ])
199ipv6type=unknown
200ipv6lib=none
201ipv6trylibc=no
202
203# IPv6 Stack Type Detector
204if test "$ipv6" = "yes"; then
205        AC_MSG_CHECKING([ipv6 stack type])
206        for i in inria kame linux-glibc linux-libinet6 toshiba v6d zeta; do
207                case $i in
208                inria)
209                        # http://www.kame.net/
210                        AC_EGREP_CPP(yes, [
211#include <netinet/in.h>
212#ifdef IPV6_INRIA_VERSION
213yes
214#endif],
215                                [ipv6type=$i;
216                                CFLAGS="-DINET6 $CFLAGS"])
217                        ;;
218                kame)
219                        # http://www.kame.net/
220                        AC_EGREP_CPP(yes, [
221#include <netinet/in.h>
222#ifdef __KAME__
223yes
224#endif],
225                                [ipv6type=$i;
226                                ipv6lib=inet6;
227                                if test -x /usr/local/v6/lib; then
228                                        ipv6libdir=/usr/local/v6/lib;
229                                else
230                                        ipv6type=freebsd/netbsd/openbsd
231                                        ipv6libdir=/usr/lib;
232                                fi;
233                                ipv6trylibc=yes;
234                                CFLAGS="-DINET6 $CFLAGS"])
235                        ;;
236                linux-glibc)
237                        # http://www.v6.linux.or.jp/
238                        AC_EGREP_CPP(yes, [
239#include <features.h>
240#if defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
241yes
242#endif],
243                                [ipv6type=$i;
244                                CFLAGS="-DINET6 $CFLAGS"])
245                        ;;
246                linux-libinet6)
247                        # http://www.v6.linux.or.jp/
248                        if test -d /usr/inet6 -o -f /usr/include/netinet/ip6.h; then
249                                ipv6type=$i
250                                ipv6lib=inet6
251                                ipv6libdir=/usr/inet6/lib
252                                ipv6trylibc=yes;
253                                CFLAGS="-DINET6 -I/usr/inet6/include $CFLAGS"
254                        fi
255                        ;;
256                toshiba)
257                        AC_EGREP_CPP(yes, [
258#include <sys/param.h>
259#ifdef _TOSHIBA_INET6
260yes
261#endif],
262                                [ipv6type=$i;
263                                ipv6lib=inet6;
264                                ipv6libdir=/usr/local/v6/lib;
265                                CFLAGS="-DINET6 $CFLAGS"])
266                        ;;
267                v6d)
268                        AC_EGREP_CPP(yes, [
269#include </usr/local/v6/include/sys/v6config.h>
270#ifdef __V6D__
271yes
272#endif],
273                                [ipv6type=$i;
274                                ipv6lib=v6;
275                                ipv6libdir=/usr/local/v6/lib;
276                                CFLAGS="-I/usr/local/v6/include $CFLAGS"])
277                        ;;
278                zeta)
279                        AC_EGREP_CPP(yes, [
280#include <sys/param.h>
281#ifdef _ZETA_MINAMI_INET6
282yes
283#endif],
284                                [ipv6type=$i;
285                                ipv6lib=inet6;
286                                ipv6libdir=/usr/local/v6/lib;
287                                CFLAGS="-DINET6 $CFLAGS"])
288                        ;;
289                esac
290                if test "$ipv6type" != "unknown"; then
291                        break
292                fi
293        done
294        AC_MSG_RESULT($ipv6type)
295fi
296
297if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
298        if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
299                LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
300                echo "You have $ipv6lib library, using it"
301        else
302                if test "$ipv6trylibc" = "yes"; then
303                        echo "You do not have $ipv6lib library, using libc"
304                else
305                        echo 'Fatal: no $ipv6lib library found.  cannot continue.'
306                        echo "You need to fetch lib$ipv6lib.a from appropriate"
307                        echo 'ipv6 kit and compile beforehand.'
308                        exit 1
309                fi
310        fi
311fi
312
313# Test below are IPv6 specific.  Their result has no bearing if HAVE_IPv6 is
314# not defined.  They are kept outside IPv6 enable check to keep code readable.
315
316AC_CACHE_CHECK(for getipnodebyname in <netdb.h>, ucl_cv_getipnodebyname_in_netdb_h,
317        AC_EGREP_HEADER(getipnodebyname,
318                netdb.h,
319                ucl_cv_getipnodebyname_in_netdb_h=yes, 
320                ucl_cv_getipnodebyname_in_netdb_h=no))
321if test $ucl_cv_getipnodebyname_in_netdb_h
322then
323        AC_DEFINE(HAVE_GETIPNODEBYNAME)
324fi
325
326AC_CACHE_CHECK(for struct addrinfo in <netdb.h>, ucl_cv_st_addrinfo_in_netdb_h,
327        AC_EGREP_HEADER(addrinfo,
328                netdb.h,
329                ucl_cv_st_addrinfo_in_netdb_h=yes,     
330                ucl_cv_st_addrinfo_in_netdb_h=no))
331if test $ucl_cv_st_addrinfo_in_netdb_h
332then
333        AC_DEFINE(HAVE_ST_ADDRINFO)
334fi
335
336AC_CACHE_CHECK(for sin6_len in struct sockaddr_in6, ucl_cv_sin6_len,
337        [AC_TRY_COMPILE([
338                #include <netinet/in.h>
339        ],[
340                struct sockaddr_in6     s_in;
341                s_in.sin6_len = 0;
342        ],
343                ucl_cv_sin6_len=yes,   
344                ucl_cv_sin6_len=no
345        )])
346if test $ucl_cv_sin6_len = yes
347then
348        AC_DEFINE(HAVE_SIN6_LEN)
349fi
350
351AC_CACHE_CHECK(for msg_control in struct msghdr, ucl_cv_control,
352        [AC_TRY_COMPILE([
353                #include <sys/types.h>
354                #include <sys/socket.h>
355        ],[
356                struct msghdr msg;
357                msg.msg_control = 0;
358        ],
359                ucl_cv_control=yes,
360                ucl_cv_control=no
361        )])
362if test $ucl_cv_control = yes
363then
364        AC_DEFINE(HAVE_MSGHDR_MSGCTRL)
365fi
366
367###############################################################################
368# Check whether gtk-doc is installed
369
370AC_CHECK_PROG(GTKDOC, gtkdoc-scan, yes, no, $PATH)
371if test "$GTKDOC" = yes
372then
373        OPTDOC=doc
374else
375        OPTDOC=
376fi
377AC_SUBST(OPTDOC)
378
379###############################################################################
380# GCC-specific warning flags
381if test "$GCC" = yes
382then
383        CFLAGS="$CFLAGS -W -Wall -Wwrite-strings -Wbad-function-cast -Wmissing-prototypes -Wcast-qual -Wmissing-declarations"
384fi
385
386###############################################################################
387# Done, create the output files....
388AC_CONFIG_HEADER(src/uclconf.h:src/config.h.in)
389AC_OUTPUT(Makefile doc/Makefile examples/Makefile examples/rtp/Makefile examples/sdp/Makefile examples/sap/Makefile src/Makefile tests/Makefile)
Note: See TracBrowser for help on using the browser.