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_AUX_DIR(buildlib)
18 AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
22 PACKAGE_MAIL="APT Development Team <deity@lists.debian.org>"
23 AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
24 AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"$PACKAGE_VERSION")
25 AC_DEFINE_UNQUOTED(PACKAGE_MAIL,"$PACKAGE_MAIL")
27 AC_SUBST(PACKAGE_VERSION)
28 AC_SUBST(PACKAGE_MAIL)
30 dnl Check the archs, we want the target type.
33 dnl Check our C compiler
38 dnl check for large file support and enable it if possible
39 dnl do this early as other stuff might depend on it
42 dnl Check for other programs
46 AC_CHECK_TOOL(AR,ar,"ar")
48 dnl Checks for sockets
51 AC_SEARCH_LIBS(gethostbyname,nsl)
52 AC_SEARCH_LIBS(connect,socket)
57 dnl Checks for pthread -- disabled due to glibc bugs jgg
58 dnl AC_CHECK_LIB(pthread, pthread_create,[AC_DEFINE(HAVE_PTHREAD) PTHREADLIB="-lpthread"])
60 dnl if test "$PTHREADLIB" != "-lpthread"; then
61 dnl AC_MSG_ERROR(failed: I need posix threads, pthread)
69 [AC_MSG_CHECKING(if we can link against BerkeleyDB)
73 [int r, s, t; db_version(&r, &s, &t);]
85 AC_CHECK_LIB(curl, curl_easy_init,
86 [AC_CHECK_HEADER(curl/curl.h,
89 AC_MSG_ERROR([failed: I need CURL due https support]),
95 AC_CHECK_LIB(z, gzopen,
96 [AC_CHECK_HEADER(zlib.h, [HAVE_ZLIB=yes], AC_MSG_ERROR([failed: zlib.h not found]))],
97 AC_MSG_ERROR([failed: Need libz]))
99 if test "x$HAVE_ZLIB" = "xyes"; then
104 AC_CHECK_LIB(bz2, BZ2_bzopen,[AC_CHECK_HEADER(bzlib.h, [HAVE_BZ2=yes], [])], [])
106 if test "x$HAVE_BZ2" = "xyes"; then
111 AC_CHECK_LIB(lzma, lzma_easy_encoder,[AC_CHECK_HEADER(lzma.h, [HAVE_LZMA=yes], [])], [])
113 if test "x$HAVE_LZMA" = "xyes"; then
117 dnl Converts the ARCH to be something singular for this general CPU family
118 dnl This is often the dpkg architecture string.
119 dnl First check against the full canonical canoncial-system-type in $target
120 dnl and if that fails, just look for the cpu
121 AC_MSG_CHECKING(debian architecture)
122 archset="`dpkg-architecture -qDEB_HOST_ARCH`"
123 if test "x$archset" = "x"; then
124 AC_MSG_ERROR([failed: use --host= or output from dpkg-architecture])
126 AC_MSG_RESULT($archset)
127 AC_DEFINE_UNQUOTED(COMMON_ARCH,"$archset")
129 dnl Single Unix Spec statvfs
130 AC_CHECK_FUNC(statvfs,[HAVE_STATVFS=yes])
131 AC_SUBST(HAVE_STATVFS)
133 dnl Arg, linux and bsd put their statfs function in different places
134 if test x"$HAVE_STATVFS" != x"yes"; then
135 AC_EGREP_HEADER(statfs,sys/vfs.h,[AC_DEFINE(HAVE_VFS_H)],[
136 AC_EGREP_HEADER(statfs,sys/mount.h,[AC_DEFINE(HAVE_MOUNT_H)],[AC_MSG_ERROR(failed: Need statvfs)])
140 AC_CHECK_MEMBERS([struct statfs.f_type],,,
141 [$ac_includes_default
142 #include <sys/vfs.h>])
144 dnl We should use the real timegm function if we have it.
145 AC_CHECK_FUNC(timegm,AC_DEFINE(HAVE_TIMEGM))
146 AC_SUBST(HAVE_TIMEGM)
148 dnl Check the architecture
152 AC_MSG_CHECKING(for missing socklen_t)
153 AC_EGREP_HEADER(socklen_t, sys/socket.h,[AC_MSG_RESULT(no)],[
154 AC_DEFINE(NEED_SOCKLEN_T_DEFINE)
155 NEED_SOCKLEN_T_DEFINE=yes
156 AC_MSG_RESULT(missing.)])
157 AC_SUBST(NEED_SOCKLEN_T_DEFINE)
159 dnl HP-UX needs -d_XOPEN_SOURCE_EXTENDED for h_errno
160 AC_MSG_CHECKING(for h_errno)
161 AC_EGREP_HEADER(h_errno, netdb.h, [AC_MSG_RESULT(normal)],
162 [CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
163 AC_EGREP_HEADER(h_errno, netdb.h,
164 [AC_MSG_RESULT(needs _XOPEN_SOURCE_EXTENDED)],
165 [AC_MSG_ERROR("not found.")])
168 dnl Check for debiandoc
169 AC_PATH_PROG(DEBIANDOC_HTML,debiandoc2html)
170 AC_PATH_PROG(DEBIANDOC_TEXT,debiandoc2text)
172 dnl Check for doxygen
173 AC_PATH_PROG(DOXYGEN, doxygen)
175 dnl Check for the XSLTProc tool needed to build man pages together with po4a
176 AC_PATH_PROG(XSLTPROC,xsltproc)
178 dnl Check for the po4a tool needed to build man pages
179 AC_PATH_PROG(PO4A,po4a)
181 dnl Check for graphviz
182 AC_CHECK_PROG([HAVE_DOT], [dot], [YES], [NO])
183 AC_PATH_PROG([DOT], [dot], [])
184 DOTDIR=$(dirname $DOT)
190 AM_GNU_GETTEXT(external)
191 if test x"$USE_NLS" = "xyes"; then
195 AC_PATH_PROG(BASH, bash)
197 AC_OUTPUT(environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in doc/Doxyfile:doc/Doxyfile.in,make -s dirs)