@@@ m4
[mLib] / configure.ac
1 dnl -*-autoconf-*-
2 dnl
3 dnl Configuration script for mLib
4 dnl
5 dnl (c) 2008 Straylight/Edgeware
6 dnl
7
8 dnl----- Licensing notice ---------------------------------------------------
9 dnl
10 dnl This file is part of the mLib utilities library.
11 dnl
12 dnl mLib is free software; you can redistribute it and/or modify
13 dnl it under the terms of the GNU Library General Public License as
14 dnl published by the Free Software Foundation; either version 2 of the
15 dnl License, or (at your option) any later version.
16 dnl
17 dnl mLib is distributed in the hope that it will be useful,
18 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
19 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 dnl GNU Library General Public License for more details.
21 dnl
22 dnl You should have received a copy of the GNU Library General Public
23 dnl License along with mLib; if not, write to the Free
24 dnl Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
25 dnl MA 02111-1307, USA.
26
27 dnl--------------------------------------------------------------------------
28 dnl Initialization.
29
30 mdw_AUTO_VERSION
31 AC_INIT([mLib], AUTO_VERSION, [mdw@distorted.org.uk], [mLib])
32 AC_CONFIG_SRCDIR([mLib.pc.in])
33 AC_CONFIG_AUX_DIR([config])
34 AC_CONFIG_MACRO_DIRS([m4])
35 AM_INIT_AUTOMAKE([foreign subdir-objects])
36 mdw_SILENT_RULES
37
38 AC_PROG_CC
39 AM_PROG_CC_C_O
40 AM_PROG_LIBTOOL
41 AX_CFLAGS_WARN_ALL
42 mdw_LIBTOOL_VERSION_INFO
43
44 AC_CHECK_PROGS([AUTOM4TE], [autom4te])
45
46 mdw_MANEXT([mLib])
47
48 AC_DEFINE_UNQUOTED([SRCDIR], ["$(cd $srcdir && pwd)"],
49 [absolute pathname for the source directory.])
50
51 dnl--------------------------------------------------------------------------
52 dnl C programming environment.
53
54 MLIB_LIBS=
55
56 dnl Headers.
57 AC_CHECK_HEADERS([float.h])
58 AC_CHECK_HEADERS([stdint.h])
59
60 dnl Libraries.
61 mdw_ORIG_LIBS=$LIBS LIBS=$MLIB_LIBS
62 AC_SEARCH_LIBS([socket], [socket])
63 AC_SEARCH_LIBS([gethostbyname], [nsl resolv])
64 MLIB_LIBS=$LIBS LIBS=$mdw_ORIG_LIBS
65
66 dnl Functions.
67 AC_CHECK_FUNCS([snprintf])
68
69 dnl Types.
70 AC_CHECK_TYPE([socklen_t], [],
71 [AC_DEFINE([socklen_t], [int],
72 [Define to `int' if <sys/socket.h> does not define])],
73 [AC_INCLUDES_DEFAULT
74 #include <sys/socket.h>
75 ])
76
77 dnl Which version of struct msghdr do we have?
78 AC_CHECK_MEMBERS([struct msgdr.msg_control],,, [
79 #include <sys/types.h>
80 #include <sys/socket.h>
81 ])
82
83 dnl Find out whether we're cross-compiling.
84 AM_CONDITIONAL([CROSS_COMPILING], [test "$cross_compiling" = yes])
85
86 dnl Set the master library list.
87 AC_SUBST([MLIB_LIBS])
88
89 dnl--------------------------------------------------------------------------
90 dnl Name resolution.
91
92 AC_ARG_WITH([adns],
93 AS_HELP_STRING([--with-adns],
94 [use ADNS library for background name resolution]),
95 [want_adns=$withval],
96 [want_adns=auto])
97
98 mdw_ORIG_LIBS=$LIBS LIBS=$MLIB_LIBS
99 case $want_adns in
100 no) ;;
101 *) AC_SEARCH_LIBS([adns_init], [adns], [have_adns=yes], [have_adns=no]) ;;
102 esac
103 MLIB_LIBS=$LIBS LIBS=$mdw_ORIG_LIBS
104 case $want_adns,$have_adns in
105 yes,no)
106 AC_MSG_ERROR([ADNS library not found but explicitly requested])
107 ;;
108 yes,yes | auto,yes)
109 use_adns=yes
110 AC_DEFINE([HAVE_ADNS], [1],
111 [define if you have (and want to use) the ADNS library.])
112 ;;
113 no,* | auto,no)
114 use_adns=no
115 mdw_DEFINE_PATHS([
116 AC_DEFINE_UNQUOTED([BRES_SERVER],
117 ["mdw_PATH($libexecdir)/$PACKAGE/mdw_PROG(bres)"],
118 [pathname to the standalone `bres' binary.'])
119 ])
120 ;;
121 esac
122 AM_CONDITIONAL([WITH_ADNS], [test "$use_adns" = yes])
123
124 dnl--------------------------------------------------------------------------
125 dnl Python (used for testing).
126
127 AM_PATH_PYTHON([2.4],, [:])
128
129 dnl--------------------------------------------------------------------------
130 dnl Output.
131
132 AC_CONFIG_HEADER([config/config.h])
133 AC_CONFIG_TESTDIR([t])
134
135 AC_CONFIG_FILES(
136 [Makefile]
137 [buf/Makefile]
138 [codec/Makefile]
139 [hash/Makefile]
140 [mem/Makefile]
141 [sel/Makefile]
142 [struct/Makefile]
143 [sys/Makefile]
144 [test/Makefile]
145 [trace/Makefile]
146 [ui/Makefile]
147 [utils/Makefile]
148 [t/Makefile t/atlocal])
149 AC_OUTPUT
150
151 dnl------ That's all, folks -------------------------------------------------