]> git.saurik.com Git - apt.git/blob - configure.ac
Implement CacheDB for source packages in apt-ftparchive
[apt.git] / configure.ac
1 ad
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
5 dnl code more portable
6
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.
11
12 dnl 'make -f Makefile startup' will generate the configure file from
13 dnl configure.ac correctly and can be run at any time
14
15 AC_PREREQ(2.50)
16 AC_INIT(configure.ac)
17 AC_CONFIG_AUX_DIR(buildlib)
18 AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
19
20 PACKAGE="apt"
21 PACKAGE_VERSION="0.9.16.1"
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")
26 AC_SUBST(PACKAGE)
27 AC_SUBST(PACKAGE_VERSION)
28 AC_SUBST(PACKAGE_MAIL)
29
30 dnl Check the archs, we want the target type.
31 AC_CANONICAL_SYSTEM
32
33 dnl Check our C compiler
34 AC_CHECK_TOOL_PREFIX
35 AC_PROG_CC
36 AC_ISC_POSIX
37
38 dnl check for large file support and enable it if possible
39 dnl do this early as other stuff might depend on it
40 AC_SYS_LARGEFILE
41
42 dnl Check for other programs
43 AC_PROG_CXX
44 AC_PROG_CPP
45 AC_PROG_RANLIB
46 AC_CHECK_TOOL(AR,ar,"ar")
47
48 dnl Checks for sockets
49 SAVE_LIBS="$LIBS"
50 LIBS=""
51 AC_SEARCH_LIBS(gethostbyname,nsl)
52 AC_SEARCH_LIBS(connect,socket)
53 SOCKETLIBS="$LIBS"
54 AC_SUBST(SOCKETLIBS)
55 LIBS="$SAVE_LIBS"
56
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"])
59 AC_SUBST(PTHREADLIB)
60 dnl if test "$PTHREADLIB" != "-lpthread"; then
61 dnl AC_MSG_ERROR(failed: I need posix threads, pthread)
62 dnl fi
63
64 dnl Check for BDB
65 saveLIBS="$LIBS"
66 LIBS="$LIBS -ldb"
67
68 AC_CHECK_HEADER(db.h,
69 [AC_MSG_CHECKING(if we can link against BerkeleyDB)
70 AC_LINK_IFELSE(
71 [AC_LANG_PROGRAM(
72 [#include <db.h>],
73 [int r, s, t; db_version(&r, &s, &t);]
74 )],
75 [AC_DEFINE(HAVE_BDB)
76 BDBLIB="-ldb"
77 AC_MSG_RESULT(yes)],
78 [BDBLIB=""
79 AC_MSG_RESULT(no)]
80 )]
81 )
82
83 LIBS="$saveLIBS"
84
85 AC_CHECK_LIB(curl, curl_easy_init,
86 [AC_CHECK_HEADER(curl/curl.h,
87 curl_ok=yes,
88 curl_ok=no)],
89 AC_MSG_ERROR([failed: I need CURL due https support]),
90 )
91
92 AC_SUBST(BDBLIB)
93
94 HAVE_ZLIB=no
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]))
98 AC_SUBST(HAVE_ZLIB)
99 if test "x$HAVE_ZLIB" = "xyes"; then
100 AC_DEFINE(HAVE_ZLIB)
101 fi
102
103 HAVE_BZ2=no
104 AC_CHECK_LIB(bz2, BZ2_bzopen,[AC_CHECK_HEADER(bzlib.h, [HAVE_BZ2=yes], [])], [])
105 AC_SUBST(HAVE_BZ2)
106 if test "x$HAVE_BZ2" = "xyes"; then
107 AC_DEFINE(HAVE_BZ2)
108 fi
109
110 HAVE_LZMA=no
111 AC_CHECK_LIB(lzma, lzma_easy_encoder,[AC_CHECK_HEADER(lzma.h, [HAVE_LZMA=yes], [])], [])
112 AC_SUBST(HAVE_LZMA)
113 if test "x$HAVE_LZMA" = "xyes"; then
114 AC_DEFINE(HAVE_LZMA)
115 fi
116
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])
125 fi
126 AC_MSG_RESULT($archset)
127 AC_DEFINE_UNQUOTED(COMMON_ARCH,"$archset")
128
129 dnl Single Unix Spec statvfs
130 AC_CHECK_FUNC(statvfs,[HAVE_STATVFS=yes])
131 AC_SUBST(HAVE_STATVFS)
132
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)])
137 ])
138 fi
139
140 AC_CHECK_MEMBERS([struct statfs.f_type],,,
141 [$ac_includes_default
142 #include <sys/vfs.h>])
143
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)
147
148 dnl Check the architecture
149 AC_C_BIGENDIAN
150
151 dnl HP-UX sux..
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)
158
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.")])
166 ])
167
168 dnl Check for debiandoc
169 AC_PATH_PROG(DEBIANDOC_HTML,debiandoc2html)
170 AC_PATH_PROG(DEBIANDOC_TEXT,debiandoc2text)
171
172 dnl Check for doxygen
173 AC_PATH_PROG(DOXYGEN, doxygen)
174
175 dnl Check for the XSLTProc tool needed to build man pages together with po4a
176 AC_PATH_PROG(XSLTPROC,xsltproc)
177
178 dnl Check for the po4a tool needed to build man pages
179 AC_PATH_PROG(PO4A,po4a)
180
181 dnl Check for graphviz
182 AC_CHECK_PROG([HAVE_DOT], [dot], [YES], [NO])
183 AC_PATH_PROG([DOT], [dot], [])
184 DOTDIR=$(dirname $DOT)
185 AC_SUBST(DOTDIR)
186
187 ah_NUM_PROCS
188 ah_GCC3DEP
189
190 AM_GNU_GETTEXT(external)
191 if test x"$USE_NLS" = "xyes"; then
192 AC_DEFINE(USE_NLS)
193 fi
194 AC_SUBST(USE_NLS)
195 AC_PATH_PROG(BASH, bash)
196
197 AC_OUTPUT(environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in doc/Doxyfile:doc/Doxyfile.in,make -s dirs)