]> git.saurik.com Git - apt.git/blame_incremental - configure.ac
apt-pkg/algorithms.cc: Avoid stack buffer overflow in KillList
[apt.git] / configure.ac
... / ...
CommitLineData
1ad
2dnl Process this file with autoconf to produce a configure script.
3dnl The ONLY thing this is used for is to configure for different
4dnl linux architectures and configurations, it is not used to make the
5dnl code more portable
6
7dnl You MUST have an environment that has all the POSIX functions and
8dnl some of the more popular bsd/sysv ones (like select). You'll also
9dnl need a C++ compiler that is semi-standard conformant, exceptions are
10dnl not used but STL is.
11
12dnl 'make -f Makefile startup' will generate the configure file from
13dnl configure.ac correctly and can be run at any time
14
15AC_PREREQ([2.68])
16AC_INIT
17AC_CONFIG_SRCDIR([configure.ac])
18AC_CONFIG_AUX_DIR(buildlib)
19AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
20
21PACKAGE="apt"
22PACKAGE_VERSION="1.2.5"
23PACKAGE_MAIL="APT Development Team <deity@lists.debian.org>"
24AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
25AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"$PACKAGE_VERSION")
26AC_DEFINE_UNQUOTED(PACKAGE_MAIL,"$PACKAGE_MAIL")
27AC_SUBST(PACKAGE)
28AC_SUBST(PACKAGE_VERSION)
29AC_SUBST(PACKAGE_MAIL)
30
31dnl Check the archs, we want the target type.
32AC_CANONICAL_TARGET
33
34dnl Check our C compiler
35
36AC_PROG_CC
37AC_SEARCH_LIBS([strerror],[cposix])
38
39dnl check for large file support and enable it if possible
40dnl do this early as other stuff might depend on it
41AC_SYS_LARGEFILE
42
43dnl Check for other programs
44AC_PROG_CXX
45AC_PROG_CPP
46AC_PROG_RANLIB
47AC_CHECK_TOOL(AR,ar,"ar")
48
49dnl Checks for sockets
50SAVE_LIBS="$LIBS"
51LIBS=""
52AC_SEARCH_LIBS(gethostbyname,nsl)
53AC_SEARCH_LIBS(connect,socket)
54SOCKETLIBS="$LIBS"
55AC_SUBST(SOCKETLIBS)
56LIBS="$SAVE_LIBS"
57
58dnl Checks for pthread -- disabled due to glibc bugs jgg
59dnl AC_CHECK_LIB(pthread, pthread_create,[AC_DEFINE(HAVE_PTHREAD) PTHREADLIB="-lpthread"])
60AC_SUBST(PTHREADLIB)
61dnl if test "$PTHREADLIB" != "-lpthread"; then
62dnl AC_MSG_ERROR(failed: I need posix threads, pthread)
63dnl fi
64
65dnl Check for BDB
66saveLIBS="$LIBS"
67LIBS="$LIBS -ldb"
68
69AC_CHECK_HEADER(db.h,
70 [AC_MSG_CHECKING(if we can link against BerkeleyDB)
71 AC_LINK_IFELSE(
72 [AC_LANG_PROGRAM(
73 [#include <db.h>],
74 [int r, s, t; db_version(&r, &s, &t);]
75 )],
76 [AC_DEFINE(HAVE_BDB)
77 BDBLIB="-ldb"
78 AC_MSG_RESULT(yes)],
79 [BDBLIB=""
80 AC_MSG_RESULT(no)]
81 )]
82)
83
84LIBS="$saveLIBS"
85
86AC_CHECK_LIB(curl, curl_easy_init,
87 [AC_CHECK_HEADER(curl/curl.h,
88 curl_ok=yes,
89 curl_ok=no)],
90 AC_MSG_ERROR([failed: I need CURL due https support]),
91)
92
93AC_LANG_PUSH([C++])
94AC_CHECK_HEADER(gtest/gtest.h,,
95 AC_MSG_WARN([failed: I need gtest (packaged as libgtest-dev) for unit testing]),
96)
97AC_LANG_POP([C++])
98
99
100AC_SUBST(BDBLIB)
101
102HAVE_ZLIB=no
103AC_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]))
106AC_SUBST(HAVE_ZLIB)
107if test "x$HAVE_ZLIB" = "xyes"; then
108 AC_DEFINE(HAVE_ZLIB)
109fi
110
111HAVE_LZ4=no
112AC_CHECK_LIB(lz4, LZ4F_createCompressionContext,[AC_CHECK_HEADER(lz4frame.h, [HAVE_LZ4=yes], [])], [])
113AC_SUBST(HAVE_LZ4)
114if test "x$HAVE_LZ4" = "xyes"; then
115 AC_DEFINE(HAVE_LZ4)
116fi
117
118HAVE_BZ2=no
119AC_CHECK_LIB(bz2, BZ2_bzopen,[AC_CHECK_HEADER(bzlib.h, [HAVE_BZ2=yes], [])], [])
120AC_SUBST(HAVE_BZ2)
121if test "x$HAVE_BZ2" = "xyes"; then
122 AC_DEFINE(HAVE_BZ2)
123fi
124
125HAVE_LZMA=no
126AC_CHECK_LIB(lzma, lzma_easy_encoder,[AC_CHECK_HEADER(lzma.h, [HAVE_LZMA=yes], [])], [])
127AC_SUBST(HAVE_LZMA)
128if test "x$HAVE_LZMA" = "xyes"; then
129 AC_DEFINE(HAVE_LZMA)
130fi
131
132dnl Converts the ARCH to be something singular for this general CPU family
133dnl This is often the dpkg architecture string.
134dnl First check against the full canonical canoncial-system-type in $target
135dnl and if that fails, just look for the cpu
136AC_MSG_CHECKING(debian architecture)
137archset="`dpkg-architecture -qDEB_HOST_ARCH`"
138if test "x$archset" = "x"; then
139 AC_MSG_ERROR([failed: use --host= or output from dpkg-architecture])
140fi
141AC_MSG_RESULT($archset)
142AC_DEFINE_UNQUOTED(COMMON_ARCH,"$archset")
143
144dnl Single Unix Spec statvfs
145AC_CHECK_FUNC(statvfs,[HAVE_STATVFS=yes])
146AC_SUBST(HAVE_STATVFS)
147
148dnl Arg, linux and bsd put their statfs function in different places
149if test x"$HAVE_STATVFS" != x"yes"; then
150 AC_EGREP_HEADER(statfs,sys/vfs.h,[AC_DEFINE(HAVE_VFS_H)],[
151 AC_EGREP_HEADER(statfs,sys/mount.h,[AC_DEFINE(HAVE_MOUNT_H)],[AC_MSG_ERROR(failed: Need statvfs)])
152 ])
153fi
154
155AC_CHECK_MEMBERS([struct statfs.f_type],,,
156 [$ac_includes_default
157 #include <sys/vfs.h>])
158
159dnl We should use the real timegm function if we have it.
160AC_CHECK_FUNC(timegm,AC_DEFINE(HAVE_TIMEGM))
161AC_SUBST(HAVE_TIMEGM)
162
163dnl Check the architecture
164AC_C_BIGENDIAN
165
166dnl HP-UX sux..
167AC_MSG_CHECKING(for missing socklen_t)
168AC_EGREP_HEADER(socklen_t, sys/socket.h,[AC_MSG_RESULT(no)],[
169 AC_DEFINE(NEED_SOCKLEN_T_DEFINE)
170 NEED_SOCKLEN_T_DEFINE=yes
171 AC_MSG_RESULT(missing.)])
172AC_SUBST(NEED_SOCKLEN_T_DEFINE)
173
174dnl HP-UX needs -d_XOPEN_SOURCE_EXTENDED for h_errno
175AC_MSG_CHECKING(for h_errno)
176AC_EGREP_HEADER(h_errno, netdb.h, [AC_MSG_RESULT(normal)],
177 [CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
178 AC_EGREP_HEADER(h_errno, netdb.h,
179 [AC_MSG_RESULT(needs _XOPEN_SOURCE_EXTENDED)],
180 [AC_MSG_ERROR("not found.")])
181 ])
182
183
184dnl check for setuid checking function
185AC_CHECK_FUNCS(getresuid getresgid setresuid setresgid)
186AC_SUBST(HAVE_GETRESUID)
187AC_SUBST(HAVE_GETRESGID)
188AC_SUBST(HAVE_SETRESUID)
189AC_SUBST(HAVE_SETRESGID)
190
191AC_CHECK_FUNC(ptsname_r)
192AC_SUBST(HAVE_PTSNAME_R)
193
194dnl Check for doxygen
195AC_PATH_PROG(DOXYGEN, doxygen)
196
197dnl Check for the XSLTProc tool needed to build man pages together with po4a
198AC_PATH_PROG(XSLTPROC,xsltproc)
199AC_PATH_PROG(W3M, w3m)
200
201dnl Check for the po4a tool needed to build man pages
202AC_PATH_PROG(PO4A,po4a)
203
204dnl Check for graphviz
205AC_CHECK_PROG([HAVE_DOT], [dot], [YES], [NO])
206AC_PATH_PROG([DOT], [dot], [])
207DOTDIR=$(dirname $DOT)
208AC_SUBST(DOTDIR)
209
210ah_NUM_PROCS
211ah_GCC3DEP
212
213AM_GNU_GETTEXT(external)
214if test x"$USE_NLS" = "xyes"; then
215 AC_DEFINE(USE_NLS)
216fi
217AC_SUBST(USE_NLS)
218AC_PATH_PROG(BASH, bash)
219
220AC_CONFIG_FILES([environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in doc/Doxyfile:doc/Doxyfile.in])
221AC_OUTPUT