Add check for db_threadid_t in db.h.
[platform/upstream/rpm.git] / configure.ac
1 AC_PREREQ(2.61)
2 AC_INIT(rpm, 4.4.90, rpm-maint@lists.rpm.org)
3
4 AC_CONFIG_SRCDIR([rpmqv.c])
5 AM_CONFIG_HEADER([config.h])
6
7 AM_INIT_AUTOMAKE([1.10 foreign tar-ustar dist-bzip2 subdir-objects])
8
9 AC_CONFIG_TESTDIR(tests)
10
11 AC_DISABLE_STATIC
12
13 AC_AIX
14 AC_MINIX
15
16 dnl Checks for programs.
17 AC_PROG_CXX
18 AC_PROG_AWK
19 AC_PROG_CC
20 AC_PROG_CPP
21 AC_PROG_INSTALL
22 AC_PROG_LN_S
23 AC_PROG_MAKE_SET
24 AC_PROG_LIBTOOL
25 AC_PROG_YACC
26
27 AS=${AS-as}
28 AC_SUBST(AS)
29 if test "$GCC" = yes; then
30     CFLAGS="$CFLAGS -fPIC -DPIC -D_GNU_SOURCE -D_REENTRANT -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wno-char-subscripts"
31     cflags_to_try="-fno-strict-aliasing"
32     AC_MSG_CHECKING([supported compiler flags])
33     old_cflags=$CFLAGS
34     echo
35     for flag in $cflags_to_try; do
36         CFLAGS="$CFLAGS $flag"
37         AC_TRY_COMPILE(, [return 0;], [
38                 echo "   $flag"
39                 RPMCFLAGS="$RPMCFLAGS $flag"
40         ])
41         CFLAGS=$old_cflags
42     done
43     CFLAGS="$CFLAGS $RPMCFLAGS"
44 fi
45 export CFLAGS
46
47 AC_PROG_GCC_TRADITIONAL
48 AC_SYS_LARGEFILE
49
50 dnl Does this platform require array notation to assign to a va_list?
51 dnl If cross-compiling, we assume va_list is "normal".  If this breaks
52 dnl you, set ac_cv_valistisarray=true and maybe define HAVE_VA_LIST_AS_ARRAY
53 dnl also just to be sure.
54 AC_MSG_CHECKING(whether va_list assignments need array notation)
55 AC_CACHE_VAL(ac_cv_valistisarray,
56         [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h>
57                      #include <stdarg.h>
58                      void foo(int i, ...) {
59                         va_list ap1, ap2;
60                         va_start(ap1, i);
61                         ap2 = ap1;
62                         if (va_arg(ap2, int) != 123 || va_arg(ap1, int) != 123)
63                             { exit(1); }
64                         va_end(ap1); va_end(ap2);
65                      }
66                      int main() { foo(0, 123); return(0); }]])],[ac_cv_valistisarray=false],[ac_cv_valistisarray=true],[ac_cv_valistisarray=false])])
67
68 if test "$ac_cv_valistisarray" = true ; then
69         AC_DEFINE(HAVE_VA_LIST_AS_ARRAY, 1,
70                 [Define as 1 if your va_list type is an array])
71         AC_MSG_RESULT(yes)
72 else
73        AC_MSG_RESULT(no)
74 fi
75
76 RPMUSER=rpm
77 RPMUID=37
78 RPMGROUP=rpm
79 RPMGID=37
80 export RPMUSER RPMUID RPMGROUP RPMGID
81 AC_SUBST(RPMUSER)
82 AC_SUBST(RPMUID)
83 AC_SUBST(RPMGROUP)
84 AC_SUBST(RPMGID)
85
86 dnl
87 dnl This now uses libtool. Put
88 dnl     LDFLAGS_STATIC="-all"
89 dnl to attempt static executables using libtool. Otherwise
90 dnl     LDFLAGS_STATIC=""
91 dnl
92 AC_MSG_CHECKING(flag used by libtool to link rpm)
93 if test X"$GCC" = Xyes ; then
94         case "$host" in
95                 *-*-linux*)     LDFLAGS_STATIC="-all-static" ;;
96                 *-*-solaris*)   LDFLAGS_STATIC="-static";;
97                 *-*-hpux*)      LDFLAGS_STATIC="-static";;
98                 *-*-darwin*)    LDFLAGS_STATIC="";; # Mac OS X does not do static binaries.
99                 *-*-sysv5uw*)   LDFLAGS_STATUS="-static";; # Unixware has no shared libthread.
100                 *-*-*)          LDFLAGS_STATIC="";;
101         esac
102 elif test X"$CC" = Xcc ; then
103         case "$host" in
104                 *-*-linux*)     LDFLAGS_STATIC="-all-static";;
105                 *-*-freebsd*)   LDFLAGS_STATIC="-all-static";;
106                 *-*-osf*)       LDFLAGS_STATIC="";; # OSF5 has no shared pthreads libs
107                 *-*-aix*)       LDFLAGS_STATIC="-static";;  # -Wl,-bnso doesn't seem to work...
108                 *-*-hpux*)      LDFLAGS_STATIC="-static";;
109                 *-*-solaris*)   LDFLAGS_STATIC="-static";;
110                 *-*-irix*)      LDFLAGS_STATIC="-static";;  #should be -non_shared, but can't
111                                                                                         # link because of crt1.o then.
112                 *-*-ultrix*)    LDFLAGS_STATIC="-all-static";;  #ultrix doesn't have shared libs.
113                 *-*-*)          LDFLAGS_STATIC=""
114 AC_MSG_WARN([
115
116 Unable to guess what option to pass to $CC to generate a static
117 executable.  You will need to set the LDFLAGS_STATIC macro in Makefile.inc to
118 the appropriate argument(s) if you want to build a static rpm executable.
119
120 ])
121                 ;;
122         esac
123 else
124         # just link it dynamically
125         LDFLAGS_STATIC=""
126 fi
127 LDFLAGS_STATIC="${LDFLAGS} ${LDFLAGS_STATIC}"   # libtool format
128 AC_MSG_RESULT($LDFLAGS_STATIC)
129 AC_SUBST(LDFLAGS_STATIC)
130
131 dnl
132 dnl XXX Test for libpthread.a that is NPTL aware (static link only).
133 dnl
134 LDFLAGS_NPTL=
135 if test -f /usr/lib/nptl/libpthread.a ; then
136     LDFLAGS_NPTL="-L/usr/lib/nptl"
137 #    INCPATH="$INCPATH -I/usr/include/nptl"
138 fi
139 AC_SUBST(LDFLAGS_NPTL)
140
141 dnl
142 dnl look for POSIX chmod attributes
143 dnl
144 AC_MSG_CHECKING(POSIX chmod)
145 touch foo.chmodtest
146 chmod 744 foo.chmodtest
147 chmod +X foo.chmodtest 2>/dev/null
148 a=`ls -l foo.chmodtest | awk '{print $1}'`
149 rm -f foo.chmodtest
150 if test "$a" = "-rwxr-xr-x"; then
151     AC_MSG_RESULT(yes)
152     FIXPERMS=a+rX,u+w,g-w,o-w 
153 else
154     AC_MSG_RESULT(no (tell your OS vendor about GNU fileutils))
155     FIXPERMS=a+r,u+w,g-w,o-w 
156 fi
157 AC_SUBST(FIXPERMS)
158
159 dnl
160 dnl see if we have a mkdir that supports `-p'.
161 dnl
162 AC_PATH_PROGS(RPM_MKDIR, mkdir, mkdir)
163 AC_MSG_CHECKING(if $RPM_MKDIR supports -p)
164 rm -rf conftest
165 $RPM_MKDIR -p conftest/a 2>/dev/null
166 if test $? = 0 ; then
167         rmdir conftest/a 2>/dev/null
168         if test $? = 0  ; then
169                 :
170         else
171                 RPM_MKDIR_P=0
172         fi
173
174         rmdir conftest 2>/dev/null
175         if test $? = 0 ; then
176                 RPM_MKDIR_P="$RPM_MKDIR -p"
177         else
178                 RPM_MKDIR_P=0
179         fi
180 else
181         RPM_MKDIR_P=0
182 fi
183
184 if test X"$RPM_MKDIR_P" = X0 ; then
185         AC_MSG_RESULT(no)
186         RPM_MKDIR_P="`echo ${prefix}/lib/rpm/mkinstalldirs`"
187 else
188         AC_MSG_RESULT(yes)
189 fi
190 dnl
191 dnl substitute this into config.h, so the C source picks it up.
192 dnl
193 AC_DEFINE_UNQUOTED(RPM_MKDIR_P, "${RPM_MKDIR_P}",
194 [A full path to a program, possibly with arguments, that will create a
195    directory and all necessary parent directories, ala 'mkdir -p'])
196 AC_SUBST(RPM_MKDIR_P)
197
198 AC_ISC_POSIX
199
200 dnl This test must precede tests of compiler characteristics like
201 dnl that for the inline keyword, since it may change the degree to
202 dnl which the compiler supports such features.
203 AM_C_PROTOTYPES
204
205 dnl AM_DISABLE_SHARED
206 AM_PROG_LIBTOOL
207
208 AC_CHECK_TOOL(AR, ar, :)
209
210 dnl
211 dnl use defaults if cross-compiling, otherwise use the default path.
212 dnl
213 if test "$cross_compiling" = "yes"; then
214     MYPATH=":"
215 else
216     MYPATH=$PATH
217 fi
218
219 dnl
220 dnl Find some common programs
221 dnl
222 AC_PATH_PROG(__BZIP2, bzip2, /usr/bin/bzip2, $MYPATH)
223 AC_PATH_PROG(__CAT, cat, /bin/cat, $MYPATH)
224 AC_PATH_PROG(__CHGRP, chgrp, /bin/chgrp, $MYPATH)
225 AC_PATH_PROG(__CHMOD, chmod, /bin/chmod, $MYPATH)
226 AC_PATH_PROG(__CHOWN, chown, /bin/chown, $MYPATH)
227 AC_PATH_PROG(__CP, cp, /bin/cp, $MYPATH)
228 AC_PATH_PROG(__CPIO, cpio, /bin/cpio, $MYPATH)
229 AC_PATH_PROG(__CURL, curl, /usr/bin/curl, $MYPATH)
230 AC_PATH_PROG(__FILE, file, /usr/bin/file, $MYPATH)
231 AC_PATH_PROG(__GPG, gpg, /usr/bin/gpg, $MYPATH)
232 AC_PATH_PROG(__GREP, grep, /bin/grep, $MYPATH)
233 AC_PATH_PROG(__GZIP, gzip, /bin/gzip, $MYPATH)
234 AC_PATH_PROG(__UNZIP, unzip, /usr/bin/unzip, $MYPATH)
235
236 AC_PATH_PROG(__ID, id, /usr/bin/id, $MYPATH)
237 AC_MSG_CHECKING(checking whether id supports -u)
238     if ${__ID} -u 2>&1 > /dev/null ; then
239         __ID_U="%{__id} -u"
240         AC_MSG_RESULT(yes)
241     else
242         __ID_U="%{__id} | %{__sed} 's/[[^=]]*=\\\\([[0-9]][[0-9]]*\\\\).*$/\\\\1/'"
243         AC_MSG_RESULT(no)
244     fi
245 AC_SUBST(__ID_U)
246
247 AC_PATH_PROG(__INSTALL, install, /usr/bin/install, $MYPATH)
248 AC_PATH_PROG(__MAKE, make, /usr/bin/make, $MYPATH)
249 AC_PATH_PROG(__MKDIR, mkdir, /bin/mkdir, $MYPATH)
250 AC_PATH_PROG(__MV, mv, /bin/mv, $MYPATH)
251 AC_PATH_PROG(__PATCH, patch, /usr/bin/patch, $MYPATH)
252 AC_MSG_CHECKING(old version of patch)
253     PATCHVERSION=`patch --version 2>&1`
254
255     if test "$PATCHVERSION" = "Patch version 2.1"; then
256         AC_DEFINE(HAVE_OLDPATCH_21, 1,
257                 [Define if the patch call you'll be using is 2.1 or older])
258         AC_MSG_RESULT(patch older then 2.2 found)
259     else
260         AC_MSG_RESULT(patch later then 2.2 found)
261     fi
262
263 AC_PATH_PROG(__PERL, perl, /usr/bin/perl, $MYPATH)
264 AC_PATH_PROG(__PGP, pgp, /usr/bin/pgp, $MYPATH)
265 AC_PATH_PROG(__PYTHON, python, /usr/bin/python, $MYPATH) 
266 AC_PATH_PROG(__RM, rm, /bin/rm, $MYPATH)
267 AC_PATH_PROG(__RSH, rsh, /usr/bin/rsh, $MYPATH)
268 AC_PATH_PROG(__SED, sed, /bin/sed, $MYPATH)
269 AC_PATH_PROG(__SSH, ssh, /usr/bin/ssh, $MYPATH)
270 AC_PATH_PROG(__TAR, tar, /bin/tar, $MYPATH)
271
272 AC_PATH_PROG(__LD, ld, /usr/bin/ld, $MYPATH)
273 AC_PATH_PROG(__NM, nm, /usr/bin/nm, $MYPATH)
274 AC_PATH_PROG(__OBJCOPY, objcopy, /usr/bin/objcopy, $MYPATH)
275 AC_PATH_PROG(__OBJDUMP, objdump, /usr/bin/objdump, $MYPATH)
276 AC_PATH_PROG(__STRIP, strip, /usr/bin/strip, $MYPATH)
277
278 addlib() {
279   l=$1
280   shift
281   case "$host" in 
282     *-*-solaris*)       LIBS="$LIBS -L$l -R$l $*";;
283     *)          LIBS="$LIBS -L$l $*";;
284   esac
285 }
286
287 #=================
288 # Check for zlib library. 
289
290 WITH_ZLIB_INCLUDE=
291 WITH_ZLIB_LIB=
292
293 if test -z "${WITH_ZLIB_LIB}" ; then
294   for zlib in z gz ; do
295    AC_CHECK_LIB(${zlib}, gzread, 
296         [WITH_ZLIB_LIB="-l${zlib}"; break], 
297         [if test ${zlib} = gz; then 
298             AC_MSG_ERROR([sorry rpm requires libz.a or libgz.a (from the zlib package)]) 
299          fi]
300                )
301   done
302
303 dnl zlib-1.0.4 has not gzseek
304   AC_CHECK_LIB(${zlib}, gzseek, [AC_DEFINE(HAVE_GZSEEK, 1, [Define as 1 if your zlib has gzseek()])])
305 fi
306
307 AC_SUBST(WITH_ZLIB_INCLUDE)
308 AC_SUBST(WITH_ZLIB_LIB)
309
310 #=================
311 # Check for bzip2 library.
312
313 AC_CHECK_LIB(bz2, bzread, [LIBS="$LIBS -lbz2"], 
314    AC_CHECK_LIB(bz2, BZ2_bzread, [
315      WITH_BZIP2=1
316      LIBS="$LIBS -lbz2"
317      AC_DEFINE(HAVE_BZ2_1_0, 1, [Define as 1 if you bzip2 1.0]) ], 
318      WITH_BZIP2=0))
319 AC_SUBST(WITH_BZIP2)
320
321 #=================
322
323 dirs=$prefix
324 AC_MSG_CHECKING(for /usr/ucblib in LIBS)
325 if test -d /usr/ucblib ; then
326         if test "$build" = "mips-sni-sysv4" ; then
327                 addlib /usr/ccs/lib -lc
328         fi
329
330         addlib /usr/ucblib
331         
332         AC_MSG_RESULT(yes)
333 else
334         AC_MSG_RESULT(no)
335 fi
336
337 dnl
338 dnl Check for features
339 dnl
340
341 dnl Checks for libraries.
342
343 AC_CHECK_FUNC(setreuid, [], [
344     AC_CHECK_LIB(ucb, setreuid, [if echo $LIBS | grep -- -lucb >/dev/null ;then :; else LIBS="$LIBS -lc -lucb" USEUCB=y;fi])
345 ])
346
347 AC_CHECK_FUNC(rand, [], [
348     AC_CHECK_LIB(rand, rand, [])
349 ])
350
351 AC_CHECK_FUNC(getdomainname, [], [
352     AC_CHECK_LIB(nsl, getdomainname)
353 ])
354 AC_CHECK_FUNC(socket, [], [
355     AC_CHECK_LIB(socket, socket)
356 ])
357
358 AC_CHECK_HEADERS(error.h)
359 AC_CHECK_FUNCS(error)
360
361 AC_CHECK_HEADERS(poll.h)
362
363 AC_CHECK_HEADERS(thread.h pthread.h synch.h semaphore.h)
364
365 AC_CHECK_LIB(pthread, pthread_mutex_trylock, [], [
366   dnl OSF 5.0 has the the symbols prefixed with __ in libpthread.
367   AC_CHECK_LIB(pthread, __pthread_mutex_trylock, [], [
368     AC_CHECK_LIB(thread, mutex_lock)
369   ])
370 ])
371
372 AC_CHECK_HEADERS(aio.h)
373 AC_SEARCH_LIBS(aio_read, [c rt aio posix4])
374
375 dnl Better not use fchmod at all.
376 AC_CHECK_FUNC(fchmod)
377
378 AC_CHECK_FUNCS(vsnprintf snprintf)
379
380 dnl Temporary hack for MiNT.  Some functions (writev, snprintf) are
381 dnl not in the libc but in libport (for political reasons).  This check
382 dnl can hopefully be removed soon.  Please use the default action
383 dnl for this macro (not LIBS=...), otherwise the check for dbopen
384 dnl will fail.
385 AC_CHECK_LIB(port, writev)
386
387 #=================
388 # Check for libelf library. Prefer external, otherwise none.
389 WITH_LIBELF_INCLUDE=
390 WITH_LIBELF_LIB=
391 AC_CHECK_HEADER([libelf.h])
392 AC_CHECK_HEADERS([gelf.h], [
393         AC_CHECK_LIB(elf, gelf_getvernaux, [
394             AC_DEFINE(HAVE_LIBELF, 1, [Define to 1 if you have the 'elf' library (-lelf).])
395             WITH_LIBELF_LIB="-lelf"
396             WITH_LIBELF=yes
397         ])
398 ])
399 AC_SUBST(WITH_LIBELF_INCLUDE)
400 AC_SUBST(WITH_LIBELF_LIB)
401 AM_CONDITIONAL(LIBELF,[test "$WITH_LIBELF" = yes])
402
403 AC_CHECK_HEADERS([dwarf.h], [
404   WITH_LIBDWARF=yes
405 ])
406 AM_CONDITIONAL(LIBDWARF,[test "$WITH_LIBDWARF" = yes])
407
408 #=================
409 # Check for beecrypt library.
410 WITH_BEECRYPT_INCLUDE=
411 WITH_BEECRYPT_LIB=
412 AC_CHECK_HEADERS([beecrypt/beecrypt.h], [
413   AC_CHECK_LIB(beecrypt, mpfprintln, [
414     AC_CHECK_HEADERS([beecrypt/api.h])
415     WITH_BEECRYPT_INCLUDE=
416     WITH_BEECRYPT_LIB="-lbeecrypt"
417   ],[
418     AC_MSG_ERROR([missing required library beecrypt])
419   ])
420 ],[
421   AC_MSG_ERROR([missing required header beecrypt/beecrypt.h])
422 ])
423 AC_SUBST(WITH_BEECRYPT_INCLUDE)
424 AC_SUBST(WITH_BEECRYPT_LIB)
425
426 #=================
427 # Check for magic library.
428 WITH_MAGIC_INCLUDE=
429 WITH_MAGIC_LIB=
430
431 AC_CHECK_HEADER([magic.h], [
432     AC_CHECK_LIB(magic, magic_open, [
433       WITH_MAGIC_INCLUDE=
434       WITH_MAGIC_LIB="-lmagic"
435     ],[
436       AC_MSG_ERROR([missing required library 'libmagic']) 
437     ])
438 ],[
439       AC_MSG_ERROR([missing required header magic.h]) 
440 ])
441
442 AC_SUBST(WITH_MAGIC_INCLUDE)
443 AC_SUBST(WITH_MAGIC_LIB)
444
445 #=================
446 # Check for popt library.
447 WITH_POPT_INCLUDE=
448 WITH_POPT_LIB=
449
450 AC_CHECK_HEADER([popt.h], [
451   AC_CHECK_LIB(popt, poptGetContext, [
452       WITH_POPT_INCLUDE=
453       WITH_POPT_LIB="-lpopt"
454   ],[
455     AC_MSG_ERROR([missing required library popt])
456   ])
457 ],[
458   AC_MSG_ERROR([missing required header popt.h])
459 ])
460
461 AC_SUBST(WITH_POPT_INCLUDE)
462 AC_SUBST(WITH_POPT_LIB)
463
464 #=================
465
466 # Process --with/without-internal-db
467 ## FIXME: Intentionally kept hidden until things have matured.
468 case "$with_internal_db" in
469 no )
470   AC_CHECK_HEADER([db.h],[
471     AC_CHECK_TYPE(db_threadid_t,[],
472       [AC_MSG_WARN([missing type db_threadid_t])],
473       [#include <db.h>])
474     save_LIBS="$LIBS"
475     AC_CHECK_LIB([db],[db_create],[],[
476       AC_MSG_ERROR([missing db_create in libdb])
477       ])
478     AC_CHECK_LIB([db],[db_env_create],[],[
479       AC_MSG_ERROR([missing db_env_create in libdb])
480       ])
481     AC_CHECK_LIB([db],[db_env_set_func_fsync],[],[
482       AC_MSG_ERROR([missing db_env_set_func_fsync in libdb])
483       ])
484     AC_CHECK_LIB([db],[db_strerror],[],[
485       AC_MSG_ERROR([missing db_strerror in libdb])
486       ])
487     WITH_DB_LIB=-ldb
488     LIBS="$save_LIBS"
489   ],[
490     AC_MSG_ERROR([missing required header db.h])
491   ])
492   ;;
493 * ) # Fall back to internal db
494   AC_DEFINE(HAVE_DB3_DB_H, 1, [Define if you have the <db3/db.h> header file])
495   ;;
496 esac
497
498 AC_SUBST([WITH_DB_LIB])
499
500 #=================
501 # Check for sqlite3 library.
502 AC_ARG_ENABLE(sqlite3, [  --enable-sqlite3        enable sqlite3 support],
503 [case "$enable_sqlite3" in
504 yes|no) ;;
505 *) AC_MSG_ERROR([invalid argument to --enable-sqlite3])
506   ;;
507 esac],
508 [enable_sqlite3=no])
509
510 WITH_SQLITE3_INCLUDE=
511 WITH_SQLITE3_LIB=
512 WITH_SQLITE3=no
513 AS_IF([test "$enable_sqlite3" = yes],[
514   AC_CHECK_HEADERS([sqlite3.h],
515   [ AC_CHECK_LIB(sqlite3, sqlite3_open, [
516       WITH_SQLITE3_INCLUDE=
517       WITH_SQLITE3_LIB="-lsqlite3"
518       WITH_SQLITE3=yes
519     ],[
520       AC_MSG_ERROR([missing libsqlite3])
521     ])
522   ],[
523     AC_MSG_ERROR([missing sqlite3.h])
524   ])
525 ])
526
527 AC_SUBST(WITH_SQLITE3_INCLUDE)
528 AC_SUBST(WITH_SQLITE3_LIB)
529 AM_CONDITIONAL([SQLITE3],[test "$WITH_SQLITE3" = yes])
530
531 #=================
532
533 dnl AmigaOS and IXEmul have a fork() dummy
534   case "$host" in
535     m68k-*-amigaos ) 
536         echo "Building for AmigaOS: using vfork() instead of fork()"; 
537         CFLAGS="$CFLAGS -Dfork=vfork" 
538         ;;
539   esac
540
541 AM_GNU_GETTEXT_VERSION([0.16.1])
542 AM_GNU_GETTEXT([external])
543
544 dnl Checks for header files we can live without.
545 AC_HEADER_STDC
546 AC_HEADER_MAJOR
547 AC_HEADER_DIRENT
548 AC_HEADER_TIME
549
550 AC_CHECK_HEADERS(fcntl.h getopt.h grp.h memory.h netdb.h pwd.h utime.h)
551
552 AC_CHECK_HEADERS(sys/ipc.h sys/socket.h sys/select.h)
553 AC_CHECK_HEADERS(sys/types.h sys/stdtypes.h)
554 AC_CHECK_HEADERS(sys/mman.h sys/resource.h sys/utsname.h sys/wait.h)
555
556 AC_CHECK_HEADERS(netinet/in_systm.h)
557 AC_CHECK_HEADERS(machine/types.h)
558 AC_CHECK_HEADERS(mntent.h sys/mnttab.h sys/systemcfg.h)
559 AC_CHECK_HEADERS(sys/mount.h sys/mntctl.h sys/param.h sys/vmount.h)
560 AC_CHECK_HEADERS(bzlib.h libio.h zlib.h)
561 AC_CHECK_HEADERS(err.h mcheck.h)
562 AC_CHECK_HEADERS(pthread.h)
563
564 AC_CHECK_HEADERS(glob.h)
565 AC_CHECK_HEADERS(locale.h)
566
567 dnl statfs portability fiddles.
568 dnl
569 dnl We should really emulate/steal sections of the statfs and struct statfs
570 dnl checks from GNU fileutils.
571 dnl
572 AC_MSG_CHECKING(for struct statfs)
573
574 dnl
575 dnl this is easier than nesting AC_TRY_COMPILEs...
576 dnl
577 found_struct_statfs=no
578
579 if test X$found_struct_statfs = Xno ; then
580 dnl Solaris 2.6+ wants to use statvfs
581 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
582 #ifdef HAVE_SYS_TYPES_H
583 #include <sys/types.h>
584 #endif
585 #include <sys/statvfs.h> ]], [[struct statvfs sfs;]])],[AC_MSG_RESULT(in sys/statvfs.h)
586         AC_DEFINE(STATFS_IN_SYS_STATVFS, 1,
587                 [statfs in <sys/statvfs.h> (for solaris 2.6+ systems)])
588         found_struct_statfs=yes],[])
589 fi
590
591 if test X$found_struct_statfs = Xno ; then
592 dnl first try including sys/vfs.h
593 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
594 #ifdef HAVE_SYS_TYPES_H
595 #include <sys/types.h>
596 #endif
597 #include <sys/vfs.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in sys/vfs.h)
598         AC_DEFINE(STATFS_IN_SYS_VFS, 1, [statfs in <sys/vfs.h> (for linux systems)])
599         found_struct_statfs=yes],[])
600 fi
601
602 if test X$found_struct_statfs = Xno ; then
603 dnl ...next try including sys/mount.h
604 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
605 #ifdef HAVE_SYS_TYPES_H
606 #include <sys/types.h>
607 #endif
608 #ifdef HAVE_SYS_PARAM_H
609 #include <sys/param.h>
610 #endif
611 #include <sys/mount.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in sys/mount.h)
612         AC_DEFINE(STATFS_IN_SYS_MOUNT, 1, [statfs in <sys/mount.h> (for Digital Unix 4.0D systems)])
613         found_struct_statfs=yes],[])
614 fi
615
616 if test X$found_struct_statfs = Xno ; then
617 dnl ...still no joy.  Try sys/statfs.h
618 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
619 #ifdef HAVE_SYS_TYPES_H
620 #include <sys/types.h>
621 #endif
622 #include <sys/statfs.h> ]], [[struct statfs sfs;]])],[AC_MSG_RESULT(in sys/statfs.h)
623         AC_DEFINE(STATFS_IN_SYS_STATFS, 1, [statfs in <sys/statfs.h> (for Irix 6.4 systems)])
624         found_struct_statfs=yes],[])
625 fi
626
627 if test X$found_struct_statfs = Xno ; then
628 dnl ...no luck.  Warn the user of impending doom.
629 AC_MSG_WARN(not found)
630 fi
631
632 dnl
633 dnl if we found the struct, see if it has the f_bavail member.  Some OSes
634 dnl don't, including IRIX 6.5+
635 dnl
636 if test X$found_struct_statfs = Xyes ; then
637 AC_MSG_CHECKING(for f_bavail member in struct statfs)
638 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
639 #ifdef HAVE_SYS_TYPES_H
640 #include <sys/types.h>
641 #endif
642 #if STATFS_IN_SYS_STATVFS
643 # include <sys/statvfs.h>
644   typedef struct statvfs STATFS_t;
645 #else
646   typedef struct statfs STATFS_t;
647 # if STATFS_IN_SYS_VFS
648 #  include <sys/vfs.h>
649 # elif STATFS_IN_SYS_MOUNT
650 #  include <sys/mount.h>
651 # elif STATFS_IN_SYS_STATFS
652 #  include <sys/statfs.h>
653 # endif
654 #endif ]], [[STATFS_t sfs;
655         sfs.f_bavail = 0;]])],[AC_MSG_RESULT(yes)
656         AC_DEFINE(STATFS_HAS_F_BAVAIL, 1, [Define if struct statfs has the f_bavail member])],[AC_MSG_RESULT(no)
657 ])
658 fi
659
660 if test X$found_struct_statfs = Xyes ; then
661 dnl
662 dnl now check to see if we have the 4-argument variant of statfs()
663 dnl this pretty much requires AC_RUN_IFELSE([AC_LANG_SOURCE([[]])],[],[],[])
664 dnl
665 AC_MSG_CHECKING([if statfs() requires 4 arguments])
666 AC_RUN_IFELSE([AC_LANG_SOURCE([[
667 #ifdef HAVE_SYS_TYPES_H
668 #include <sys/types.h>
669 #endif
670 #ifdef STATFS_IN_SYS_VFS
671 #include <sys/vfs.h>
672 #elif STATFS_IN_SYS_MOUNT
673 #include <sys/mouht.h>
674 #elif STATFS_IN_SYS_STATFS
675 #include <sys/statfs.h>
676 #endif
677 main() {
678         struct statfs sfs;
679         exit (statfs(".", &sfs, sizeof(sfs), 0));
680 }
681 ]])],[AC_MSG_RESULT(yes)
682         AC_DEFINE(STAT_STATFS4, 1, [Define if the statfs() call takes 4 arguments])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)
683 ])
684 fi
685
686 AC_C_INLINE
687
688 dnl look for libc features
689 PROVIDES_ERRNO=no
690 AC_MSG_CHECKING(if <netdb.h> defines h_errno)
691 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]], [[printf("%d",h_errno)]])],[PROVIDES_ERRNO=yes],[])
692 AC_MSG_RESULT($PROVIDES_ERRNO)
693 if test $PROVIDES_ERRNO = yes; then
694         AC_DEFINE(HAVE_HERRNO, 1, [ Define as 1 if <netdb.h> defines h_errno])
695 fi
696
697 dnl If a system doesn't have S_IFSOCK, define it as 0 which will
698 dnl make S_ISSOCK always return false (nice, eh?)
699 AC_MSG_CHECKING(if <sys/stat.h> defines S_IFSOCK)
700 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/stat.h>]], [[printf("%d", S_IFSOCK)]])],[HAS_S_IFSOCK=yes],[HAS_S_IFSOCK=no])
701 AC_MSG_RESULT($HAS_S_IFSOCK)
702 if test $HAS_S_IFSOCK = yes; then
703         AC_DEFINE(HAVE_S_IFSOCK, 1, [Define as 1 if <sys/stat.h> defines S_IFSOCK])
704 fi
705
706 dnl Some Unix's are missing S_ISLNK, S_ISSOCK
707 AC_MSG_CHECKING(if <sys/stat.h> defines S_ISLNK)
708 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/stat.h>]], [[printf("%d", S_ISLNK(0755))]])],[HAS_S_ISLNK=yes],[HAS_S_ISLNK=no])
709 AC_MSG_RESULT($HAS_S_ISLNK)
710 if test $HAS_S_ISLNK = yes; then
711         AC_DEFINE(HAVE_S_ISLNK, 1, [Define as 1 if <sys/stat.h> defines S_ISLNK])
712 fi
713
714 AC_MSG_CHECKING(if <sys/stat.h> defines S_ISSOCK)
715 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/stat.h>]], [[printf("%d", S_ISSOCK(0755))]])],[HAS_S_ISSOCK=yes],[HAS_S_ISSOCK=no])
716 AC_MSG_RESULT($HAS_S_ISSOCK)
717 if test $HAS_S_ISSOCK = yes; then
718         AC_DEFINE(HAVE_S_ISSOCK, 1, [Define as 1 if <sys/stat.h> defines S_ISSOCK])
719 fi
720
721 AC_MSG_CHECKING(if timezone is defined)
722 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[printf("%ld", timezone)]])],[HAS_TIMEZONE=yes],[HAS_TIMEZONE=no])
723 AC_MSG_RESULT($HAS_TIMEZONE)
724
725 dnl Check for missing typedefs
726 AC_TYPE_MODE_T
727 AC_TYPE_OFF_T
728 AC_TYPE_PID_T
729 AC_TYPE_SIZE_T
730
731 dnl Checks for library functions.
732 AC_FUNC_ALLOCA
733 AC_FUNC_VPRINTF
734 dnl XXX don't want to re-enable code that's been unused for years at this
735 dnl point, but should offer good performance improvements, check after
736 dnl 4.4.2.1...
737 dnl AC_FUNC_MMAP
738
739 AC_CHECK_FUNCS(basename getaddrinfo getcwd getnameinfo getwd inet_aton)
740 AC_CHECK_FUNCS(mtrace putenv realpath setenv)
741 AC_CHECK_FUNCS(stpcpy stpncpy strcspn)
742 AC_CHECK_FUNCS(strdup strndup strerror strtol strtoul strspn strstr)
743
744 AC_CHECK_FUNCS(__secure_getenv)
745
746 AC_CHECK_FUNCS(regcomp)
747
748 AC_CHECK_FUNCS(ftok)
749
750 AC_CHECK_FUNCS(mkstemp)
751
752 dnl XXX Glob *is* broken on linux with libc5, solaris and possibly aix when
753 dnl %files gets something like
754 dnl     /usr/*/locale/*/LC_MESSAGES/*.mo
755 dnl (Note: more than one asterisk in glob pattern.)
756 dnl
757 dnl XXX Glob is "fixed" in glibc-2.3.3-61, but the cost is that
758 dnl dangling symlinks are no longer globbed. Always use the internal glob.
759 AC_DEFINE(USE_GNU_GLOB, 1, [Use the included glob.c?])
760 AC_LIBOBJ(glob)
761 AC_LIBOBJ(fnmatch)
762
763 dnl check if python is requested
764 AC_ARG_ENABLE(python, [  --enable-python         build rpm python bindings ],
765 [case "$enable_python" in
766 yes|no) ;;
767 *) AC_MSG_ERROR([invalid argument to --enable-python])
768   ;;
769 esac],
770 [enable_python=no])
771
772 AS_IF([test "$enable_python" = yes],[
773 # rpm-python is based on python-2.5, 
774 # with legacy hacks to allow building against python >= 2.3
775   AM_PATH_PYTHON([2.3],[
776     WITH_PYTHON_INCLUDE=`${PYTHON} -c 'from distutils.sysconfig import *; print get_python_inc()'`
777     WITH_PYTHON_SUBPACKAGE=1
778     save_CPPFLAGS="$CPPFLAGS"
779     CPPFLAGS="$CPPFLAGS -I$WITH_PYTHON_INCLUDE"
780     AC_CHECK_HEADER([Python.h],[],
781       [AC_MSG_ERROR([missing Python.h])
782       ])
783     CPPFLAGS="$save_CPPFLAGS"
784     save_LIBS="$LIBS"
785     AC_SEARCH_LIBS([Py_Main],[python${PYTHON_VERSION} python],[
786       WITH_PYTHON_LIB="$ac_res"
787     ],[AC_MSG_ERROR([missing python library])
788     ])
789     LIBS="$save_LIBS"
790   ])
791 ],[
792     WITH_PYTHON_INCLUDE=
793     WITH_PYTHON_LIB=
794     WITH_PYTHON_SUBPACKAGE=0
795 ])
796
797 AC_SUBST(WITH_PYTHON_INCLUDE)
798 AC_SUBST(WITH_PYTHON_LIB)
799
800 AM_CONDITIONAL(PYTHON,[test "$WITH_PYTHON_SUBPACKAGE" = 1])
801
802 AC_PATH_PROG(__DOXYGEN, doxygen, no, $PATH)
803 dnl
804 dnl Auto-detect whether doxygen generated API docs should be included.
805 dnl
806 AC_ARG_WITH(apidocs, [  --with-apidocs          build rpm API docs ],,[with_apidocs=auto])
807
808 case "$with_apidocs" in
809 auto)
810   AS_IF([test "$__DOXYGEN" = no],[with_apidocs=no],[with_apidocs=yes])
811   ;;
812 yes)
813   AS_IF([test "$__DOXYGEN" = no],
814     [AC_MSG_ERROR([rpm API docs needs doxygen in PATH])])
815   ;;
816 esac
817
818 WITH_SELINUX_LIB=
819 AC_ARG_WITH(selinux, [  --with-selinux          build with selinux support ],
820 [case "$with_selinux" in
821 yes|no) ;;
822 *) AC_MSG_ERROR([invalid argument to --with-selinux])
823   ;;
824 esac],
825 [with_selinux=no])
826
827 AS_IF([test "$with_selinux" = yes],[
828   AC_CHECK_HEADER([selinux/selinux.h],[
829     AC_CHECK_LIB(selinux,[is_selinux_enabled],[with_selinux=yes],[
830       AC_MSG_ERROR([--with-selinux given, but libselinux not found])])
831   ],[
832     AC_MSG_ERROR([--with-selinux given, but selinux/selinux.h not found])
833   ])
834 ])
835
836 AS_IF([test "$with_selinux" = yes],[
837   AC_DEFINE(WITH_SELINUX, 1, [Build with selinux support?])
838   WITH_SELINUX_LIB="-lselinux"
839 ])
840 AC_SUBST(WITH_SELINUX_LIB)
841 AM_CONDITIONAL(SELINUX,[test "$with_selinux" = yes])
842
843 WITH_LUA_LIB=
844 WITH_LUA_INCLUDE=
845 AC_ARG_WITH(lua, [  --with-lua              build with lua support ],,[with_lua=yes])
846 AS_IF([test "$with_lua" = yes],[
847   AC_DEFINE(WITH_LUA, 1, [Build with lua support?])
848   WITH_LUA_INCLUDE="-I\${top_srcdir}/lua/include -I\${top_srcdir}/lua/local"
849   WITH_LUA_LIB="\$(top_builddir)/lua/liblua.la"
850 ])
851 AC_SUBST(WITH_LUA_LIB)
852 AC_SUBST(WITH_LUA_INCLUDE)
853
854 AS_IF([test "$with_apidocs" = yes],[
855   WITH_APIDOCS_TARGET=apidocs
856   WITH_APIDOCS=1
857 ],[
858   WITH_APIDOCS=0
859 ])
860 AC_SUBST(WITH_APIDOCS_TARGET)
861 AC_SUBST(WITH_APIDOCS)
862
863 with_dmalloc=no
864 AC_ARG_WITH(dmalloc, [  --with-dmalloc          build with dmalloc debugging support ])
865 if test "$with_dmalloc" = yes ; then
866   AC_DEFINE(DMALLOC, 1, [Build with dmalloc support?])
867   LIBS="$LIBS -ldmalloc"
868 fi
869
870 AC_CHECK_FUNCS(setlocale)
871
872 AC_CHECK_FUNCS(getpassphrase)
873
874 AC_CHECK_FUNC(getmntent, AC_DEFINE(HAVE_GETMNTENT, 1, [Define if you have the getmntent() function]), [
875   AC_CHECK_FUNC(mntctl, AC_DEFINE(HAVE_MNTCTL, 1, [Define as 1 if you have mntctl() (only aix?)]),[
876     AC_CHECK_FUNC(getmntinfo, AC_DEFINE(HAVE_GETMNTINFO, 1, [Define as 1 if you have getmntinfo() (Mac OS X)]), [
877       AC_CHECK_FUNC(getmntinfo_r, AC_DEFINE(HAVE_GETMNTINFO_R, 1, [Define as 1 if you have getmntinfo_r() (only osf?)]), [
878         AC_CHECK_LIB(c_r, getmntinfo_r, [LIBS="$LIBS -lc_r"; 
879                                         AC_DEFINE(HAVE_GETMNTINFO_R, 1, [Define as 1 if you have getmntinfo_r() (only osf?)])], [
880                  AC_DEFINE([USE_GETMNTENT], 1, [Defined if getmntent replacement is used])
881                  AC_LIBOBJ(getmntent)])
882       ])
883     ])
884   ])
885 ])
886
887 AC_CHECK_FUNC(lchown,
888    [__CHOWN_RHF="%{__chown} -Rhf"
889     __CHGRP_RHF="%{__chgrp} -Rhf"
890     AC_DEFINE(HAVE_LCHOWN, 1, [Define as 1 if you have lchown()])],
891    [__CHOWN_RHF="%{__chown} -Rf"
892     __CHGRP_RHF="%{__chgrp} -Rf"
893     dnl Does chown() follow symlinks? This should be a good enough test.
894     AC_MSG_CHECKING(whether chown() follows symlinks)
895     AC_ARG_ENABLE([broken-chown],
896     [  --enable-broken-chown   this system's chown follows symbolic links], 
897             result=$enableval, result=unknown)
898     if echo "$build" | egrep "(aix)|(hpux)|(linux)" > /dev/null ; then
899         result=yes
900     elif echo "$build" | egrep "(nextstep)" > /dev/null ; then
901         result=no
902     fi
903     if test $result = unknown; then
904         if test `${__ID} | cut -f2 -d\= | cut -f1 -d\(` = 0; then
905             rm -f foo bar
906             touch foo
907             ln -s foo bar
908             ${__CHOWN} 10 bar
909             if test `ls -l foo | awk '{print $3}'` != "root"; then
910                 result=yes
911             else
912                 result=no
913             fi
914             ${__RM} -f foo bar
915         else
916             AC_MSG_CHECKING((cannot check by non-root user))
917             result=no
918         fi
919     fi
920
921     AC_MSG_RESULT($result)
922     if test $result = yes; then
923             AC_DEFINE(CHOWN_FOLLOWS_SYMLINK, 1, [Define as 1 if chown() follows symlinks and you don't have lchown()])
924     fi])
925 AC_SUBST(__CHOWN_RHF)
926 AC_SUBST(__CHGRP_RHF)
927
928 dnl
929 dnl figure out what root's primary group is
930 dnl
931 AC_MSG_CHECKING(root's primary group)
932 AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
933 #include <sys/types.h>
934 #include <pwd.h>
935 #include <grp.h>
936
937 int main()
938 {
939         struct passwd *root = NULL;
940         struct group *roots_group = NULL;
941         FILE * tempfile = NULL;
942
943         root = getpwuid( (uid_t) 0 );
944         if (root != NULL) {
945                 roots_group = getgrgid(root->pw_gid);
946                 if (roots_group != NULL) {
947                         tempfile = fopen("conftest_rootg", "w");
948                         if (tempfile != NULL) {
949                                 fprintf(tempfile, "%s\n", roots_group->gr_name);
950                                 fclose(tempfile);
951                                 exit(0);
952                         }
953                 }
954         }
955
956         exit(1);
957 }]])],[ROOT_GROUP=`cat conftest_rootg`],[ROOT_GROUP="root"],[ROOT_GROUP="root"
958 ])
959 AC_MSG_RESULT($ROOT_GROUP)
960 AC_SUBST(ROOT_GROUP)
961
962 if echo "$build_os" | grep sco > /dev/null; then
963         echo "hacking things up for sco"
964         AC_DEFINE(NEED_STRINGS_H, 1, [Define as one if we need to include <strings.h> (along with <string.h>)])
965         AC_DEFINE(HAVE_STRUCT_MNTTAB, 1,
966         [Define as 1 if you have "struct mnttab" (only sco?)])
967 elif echo "$build_os" | grep sunos > /dev/null; then
968         echo "hacking things up for sunos"
969         CFLAGS="$CFLAGS -D__USE_FIXED_PROTOTYPES__"
970         AC_DEFINE(NEED_STRINGS_H, 1, [Define as one if we need to include <strings.h> (along with <string.h>)])
971         AC_DEFINE(NEED_MYREALLOC, 1, [Define as 1 if we need myrealloc])
972         AC_LIBOBJ(myrealloc)
973 fi
974
975 #
976 # get rid of the 4-th tuple, if config.guess returned "linux-gnu" for build_os
977 #
978 build_os_gnu=-gnu
979 if echo "$build_os" | grep '.*-gnulibc1' > /dev/null ; then
980         build_os=`echo "${build_os}" | sed 's/-gnulibc1$//'`
981 fi
982 if echo "$build_os" | grep '.*-gnueabi' > /dev/null ; then
983         build_os=`echo "${build_os}" | sed 's/-gnueabi$//'`
984         build_os_gnu=-gnueabi
985 fi
986 if echo "$build_os" | grep '.*-gnu' > /dev/null ; then
987         build_os=`echo "${build_os}" | sed 's/-gnu$//'`
988 fi
989
990 changequote(<, >)
991 build_os_exact="${build_os}"
992 build_os_major=`echo "${build_os}" | sed 's/\..*$//'`
993 build_os_noversion=`echo "${build_os}" | sed 's/[0-9]*\..*$//'`
994 changequote([, ])
995
996 rm -f ./find-provides
997 if test -f ${srcdir}/autodeps/${build_cpu}-${build_os_exact}.prov ; then
998         echo "using ${srcdir}/autodeps/${build_cpu}-${build_os_exact}.prov for automatic provides generation"
999     ln -s ${srcdir}/autodeps/${build_cpu}-${build_os_exact}.prov ./find-provides
1000 elif test -f ${srcdir}/autodeps/${build_os_exact}.prov ; then
1001         echo "using ${srcdir}/autodeps/${build_os_exact}.prov for automatic provides generation"
1002     ln -s ${srcdir}/autodeps/${build_os_exact}.prov ./find-provides
1003 elif test -f ${srcdir}/autodeps/${build_os_major}.prov ; then
1004         echo "using ${srcdir}/autodeps/${build_os_major}.prov for automatic provides generation"
1005     ln -s ${srcdir}/autodeps/${build_os_major}.prov ./find-provides
1006 elif test -f ${srcdir}/autodeps/${build_os_noversion}.prov ; then
1007         echo "using ${srcdir}/autodeps/${build_os_noversion}.prov for automatic provides generation"
1008     ln -s ${srcdir}/autodeps/${build_os_noversion}.prov ./find-provides
1009 else
1010     echo "*** no default provides information is available for ${build_os_noversion}"
1011     ln -s ${srcdir}/autodeps/none ./find-provides
1012 fi
1013
1014 rm -f ./find-requires
1015 if test -f ${srcdir}/autodeps/${build_cpu}-${build_os_exact}.req ; then
1016         echo "using ${srcdir}/autodeps/${build_cpu}-${build_os_exact}.req for automatic requires generation"
1017     ln -s ${srcdir}/autodeps/${build_cpu}-${build_os_exact}.req ./find-requires
1018 elif test -f ${srcdir}/autodeps/${build_os_exact}.req ; then
1019         echo "using ${srcdir}/autodeps/${build_os_exact}.req for automatic requires generation"
1020     ln -s ${srcdir}/autodeps/${build_os_exact}.req ./find-requires
1021 elif test -f ${srcdir}/autodeps/${build_os_major}.req ; then
1022         echo "using ${srcdir}/autodeps/${build_os_major}.req for automatic requires generation"
1023     ln -s ${srcdir}/autodeps/${build_os_major}.req ./find-requires
1024 elif test -f ${srcdir}/autodeps/${build_os_noversion}.req ; then
1025         echo "using ${srcdir}/autodeps/${build_os_noversion}.req for automatic requires generation"
1026     ln -s ${srcdir}/autodeps/${build_os_noversion}.req ./find-requires
1027 else
1028     echo "*** no default requires information is available for ${build_os_noversion}"
1029     ln -s ${srcdir}/autodeps/none ./find-requires
1030 fi
1031
1032 dnl Determine the canonical arch-vendor-os for the build machine
1033 autorelocate_path='%{nil}'
1034 autorelocate_dcolor='0'
1035 case "${build_cpu}" in
1036 *86)            RPMCANONCOLOR=0; RPMCANONARCH=i386 ;;
1037 ia32e*)         RPMCANONCOLOR=3; RPMCANONARCH=ia32e ;;
1038 amd64*)         RPMCANONCOLOR=3; RPMCANONARCH=amd64 ;;
1039 x86_64*)        RPMCANONCOLOR=3; RPMCANONARCH=x86_64 ;;
1040 alpha*)         RPMCANONCOLOR=0; RPMCANONARCH=alpha ;;
1041 sparc64*)       RPMCANONCOLOR=3; RPMCANONARCH=sparc64 ;;
1042 sparc*)         RPMCANONCOLOR=3; RPMCANONARCH=sparc ;;
1043 ia64*)          RPMCANONCOLOR=2; RPMCANONARCH=ia64;
1044                 autorelocate_path='/emul/%%{ARCH}-%%{OS}'
1045                 autorelocate_dcolor='1' ;;
1046 s390x*)         RPMCANONCOLOR=3; RPMCANONARCH=s390x ;;
1047 s390*)          RPMCANONCOLOR=0; RPMCANONARCH=s390 ;;
1048 powerpc64*|ppc64*)      RPMCANONCOLOR=3; RPMCANONARCH=ppc64 ;;
1049 powerpc*|ppc*)  RPMCANONCOLOR=0; RPMCANONARCH=ppc ;;
1050 arm*)           RPMCANONCOLOR=0; RPMCANONARCH=arm ;;
1051 mipsel*)        RPMCANONCOLOR=0; RPMCANONARCH=mipsel ;;
1052 mips*)          RPMCANONCOLOR=0; RPMCANONARCH=mips ;;
1053 m68k*)          RPMCANONCOLOR=0; RPMCANONARCH=m68k ;;
1054 *)              RPMCANONCOLOR=0; RPMCANONARCH=unknown ;;
1055 esac
1056 case "${build_os_noversion}" in
1057 mint)           RPMCANONARCH=m68kmint ;;
1058 esac
1059 RPMCANONVENDOR="$build_vendor"
1060 case "${build_vendor}" in
1061 unknown|pc|ibm|redhat|pld|mandrake|conectiva|lvr|yellowdog|caos)
1062         test -f /etc/redhat-release &&          RPMCANONVENDOR=redhat
1063         test -f /etc/pld-release &&             RPMCANONVENDOR=pld
1064         test -f /etc/mandrake-release &&        RPMCANONVENDOR=mandrake
1065         test -f /etc/conectiva-release &&       RPMCANONVENDOR=conectiva
1066         test -f /etc/lvr-release &&             RPMCANONVENDOR=lvr
1067         test -f /etc/yellowdog-release &&       RPMCANONVENDOR=yellowdog
1068         test -f /etc/caos-release &&            RPMCANONVENDOR=caos
1069         ;;
1070 esac
1071 RPMCANONOS="$build_os_noversion"
1072 RPMCANONGNU="$build_os_gnu"
1073 AC_SUBST(RPMCANONCOLOR)
1074 AC_SUBST(autorelocate_path)
1075 AC_SUBST(autorelocate_dcolor)
1076 AC_SUBST(RPMCANONARCH)
1077 AC_SUBST(RPMCANONVENDOR)
1078 AC_SUBST(RPMCANONOS)
1079 AC_SUBST(RPMCANONGNU)
1080 AC_DEFINE_UNQUOTED([RPMCANONVENDOR],["${RPMCANONVENDOR}"],[canonical vendor])
1081
1082 if test X"$prefix" = XNONE ; then
1083     usrprefix="$ac_default_prefix"
1084 else
1085     usrprefix=$prefix
1086 fi
1087
1088 RPMCONFIGDIR="`echo ${usrprefix}/lib/rpm`"
1089 AC_SUBST(RPMCONFIGDIR)
1090
1091 AC_SUBST(OBJDUMP)
1092
1093 AC_CONFIG_SUBDIRS(db3)
1094
1095 AM_CONDITIONAL([WITH_INTERNAL_DB],[test "$with_internal_db" != no])
1096
1097 AC_PATH_PROG(AUTOM4TE,autom4te,:)
1098
1099 AC_CONFIG_FILES([ Doxyfile Makefile
1100         rpmio/Makefile rpmdb/Makefile lib/Makefile build/Makefile
1101         po/Makefile.in scripts/Makefile 
1102         misc/Makefile 
1103         doc/Makefile
1104         python/Makefile
1105         lua/Makefile
1106         tests/Makefile
1107   ])
1108 AC_OUTPUT