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_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])
727 AC_ARG_ENABLE(plugins, [AS_HELP_STRING([--disable-plugins],[build without plugin support])],,[enable_plugins=yes])
728 AS_IF([test "$enable_plugins" = yes],[
729 AC_DEFINE(ENABLE_PLUGINS, 1, [Build with plugin support?])
731 AM_CONDITIONAL(ENABLE_PLUGINS,[test "$enable_plugins" = yes])
735 AC_ARG_WITH(dmalloc, [AS_HELP_STRING([--with-dmalloc],[build with dmalloc debugging support])])
736 if test "$with_dmalloc" = yes ; then
737 AC_DEFINE(DMALLOC, 1, [Build with dmalloc support?])
738 LIBS="$LIBS -ldmalloc"
741 AC_CHECK_FUNCS(getpassphrase)
744 # get rid of the 4-th tuple, if config.guess returned "linux-gnu" for host_os
747 if echo "$host_os" | grep '.*-gnulibc1' > /dev/null ; then
748 host_os=`echo "${host_os}" | sed 's/-gnulibc1$//'`
750 if echo "$host_os" | grep '.*-gnueabi' > /dev/null ; then
751 host_os=`echo "${host_os}" | sed 's/-gnueabi$//'`
754 if echo "$host_os" | grep '.*-gnu' > /dev/null ; then
755 host_os=`echo "${host_os}" | sed 's/-gnu$//'`
759 host_os_exact="${host_os}"
760 host_os_major=`echo "${host_os}" | sed 's/\..*$//'`
761 host_os_noversion=`echo "${host_os}" | sed 's/[0-9]*\..*$//'`
764 rm -f ./find-provides
765 if test -f ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov ; then
766 echo "using ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov for automatic provides generation"
767 ln -s ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov ./find-provides
768 elif test -f ${srcdir}/autodeps/${host_os_exact}.prov ; then
769 echo "using ${srcdir}/autodeps/${host_os_exact}.prov for automatic provides generation"
770 ln -s ${srcdir}/autodeps/${host_os_exact}.prov ./find-provides
771 elif test -f ${srcdir}/autodeps/${host_os_major}.prov ; then
772 echo "using ${srcdir}/autodeps/${host_os_major}.prov for automatic provides generation"
773 ln -s ${srcdir}/autodeps/${host_os_major}.prov ./find-provides
774 elif test -f ${srcdir}/autodeps/${host_os_noversion}.prov ; then
775 echo "using ${srcdir}/autodeps/${host_os_noversion}.prov for automatic provides generation"
776 ln -s ${srcdir}/autodeps/${host_os_noversion}.prov ./find-provides
778 echo "*** no default provides information is available for ${host_os_noversion}"
779 ln -s ${srcdir}/autodeps/none ./find-provides
782 rm -f ./find-requires
783 if test -f ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req ; then
784 echo "using ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req for automatic requires generation"
785 ln -s ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req ./find-requires
786 elif test -f ${srcdir}/autodeps/${host_os_exact}.req ; then
787 echo "using ${srcdir}/autodeps/${host_os_exact}.req for automatic requires generation"
788 ln -s ${srcdir}/autodeps/${host_os_exact}.req ./find-requires
789 elif test -f ${srcdir}/autodeps/${host_os_major}.req ; then
790 echo "using ${srcdir}/autodeps/${host_os_major}.req for automatic requires generation"
791 ln -s ${srcdir}/autodeps/${host_os_major}.req ./find-requires
792 elif test -f ${srcdir}/autodeps/${host_os_noversion}.req ; then
793 echo "using ${srcdir}/autodeps/${host_os_noversion}.req for automatic requires generation"
794 ln -s ${srcdir}/autodeps/${host_os_noversion}.req ./find-requires
796 echo "*** no default requires information is available for ${host_os_noversion}"
797 ln -s ${srcdir}/autodeps/none ./find-requires
800 dnl Determine the canonical arch-vendor-os for the host machine
801 case "${host_cpu}" in
802 *86) RPMCANONCOLOR=0; RPMCANONARCH=i386 ;;
803 ia32e*) RPMCANONCOLOR=3; RPMCANONARCH=ia32e ;;
804 amd64*) RPMCANONCOLOR=3; RPMCANONARCH=amd64 ;;
805 x86_64*) RPMCANONCOLOR=3; RPMCANONARCH=x86_64 ;;
806 alpha*) RPMCANONCOLOR=0; RPMCANONARCH=alpha ;;
807 sparc64*) RPMCANONCOLOR=3; RPMCANONARCH=sparc64 ;;
808 sparc*) RPMCANONCOLOR=3; RPMCANONARCH=sparc ;;
809 ia64*) RPMCANONCOLOR=2; RPMCANONARCH=ia64 ;;
810 s390x*) RPMCANONCOLOR=3; RPMCANONARCH=s390x ;;
811 s390*) RPMCANONCOLOR=0; RPMCANONARCH=s390 ;;
812 powerpc64*|ppc64*) RPMCANONCOLOR=3; RPMCANONARCH=ppc64 ;;
813 powerpc*|ppc*) RPMCANONCOLOR=0; RPMCANONARCH=ppc ;;
814 arm*) RPMCANONCOLOR=0; RPMCANONARCH=arm ;;
815 mipsel*) RPMCANONCOLOR=0; RPMCANONARCH=mipsel ;;
816 mips*) RPMCANONCOLOR=0; RPMCANONARCH=mips ;;
817 m68k*) RPMCANONCOLOR=0; RPMCANONARCH=m68k ;;
818 sh3*) RPMCANONCOLOR=0; RPMCANONARCH=sh3 ;;
819 sh4*) RPMCANONCOLOR=0; RPMCANONARCH=sh4 ;;
820 *) RPMCANONCOLOR=0; RPMCANONARCH=unknown ;;
822 case "${host_os_noversion}" in
823 mint) RPMCANONARCH=m68kmint ;;
825 RPMCANONVENDOR="$build_vendor"
826 case "${build_vendor}" in
827 unknown|pc|ibm|redhat|pld|mandrake|conectiva|lvr|yellowdog|caos|suse)
828 test -f /etc/redhat-release && RPMCANONVENDOR=redhat
829 test -f /etc/SuSE-release && RPMCANONVENDOR=suse
830 test -f /etc/pld-release && RPMCANONVENDOR=pld
831 test -f /etc/mandrake-release && RPMCANONVENDOR=mandrake
832 test -f /etc/conectiva-release && RPMCANONVENDOR=conectiva
833 test -f /etc/lvr-release && RPMCANONVENDOR=lvr
834 test -f /etc/yellowdog-release && RPMCANONVENDOR=yellowdog
835 test -f /etc/caos-release && RPMCANONVENDOR=caos
838 RPMCANONOS="$host_os_noversion"
839 RPMCANONGNU="$host_os_gnu"
840 AC_SUBST(RPMCANONCOLOR)
841 AC_SUBST(RPMCANONARCH)
842 AC_SUBST(RPMCANONVENDOR)
844 AC_SUBST(RPMCANONGNU)
845 AC_DEFINE_UNQUOTED([RPMCANONVENDOR],["${RPMCANONVENDOR}"],[canonical vendor])
847 if test X"$prefix" = XNONE ; then
848 usrprefix="$ac_default_prefix"
853 RPMCONFIGDIR="`echo ${usrprefix}/lib/rpm`"
854 AC_SUBST(RPMCONFIGDIR)
858 if test "$with_external_db" = no; then
859 AC_CONFIG_SUBDIRS(db3)
862 AM_CONDITIONAL([WITH_INTERNAL_DB],[test "$with_external_db" = no])
863 AM_CONDITIONAL([DOXYGEN],[test "$DOXYGEN" != no])
864 AM_CONDITIONAL([HACKINGDOCS],[test "$with_hackingdocs" = yes])
866 AC_PATH_PROG(AUTOM4TE,autom4te,:)
868 AC_SUBST([dirstamp],[\${am__leading_dot}dirstamp])
870 AC_CONFIG_FILES([Makefile
871 rpmio/Makefile lib/Makefile build/Makefile sign/Makefile
872 po/Makefile.in scripts/Makefile fileattrs/Makefile