2 AC_INIT(rpm, 4.8.0-beta1, rpm-maint@lists.rpm.org)
4 AC_CONFIG_SRCDIR([rpmqv.c])
5 AC_CONFIG_HEADERS([config.h])
6 AC_CONFIG_MACRO_DIR([m4])
8 AM_INIT_AUTOMAKE([1.10 foreign tar-ustar dist-bzip2 subdir-objects nostdinc])
10 AC_CONFIG_TESTDIR(tests)
12 AC_USE_SYSTEM_EXTENSIONS
16 dnl Checks for programs.
29 if test "$ac_cv_prog_cc_c99" = no; then
30 AC_MSG_ERROR([ISO C99 capable compiler required])
35 if test "$GCC" = yes; then
36 CFLAGS="$CFLAGS -fPIC -DPIC -D_REENTRANT -Wall -Wpointer-arith -Wmissing-prototypes -Wno-char-subscripts"
37 # XXX disabled for now due to noise from NSPR headers
38 # CFLAGS="$CFLAGS -Wstrict-prototypes"
39 cflags_to_try="-fno-strict-aliasing -fstack-protector -Wempty-body"
40 AC_MSG_CHECKING([supported compiler flags])
43 for flag in $cflags_to_try; do
44 CFLAGS="$CFLAGS $flag"
45 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[return 0;]])],[
47 RPMCFLAGS="$RPMCFLAGS $flag"
51 CFLAGS="$CFLAGS $RPMCFLAGS"
58 dnl look for POSIX chmod attributes
60 AC_MSG_CHECKING(POSIX chmod)
62 chmod 744 foo.chmodtest
63 chmod +X foo.chmodtest 2>/dev/null
64 a=`ls -l foo.chmodtest | awk '{print substr($1,1,10)}'`
66 if test "$a" = "-rwxr-xr-x"; then
68 FIXPERMS=a+rX,u+w,g-w,o-w
70 AC_MSG_RESULT(no (tell your OS vendor about GNU fileutils))
71 FIXPERMS=a+r,u+w,g-w,o-w
78 AC_CHECK_TOOL(AR, ar, :)
81 dnl use defaults if cross-compiling, otherwise use the default path.
83 if test "$cross_compiling" = "yes"; then
90 dnl Find some common programs
92 AC_PATH_PROG(__BZIP2, bzip2, /usr/bin/bzip2, $MYPATH)
93 AC_PATH_PROG(__CAT, cat, /bin/cat, $MYPATH)
94 AC_PATH_PROG(__CHGRP, chgrp, /bin/chgrp, $MYPATH)
95 AC_PATH_PROG(__CHMOD, chmod, /bin/chmod, $MYPATH)
96 AC_PATH_PROG(__CHOWN, chown, /bin/chown, $MYPATH)
97 AC_PATH_PROG(__CP, cp, /bin/cp, $MYPATH)
98 AC_PATH_PROG(__CPIO, cpio, /bin/cpio, $MYPATH)
99 AC_PATH_PROG(__CURL, curl, /usr/bin/curl, $MYPATH)
100 AC_PATH_PROG(__FILE, file, /usr/bin/file, $MYPATH)
101 AC_PATH_PROG(__GPG, gpg, /usr/bin/gpg, $MYPATH)
102 AC_PATH_PROG(__GREP, grep, /bin/grep, $MYPATH)
103 AC_PATH_PROG(__GZIP, gzip, /bin/gzip, $MYPATH)
104 AC_PATH_PROG(__UNZIP, unzip, /usr/bin/unzip, $MYPATH)
105 AC_PATH_PROG(__ID, id, /usr/bin/id, $MYPATH)
106 AC_PATH_PROG(__INSTALL, install, /usr/bin/install, $MYPATH)
107 AC_PATH_PROG(__XZ, xz, /usr/bin/xz, $MYPATH)
108 AC_PATH_PROG(__MAKE, make, /usr/bin/make, $MYPATH)
109 AC_PATH_PROG(__MKDIR, mkdir, /bin/mkdir, $MYPATH)
110 AC_PATH_PROG(__MV, mv, /bin/mv, $MYPATH)
111 AC_PATH_PROG(__PATCH, patch, /usr/bin/patch, $MYPATH)
112 AC_MSG_CHECKING(old version of patch)
113 PATCHVERSION=`patch --version 2>&1`
115 if test "$PATCHVERSION" = "Patch version 2.1"; then
116 AC_DEFINE(HAVE_OLDPATCH_21, 1,
117 [Define if the patch call you'll be using is 2.1 or older])
118 AC_MSG_RESULT(patch older then 2.2 found)
120 AC_MSG_RESULT(patch later then 2.2 found)
123 AC_PATH_PROG(__PERL, perl, /usr/bin/perl, $MYPATH)
124 AC_PATH_PROG(__PGP, pgp, /usr/bin/pgp, $MYPATH)
125 AC_PATH_PROG(__PYTHON, python, /usr/bin/python, $MYPATH)
126 AC_PATH_PROG(__RM, rm, /bin/rm, $MYPATH)
127 AC_PATH_PROG(__RSH, rsh, /usr/bin/rsh, $MYPATH)
128 AC_PATH_PROG(__SED, sed, /bin/sed, $MYPATH)
129 AC_PATH_PROG(__SSH, ssh, /usr/bin/ssh, $MYPATH)
130 AC_PATH_PROG(__TAR, tar, /bin/tar, $MYPATH)
132 AC_PATH_PROG(__LD, ld, /usr/bin/ld, $MYPATH)
133 AC_PATH_PROG(__NM, nm, /usr/bin/nm, $MYPATH)
134 AC_PATH_PROG(__OBJCOPY, objcopy, /usr/bin/objcopy, $MYPATH)
135 AC_PATH_PROG(__OBJDUMP, objdump, /usr/bin/objdump, $MYPATH)
136 AC_PATH_PROG(__STRIP, strip, /usr/bin/strip, $MYPATH)
137 AC_PATH_PROG(__FAKECHROOT, fakechroot, /usr/bin/fakechroot, $MYPATH)
139 dnl see if we have a mkdir that supports `-p' for rpmbuild's purposes
141 if ! echo $MKDIR_P | grep -q mkdir; then
142 __MKDIR_P="`echo ${prefix}/lib/rpm/mkinstalldirs`"
146 AC_DEFINE_UNQUOTED(__MKDIR_P, "${__MKDIR_P}",
147 [A full path to a program, possibly with arguments, that will create a
148 directory and all necessary parent directories, ala 'mkdir -p'])
152 # Check for zlib library.
157 AC_CHECK_HEADERS([zlib.h],[
158 AS_IF([test -z "${WITH_ZLIB_LIB}"],[
159 for zlib in z gz ; do
160 AC_CHECK_LIB(${zlib}, gzread,
161 [WITH_ZLIB_LIB="-l${zlib}"; break])
164 dnl zlib-1.0.4 has not gzseek
165 AC_CHECK_LIB(${zlib}, gzseek, [AC_DEFINE(HAVE_GZSEEK, 1, [Define as 1 if your zlib has gzseek()])])
169 AC_SUBST(WITH_ZLIB_INCLUDE)
170 AC_SUBST(WITH_ZLIB_LIB)
173 # Check for bzip2 library.
175 AC_CHECK_HEADERS([bzlib.h],[
176 AC_CHECK_LIB(bz2, bzread, [WITH_BZ2_LIB=-lbz2],
178 AC_CHECK_LIB(bz2, BZ2_bzread,[
180 AC_DEFINE(HAVE_BZ2_1_0, 1, [Define as 1 if you bzip2 1.0])
184 AC_SUBST(WITH_BZ2_LIB)
187 # Check for lzma library.
189 AC_CHECK_HEADERS([lzma.h],[
190 AC_CHECK_LIB(lzma, lzma_easy_encoder, [WITH_LZMA_LIB=-llzma])
192 AC_SUBST(WITH_LZMA_LIB)
197 dnl Check for features
200 dnl Checks for libraries.
202 AC_CHECK_FUNC(gethostname, [], [
203 AC_CHECK_LIB(nsl, gethostname)
206 AC_CHECK_HEADERS(poll.h)
208 AC_CHECK_HEADERS(pthread.h)
210 AC_CHECK_LIB(pthread, pthread_mutex_trylock, [], [
211 dnl OSF 5.0 has the the symbols prefixed with __ in libpthread.
212 AC_CHECK_LIB(pthread, __pthread_mutex_trylock, [], [
213 AC_CHECK_LIB(thread, mutex_lock)
217 AC_SEARCH_LIBS(aio_read, [c rt aio posix4])
219 AC_CHECK_FUNCS(vsnprintf snprintf)
221 dnl Temporary hack for MiNT. Some functions (writev, snprintf) are
222 dnl not in the libc but in libport (for political reasons). This check
223 dnl can hopefully be removed soon. Please use the default action
224 dnl for this macro (not LIBS=...), otherwise the check for dbopen
226 AC_CHECK_LIB(port, writev)
229 # Check for libelf library. Prefer external, otherwise none.
232 AC_CHECK_HEADER([libelf.h])
233 AC_CHECK_HEADERS([gelf.h], [
234 AC_CHECK_LIB(elf, gelf_getvernaux, [
235 AC_DEFINE(HAVE_LIBELF, 1, [Define to 1 if you have the 'elf' library (-lelf).])
236 WITH_LIBELF_LIB="-lelf"
240 AC_SUBST(WITH_LIBELF_INCLUDE)
241 AC_SUBST(WITH_LIBELF_LIB)
242 AM_CONDITIONAL(LIBELF,[test "$WITH_LIBELF" = yes])
244 AC_CHECK_HEADERS([dwarf.h], [
247 AM_CONDITIONAL(LIBDWARF,[test "$WITH_LIBDWARF" = yes])
250 # Check for NSS library.
251 # We need nss.h from NSS which needs nspr.h. Unfortunately both glibc and NSS
252 # have a header named nss.h... so make extra check for NSS's sechash.h
253 # which we use too and hopefully is slightly more unique to NSS.
256 AC_CHECK_HEADERS([nspr.h nss.h sechash.h], [], [
257 AC_MSG_ERROR([missing required NSPR / NSS header])
259 AC_CHECK_LIB(nss3, NSS_NoDB_Init, [
262 AC_MSG_ERROR([missing required NSS library 'nss3'])
264 AC_SUBST(WITH_NSS_INCLUDE)
265 AC_SUBST(WITH_NSS_LIB)
268 # Check for magic library.
272 AC_CHECK_HEADER([magic.h], [
273 AC_CHECK_LIB(magic, magic_open, [
275 WITH_MAGIC_LIB="-lmagic"
277 AC_MSG_ERROR([missing required library 'libmagic'])
280 AC_MSG_ERROR([missing required header magic.h])
283 AC_SUBST(WITH_MAGIC_INCLUDE)
284 AC_SUBST(WITH_MAGIC_LIB)
287 # Check for popt library.
291 AC_CHECK_HEADER([popt.h], [
292 AC_CHECK_LIB(popt, poptGetContext, [
294 WITH_POPT_LIB="-lpopt"
296 AC_MSG_ERROR([missing required library popt])
299 AC_MSG_ERROR([missing required header popt.h])
302 AC_SUBST(WITH_POPT_INCLUDE)
303 AC_SUBST(WITH_POPT_LIB)
306 # Process --with/without-external-db
307 AC_ARG_WITH(external_db, [AS_HELP_STRING([--with-external-db],[build against an external Berkeley db])],
308 [case "$with_external_db" in
310 *) AC_MSG_ERROR([invalid argument to --with-external-db]) ;;
312 [with_external_db=no])
314 case "$with_external_db" in
316 AC_CHECK_HEADERS([db.h],[
317 AC_CHECK_TYPE([db_threadid_t],[],
318 [AC_MSG_WARN([missing type db_threadid_t])],
321 AC_CHECK_LIB([db],[db_create],[],[
322 AC_MSG_ERROR([missing db_create in libdb])
324 AC_CHECK_LIB([db],[db_env_create],[],[
325 AC_MSG_ERROR([missing db_env_create in libdb])
327 AC_CHECK_LIB([db],[db_env_set_func_fsync],[],[
328 AC_MSG_ERROR([missing db_env_set_func_fsync in libdb])
330 AC_CHECK_LIB([db],[db_strerror],[],[
331 AC_MSG_ERROR([missing db_strerror in libdb])
336 AC_MSG_ERROR([missing required header db.h])
339 * ) # Fall back to internal db if available
340 if [ test -x db/dist/configure ]; then
341 AC_DEFINE(HAVE_DB_H, 1, [Define if you have the <db3/db.h> header file])
343 AC_MSG_ERROR([internal Berkeley DB directory not present, see INSTALL])
348 AC_SUBST([WITH_DB_LIB])
350 AM_GNU_GETTEXT_VERSION([0.16.1])
351 AM_GNU_GETTEXT([external])
353 dnl Checks for header files we can live without.
359 AC_CHECK_HEADERS(locale.h)
360 AC_CHECK_HEADERS(limits.h)
361 AC_CHECK_HEADERS(fcntl.h getopt.h memory.h netdb.h)
363 AC_CHECK_HEADERS(sys/ipc.h)
364 AC_CHECK_HEADERS(sys/mman.h sys/utsname.h sys/wait.h)
366 AC_CHECK_HEADERS(mntent.h sys/mnttab.h sys/systemcfg.h)
367 AC_CHECK_HEADERS(sys/mount.h sys/mntctl.h sys/param.h sys/vmount.h)
368 AC_CHECK_HEADERS(libio.h)
369 AC_CHECK_HEADERS(mcheck.h)
371 AC_CHECK_HEADERS(glob.h)
373 dnl statfs portability fiddles.
375 dnl We should really emulate/steal sections of the statfs and struct statfs
376 dnl checks from GNU fileutils.
378 AC_MSG_CHECKING(for struct statfs)
381 dnl this is easier than nesting AC_TRY_COMPILEs...
383 found_struct_statfs=no
385 if test X$found_struct_statfs = Xno ; then
386 dnl Solaris 2.6+ wants to use statvfs
387 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
388 #ifdef HAVE_SYS_TYPES_H
389 #include <sys/types.h>
391 #include <sys/statvfs.h> ]], [[struct statvfs sfs;]])],[AC_MSG_RESULT(in sys/statvfs.h)
392 AC_DEFINE(STATFS_IN_SYS_STATVFS, 1,
393 [statfs in <sys/statvfs.h> (for solaris 2.6+ systems)])
394 found_struct_statfs=yes],[])
397 if test X$found_struct_statfs = Xno ; then
398 dnl first try including sys/vfs.h
399 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
400 #ifdef HAVE_SYS_TYPES_H
401 #include <sys/types.h>
403 #include <sys/vfs.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in sys/vfs.h)
404 AC_DEFINE(STATFS_IN_SYS_VFS, 1, [statfs in <sys/vfs.h> (for linux systems)])
405 found_struct_statfs=yes],[])
408 if test X$found_struct_statfs = Xno ; then
409 dnl ...next try including sys/mount.h
410 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
411 #ifdef HAVE_SYS_TYPES_H
412 #include <sys/types.h>
414 #ifdef HAVE_SYS_PARAM_H
415 #include <sys/param.h>
417 #include <sys/mount.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in sys/mount.h)
418 AC_DEFINE(STATFS_IN_SYS_MOUNT, 1, [statfs in <sys/mount.h> (for Digital Unix 4.0D systems)])
419 found_struct_statfs=yes],[])
422 if test X$found_struct_statfs = Xno ; then
423 dnl ...still no joy. Try sys/statfs.h
424 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
425 #ifdef HAVE_SYS_TYPES_H
426 #include <sys/types.h>
428 #include <sys/statfs.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in sys/statfs.h)
429 AC_DEFINE(STATFS_IN_SYS_STATFS, 1, [statfs in <sys/statfs.h> (for Irix 6.4 systems)])
430 found_struct_statfs=yes],[])
433 if test X$found_struct_statfs = Xno ; then
434 dnl ...no luck. Warn the user of impending doom.
435 AC_MSG_WARN(not found)
439 dnl if we found the struct, see if it has the f_bavail member. Some OSes
440 dnl don't, including IRIX 6.5+
442 if test X$found_struct_statfs = Xyes ; then
443 AC_MSG_CHECKING(for f_bavail member in struct statfs)
444 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
445 #ifdef HAVE_SYS_TYPES_H
446 #include <sys/types.h>
448 #if STATFS_IN_SYS_STATVFS
449 # include <sys/statvfs.h>
450 typedef struct statvfs STATFS_t;
452 typedef struct statfs STATFS_t;
453 # if STATFS_IN_SYS_VFS
454 # include <sys/vfs.h>
455 # elif STATFS_IN_SYS_MOUNT
456 # include <sys/mount.h>
457 # elif STATFS_IN_SYS_STATFS
458 # include <sys/statfs.h>
460 #endif ]], [[STATFS_t sfs;
461 sfs.f_bavail = 0;]])],[AC_MSG_RESULT(yes)
462 AC_DEFINE(STATFS_HAS_F_BAVAIL, 1, [Define if struct statfs has the f_bavail member])],[AC_MSG_RESULT(no)
466 if test X$found_struct_statfs = Xyes ; then
468 dnl now check to see if we have the 4-argument variant of statfs()
469 dnl this pretty much requires AC_RUN_IFELSE([AC_LANG_SOURCE([[]])],[],[],[])
471 AC_MSG_CHECKING([if statfs() requires 4 arguments])
472 AC_RUN_IFELSE([AC_LANG_SOURCE([[
473 #ifdef HAVE_SYS_TYPES_H
474 #include <sys/types.h>
476 #ifdef STATFS_IN_SYS_VFS
478 #elif STATFS_IN_SYS_MOUNT
479 #include <sys/mouht.h>
480 #elif STATFS_IN_SYS_STATFS
481 #include <sys/statfs.h>
485 exit (statfs(".", &sfs, sizeof(sfs), 0));
487 ]])],[AC_MSG_RESULT(yes)
488 AC_DEFINE(STAT_STATFS4, 1, [Define if the statfs() call takes 4 arguments])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)
494 dnl look for libc features
496 dnl Check for missing typedefs
502 dnl Checks for library functions.
506 AC_CHECK_FUNCS(mtrace)
507 AC_CHECK_FUNCS(strndup)
508 AC_CHECK_FUNCS(putenv)
510 AC_REPLACE_FUNCS(stpcpy stpncpy)
512 AC_CHECK_FUNCS(__secure_getenv)
515 [mkstemp getcwd basename dirname realpath setenv unsetenv ftok regcomp lchown],
516 [], [AC_MSG_ERROR([function required by rpm])])
518 dnl XXX Glob *is* broken on linux with libc5, solaris and possibly aix when
519 dnl %files gets something like
520 dnl /usr/*/locale/*/LC_MESSAGES/*.mo
521 dnl (Note: more than one asterisk in glob pattern.)
523 dnl XXX Glob is "fixed" in glibc-2.3.3-61, but the cost is that
524 dnl dangling symlinks are no longer globbed. Always use the internal glob.
525 AC_DEFINE(USE_GNU_GLOB, 1, [Use the included glob.c?])
529 dnl check if python is requested
530 AC_ARG_ENABLE(python, [AS_HELP_STRING([--enable-python],[build rpm python bindings])],
531 [case "$enable_python" in
533 *) AC_MSG_ERROR([invalid argument to --enable-python])
538 AS_IF([test "$enable_python" = yes],[
539 AM_PATH_PYTHON([2.6],[
540 WITH_PYTHON_INCLUDE=`${PYTHON} -c 'from distutils.sysconfig import *; import sys; sys.stdout.write(get_python_inc())'`
541 WITH_PYTHON_SUBPACKAGE=1
542 save_CPPFLAGS="$CPPFLAGS"
543 CPPFLAGS="$CPPFLAGS -I$WITH_PYTHON_INCLUDE"
544 AC_CHECK_HEADER([Python.h],[],
545 [AC_MSG_ERROR([missing Python.h])
547 CPPFLAGS="$save_CPPFLAGS"
549 AC_SEARCH_LIBS([Py_Main],[python${PYTHON_VERSION} python],[
550 WITH_PYTHON_LIB="$ac_res"
551 ],[AC_MSG_ERROR([missing python library])
558 WITH_PYTHON_SUBPACKAGE=0
561 AC_SUBST(WITH_PYTHON_INCLUDE)
562 AC_SUBST(WITH_PYTHON_LIB)
564 AM_CONDITIONAL(PYTHON,[test "$WITH_PYTHON_SUBPACKAGE" = 1])
566 AC_PATH_PROG(DOXYGEN, doxygen, no)
568 dnl Only build internal API + source hacking docs on request
570 AC_ARG_WITH(hackingdocs, [AS_HELP_STRING([--with-hackingdocs],[build rpm hacking docs])],,[with_hackingdocs=no])
572 case "$with_hackingdocs" in
574 AS_IF([test "$DOXYGEN" = no],[with_hackingdocs=no],[with_hackingdocs=no])
577 AS_IF([test "$DOXYGEN" = no],
578 [AC_MSG_ERROR([rpm hacking docs eeds doxygen in PATH])])
581 AC_CHECK_PROG(HAVE_DOT,[dot],[YES],[NO])
584 AC_ARG_WITH(selinux, [AS_HELP_STRING([--with-selinux],[build with selinux support])],
585 [case "$with_selinux" in
587 *) AC_MSG_ERROR([invalid argument to --with-selinux])
592 AS_IF([test "$with_selinux" = yes],[
593 AC_CHECK_HEADER([selinux/selinux.h],[
594 AC_CHECK_LIB(selinux,[is_selinux_enabled],[with_selinux=yes],[
595 AC_MSG_ERROR([--with-selinux given, but libselinux not found])])
597 AC_MSG_ERROR([--with-selinux given, but selinux/selinux.h not found])
601 AS_IF([test "$with_selinux" = yes],[
602 AC_DEFINE(WITH_SELINUX, 1, [Build with selinux support?])
603 WITH_SELINUX_LIB="-lselinux"
605 AC_SUBST(WITH_SELINUX_LIB)
606 AM_CONDITIONAL(SELINUX,[test "$with_selinux" = yes])
610 AC_ARG_WITH(cap, [AS_HELP_STRING([--with-cap],[build with capability support])],
613 *) AC_MSG_ERROR([invalid argument to --with-cap])
618 AS_IF([test "$with_cap" = yes],[
619 AC_CHECK_HEADER([sys/capability.h],[
620 AC_CHECK_LIB(cap,[cap_get_file], [
623 AC_CHECK_LIB(cap,[cap_compare], [
624 AC_DEFINE(HAVE_CAP_COMPARE, 1, [Have cap_compare function?])
628 AC_MSG_ERROR([--with-cap given, but libcap not found])])
630 AC_MSG_ERROR([--with-cap given, but sys/capability.h not found])
634 AS_IF([test "$with_cap" = yes],[
635 AC_DEFINE(WITH_CAP, 1, [Build with capability support?])
638 AC_SUBST(WITH_CAP_LIB)
639 AM_CONDITIONAL(CAP,[test "$with_cap" = yes])
642 AC_ARG_WITH(acl, [AS_HELP_STRING([--with-acl],[build with acl support])],
645 *) AC_MSG_ERROR([invalid argument to --with-acl])
650 AS_IF([test "$with_acl" = yes],[
651 dnl verification uses non-portable acl_equiv_mode()
652 AC_CHECK_HEADER([acl/libacl.h],[
653 AC_CHECK_LIB(acl,[acl_equiv_mode],[with_acl=yes],[
654 AC_MSG_ERROR([--with-acl given, but libacl not found or not suitable])])
656 AC_MSG_ERROR([--with-acl given, but acl/libacl.h not found])
660 AS_IF([test "$with_acl" = yes],[
661 AC_DEFINE(WITH_ACL, 1, [Build with acl support?])
664 AC_SUBST(WITH_ACL_LIB)
665 AM_CONDITIONAL(ACL,[test "$with_acl" = yes])
669 AC_ARG_WITH(lua, [AS_HELP_STRING([--with-lua],[build with lua support])],,[with_lua=yes])
670 AS_IF([test "$with_lua" = yes],[
671 AC_CHECK_HEADER([lua.h],[
672 AC_CHECK_LIB(lua,[luaL_openlibs],[with_lua=yes],[
673 AC_MSG_ERROR([--with-lua given, but liblua not found])
677 AC_MSG_ERROR([--with-lua given, but lua.h not found])
681 AS_IF([test "$with_lua" = yes],[
682 AC_DEFINE(WITH_LUA, 1, [Build with lua support?])
684 WITH_LUA_LIB="-llua -lm"
686 AC_SUBST(WITH_LUA_LIB)
687 AC_SUBST(WITH_LUA_INCLUDE)
688 AM_CONDITIONAL(WITH_LUAEXT,[test "$with_lua" = yes])
691 AC_ARG_WITH(dmalloc, [AS_HELP_STRING([--with-dmalloc],[build with dmalloc debugging support])])
692 if test "$with_dmalloc" = yes ; then
693 AC_DEFINE(DMALLOC, 1, [Build with dmalloc support?])
694 LIBS="$LIBS -ldmalloc"
697 AC_CHECK_FUNCS(setlocale)
699 AC_CHECK_FUNCS(getpassphrase)
701 AC_CHECK_FUNC(getmntent, AC_DEFINE(HAVE_GETMNTENT, 1, [Define if you have the getmntent() function]), [
702 AC_CHECK_FUNC(mntctl, AC_DEFINE(HAVE_MNTCTL, 1, [Define as 1 if you have mntctl() (only aix?)]),[
703 AC_CHECK_FUNC(getmntinfo, AC_DEFINE(HAVE_GETMNTINFO, 1, [Define as 1 if you have getmntinfo() (Mac OS X)]), [
704 AC_CHECK_FUNC(getmntinfo_r, AC_DEFINE(HAVE_GETMNTINFO_R, 1, [Define as 1 if you have getmntinfo_r() (only osf?)]), [
705 AC_CHECK_LIB(c_r, getmntinfo_r, [LIBS="$LIBS -lc_r";
706 AC_DEFINE(HAVE_GETMNTINFO_R, 1, [Define as 1 if you have getmntinfo_r() (only osf?)])], [
707 AC_DEFINE([USE_GETMNTENT], 1, [Defined if getmntent replacement is used])
708 AC_LIBOBJ(getmntent)])
714 if echo "$host_os" | grep sco > /dev/null; then
715 echo "hacking things up for sco"
716 AC_DEFINE(NEED_STRINGS_H, 1, [Define as one if we need to include <strings.h> (along with <string.h>)])
717 AC_DEFINE(HAVE_STRUCT_MNTTAB, 1,
718 [Define as 1 if you have "struct mnttab" (only sco?)])
719 elif echo "$host_os" | grep sunos > /dev/null; then
720 echo "hacking things up for sunos"
721 CFLAGS="$CFLAGS -D__USE_FIXED_PROTOTYPES__"
722 AC_DEFINE(NEED_STRINGS_H, 1, [Define as one if we need to include <strings.h> (along with <string.h>)])
726 # get rid of the 4-th tuple, if config.guess returned "linux-gnu" for host_os
729 if echo "$host_os" | grep '.*-gnulibc1' > /dev/null ; then
730 host_os=`echo "${host_os}" | sed 's/-gnulibc1$//'`
732 if echo "$host_os" | grep '.*-gnueabi' > /dev/null ; then
733 host_os=`echo "${host_os}" | sed 's/-gnueabi$//'`
736 if echo "$host_os" | grep '.*-gnu' > /dev/null ; then
737 host_os=`echo "${host_os}" | sed 's/-gnu$//'`
741 host_os_exact="${host_os}"
742 host_os_major=`echo "${host_os}" | sed 's/\..*$//'`
743 host_os_noversion=`echo "${host_os}" | sed 's/[0-9]*\..*$//'`
746 rm -f ./find-provides
747 if test -f ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov ; then
748 echo "using ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov for automatic provides generation"
749 ln -s ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov ./find-provides
750 elif test -f ${srcdir}/autodeps/${host_os_exact}.prov ; then
751 echo "using ${srcdir}/autodeps/${host_os_exact}.prov for automatic provides generation"
752 ln -s ${srcdir}/autodeps/${host_os_exact}.prov ./find-provides
753 elif test -f ${srcdir}/autodeps/${host_os_major}.prov ; then
754 echo "using ${srcdir}/autodeps/${host_os_major}.prov for automatic provides generation"
755 ln -s ${srcdir}/autodeps/${host_os_major}.prov ./find-provides
756 elif test -f ${srcdir}/autodeps/${host_os_noversion}.prov ; then
757 echo "using ${srcdir}/autodeps/${host_os_noversion}.prov for automatic provides generation"
758 ln -s ${srcdir}/autodeps/${host_os_noversion}.prov ./find-provides
760 echo "*** no default provides information is available for ${host_os_noversion}"
761 ln -s ${srcdir}/autodeps/none ./find-provides
764 rm -f ./find-requires
765 if test -f ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req ; then
766 echo "using ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req for automatic requires generation"
767 ln -s ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req ./find-requires
768 elif test -f ${srcdir}/autodeps/${host_os_exact}.req ; then
769 echo "using ${srcdir}/autodeps/${host_os_exact}.req for automatic requires generation"
770 ln -s ${srcdir}/autodeps/${host_os_exact}.req ./find-requires
771 elif test -f ${srcdir}/autodeps/${host_os_major}.req ; then
772 echo "using ${srcdir}/autodeps/${host_os_major}.req for automatic requires generation"
773 ln -s ${srcdir}/autodeps/${host_os_major}.req ./find-requires
774 elif test -f ${srcdir}/autodeps/${host_os_noversion}.req ; then
775 echo "using ${srcdir}/autodeps/${host_os_noversion}.req for automatic requires generation"
776 ln -s ${srcdir}/autodeps/${host_os_noversion}.req ./find-requires
778 echo "*** no default requires information is available for ${host_os_noversion}"
779 ln -s ${srcdir}/autodeps/none ./find-requires
782 dnl Determine the canonical arch-vendor-os for the host machine
783 case "${host_cpu}" in
784 *86) RPMCANONCOLOR=0; RPMCANONARCH=i386 ;;
785 ia32e*) RPMCANONCOLOR=3; RPMCANONARCH=ia32e ;;
786 amd64*) RPMCANONCOLOR=3; RPMCANONARCH=amd64 ;;
787 x86_64*) RPMCANONCOLOR=3; RPMCANONARCH=x86_64 ;;
788 alpha*) RPMCANONCOLOR=0; RPMCANONARCH=alpha ;;
789 sparc64*) RPMCANONCOLOR=3; RPMCANONARCH=sparc64 ;;
790 sparc*) RPMCANONCOLOR=3; RPMCANONARCH=sparc ;;
791 ia64*) RPMCANONCOLOR=2; RPMCANONARCH=ia64 ;;
792 s390x*) RPMCANONCOLOR=3; RPMCANONARCH=s390x ;;
793 s390*) RPMCANONCOLOR=0; RPMCANONARCH=s390 ;;
794 powerpc64*|ppc64*) RPMCANONCOLOR=3; RPMCANONARCH=ppc64 ;;
795 powerpc*|ppc*) RPMCANONCOLOR=0; RPMCANONARCH=ppc ;;
796 arm*) RPMCANONCOLOR=0; RPMCANONARCH=arm ;;
797 mipsel*) RPMCANONCOLOR=0; RPMCANONARCH=mipsel ;;
798 mips*) RPMCANONCOLOR=0; RPMCANONARCH=mips ;;
799 m68k*) RPMCANONCOLOR=0; RPMCANONARCH=m68k ;;
800 sh3*) RPMCANONCOLOR=0; RPMCANONARCH=sh3 ;;
801 sh4*) RPMCANONCOLOR=0; RPMCANONARCH=sh4 ;;
802 *) RPMCANONCOLOR=0; RPMCANONARCH=unknown ;;
804 case "${host_os_noversion}" in
805 mint) RPMCANONARCH=m68kmint ;;
807 RPMCANONVENDOR="$build_vendor"
808 case "${build_vendor}" in
809 unknown|pc|ibm|redhat|pld|mandrake|conectiva|lvr|yellowdog|caos|suse)
810 test -f /etc/redhat-release && RPMCANONVENDOR=redhat
811 test -f /etc/SuSE-release && RPMCANONVENDOR=suse
812 test -f /etc/pld-release && RPMCANONVENDOR=pld
813 test -f /etc/mandrake-release && RPMCANONVENDOR=mandrake
814 test -f /etc/conectiva-release && RPMCANONVENDOR=conectiva
815 test -f /etc/lvr-release && RPMCANONVENDOR=lvr
816 test -f /etc/yellowdog-release && RPMCANONVENDOR=yellowdog
817 test -f /etc/caos-release && RPMCANONVENDOR=caos
820 RPMCANONOS="$host_os_noversion"
821 RPMCANONGNU="$host_os_gnu"
822 AC_SUBST(RPMCANONCOLOR)
823 AC_SUBST(RPMCANONARCH)
824 AC_SUBST(RPMCANONVENDOR)
826 AC_SUBST(RPMCANONGNU)
827 AC_DEFINE_UNQUOTED([RPMCANONVENDOR],["${RPMCANONVENDOR}"],[canonical vendor])
829 if test X"$prefix" = XNONE ; then
830 usrprefix="$ac_default_prefix"
835 RPMCONFIGDIR="`echo ${usrprefix}/lib/rpm`"
836 AC_SUBST(RPMCONFIGDIR)
840 if test "$with_external_db" = no; then
841 AC_CONFIG_SUBDIRS(db3)
844 AM_CONDITIONAL([WITH_INTERNAL_DB],[test "$with_external_db" = no])
845 AM_CONDITIONAL([DOXYGEN],[test "$DOXYGEN" != no])
846 AM_CONDITIONAL([HACKINGDOCS],[test "$with_hackingdocs" = yes])
848 AC_PATH_PROG(AUTOM4TE,autom4te,:)
850 AC_SUBST([dirstamp],[\${am__leading_dot}dirstamp])
852 AC_CONFIG_FILES([Makefile
853 rpmio/Makefile lib/Makefile build/Makefile
854 po/Makefile.in scripts/Makefile