]> git.saurik.com Git - apt.git/blobdiff - configure.in
Restore /usr/share/bug/apt
[apt.git] / configure.in
index a5be451b8c81c37b258c5c428e90886e1209ce51..4ad37983cc9dc3af49867ae4da25efac76ce2867 100644 (file)
@@ -1,3 +1,4 @@
+ad
 dnl Process this file with autoconf to produce a configure script.
 dnl The ONLY thing this is used for is to configure for different
 dnl linux architectures and configurations, it is not used to make the
 dnl Process this file with autoconf to produce a configure script.
 dnl The ONLY thing this is used for is to configure for different
 dnl linux architectures and configurations, it is not used to make the
@@ -8,87 +9,195 @@ dnl some of the more populare bsd/sysv ones (like select). You'll also
 dnl need a C++ compiler that is semi-standard conformant, exceptions are 
 dnl not used but STL is.
 
 dnl need a C++ compiler that is semi-standard conformant, exceptions are 
 dnl not used but STL is.
 
+dnl 'make -f Makefile startup' will generate the configure file from 
+dnl configure.in correctly and can be run at any time
+
+AC_PREREQ(2.50)
 AC_INIT(configure.in)
 AC_CONFIG_AUX_DIR(buildlib)
 AC_INIT(configure.in)
 AC_CONFIG_AUX_DIR(buildlib)
-AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in)
+AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in)
+
+dnl -- SET THIS TO THE RELEASE VERSION --
+AC_DEFINE_UNQUOTED(VERSION,"0.5.29")
+PACKAGE="apt"
+AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE")
+AC_SUBST(PACKAGE)
 
 
-dnl Tom's host stuff
-tl_CHECK_TOOL_PREFIX   dnl Initial guess
+dnl Check the archs, we want the target type.
+AC_CANONICAL_SYSTEM
 
 dnl Check our C compiler
 
 dnl Check our C compiler
-tl_PROG_CC
+AC_CHECK_TOOL_PREFIX
+AC_PROG_CC
 AC_ISC_POSIX
 
 AC_ISC_POSIX
 
-dnl Check the host arch (build+target not needed... yet)
-tl_CANONICAL_HOST
-tl_CHECK_TOOL_PREFIX   dnl recheck, in case the initial guess was wrong
-
 dnl Check for other programs
 dnl Check for other programs
-tl_PROG_CXX
-AC_LANG_CPLUSPLUS
-
-dnl Checks for X11
-AC_PATH_X
-AC_PATH_XTRA
-AC_SUBST(X11LIB)
-X11LIB=
-if test "$no_x" != "yes"; then
-  X11LIB="-lX11"
-  AC_DEFINE(HAVE_X11)
-  dnl Checks for Slang
-  AC_CHECK_LIB(Xpm, XpmLibraryVersion,[AC_DEFINE(HAVE_LIBXPM) XPMLIB="-lXpm"],,$X_LIBS $X_PRE_LIBS $X11LIB $X_EXTRA_LIBS)
-  AC_SUBST(XPMLIB)
-  if test "$XPMLIB" != "-lXpm"; then
-     AC_MSG_ERROR(failed: I need xpm if you are building for X)
-  fi
-fi
+AC_PROG_CXX
+AC_PROG_CPP
+AC_PROG_RANLIB
+AC_CHECK_TOOL(AR,ar,"ar")
 
 
-dnl Checks for Slang
-AC_CHECK_LIB(slang, init_SLang,[AC_DEFINE(HAVE_LIBSLANG) SLANGLIB="-lslang"])
-AC_SUBST(SLANGLIB)
+dnl Checks for sockets
+SAVE_LIBS="$LIBS"
+LIBS=""
+AC_SEARCH_LIBS(gethostbyname,nsl)
+AC_SEARCH_LIBS(connect,socket)
+SOCKETLIBS="$LIBS"
+AC_SUBST(SOCKETLIBS)
+LIBS="$SAVE_LIBS"
+dnl Checks for pthread -- disabled due to glibc bugs jgg
+dnl AC_CHECK_LIB(pthread, pthread_create,[AC_DEFINE(HAVE_PTHREAD) PTHREADLIB="-lpthread"])
+AC_SUBST(PTHREADLIB)
+dnl if test "$PTHREADLIB" != "-lpthread"; then
+dnl   AC_MSG_ERROR(failed: I need posix threads, pthread)
+dnl fi
 
 
-dnl Checks for GPM
-AC_ARG_WITH(gpm,[  --without-gpm                 do not use GPM mouse support])
-if test "$with_gpm" != "no"; then
-  AC_CHECK_LIB(gpm, Gpm_Open,[AC_DEFINE(HAVE_LIBGPM) GPMLIB="-lgpm"])
-  AC_SUBST(GPMLIB)
-fi
+dnl Check for BDB
+saveLIBS="$LIBS"
+LIBS="$LIBS -ldb"
+
+AC_CHECK_HEADER(db.h,
+     [AC_MSG_CHECKING(if we can link against BerkeleyDB)
+      AC_LINK_IFELSE(
+      [AC_LANG_PROGRAM(
+       [#include <db.h>],
+       [int r, s, t; db_version(&r, &s, &t);]
+      )],
+      [AC_DEFINE(HAVE_BDB)
+       BDBLIB="-ldb"
+       AC_MSG_RESULT(yes)],
+      [BDBLIB=""
+       AC_MSG_RESULT(no)]
+    )]
+)
 
 
-dnl Converts the ARCH to be the same as dpkg
+LIBS="$saveLIBS"
+
+AC_SUBST(BDBLIB)
+
+dnl Converts the ARCH to be something singular for this general CPU family
+dnl This is often the dpkg architecture string.
 AC_MSG_CHECKING(system architecture)
 AC_MSG_CHECKING(system architecture)
-archset="`awk '$1 == "'$host_cpu'" { print $2 }' $srcdir/buildlib/archtable`"
+archset="`awk \" ! /^#|^\\\$/ { if(match(\\\"$target_cpu\\\",\\\"^\\\"\\\$1\\\"\\\$\\\")) {print \\\$2; exit}}\" $srcdir/buildlib/archtable`"
 if test "x$archset" = "x"; then
 if test "x$archset" = "x"; then
-  AC_MSG_ERROR(failed: use --host=)
+  AC_MSG_ERROR(failed: use --host= or check buildlib/archtable)
 fi
 AC_MSG_RESULT($archset)
 fi
 AC_MSG_RESULT($archset)
-AC_DEFINE_UNQUOTED(PKG_DEB_ARCH,"$archset")
+AC_DEFINE_UNQUOTED(COMMON_CPU,"$archset")
+
+dnl Get a common name for the host OS - this is primarily only for HURD and is
+dnl non fatal if it fails
+AC_MSG_CHECKING(system OS)
+osset="`awk \" ! /^#|^\\\$/ {if (match(\\\"$target_vendor-$target_os\\\",\\\$1)) {print \\\$2; exit}}\" $srcdir/buildlib/ostable`"
+AC_MSG_RESULT($osset)
+AC_DEFINE_UNQUOTED(COMMON_OS,"$osset")
+
+dnl We use C99 types if at all possible
+AC_CACHE_CHECK([for C99 integer types],c9x_ints,[
+    AC_TRY_COMPILE([#include <inttypes.h>],
+                   [uint8_t Foo1;uint16_t Foo2;uint32_t Foo3;],
+                  c9x_ints=yes,c9x_ints=no)])
+
+dnl Single Unix Spec statvfs
+AC_CHECK_FUNC(statvfs,[HAVE_STATVFS=yes])
+AC_SUBST(HAVE_STATVFS)
+
+dnl Arg, linux and bsd put their statfs function in different places
+if test x"$HAVE_STATVFS" != x"yes"; then
+   AC_EGREP_HEADER(statfs,sys/vfs.h,[AC_DEFINE(HAVE_VFS_H)],[
+   AC_EGREP_HEADER(statfs,sys/mount.h,[AC_DEFINE(HAVE_MOUNT_H)],[AC_MSG_ERROR(failed: Need statvfs)])
+   ])
+fi
+
+dnl We should use the real timegm function if we have it.
+AC_CHECK_FUNC(timegm,AC_DEFINE(HAVE_TIMEGM))
+AC_SUBST(HAVE_TIMEGM)
 
 dnl Check the sizes etc. of the architecture
 
 dnl Check the sizes etc. of the architecture
+dnl This is stupid, it should just use the AC macros like it does below
+dnl Cross compilers can either get a real C library or preload the cache
+dnl with their size values.
 changequote(,)
 changequote(,)
-if archline="`sed -ne 's/^'$archset':[         ]\+\(.*\)/\1/gp' $srcdir/buildlib/sizetable`"; then
-changequote([,])
-  set $archline
-  if test "$1" = "little"; then
-    ac_cv_c_bigendian=no
-  else
-    ac_cv_c_bigendian=yes
-  fi
-  size_char=$2
-  size_int=$3
-  size_short=$4
-  size_long=$5
+archline="`awk \" ! /^#|^\\\$/ {if (match(\\\"$archset\\\",\\\$1)) {print; exit}}\" $srcdir/buildlib/sizetable | cut -f 2- -d ' '`"
+if test "x$archline" != "x"; then
+   changequote([,])
+   set $archline
+   if test "$1" = "little"; then
+      ac_cv_c_bigendian=no
+   else
+      ac_cv_c_bigendian=yes
+   fi
+   size_char=$2
+   size_int=$3
+   size_short=$4
+   size_long=$5
 fi
 fi
-if test "$cross_compiling" = "yes" -a "$archline" = ""; then
+
+dnl I wonder what AC_C_BIGENDIAN does if you cross compile...
+dnl This is probably bogus, as above we only care if we have to build our own
+dnl C9x types.
+if test "$cross_compiling" = "yes" -a "x$archline" = "x"; then
   AC_MSG_ERROR(When cross compiling, architecture must be present in sizetable)
 fi
 AC_C_BIGENDIAN
   AC_MSG_ERROR(When cross compiling, architecture must be present in sizetable)
 fi
 AC_C_BIGENDIAN
-AC_CHECK_SIZEOF(char,$size_char)
-AC_CHECK_SIZEOF(int,$size_int)
-AC_CHECK_SIZEOF(short,$size_short)
-AC_CHECK_SIZEOF(long,$size_long)
+   
+dnl We do not need this if we have inttypes!
+HAVE_C9X=yes
+if test x"$c9x_ints" = x"no"; then
+   AC_CHECK_SIZEOF(char,$size_char)
+   AC_CHECK_SIZEOF(int,$size_int)
+   AC_CHECK_SIZEOF(short,$size_short)
+   AC_CHECK_SIZEOF(long,$size_long)
+  
+   HAVE_C9X=
+   AC_SUBST(HAVE_C9X)
+fi
+
+dnl HP-UX sux..
+AC_MSG_CHECKING(for missing socklen_t)
+AC_EGREP_HEADER(socklen_t, sys/socket.h,[AC_MSG_RESULT(no)],[
+       AC_DEFINE(NEED_SOCKLEN_T_DEFINE)
+       NEED_SOCKLEN_T_DEFINE=yes
+        AC_MSG_RESULT(missing.)])
+AC_SUBST(NEED_SOCKLEN_T_DEFINE)
+
+dnl HP-UX needs -d_XOPEN_SOURCE_EXTENDED for h_errno
+AC_MSG_CHECKING(for h_errno)
+AC_EGREP_HEADER(h_errno, netdb.h, [AC_MSG_RESULT(normal)],
+   [CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
+    AC_EGREP_HEADER(h_errno, netdb.h, 
+       [AC_MSG_RESULT(needs _XOPEN_SOURCE_EXTENDED)],
+       [AC_MSG_ERROR("not found.")])
+   ])
 
 dnl Check for debiandoc
 
 dnl Check for debiandoc
-AC_CHECK_PROG(DEBIANDOC_HTML,debiandoc2html,"yes","")
-AC_CHECK_PROG(DEBIANDOC_TEXT,debiandoc2text,"yes","")
+AC_PATH_PROG(DEBIANDOC_HTML,debiandoc2html)
+AC_PATH_PROG(DEBIANDOC_TEXT,debiandoc2text)
+
+dnl Check for the SGML tools needed to build man pages
+AC_PATH_PROG(DOCBOOK2MAN,docbook2man)
+
+dnl Check for the XML tools needed to build man pages
+AC_PATH_PROG(XMLTO,xmlto)
+
+dnl Check for YODL
+dnl AC_CHECK_PROG(YODL_MAN,yodl2man,"yes","")
+
+ah_NUM_PROCS
+rc_GLIBC_VER
+rc_LIBSTDCPP_VER
+ah_GCC3DEP
+
+dnl It used to be that the user could select translations and that could get
+dnl passed to the makefiles, but now that can only work if you use special
+dnl gettext approved makefiles, so this feature is unsupported by this.
+ALL_LINGUAS="da de en_GB es fr hu it nl no_NO pl pt_BR ru sv zh_TW"
+AM_GNU_GETTEXT(external)
+if test x"$USE_NLS" = "xyes"; then
+   AC_DEFINE(USE_NLS)
+fi
+AC_SUBST(USE_NLS)
+AC_PATH_PROG(BASH, bash)
 
 
-AC_OUTPUT(environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in,make dirs)
+AC_OUTPUT(environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in,make -s dirs)