2 AC_INIT(rpm, 4.9.0-rc1, 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 dnl FIXME: semanage is only needed for the sepolicy plugin
603 AC_CHECK_HEADER([semanage/semanage.h],[
605 AC_CHECK_LIB([semanage],[semanage_begin_transaction],[],[
606 AC_MSG_ERROR([--with-selinux given, but semanage_begin_transaction missing in libsemanage])])
607 AC_CHECK_LIB([semanage],[semanage_commit],[],[
608 AC_MSG_ERROR([--with-selinux given, but semanage_commit missing in libsemanage])])
609 AC_CHECK_LIB([semanage],[semanage_connect],[],[
610 AC_MSG_ERROR([--with-selinux given, but semanage_connect missing in libsemanage])])
611 AC_CHECK_LIB([semanage],[semanage_disconnect],[],[
612 AC_MSG_ERROR([--with-selinux given, but semanage_disconnect missing in libsemanage])])
613 AC_CHECK_LIB([semanage],[semanage_handle_create],[],[
614 AC_MSG_ERROR([--with-selinux given, but semanage_handle_create missing in libsemanage])])
615 AC_CHECK_LIB([semanage],[semanage_handle_destroy],[],[
616 AC_MSG_ERROR([--with-selinux given, but semanage_handle_destroy missing in libsemanage])])
617 AC_CHECK_LIB([semanage],[semanage_is_connected],[],[
618 AC_MSG_ERROR([--with-selinux given, but semanage_is_connected missing in libsemanage])])
619 AC_CHECK_LIB([semanage],[semanage_module_install_base_file],[],[
620 AC_MSG_ERROR([--with-selinux given, but semanage_module_install_base_file missing in libsemanage])])
621 AC_CHECK_LIB([semanage],[semanage_module_install_file],[],[
622 AC_MSG_ERROR([--with-selinux given, but semanage_module_install_file missing in libsemanage])])
623 AC_CHECK_LIB([semanage],[semanage_module_remove],[],[
624 AC_MSG_ERROR([--with-selinux given, but semanage_module_remove missing in libsemanage])])
625 AC_CHECK_LIB([semanage],[semanage_select_store],[],[
626 AC_MSG_ERROR([--with-selinux given, but semanage_select_store missing in libsemanage])])
627 AC_CHECK_LIB([semanage],[semanage_set_check_contexts],[],[
628 AC_MSG_ERROR([--with-selinux given, but semanage_set_check_contexts missing in libsemanage])])
629 AC_CHECK_LIB([semanage],[semanage_set_create_store],[],[
630 AC_MSG_ERROR([--with-selinux given, but semanage_set_create_store missing in libsemanage])])
631 AC_CHECK_LIB([semanage],[semanage_set_reload],[],[
632 AC_MSG_ERROR([--with-selinux given, but semanage_set_reload missing in libsemanage])])
635 AC_MSG_ERROR([--with-selinux given, but semanage/semanage.h not found])
639 AS_IF([test "$with_selinux" = yes],[
640 AC_DEFINE(WITH_SELINUX, 1, [Build with selinux support?])
641 WITH_SELINUX_LIB="-lselinux"
642 WITH_SEMANAGE_LIB="-lsemanage"
644 AC_SUBST(WITH_SELINUX_LIB)
645 AC_SUBST(WITH_SEMANAGE_LIB)
646 AM_CONDITIONAL(SELINUX,[test "$with_selinux" = yes])
650 AC_ARG_WITH(cap, [AS_HELP_STRING([--with-cap],[build with capability support])],
653 *) AC_MSG_ERROR([invalid argument to --with-cap])
658 AS_IF([test "$with_cap" = yes],[
659 AC_CHECK_HEADER([sys/capability.h],[
660 AC_CHECK_LIB(cap,[cap_get_file], [
663 AC_CHECK_LIB(cap,[cap_compare], [
664 AC_DEFINE(HAVE_CAP_COMPARE, 1, [Have cap_compare function?])
668 AC_MSG_ERROR([--with-cap given, but libcap not found])])
670 AC_MSG_ERROR([--with-cap given, but sys/capability.h not found])
674 AS_IF([test "$with_cap" = yes],[
675 AC_DEFINE(WITH_CAP, 1, [Build with capability support?])
678 AC_SUBST(WITH_CAP_LIB)
679 AM_CONDITIONAL(CAP,[test "$with_cap" = yes])
682 AC_ARG_WITH(acl, [AS_HELP_STRING([--with-acl],[build with acl support])],
685 *) AC_MSG_ERROR([invalid argument to --with-acl])
690 AS_IF([test "$with_acl" = yes],[
691 dnl verification uses non-portable acl_equiv_mode()
692 AC_CHECK_HEADER([acl/libacl.h],[
693 AC_CHECK_LIB(acl,[acl_equiv_mode],[with_acl=yes],[
694 AC_MSG_ERROR([--with-acl given, but libacl not found or not suitable])])
696 AC_MSG_ERROR([--with-acl given, but acl/libacl.h not found])
700 AS_IF([test "$with_acl" = yes],[
701 AC_DEFINE(WITH_ACL, 1, [Build with acl support?])
704 AC_SUBST(WITH_ACL_LIB)
705 AM_CONDITIONAL(ACL,[test "$with_acl" = yes])
709 AC_ARG_WITH(lua, [AS_HELP_STRING([--with-lua],[build with lua support])],,[with_lua=yes])
710 AS_IF([test "$with_lua" = yes],[
711 AC_CHECK_HEADER([lua.h],[
712 AC_CHECK_LIB(lua,[luaL_openlibs],[with_lua=yes],[
713 AC_MSG_ERROR([--with-lua given, but liblua not found])
717 AC_MSG_ERROR([--with-lua given, but lua.h not found])
721 AS_IF([test "$with_lua" = yes],[
722 AC_DEFINE(WITH_LUA, 1, [Build with lua support?])
724 WITH_LUA_LIB="-llua -lm"
726 AC_SUBST(WITH_LUA_LIB)
727 AC_SUBST(WITH_LUA_INCLUDE)
728 AM_CONDITIONAL(WITH_LUAEXT,[test "$with_lua" = yes])
730 AC_ARG_ENABLE(plugins, [AS_HELP_STRING([--disable-plugins],[build without plugin support])],,[enable_plugins=yes])
731 AS_IF([test "$enable_plugins" = yes],[
732 AC_DEFINE(ENABLE_PLUGINS, 1, [Build with plugin support?])
734 AM_CONDITIONAL(ENABLE_PLUGINS,[test "$enable_plugins" = yes])
738 AC_ARG_WITH(dmalloc, [AS_HELP_STRING([--with-dmalloc],[build with dmalloc debugging support])])
739 if test "$with_dmalloc" = yes ; then
740 AC_DEFINE(DMALLOC, 1, [Build with dmalloc support?])
741 LIBS="$LIBS -ldmalloc"
744 AC_CHECK_FUNCS(getpassphrase)
747 # get rid of the 4-th tuple, if config.guess returned "linux-gnu" for host_os
750 if echo "$host_os" | grep '.*-gnulibc1' > /dev/null ; then
751 host_os=`echo "${host_os}" | sed 's/-gnulibc1$//'`
753 if echo "$host_os" | grep '.*-gnueabi' > /dev/null ; then
754 host_os=`echo "${host_os}" | sed 's/-gnueabi$//'`
757 if echo "$host_os" | grep '.*-gnu' > /dev/null ; then
758 host_os=`echo "${host_os}" | sed 's/-gnu$//'`
762 host_os_exact="${host_os}"
763 host_os_major=`echo "${host_os}" | sed 's/\..*$//'`
764 host_os_noversion=`echo "${host_os}" | sed 's/[0-9]*\..*$//'`
767 rm -f ./find-provides
768 if test -f ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov ; then
769 echo "using ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov for automatic provides generation"
770 ln -s ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.prov ./find-provides
771 elif test -f ${srcdir}/autodeps/${host_os_exact}.prov ; then
772 echo "using ${srcdir}/autodeps/${host_os_exact}.prov for automatic provides generation"
773 ln -s ${srcdir}/autodeps/${host_os_exact}.prov ./find-provides
774 elif test -f ${srcdir}/autodeps/${host_os_major}.prov ; then
775 echo "using ${srcdir}/autodeps/${host_os_major}.prov for automatic provides generation"
776 ln -s ${srcdir}/autodeps/${host_os_major}.prov ./find-provides
777 elif test -f ${srcdir}/autodeps/${host_os_noversion}.prov ; then
778 echo "using ${srcdir}/autodeps/${host_os_noversion}.prov for automatic provides generation"
779 ln -s ${srcdir}/autodeps/${host_os_noversion}.prov ./find-provides
781 echo "*** no default provides information is available for ${host_os_noversion}"
782 ln -s ${srcdir}/autodeps/none ./find-provides
785 rm -f ./find-requires
786 if test -f ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req ; then
787 echo "using ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req for automatic requires generation"
788 ln -s ${srcdir}/autodeps/${host_cpu}-${host_os_exact}.req ./find-requires
789 elif test -f ${srcdir}/autodeps/${host_os_exact}.req ; then
790 echo "using ${srcdir}/autodeps/${host_os_exact}.req for automatic requires generation"
791 ln -s ${srcdir}/autodeps/${host_os_exact}.req ./find-requires
792 elif test -f ${srcdir}/autodeps/${host_os_major}.req ; then
793 echo "using ${srcdir}/autodeps/${host_os_major}.req for automatic requires generation"
794 ln -s ${srcdir}/autodeps/${host_os_major}.req ./find-requires
795 elif test -f ${srcdir}/autodeps/${host_os_noversion}.req ; then
796 echo "using ${srcdir}/autodeps/${host_os_noversion}.req for automatic requires generation"
797 ln -s ${srcdir}/autodeps/${host_os_noversion}.req ./find-requires
799 echo "*** no default requires information is available for ${host_os_noversion}"
800 ln -s ${srcdir}/autodeps/none ./find-requires
803 dnl Determine the canonical arch-vendor-os for the host machine
804 case "${host_cpu}" in
805 *86) RPMCANONCOLOR=0; RPMCANONARCH=i386 ;;
806 ia32e*) RPMCANONCOLOR=3; RPMCANONARCH=ia32e ;;
807 amd64*) RPMCANONCOLOR=3; RPMCANONARCH=amd64 ;;
808 x86_64*) RPMCANONCOLOR=3; RPMCANONARCH=x86_64 ;;
809 alpha*) RPMCANONCOLOR=0; RPMCANONARCH=alpha ;;
810 sparc64*) RPMCANONCOLOR=3; RPMCANONARCH=sparc64 ;;
811 sparc*) RPMCANONCOLOR=3; RPMCANONARCH=sparc ;;
812 ia64*) RPMCANONCOLOR=2; RPMCANONARCH=ia64 ;;
813 s390x*) RPMCANONCOLOR=3; RPMCANONARCH=s390x ;;
814 s390*) RPMCANONCOLOR=0; RPMCANONARCH=s390 ;;
815 powerpc64*|ppc64*) RPMCANONCOLOR=3; RPMCANONARCH=ppc64 ;;
816 powerpc*|ppc*) RPMCANONCOLOR=0; RPMCANONARCH=ppc ;;
817 arm*) RPMCANONCOLOR=0; RPMCANONARCH=arm ;;
818 mipsel*) RPMCANONCOLOR=0; RPMCANONARCH=mipsel ;;
819 mips*) RPMCANONCOLOR=0; RPMCANONARCH=mips ;;
820 m68k*) RPMCANONCOLOR=0; RPMCANONARCH=m68k ;;
821 sh3*) RPMCANONCOLOR=0; RPMCANONARCH=sh3 ;;
822 sh4*) RPMCANONCOLOR=0; RPMCANONARCH=sh4 ;;
823 *) RPMCANONCOLOR=0; RPMCANONARCH=unknown ;;
825 case "${host_os_noversion}" in
826 mint) RPMCANONARCH=m68kmint ;;
828 RPMCANONVENDOR="$build_vendor"
829 case "${build_vendor}" in
830 unknown|pc|ibm|redhat|pld|mandrake|conectiva|lvr|yellowdog|caos|suse)
831 test -f /etc/redhat-release && RPMCANONVENDOR=redhat
832 test -f /etc/SuSE-release && RPMCANONVENDOR=suse
833 test -f /etc/pld-release && RPMCANONVENDOR=pld
834 test -f /etc/mandrake-release && RPMCANONVENDOR=mandrake
835 test -f /etc/conectiva-release && RPMCANONVENDOR=conectiva
836 test -f /etc/lvr-release && RPMCANONVENDOR=lvr
837 test -f /etc/yellowdog-release && RPMCANONVENDOR=yellowdog
838 test -f /etc/caos-release && RPMCANONVENDOR=caos
841 RPMCANONOS="$host_os_noversion"
842 RPMCANONGNU="$host_os_gnu"
843 AC_SUBST(RPMCANONCOLOR)
844 AC_SUBST(RPMCANONARCH)
845 AC_SUBST(RPMCANONVENDOR)
847 AC_SUBST(RPMCANONGNU)
848 AC_DEFINE_UNQUOTED([RPMCANONVENDOR],["${RPMCANONVENDOR}"],[canonical vendor])
850 if test X"$prefix" = XNONE ; then
851 usrprefix="$ac_default_prefix"
856 RPMCONFIGDIR="`echo ${usrprefix}/lib/rpm`"
857 AC_SUBST(RPMCONFIGDIR)
861 if test "$with_external_db" = no; then
862 AC_CONFIG_SUBDIRS(db3)
865 AM_CONDITIONAL([WITH_INTERNAL_DB],[test "$with_external_db" = no])
866 AM_CONDITIONAL([DOXYGEN],[test "$DOXYGEN" != no])
867 AM_CONDITIONAL([HACKINGDOCS],[test "$with_hackingdocs" = yes])
869 AC_PATH_PROG(AUTOM4TE,autom4te,:)
871 AC_SUBST([dirstamp],[\${am__leading_dot}dirstamp])
873 AC_CONFIG_FILES([Makefile
874 rpmio/Makefile lib/Makefile build/Makefile sign/Makefile
875 po/Makefile.in scripts/Makefile fileattrs/Makefile