]> git.saurik.com Git - apt.git/blame_incremental - configure.in
Newer sub/guess scripts
[apt.git] / configure.in
... / ...
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 populare 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.in correctly and can be run at any time
14
15AC_INIT(configure.in)
16AC_CONFIG_AUX_DIR(buildlib)
17AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
18
19dnl -- SET THIS TO THE RELEASE VERSION --
20AC_DEFINE_UNQUOTED(VERSION,"0.5.0")
21AC_DEFINE_UNQUOTED(PACKAGE,"apt")
22
23dnl Check the archs, we want the target type.
24AC_CANONICAL_SYSTEM
25
26dnl Check our C compiler
27AC_CHECK_TOOL_PREFIX
28AC_PROG_CC
29AC_ISC_POSIX
30
31dnl Check for other programs
32AC_PROG_CXX
33AC_PROG_CPP
34AC_PROG_RANLIB
35AC_CHECK_TOOL(AR,ar,"ar")
36
37dnl Checks for sockets
38SAVE_LIBS="$LIBS"
39LIBS=""
40AC_SEARCH_LIBS(gethostbyname,nsl)
41AC_SEARCH_LIBS(connect,socket)
42SOCKETLIBS="$LIBS"
43AC_SUBST(SOCKETLIBS)
44LIBS="$SAVE_LIBS"
45
46dnl Checks for pthread -- disabled due to glibc bugs jgg
47dnl AC_CHECK_LIB(pthread, pthread_create,[AC_DEFINE(HAVE_PTHREAD) PTHREADLIB="-lpthread"])
48AC_SUBST(PTHREADLIB)
49dnl if test "$PTHREADLIB" != "-lpthread"; then
50dnl AC_MSG_ERROR(failed: I need posix threads, pthread)
51dnl fi
52
53dnl Check for DB2
54AC_CHECK_HEADER(db2/db.h,
55 [AC_CHECK_LIB(db2,db_open,
56 [AC_DEFINE(HAVE_DB2) DB2LIB="-ldb2"])])
57AC_SUBST(DB2LIB)
58
59dnl Converts the ARCH to be something singular for this general CPU family
60dnl This is often the dpkg architecture string.
61AC_MSG_CHECKING(system architecture)
62archset="`awk \" ! /^#|^\\\$/ { if(match(\\\"$target_cpu\\\",\\\"^\\\"\\\$1\\\"\\\$\\\")) {print \\\$2; exit}}\" $srcdir/buildlib/archtable`"
63if test "x$archset" = "x"; then
64 AC_MSG_ERROR(failed: use --host=)
65fi
66AC_MSG_RESULT($archset)
67AC_DEFINE_UNQUOTED(COMMON_CPU,"$archset")
68
69dnl Get a common name for the host OS - this is primarily only for HURD and is
70dnl non fatal if it fails
71AC_MSG_CHECKING(system OS)
72osset="`awk \" ! /^#|^\\\$/ {if (match(\\\"$target_vendor-$target_os\\\",\\\$1)) {print \\\$2; exit}}\" $srcdir/buildlib/ostable`"
73AC_MSG_RESULT($osset)
74AC_DEFINE_UNQUOTED(COMMON_OS,"$osset")
75
76dnl We use C99 types if at all possible
77AC_CACHE_CHECK([for C99 integer types],c9x_ints,[
78 AC_TRY_COMPILE([#include <inttypes.h>],
79 [uint8_t Foo1;uint16_t Foo2;uint32_t Foo3;],
80 c9x_ints=yes,c9x_ints=no)])
81
82dnl Single Unix Spec statvfs
83AC_CHECK_FUNC(statvfs,[HAVE_STATVFS=yes])
84AC_SUBST(HAVE_STATVFS)
85
86dnl Arg, linux and bsd put their statfs function in different places
87if test x"$HAVE_STATVFS" != x"yes"; then
88 AC_EGREP_HEADER(statfs,sys/vfs.h,[AC_DEFINE(HAVE_VFS_H)],[
89 AC_EGREP_HEADER(statfs,sys/mount.h,[AC_DEFINE(HAVE_MOUNT_H)],[AC_MSG_ERROR(failed: Need statvfs)])
90 ])
91fi
92
93dnl Check the sizes etc. of the architecture
94dnl This is stupid, it should just use the AC macros like it does below
95dnl Cross compilers can either get a real C library or preload the cache
96dnl with their size values.
97changequote(,)
98archline="`awk \" ! /^#|^\\\$/ {if (match(\\\"$archset\\\",\\\$1)) {print; exit}}\" $srcdir/buildlib/sizetable | cut -f 2- -d ' '`"
99if test "x$archline" != "x"; then
100 changequote([,])
101 set $archline
102 if test "$1" = "little"; then
103 ac_cv_c_bigendian=no
104 else
105 ac_cv_c_bigendian=yes
106 fi
107 size_char=$2
108 size_int=$3
109 size_short=$4
110 size_long=$5
111fi
112
113dnl I wonder what AC_C_BIGENDIAN does if you cross compile...
114dnl This is probably bogus, as above we only care if we have to build our own
115dnl C9x types.
116if test "$cross_compiling" = "yes" -a "x$archline" = "x"; then
117 AC_MSG_ERROR(When cross compiling, architecture must be present in sizetable)
118fi
119AC_C_BIGENDIAN
120
121dnl We do not need this if we have inttypes!
122HAVE_C9X=yes
123if test x"$c9x_ints" = x"no"; then
124 AC_CHECK_SIZEOF(char,$size_char)
125 AC_CHECK_SIZEOF(int,$size_int)
126 AC_CHECK_SIZEOF(short,$size_short)
127 AC_CHECK_SIZEOF(long,$size_long)
128
129 HAVE_C9X=
130 AC_SUBST(HAVE_C9X)
131fi
132
133dnl HP-UX sux..
134AC_MSG_CHECKING(for missing socklen_t)
135AC_EGREP_HEADER(socklen_t, sys/socket.h,[AC_MSG_RESULT(no)],[
136 AC_DEFINE(NEED_SOCKLEN_T_DEFINE)
137 NEED_SOCKLEN_T_DEFINE=yes
138 AC_MSG_RESULT(missing.)])
139AC_SUBST(NEED_SOCKLEN_T_DEFINE)
140
141dnl HP-UX needs -d_XOPEN_SOURCE_EXTENDED for h_errno
142AC_MSG_CHECKING(for h_errno)
143AC_EGREP_HEADER(h_errno, netdb.h, [AC_MSG_RESULT(normal)],
144 [CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
145 AC_EGREP_HEADER(h_errno, netdb.h,
146 [AC_MSG_RESULT(needs _XOPEN_SOURCE_EXTENDED)],
147 [AC_MSG_ERROR("not found.")])
148 ])
149
150dnl Check for debiandoc
151AC_PATH_PROG(DEBIANDOC_HTML,debiandoc2html)
152AC_PATH_PROG(DEBIANDOC_TEXT,debiandoc2text)
153
154dnl Check for the SGML tools needed to build man pages
155AC_PATH_PROG(NSGMLS,nsgmls)
156AC_PATH_PROG(SGMLSPL,sgmlspl)
157
158dnl Check for YODL
159dnl AC_CHECK_PROG(YODL_MAN,yodl2man,"yes","")
160
161ah_NUM_PROCS
162
163AC_OUTPUT(environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in,make -s dirs)