2 dnl Process this file with autoconf to produce a configure script.
3 dnl The ONLY thing this is used for is to configure for different
4 dnl linux architectures and configurations, it is not used to make the
7 dnl You MUST have an environment that has all the POSIX functions and
8 dnl some of the more popular bsd/sysv ones (like select). You'll also
9 dnl need a C++ compiler that is semi-standard conformant, exceptions are
10 dnl not used but STL is.
12 dnl 'make -f Makefile startup' will generate the configure file from
13 dnl configure.ac correctly and can be run at any time
17 AC_CONFIG_SRCDIR([configure.ac])
18 AC_CONFIG_AUX_DIR(buildlib)
19 AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
22 PACKAGE_VERSION="1.1~exp17"
23 PACKAGE_MAIL="APT Development Team <deity@lists.debian.org>"
24 AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
25 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"$PACKAGE_VERSION")
26 AC_DEFINE_UNQUOTED(PACKAGE_MAIL,"$PACKAGE_MAIL")
28 AC_SUBST(PACKAGE_VERSION)
29 AC_SUBST(PACKAGE_MAIL)
31 dnl Check the archs, we want the target type.
34 dnl Check our C compiler
37 AC_SEARCH_LIBS([strerror],[cposix])
39 dnl check for large file support and enable it if possible
40 dnl do this early as other stuff might depend on it
43 dnl Check for other programs
47 AC_CHECK_TOOL(AR,ar,"ar")
49 dnl Checks for sockets
52 AC_SEARCH_LIBS(gethostbyname,nsl)
53 AC_SEARCH_LIBS(connect,socket)
58 dnl Checks for pthread -- disabled due to glibc bugs jgg
59 dnl AC_CHECK_LIB(pthread, pthread_create,[AC_DEFINE(HAVE_PTHREAD) PTHREADLIB="-lpthread"])
61 dnl if test "$PTHREADLIB" != "-lpthread"; then
62 dnl AC_MSG_ERROR(failed: I need posix threads, pthread)
70 [AC_MSG_CHECKING(if we can link against BerkeleyDB)
74 [int r, s, t; db_version(&r, &s, &t);]
86 AC_CHECK_LIB(curl, curl_easy_init,
87 [AC_CHECK_HEADER(curl/curl.h,
90 AC_MSG_ERROR([failed: I need CURL due https support]),
94 AC_CHECK_HEADER(gtest/gtest.h,,
95 AC_MSG_WARN([failed: I need gtest (packaged as libgtest-dev) for unit testing]),
103 AC_CHECK_LIB(z, gzopen,
104 [AC_CHECK_HEADER(zlib.h, [HAVE_ZLIB=yes], AC_MSG_ERROR([failed: zlib.h not found]))],
105 AC_MSG_ERROR([failed: Need libz]))
107 if test "x$HAVE_ZLIB" = "xyes"; then
112 AC_CHECK_LIB(bz2, BZ2_bzopen,[AC_CHECK_HEADER(bzlib.h, [HAVE_BZ2=yes], [])], [])
114 if test "x$HAVE_BZ2" = "xyes"; then
119 AC_CHECK_LIB(lzma, lzma_easy_encoder,[AC_CHECK_HEADER(lzma.h, [HAVE_LZMA=yes], [])], [])
121 if test "x$HAVE_LZMA" = "xyes"; then
125 dnl Converts the ARCH to be something singular for this general CPU family
126 dnl This is often the dpkg architecture string.
127 dnl First check against the full canonical canoncial-system-type in $target
128 dnl and if that fails, just look for the cpu
129 AC_MSG_CHECKING(debian architecture)
130 archset="`dpkg-architecture -qDEB_HOST_ARCH`"
131 if test "x$archset" = "x"; then
132 AC_MSG_ERROR([failed: use --host= or output from dpkg-architecture])
134 AC_MSG_RESULT($archset)
135 AC_DEFINE_UNQUOTED(COMMON_ARCH,"$archset")
137 dnl Single Unix Spec statvfs
138 AC_CHECK_FUNC(statvfs,[HAVE_STATVFS=yes])
139 AC_SUBST(HAVE_STATVFS)
141 dnl Arg, linux and bsd put their statfs function in different places
142 if test x"$HAVE_STATVFS" != x"yes"; then
143 AC_EGREP_HEADER(statfs,sys/vfs.h,[AC_DEFINE(HAVE_VFS_H)],[
144 AC_EGREP_HEADER(statfs,sys/mount.h,[AC_DEFINE(HAVE_MOUNT_H)],[AC_MSG_ERROR(failed: Need statvfs)])
148 AC_CHECK_MEMBERS([struct statfs.f_type],,,
149 [$ac_includes_default
150 #include <sys/vfs.h>])
152 dnl We should use the real timegm function if we have it.
153 AC_CHECK_FUNC(timegm,AC_DEFINE(HAVE_TIMEGM))
154 AC_SUBST(HAVE_TIMEGM)
156 dnl Check the architecture
160 AC_MSG_CHECKING(for missing socklen_t)
161 AC_EGREP_HEADER(socklen_t, sys/socket.h,[AC_MSG_RESULT(no)],[
162 AC_DEFINE(NEED_SOCKLEN_T_DEFINE)
163 NEED_SOCKLEN_T_DEFINE=yes
164 AC_MSG_RESULT(missing.)])
165 AC_SUBST(NEED_SOCKLEN_T_DEFINE)
167 dnl HP-UX needs -d_XOPEN_SOURCE_EXTENDED for h_errno
168 AC_MSG_CHECKING(for h_errno)
169 AC_EGREP_HEADER(h_errno, netdb.h, [AC_MSG_RESULT(normal)],
170 [CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
171 AC_EGREP_HEADER(h_errno, netdb.h,
172 [AC_MSG_RESULT(needs _XOPEN_SOURCE_EXTENDED)],
173 [AC_MSG_ERROR("not found.")])
177 dnl check for setuid checking function
178 AC_CHECK_FUNCS(getresuid getresgid setresuid setresgid)
179 AC_SUBST(HAVE_GETRESUID)
180 AC_SUBST(HAVE_GETRESGID)
181 AC_SUBST(HAVE_SETRESUID)
182 AC_SUBST(HAVE_SETRESGID)
184 AC_CHECK_FUNC(ptsname_r)
185 AC_SUBST(HAVE_PTSNAME_R)
187 dnl Check for doxygen
188 AC_PATH_PROG(DOXYGEN, doxygen)
190 dnl Check for the XSLTProc tool needed to build man pages together with po4a
191 AC_PATH_PROG(XSLTPROC,xsltproc)
192 AC_PATH_PROG(W3M, w3m)
194 dnl Check for the po4a tool needed to build man pages
195 AC_PATH_PROG(PO4A,po4a)
197 dnl Check for graphviz
198 AC_CHECK_PROG([HAVE_DOT], [dot], [YES], [NO])
199 AC_PATH_PROG([DOT], [dot], [])
200 DOTDIR=$(dirname $DOT)
206 AM_GNU_GETTEXT(external)
207 if test x"$USE_NLS" = "xyes"; then
211 AC_PATH_PROG(BASH, bash)
213 AC_CONFIG_FILES([environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in doc/Doxyfile:doc/Doxyfile.in])