2 AC_INIT(rpm, 4.8.90, 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_PATH_PROG(__RESTORECON, restorecon, /sbin/restorecon, $MYPATH)
113 AC_MSG_CHECKING(old version of patch)
114 PATCHVERSION=`patch --version 2>&1`
116 if test "$PATCHVERSION" = "Patch version 2.1"; then
117 AC_DEFINE(HAVE_OLDPATCH_21, 1,
118 [Define if the patch call you'll be using is 2.1 or older])
119 AC_MSG_RESULT(patch older then 2.2 found)
121 AC_MSG_RESULT(patch later then 2.2 found)
124 AC_PATH_PROG(__PERL, perl, /usr/bin/perl, $MYPATH)
125 AC_PATH_PROG(__PGP, pgp, /usr/bin/pgp, $MYPATH)
126 AC_PATH_PROG(__PYTHON, python, /usr/bin/python, $MYPATH)
127 AC_PATH_PROG(__RM, rm, /bin/rm, $MYPATH)
128 AC_PATH_PROG(__RSH, rsh, /usr/bin/rsh, $MYPATH)
129 AC_PATH_PROG(__SED, sed, /bin/sed, $MYPATH)
130 AC_PATH_PROG(__SEMODULE, semodule, /usr/bin/semodule, $MYPATH)
131 AC_PATH_PROG(__SSH, ssh, /usr/bin/ssh, $MYPATH)
132 AC_PATH_PROG(__TAR, tar, /bin/tar, $MYPATH)
134 AC_PATH_PROG(__LD, ld, /usr/bin/ld, $MYPATH)
135 AC_PATH_PROG(__NM, nm, /usr/bin/nm, $MYPATH)
136 AC_PATH_PROG(__OBJCOPY, objcopy, /usr/bin/objcopy, $MYPATH)
137 AC_PATH_PROG(__OBJDUMP, objdump, /usr/bin/objdump, $MYPATH)
138 AC_PATH_PROG(__STRIP, strip, /usr/bin/strip, $MYPATH)
139 AC_PATH_PROG(__FAKECHROOT, fakechroot, /usr/bin/fakechroot, $MYPATH)
141 dnl see if we have a mkdir that supports `-p' for rpmbuild's purposes
143 if ! echo $MKDIR_P | grep -q mkdir; then
144 __MKDIR_P="`echo ${prefix}/lib/rpm/mkinstalldirs`"
148 AC_DEFINE_UNQUOTED(__MKDIR_P, "${__MKDIR_P}",
149 [A full path to a program, possibly with arguments, that will create a
150 directory and all necessary parent directories, ala 'mkdir -p'])
154 # Check for zlib library.
159 AC_CHECK_HEADERS([zlib.h],[
160 AS_IF([test -z "${WITH_ZLIB_LIB}"],[
161 for zlib in z gz ; do
162 AC_CHECK_LIB(${zlib}, gzread,
163 [WITH_ZLIB_LIB="-l${zlib}"; break])
166 dnl zlib-1.0.4 has not gzseek
167 AC_CHECK_LIB(${zlib}, gzseek, [AC_DEFINE(HAVE_GZSEEK, 1, [Define as 1 if your zlib has gzseek()])])
171 AC_SUBST(WITH_ZLIB_INCLUDE)
172 AC_SUBST(WITH_ZLIB_LIB)
175 # Check for bzip2 library.
177 AC_CHECK_HEADERS([bzlib.h],[
178 AC_CHECK_LIB(bz2, bzread, [WITH_BZ2_LIB=-lbz2],
180 AC_CHECK_LIB(bz2, BZ2_bzread,[
182 AC_DEFINE(HAVE_BZ2_1_0, 1, [Define as 1 if you bzip2 1.0])
186 AC_SUBST(WITH_BZ2_LIB)
189 # Check for lzma library.
191 AC_CHECK_HEADERS([lzma.h],[
192 AC_CHECK_LIB(lzma, lzma_easy_encoder, [WITH_LZMA_LIB=-llzma])
194 AC_SUBST(WITH_LZMA_LIB)
199 dnl Check for features
202 dnl Checks for libraries.
204 AC_CHECK_FUNC(gethostname, [], [
205 AC_CHECK_LIB(nsl, gethostname)
208 AC_CHECK_HEADERS(poll.h)
210 AC_CHECK_HEADERS(pthread.h)
212 AC_CHECK_LIB(pthread, pthread_mutex_trylock, [], [
213 dnl OSF 5.0 has the the symbols prefixed with __ in libpthread.
214 AC_CHECK_LIB(pthread, __pthread_mutex_trylock, [], [
215 AC_CHECK_LIB(thread, mutex_lock)
219 AC_SEARCH_LIBS(aio_read, [c rt aio posix4])
220 AC_SEARCH_LIBS(dlopen, [dl])
222 dnl Temporary hack for MiNT. Some functions (writev, snprintf) are
223 dnl not in the libc but in libport (for political reasons). This check
224 dnl can hopefully be removed soon. Please use the default action
225 dnl for this macro (not LIBS=...), otherwise the check for dbopen
227 AC_CHECK_LIB(port, writev)
230 # 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_LIB)
241 AM_CONDITIONAL(LIBELF,[test "$WITH_LIBELF" = yes])
243 AC_CHECK_HEADERS([dwarf.h], [
246 AM_CONDITIONAL(LIBDWARF,[test "$WITH_LIBDWARF" = yes])
249 # Check for NSS library.
250 # We need nss.h from NSS which needs nspr.h. Unfortunately both glibc and NSS
251 # have a header named nss.h... so make extra check for NSS's sechash.h
252 # which we use too and hopefully is slightly more unique to NSS.
255 AC_CHECK_HEADERS([nspr.h nss.h sechash.h], [], [
256 AC_MSG_ERROR([missing required NSPR / NSS header])
258 AC_CHECK_LIB(nss3, NSS_NoDB_Init, [
261 AC_MSG_ERROR([missing required NSS library 'nss3'])
263 AC_SUBST(WITH_NSS_INCLUDE)
264 AC_SUBST(WITH_NSS_LIB)
267 # Check for magic library.
271 AC_CHECK_HEADER([magic.h], [
272 AC_CHECK_LIB(magic, magic_open, [
274 WITH_MAGIC_LIB="-lmagic"
276 AC_MSG_ERROR([missing required library 'libmagic'])
279 AC_MSG_ERROR([missing required header magic.h])
282 AC_SUBST(WITH_MAGIC_INCLUDE)
283 AC_SUBST(WITH_MAGIC_LIB)
286 # Check for popt library.
290 AC_CHECK_HEADER([popt.h], [
291 AC_CHECK_LIB(popt, poptGetContext, [
293 WITH_POPT_LIB="-lpopt"
295 AC_MSG_ERROR([missing required library popt])
298 AC_MSG_ERROR([missing required header popt.h])
301 AC_SUBST(WITH_POPT_INCLUDE)
302 AC_SUBST(WITH_POPT_LIB)
305 # Process --with/without-external-db
306 AC_ARG_WITH(external_db, [AS_HELP_STRING([--with-external-db],[build against an external Berkeley db])],
307 [case "$with_external_db" in
309 *) AC_MSG_ERROR([invalid argument to --with-external-db]) ;;
311 [with_external_db=no])
313 case "$with_external_db" in
315 AC_CHECK_HEADERS([db.h],[
318 #if !(DB_VERSION_MAJOR >= 4 && DB_VERSION_MINOR >= 5)
319 #error Berkeley DB too old
321 ],[ WITH_DB_LIB=-ldb ],
322 [ AC_MSG_ERROR([Berkeley DB version >= 4.5 required])
325 AC_MSG_ERROR([missing required header db.h])
328 * ) # Fall back to internal db if available
329 if [ test -x db/dist/configure ]; then
330 AC_DEFINE(HAVE_DB_H, 1, [Define if you have the <db3/db.h> header file])
332 AC_MSG_ERROR([internal Berkeley DB directory not present, see INSTALL])
337 AC_SUBST([WITH_DB_LIB])
339 AM_GNU_GETTEXT_VERSION([0.16.1])
340 AM_GNU_GETTEXT([external])
342 dnl Checks for header files we can live without.
347 AC_CHECK_HEADERS(limits.h)
348 AC_CHECK_HEADERS(fcntl.h getopt.h memory.h)
350 AC_CHECK_HEADERS(sys/ipc.h)
351 AC_CHECK_HEADERS(sys/utsname.h)
353 AC_CHECK_HEADERS(sys/systemcfg.h)
354 AC_CHECK_HEADERS(sys/param.h)
355 AC_CHECK_HEADERS(libio.h)
356 AC_CHECK_HEADERS(mcheck.h)
358 AC_CHECK_HEADERS(glob.h)
360 dnl statfs portability fiddles.
362 dnl We should really emulate/steal sections of the statfs and struct statfs
363 dnl checks from GNU fileutils.
365 AC_MSG_CHECKING(for struct statfs)
368 dnl this is easier than nesting AC_TRY_COMPILEs...
370 found_struct_statfs=no
372 if test X$found_struct_statfs = Xno ; then
373 dnl Solaris 2.6+ wants to use statvfs
374 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
375 #ifdef HAVE_SYS_TYPES_H
376 #include <sys/types.h>
378 #include <sys/statvfs.h> ]], [[struct statvfs sfs;]])],[AC_MSG_RESULT(in sys/statvfs.h)
379 AC_DEFINE(STATFS_IN_SYS_STATVFS, 1,
380 [statfs in <sys/statvfs.h> (for solaris 2.6+ systems)])
381 found_struct_statfs=yes],[])
384 if test X$found_struct_statfs = Xno ; then
385 dnl first try including sys/vfs.h
386 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
387 #ifdef HAVE_SYS_TYPES_H
388 #include <sys/types.h>
390 #include <sys/vfs.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in sys/vfs.h)
391 AC_DEFINE(STATFS_IN_SYS_VFS, 1, [statfs in <sys/vfs.h> (for linux systems)])
392 found_struct_statfs=yes],[])
395 if test X$found_struct_statfs = Xno ; then
396 dnl ...next try including sys/mount.h
397 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
398 #ifdef HAVE_SYS_TYPES_H
399 #include <sys/types.h>
401 #ifdef HAVE_SYS_PARAM_H
402 #include <sys/param.h>
404 #include <sys/mount.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in sys/mount.h)
405 AC_DEFINE(STATFS_IN_SYS_MOUNT, 1, [statfs in <sys/mount.h> (for Digital Unix 4.0D systems)])
406 found_struct_statfs=yes],[])
409 if test X$found_struct_statfs = Xno ; then
410 dnl ...still no joy. Try sys/statfs.h
411 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
412 #ifdef HAVE_SYS_TYPES_H
413 #include <sys/types.h>
415 #include <sys/statfs.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in sys/statfs.h)
416 AC_DEFINE(STATFS_IN_SYS_STATFS, 1, [statfs in <sys/statfs.h> (for Irix 6.4 systems)])
417 found_struct_statfs=yes],[])
420 if test X$found_struct_statfs = Xno ; then
421 dnl ...no luck. Warn the user of impending doom.
422 AC_MSG_WARN(not found)
426 dnl if we found the struct, see if it has the f_bavail member. Some OSes
427 dnl don't, including IRIX 6.5+
429 if test X$found_struct_statfs = Xyes ; then
430 AC_MSG_CHECKING(for f_bavail member in struct statfs)
431 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
432 #ifdef HAVE_SYS_TYPES_H
433 #include <sys/types.h>
435 #if STATFS_IN_SYS_STATVFS
436 # include <sys/statvfs.h>
437 typedef struct statvfs STATFS_t;
439 typedef struct statfs STATFS_t;
440 # if STATFS_IN_SYS_VFS
441 # include <sys/vfs.h>
442 # elif STATFS_IN_SYS_MOUNT
443 # include <sys/mount.h>
444 # elif STATFS_IN_SYS_STATFS
445 # include <sys/statfs.h>
447 #endif ]], [[STATFS_t sfs;
448 sfs.f_bavail = 0;]])],[AC_MSG_RESULT(yes)
449 AC_DEFINE(STATFS_HAS_F_BAVAIL, 1, [Define if struct statfs has the f_bavail member])],[AC_MSG_RESULT(no)
453 if test X$found_struct_statfs = Xyes ; then
455 dnl now check to see if we have the 4-argument variant of statfs()
456 dnl this pretty much requires AC_RUN_IFELSE([AC_LANG_SOURCE([[]])],[],[],[])
458 AC_MSG_CHECKING([if statfs() requires 4 arguments])
459 AC_RUN_IFELSE([AC_LANG_SOURCE([[
460 #ifdef HAVE_SYS_TYPES_H
461 #include <sys/types.h>
463 #ifdef STATFS_IN_SYS_VFS
465 #elif STATFS_IN_SYS_MOUNT
466 #include <sys/mouht.h>
467 #elif STATFS_IN_SYS_STATFS
468 #include <sys/statfs.h>
472 exit (statfs(".", &sfs, sizeof(sfs), 0));
474 ]])],[AC_MSG_RESULT(yes)
475 AC_DEFINE(STAT_STATFS4, 1, [Define if the statfs() call takes 4 arguments])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)
479 dnl look for libc features
481 dnl Check for missing typedefs
487 dnl Checks for library functions.
490 AC_CHECK_FUNCS(mtrace)
491 AC_CHECK_FUNCS(putenv)
493 AC_REPLACE_FUNCS(stpcpy stpncpy)
495 AC_CHECK_FUNCS(__secure_getenv)
498 [mkstemp getcwd basename dirname realpath setenv unsetenv regcomp lchown],
499 [], [AC_MSG_ERROR([function required by rpm])])
501 dnl XXX Glob *is* broken on linux with libc5, solaris and possibly aix when
502 dnl %files gets something like
503 dnl /usr/*/locale/*/LC_MESSAGES/*.mo
504 dnl (Note: more than one asterisk in glob pattern.)
506 dnl XXX Glob is "fixed" in glibc-2.3.3-61, but the cost is that
507 dnl dangling symlinks are no longer globbed. Always use the internal glob.
508 AC_DEFINE(USE_GNU_GLOB, 1, [Use the included glob.c?])
512 dnl check if python is requested
513 AC_ARG_ENABLE(python, [AS_HELP_STRING([--enable-python],[build rpm python bindings])],
514 [case "$enable_python" in
516 *) AC_MSG_ERROR([invalid argument to --enable-python])
521 AS_IF([test "$enable_python" = yes],[
522 AM_PATH_PYTHON([2.6],[
523 WITH_PYTHON_INCLUDE=`${PYTHON} -c 'from distutils.sysconfig import *; import sys; sys.stdout.write(get_python_inc())'`
524 WITH_PYTHON_SUBPACKAGE=1
525 save_CPPFLAGS="$CPPFLAGS"
526 CPPFLAGS="$CPPFLAGS -I$WITH_PYTHON_INCLUDE"
527 AC_CHECK_HEADER([Python.h],[],
528 [AC_MSG_ERROR([missing Python.h])
530 CPPFLAGS="$save_CPPFLAGS"
532 AC_SEARCH_LIBS([Py_Main],[python${PYTHON_VERSION} python],[
533 WITH_PYTHON_LIB="$ac_res"
534 ],[AC_MSG_ERROR([missing python library])
541 WITH_PYTHON_SUBPACKAGE=0
544 AC_SUBST(WITH_PYTHON_INCLUDE)
545 AC_SUBST(WITH_PYTHON_LIB)
547 AM_CONDITIONAL(ENABLE_PYTHON,[test "$WITH_PYTHON_SUBPACKAGE" = 1])
549 AC_PATH_PROG(DOXYGEN, doxygen, no)
551 dnl Only build internal API + source hacking docs on request
553 AC_ARG_WITH(hackingdocs, [AS_HELP_STRING([--with-hackingdocs],[build rpm hacking docs])],,[with_hackingdocs=no])
555 case "$with_hackingdocs" in
557 AS_IF([test "$DOXYGEN" = no],[with_hackingdocs=no],[with_hackingdocs=no])
560 AS_IF([test "$DOXYGEN" = no],
561 [AC_MSG_ERROR([rpm hacking docs eeds doxygen in PATH])])
564 AC_CHECK_PROG(HAVE_DOT,[dot],[YES],[NO])
567 AC_ARG_WITH(selinux, [AS_HELP_STRING([--with-selinux],[build with selinux support])],
568 [case "$with_selinux" in
570 *) AC_MSG_ERROR([invalid argument to --with-selinux])
575 AS_IF([test "$with_selinux" = yes],[
576 AC_CHECK_HEADER([selinux/selinux.h],[
578 AC_CHECK_LIB([selinux],[is_selinux_enabled],[],[
579 AC_MSG_ERROR([--with-selinux given, but is_selinux_enabled not found in libselinux])])
580 AC_CHECK_LIB([selinux],[selinux_getpolicytype],[],[
581 AC_MSG_ERROR([--with-selinux given, but selinux_getpolicytype not found in libselinux])])
582 AC_CHECK_LIB([selinux],[selinux_reset_config],[],[
583 AC_MSG_ERROR([--with-selinux given, but selinux_reset_config not found in libselinux])])
586 AC_MSG_ERROR([--with-selinux given, but selinux/selinux.h not found])
589 AC_CHECK_HEADER([selinux/label.h],[
591 AC_CHECK_LIB([selinux],[selabel_close],[],[
592 AC_MSG_ERROR([--with-selinux given, but selabel_close not found in libselinux])])
593 AC_CHECK_LIB([selinux],[selabel_lookup_raw],[],[
594 AC_MSG_ERROR([--with-selinux given, but selabel_lookup_raw not found in libselinux])])
595 AC_CHECK_LIB([selinux],[selabel_open],[],[
596 AC_MSG_ERROR([--with-selinux given, but selabel_open not found in libselinux])])
599 AC_MSG_ERROR([--with-selinux given, but selinux/label.h not found])
602 AC_CHECK_HEADER([semanage/semanage.h],[
604 AC_CHECK_LIB([semanage],[semanage_begin_transaction],[],[
605 AC_MSG_ERROR([--with-selinux given, but semanage_begin_transaction missing in libsemanage])])
606 AC_CHECK_LIB([semanage],[semanage_commit],[],[
607 AC_MSG_ERROR([--with-selinux given, but semanage_commit missing in libsemanage])])
608 AC_CHECK_LIB([semanage],[semanage_connect],[],[
609 AC_MSG_ERROR([--with-selinux given, but semanage_connect missing in libsemanage])])
610 AC_CHECK_LIB([semanage],[semanage_disconnect],[],[
611 AC_MSG_ERROR([--with-selinux given, but semanage_disconnect missing in libsemanage])])
612 AC_CHECK_LIB([semanage],[semanage_handle_create],[],[
613 AC_MSG_ERROR([--with-selinux given, but semanage_handle_create missing in libsemanage])])
614 AC_CHECK_LIB([semanage],[semanage_handle_destroy],[],[
615 AC_MSG_ERROR([--with-selinux given, but semanage_handle_destroy missing in libsemanage])])
616 AC_CHECK_LIB([semanage],[semanage_is_connected],[],[
617 AC_MSG_ERROR([--with-selinux given, but semanage_is_connected missing in libsemanage])])
618 AC_CHECK_LIB([semanage],[semanage_module_install_base_file],[],[
619 AC_MSG_ERROR([--with-selinux given, but semanage_module_install_base_file missing in libsemanage])])
620 AC_CHECK_LIB([semanage],[semanage_module_install_file],[],[
621 AC_MSG_ERROR([--with-selinux given, but semanage_module_install_file missing in libsemanage])])
622 AC_CHECK_LIB([semanage],[semanage_module_remove],[],[
623 AC_MSG_ERROR([--with-selinux given, but semanage_module_remove missing in libsemanage])])
624 AC_CHECK_LIB([semanage],[semanage_select_store],[],[
625 AC_MSG_ERROR([--with-selinux given, but semanage_select_store missing in libsemanage])])
626 AC_CHECK_LIB([semanage],[semanage_set_check_contexts],[],[
627 AC_MSG_ERROR([--with-selinux given, but semanage_set_check_contexts missing in libsemanage])])
628 AC_CHECK_LIB([semanage],[semanage_set_create_store],[],[
629 AC_MSG_ERROR([--with-selinux given, but semanage_set_create_store missing in libsemanage])])
630 AC_CHECK_LIB([semanage],[semanage_set_reload],[],[
631 AC_MSG_ERROR([--with-selinux given, but semanage_set_reload missing in libsemanage])])
634 AC_MSG_ERROR([--with-selinux given, but semanage/semanage.h not found])
638 AS_IF([test "$with_selinux" = yes],[
639 AC_DEFINE(WITH_SELINUX, 1, [Build with selinux support?])
640 WITH_SELINUX_LIB="-lselinux -lsemanage"
642 AC_SUBST(WITH_SELINUX_LIB)
643 AM_CONDITIONAL(SELINUX,[test "$with_selinux" = yes])
647 AC_ARG_WITH(cap, [AS_HELP_STRING([--with-cap],[build with capability support])],
650 *) AC_MSG_ERROR([invalid argument to --with-cap])
655 AS_IF([test "$with_cap" = yes],[
656 AC_CHECK_HEADER([sys/capability.h],[
657 AC_CHECK_LIB(cap,[cap_get_file], [
660 AC_CHECK_LIB(cap,[cap_compare], [
661 AC_DEFINE(HAVE_CAP_COMPARE, 1, [Have cap_compare function?])
665 AC_MSG_ERROR([--with-cap given, but libcap not found])])
667 AC_MSG_ERROR([--with-cap given, but sys/capability.h not found])
671 AS_IF([test "$with_cap" = yes],[
672 AC_DEFINE(WITH_CAP, 1, [Build with capability support?])
675 AC_SUBST(WITH_CAP_LIB)
676 AM_CONDITIONAL(CAP,[test "$with_cap" = yes])
679 AC_ARG_WITH(acl, [AS_HELP_STRING([--with-acl],[build with acl support])],
682 *) AC_MSG_ERROR([invalid argument to --with-acl])
687 AS_IF([test "$with_acl" = yes],[
688 dnl verification uses non-portable acl_equiv_mode()
689 AC_CHECK_HEADER([acl/libacl.h],[
690 AC_CHECK_LIB(acl,[acl_equiv_mode],[with_acl=yes],[
691 AC_MSG_ERROR([--with-acl given, but libacl not found or not suitable])])
693 AC_MSG_ERROR([--with-acl given, but acl/libacl.h not found])
697 AS_IF([test "$with_acl" = yes],[
698 AC_DEFINE(WITH_ACL, 1, [Build with acl support?])
701 AC_SUBST(WITH_ACL_LIB)
702 AM_CONDITIONAL(ACL,[test "$with_acl" = yes])
706 AC_ARG_WITH(lua, [AS_HELP_STRING([--with-lua],[build with lua support])],,[with_lua=yes])
707 AS_IF([test "$with_lua" = yes],[
708 AC_CHECK_HEADER([lua.h],[
709 AC_CHECK_LIB(lua,[luaL_openlibs],[with_lua=yes],[
710 AC_MSG_ERROR([--with-lua given, but liblua not found])
714 AC_MSG_ERROR([--with-lua given, but lua.h not found])
718 AS_IF([test "$with_lua" = yes],[
719 AC_DEFINE(WITH_LUA, 1, [Build with lua support?])
721 WITH_LUA_LIB="-llua -lm"
723 AC_SUBST(WITH_LUA_LIB)
724 AC_SUBST(WITH_LUA_INCLUDE)
725 AM_CONDITIONAL(WITH_LUAEXT,[test "$with_lua" = yes])
728 AC_ARG_WITH(dmalloc, [AS_HELP_STRING([--with-dmalloc],[build with dmalloc debugging support])])
729 if test "$with_dmalloc" = yes ; then
730 AC_DEFINE(DMALLOC, 1, [Build with dmalloc support?])
731 LIBS="$LIBS -ldmalloc"
734 AC_CHECK_FUNCS(getpassphrase)
737 # get rid of the 4-th tuple, if config.guess returned "linux-gnu" for host_os
740 if echo "$host_os" | grep '.*-gnulibc1' > /dev/null ; then
741 host_os=`echo "${host_os}" | sed 's/-gnulibc1$//'`
743 if echo "$host_os" | grep '.*-gnueabi' > /dev/null ; then
744 host_os=`echo "${host_os}" | sed 's/-gnueabi$//'`
747 if echo "$host_os" | grep '.*-gnu' > /dev/null ; then
748 host_os=`echo "${host_os}" | sed 's/-gnu$//'`
752 host_os_exact="${host_os}"
753 host_os_major=`echo "${host_os}" | sed 's/\..*$//'`
754 host_os_noversion=`echo "${host_os}" | sed 's/[0-9]*\..*$//'`
757 rm -f ./find-provides
758 if test -f ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov ; then
759 echo "using ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov for automatic provides generation"
760 ln -s ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov ./find-provides
761 elif test -f ${srcdir}/autodeps/${host_os_exact}.prov ; then
762 echo "using ${srcdir}/autodeps/${host_os_exact}.prov for automatic provides generation"
763 ln -s ${srcdir}/autodeps/${host_os_exact}.prov ./find-provides
764 elif test -f ${srcdir}/autodeps/${host_os_major}.prov ; then
765 echo "using ${srcdir}/autodeps/${host_os_major}.prov for automatic provides generation"
766 ln -s ${srcdir}/autodeps/${host_os_major}.prov ./find-provides
767 elif test -f ${srcdir}/autodeps/${host_os_noversion}.prov ; then
768 echo "using ${srcdir}/autodeps/${host_os_noversion}.prov for automatic provides generation"
769 ln -s ${srcdir}/autodeps/${host_os_noversion}.prov ./find-provides
771 echo "*** no default provides information is available for ${host_os_noversion}"
772 ln -s ${srcdir}/autodeps/none ./find-provides
775 rm -f ./find-requires
776 if test -f ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req ; then
777 echo "using ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req for automatic requires generation"
778 ln -s ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req ./find-requires
779 elif test -f ${srcdir}/autodeps/${host_os_exact}.req ; then
780 echo "using ${srcdir}/autodeps/${host_os_exact}.req for automatic requires generation"
781 ln -s ${srcdir}/autodeps/${host_os_exact}.req ./find-requires
782 elif test -f ${srcdir}/autodeps/${host_os_major}.req ; then
783 echo "using ${srcdir}/autodeps/${host_os_major}.req for automatic requires generation"
784 ln -s ${srcdir}/autodeps/${host_os_major}.req ./find-requires
785 elif test -f ${srcdir}/autodeps/${host_os_noversion}.req ; then
786 echo "using ${srcdir}/autodeps/${host_os_noversion}.req for automatic requires generation"
787 ln -s ${srcdir}/autodeps/${host_os_noversion}.req ./find-requires
789 echo "*** no default requires information is available for ${host_os_noversion}"
790 ln -s ${srcdir}/autodeps/none ./find-requires
793 dnl Determine the canonical arch-vendor-os for the host machine
794 case "${host_cpu}" in
795 *86) RPMCANONCOLOR=0; RPMCANONARCH=i386 ;;
796 ia32e*) RPMCANONCOLOR=3; RPMCANONARCH=ia32e ;;
797 amd64*) RPMCANONCOLOR=3; RPMCANONARCH=amd64 ;;
798 x86_64*) RPMCANONCOLOR=3; RPMCANONARCH=x86_64 ;;
799 alpha*) RPMCANONCOLOR=0; RPMCANONARCH=alpha ;;
800 sparc64*) RPMCANONCOLOR=3; RPMCANONARCH=sparc64 ;;
801 sparc*) RPMCANONCOLOR=3; RPMCANONARCH=sparc ;;
802 ia64*) RPMCANONCOLOR=2; RPMCANONARCH=ia64 ;;
803 s390x*) RPMCANONCOLOR=3; RPMCANONARCH=s390x ;;
804 s390*) RPMCANONCOLOR=0; RPMCANONARCH=s390 ;;
805 powerpc64*|ppc64*) RPMCANONCOLOR=3; RPMCANONARCH=ppc64 ;;
806 powerpc*|ppc*) RPMCANONCOLOR=0; RPMCANONARCH=ppc ;;
807 arm*) RPMCANONCOLOR=0; RPMCANONARCH=arm ;;
808 mipsel*) RPMCANONCOLOR=0; RPMCANONARCH=mipsel ;;
809 mips*) RPMCANONCOLOR=0; RPMCANONARCH=mips ;;
810 m68k*) RPMCANONCOLOR=0; RPMCANONARCH=m68k ;;
811 sh3*) RPMCANONCOLOR=0; RPMCANONARCH=sh3 ;;
812 sh4*) RPMCANONCOLOR=0; RPMCANONARCH=sh4 ;;
813 *) RPMCANONCOLOR=0; RPMCANONARCH=unknown ;;
815 case "${host_os_noversion}" in
816 mint) RPMCANONARCH=m68kmint ;;
818 RPMCANONVENDOR="$build_vendor"
819 case "${build_vendor}" in
820 unknown|pc|ibm|redhat|pld|mandrake|conectiva|lvr|yellowdog|caos|suse)
821 test -f /etc/redhat-release && RPMCANONVENDOR=redhat
822 test -f /etc/SuSE-release && RPMCANONVENDOR=suse
823 test -f /etc/pld-release && RPMCANONVENDOR=pld
824 test -f /etc/mandrake-release && RPMCANONVENDOR=mandrake
825 test -f /etc/conectiva-release && RPMCANONVENDOR=conectiva
826 test -f /etc/lvr-release && RPMCANONVENDOR=lvr
827 test -f /etc/yellowdog-release && RPMCANONVENDOR=yellowdog
828 test -f /etc/caos-release && RPMCANONVENDOR=caos
831 RPMCANONOS="$host_os_noversion"
832 RPMCANONGNU="$host_os_gnu"
833 AC_SUBST(RPMCANONCOLOR)
834 AC_SUBST(RPMCANONARCH)
835 AC_SUBST(RPMCANONVENDOR)
837 AC_SUBST(RPMCANONGNU)
838 AC_DEFINE_UNQUOTED([RPMCANONVENDOR],["${RPMCANONVENDOR}"],[canonical vendor])
840 if test X"$prefix" = XNONE ; then
841 usrprefix="$ac_default_prefix"
846 RPMCONFIGDIR="`echo ${usrprefix}/lib/rpm`"
847 AC_SUBST(RPMCONFIGDIR)
851 if test "$with_external_db" = no; then
852 AC_CONFIG_SUBDIRS(db3)
855 AM_CONDITIONAL([WITH_INTERNAL_DB],[test "$with_external_db" = no])
856 AM_CONDITIONAL([DOXYGEN],[test "$DOXYGEN" != no])
857 AM_CONDITIONAL([HACKINGDOCS],[test "$with_hackingdocs" = yes])
859 AC_PATH_PROG(AUTOM4TE,autom4te,:)
861 AC_SUBST([dirstamp],[\${am__leading_dot}dirstamp])
863 AC_CONFIG_FILES([Makefile
864 rpmio/Makefile lib/Makefile build/Makefile
865 po/Makefile.in scripts/Makefile fileattrs/Makefile