]> git.saurik.com Git - apt.git/blame - configure.ac
ensure transaction states are changed only once
[apt.git] / configure.ac
CommitLineData
779e5b00 1ad
d7bccc73
AL
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
1e3f4083 8dnl some of the more popular bsd/sysv ones (like select). You'll also
ae72dc4a 9dnl need a C++ compiler that is semi-standard conformant, exceptions are
d7bccc73
AL
10dnl not used but STL is.
11
ae72dc4a 12dnl 'make -f Makefile startup' will generate the configure file from
ed9ba607 13dnl configure.ac correctly and can be run at any time
93bf083d 14
41bcb7b2 15AC_PREREQ([2.68])
95956817
JAK
16AC_INIT
17AC_CONFIG_SRCDIR([configure.ac])
066427d0 18AC_CONFIG_AUX_DIR(buildlib)
b0c76450 19AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
d7bccc73 20
80948457 21PACKAGE="apt"
4c4b610f 22PACKAGE_VERSION="1.2.10"
1c46aec4 23PACKAGE_MAIL="APT Development Team <deity@lists.debian.org>"
80948457 24AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
9179f697 25AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"$PACKAGE_VERSION")
1c46aec4 26AC_DEFINE_UNQUOTED(PACKAGE_MAIL,"$PACKAGE_MAIL")
80948457 27AC_SUBST(PACKAGE)
9179f697 28AC_SUBST(PACKAGE_VERSION)
1c46aec4 29AC_SUBST(PACKAGE_MAIL)
e1b74f61 30
b2e465d6 31dnl Check the archs, we want the target type.
95956817 32AC_CANONICAL_TARGET
b2e465d6 33
d7bccc73 34dnl Check our C compiler
95956817 35
f43579d1 36AC_PROG_CC
95956817 37AC_SEARCH_LIBS([strerror],[cposix])
d7bccc73 38
650faab0
DK
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
d7bccc73 43dnl Check for other programs
f43579d1 44AC_PROG_CXX
b819effd
AL
45AC_PROG_CPP
46AC_PROG_RANLIB
47AC_CHECK_TOOL(AR,ar,"ar")
d7bccc73 48
abb9b874
AL
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"
ae72dc4a 57
b2e465d6
AL
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
c9569a1e
AL
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
9c5fe9a0
OS
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
ae72dc4a
MO
93AC_LANG_PUSH([C++])
94AC_CHECK_HEADER(gtest/gtest.h,,
42fab5fb 95 AC_MSG_WARN([failed: I need gtest (packaged as libgtest-dev) for unit testing]),
ae72dc4a
MO
96)
97AC_LANG_POP([C++])
98
99
c9569a1e 100AC_SUBST(BDBLIB)
e1b74f61 101
c4997486 102HAVE_ZLIB=no
bcc27ad8 103AC_CHECK_LIB(z, gzopen,
c4997486 104 [AC_CHECK_HEADER(zlib.h, [HAVE_ZLIB=yes], AC_MSG_ERROR([failed: zlib.h not found]))],
bcc27ad8 105 AC_MSG_ERROR([failed: Need libz]))
c4997486
DK
106AC_SUBST(HAVE_ZLIB)
107if test "x$HAVE_ZLIB" = "xyes"; then
108 AC_DEFINE(HAVE_ZLIB)
109fi
110
e3fbd54c
JAK
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
c4997486
DK
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
bcc27ad8 124
7f350a37
DK
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
b2e465d6
AL
132dnl Converts the ARCH to be something singular for this general CPU family
133dnl This is often the dpkg architecture string.
0fa17428
MV
134dnl First check against the full canonical canoncial-system-type in $target
135dnl and if that fails, just look for the cpu
5b28c804 136AC_MSG_CHECKING(debian architecture)
0fbb494b 137archset="`dpkg-architecture -qDEB_HOST_ARCH`"
d7bccc73 138if test "x$archset" = "x"; then
0fbb494b 139 AC_MSG_ERROR([failed: use --host= or output from dpkg-architecture])
d7bccc73
AL
140fi
141AC_MSG_RESULT($archset)
5b28c804 142AC_DEFINE_UNQUOTED(COMMON_ARCH,"$archset")
b2e465d6 143
101030ab 144dnl Single Unix Spec statvfs
f58a97d3 145AC_CHECK_FUNC(statvfs,[HAVE_STATVFS=yes])
101030ab
AL
146AC_SUBST(HAVE_STATVFS)
147
b819effd
AL
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
f64196e8
DK
155AC_CHECK_MEMBERS([struct statfs.f_type],,,
156 [$ac_includes_default
157 #include <sys/vfs.h>])
158
41b6caf4
AL
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
65bf8518 163dnl Check the architecture
83ab33fc 164AC_C_BIGENDIAN
650faab0 165
1cecba4d
AL
166dnl HP-UX sux..
167AC_MSG_CHECKING(for missing socklen_t)
168AC_EGREP_HEADER(socklen_t, sys/socket.h,[AC_MSG_RESULT(no)],[
53d3d263 169 AC_DEFINE(NEED_SOCKLEN_T_DEFINE)
1cecba4d
AL
170 NEED_SOCKLEN_T_DEFINE=yes
171 AC_MSG_RESULT(missing.)])
172AC_SUBST(NEED_SOCKLEN_T_DEFINE)
53d3d263 173
1cecba4d 174dnl HP-UX needs -d_XOPEN_SOURCE_EXTENDED for h_errno
53d3d263 175AC_MSG_CHECKING(for h_errno)
1cecba4d
AL
176AC_EGREP_HEADER(h_errno, netdb.h, [AC_MSG_RESULT(normal)],
177 [CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
ae72dc4a 178 AC_EGREP_HEADER(h_errno, netdb.h,
1cecba4d
AL
179 [AC_MSG_RESULT(needs _XOPEN_SOURCE_EXTENDED)],
180 [AC_MSG_ERROR("not found.")])
181 ])
53d3d263 182
550ab420
JAK
183
184dnl check for setuid checking function
5a326439 185AC_CHECK_FUNCS(getresuid getresgid setresuid setresgid)
550ab420
JAK
186AC_SUBST(HAVE_GETRESUID)
187AC_SUBST(HAVE_GETRESGID)
5a326439
JAK
188AC_SUBST(HAVE_SETRESUID)
189AC_SUBST(HAVE_SETRESGID)
550ab420 190
2a0cae34
JAK
191AC_CHECK_FUNC(ptsname_r)
192AC_SUBST(HAVE_PTSNAME_R)
193
3174e150
MV
194dnl Check for doxygen
195AC_PATH_PROG(DOXYGEN, doxygen)
196
b01390ea
DK
197dnl Check for the XSLTProc tool needed to build man pages together with po4a
198AC_PATH_PROG(XSLTPROC,xsltproc)
a034d852 199AC_PATH_PROG(W3M, w3m)
b01390ea
DK
200
201dnl Check for the po4a tool needed to build man pages
202AC_PATH_PROG(PO4A,po4a)
203
3174e150
MV
204dnl Check for graphviz
205AC_CHECK_PROG([HAVE_DOT], [dot], [YES], [NO])
206AC_PATH_PROG([DOT], [dot], [])
207DOTDIR=$(dirname $DOT)
208AC_SUBST(DOTDIR)
209
f43579d1 210ah_NUM_PROCS
c29a99d7 211ah_GCC3DEP
f43579d1 212
ec2f559a
AL
213AM_GNU_GETTEXT(external)
214if test x"$USE_NLS" = "xyes"; then
215 AC_DEFINE(USE_NLS)
216fi
217AC_SUBST(USE_NLS)
80948457
AL
218AC_PATH_PROG(BASH, bash)
219
95956817 220AC_CONFIG_FILES([environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in doc/Doxyfile:doc/Doxyfile.in])
95956817 221AC_OUTPUT