dnl -*- mode: m4 -*- AC_PREREQ(2.52) AC_INIT(dbus-qt.h) AC_CANONICAL_TARGET AM_INIT_AUTOMAKE(dbus-qt3, 0.70) AM_CONFIG_HEADER(config.h) # Honor aclocal flags ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" ## must come before we use the $USE_MAINTAINER_MODE variable later AM_MAINTAINER_MODE # libtool versioning - this applies to libdbus # # See http://sources.redhat.com/autobook/autobook/autobook_91.html#SEC91 for details # AC_PROG_CC AC_PROG_CXX AC_ISC_POSIX AC_HEADER_STDC AC_ARG_ENABLE(qt3, AS_HELP_STRING([--enable-qt3],[enable Qt3-friendly client library]),enable_qt3=$enableval,enable_qt3=auto) AC_ARG_WITH(qt3_moc, AS_HELP_STRING([--with-qt3-moc=],[moc for Qt3])) AC_ARG_ENABLE(ansi, AS_HELP_STRING([--enable-ansi],[enable -ansi -pedantic gcc flags]),enable_ansi=$enableval,enable_ansi=no) #### gcc warning flags if test "x$GCC" = "xyes"; then changequote(,)dnl case " $CFLAGS " in *[\ \ ]-Wall[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wall" ;; esac case " $CFLAGS " in *[\ \ ]-Wchar-subscripts[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wchar-subscripts" ;; esac case " $CFLAGS " in *[\ \ ]-Wmissing-declarations[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wmissing-declarations" ;; esac case " $CFLAGS " in *[\ \ ]-Wmissing-prototypes[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wmissing-prototypes" ;; esac case " $CFLAGS " in *[\ \ ]-Wnested-externs[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wnested-externs" ;; esac case " $CFLAGS " in *[\ \ ]-Wpointer-arith[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wpointer-arith" ;; esac case " $CFLAGS " in *[\ \ ]-Wcast-align[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wcast-align" ;; esac case " $CFLAGS " in *[\ \ ]-Wfloat-equal[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wfloat-equal" ;; esac case " $CFLAGS " in *[\ \ ]-Wsign-compare[\ \ ]*) ;; *) CFLAGS="$CFLAGS -Wsign-compare" ;; esac if test "x$enable_ansi" = "xyes"; then case " $CFLAGS " in *[\ \ ]-ansi[\ \ ]*) ;; *) CFLAGS="$CFLAGS -ansi" ;; esac case " $CFLAGS " in *[\ \ ]-D_POSIX_C_SOURCE*) ;; *) CFLAGS="$CFLAGS -D_POSIX_C_SOURCE=199309L" ;; esac case " $CFLAGS " in *[\ \ ]-D_BSD_SOURCE[\ \ ]*) ;; *) CFLAGS="$CFLAGS -D_BSD_SOURCE" ;; esac case " $CFLAGS " in *[\ \ ]-pedantic[\ \ ]*) ;; *) CFLAGS="$CFLAGS -pedantic" ;; esac fi changequote([,])dnl fi AM_PROG_LIBTOOL changequote(,)dnl # let ourselves use our own unstable API CPPFLAGS="-DDBUS_API_SUBJECT_TO_CHANGE=1 $CPPFLAGS" # compress spaces in flags CFLAGS=`echo "$CFLAGS" | sed -e 's/ +/ /g'` CXXFLAGS=`echo "$CXXFLAGS" | sed -e 's/ +/ /g'` CPPFLAGS=`echo "$CPPFLAGS" | sed -e 's/ +/ /g'` changequote([,])dnl ## byte order AC_C_BIGENDIAN #### Various functions AC_CHECK_LIB(socket,socket) AC_CHECK_LIB(nsl,gethostbyname) AC_CHECK_FUNCS(vsnprintf vasprintf nanosleep usleep poll setenv unsetenv socketpair getgrouplist) AC_CHECK_HEADERS(execinfo.h, [AC_CHECK_FUNCS(backtrace)]) AC_CACHE_CHECK([for posix getpwnam_r], ac_cv_func_posix_getpwnam_r, [AC_TRY_RUN([ #include #include int main () { char buffer[10000]; struct passwd pwd, *pwptr = &pwd; int error; errno = 0; error = getpwnam_r ("", &pwd, buffer, sizeof (buffer), &pwptr); return (error < 0 && errno == ENOSYS) || error == ENOSYS; } ], [ac_cv_func_posix_getpwnam_r=yes], [ac_cv_func_posix_getpwnam_r=no])]) if test "$ac_cv_func_posix_getpwnam_r" = yes; then AC_DEFINE(HAVE_POSIX_GETPWNAM_R,1, [Have POSIX function getpwnam_r]) else AC_CACHE_CHECK([for nonposix getpwnam_r], ac_cv_func_nonposix_getpwnam_r, [AC_TRY_LINK([#include ], [char buffer[10000]; struct passwd pwd; getpwnam_r ("", &pwd, buffer, sizeof (buffer));], [ac_cv_func_nonposix_getpwnam_r=yes], [ac_cv_func_nonposix_getpwnam_r=no])]) if test "$ac_cv_func_nonposix_getpwnam_r" = yes; then AC_DEFINE(HAVE_NONPOSIX_GETPWNAM_R,1, [Have non-POSIX function getpwnam_r]) fi fi dnl check for socklen_t AC_MSG_CHECKING(whether socklen_t is defined) AC_TRY_COMPILE([ #include #include #include ],[ socklen_t foo; foo = 1; ],dbus_have_socklen_t=yes,dbus_have_socklen_t=no) AC_MSG_RESULT($dbus_have_socklen_t) if test "x$dbus_have_socklen_t" = "xyes"; then AC_DEFINE(HAVE_SOCKLEN_T,1,[Have socklen_t type]) fi dnl check for writev header and writev function so we're dnl good to go if HAVE_WRITEV gets defined. AC_CHECK_HEADERS(sys/uio.h, [AC_CHECK_FUNCS(writev)]) dnl check for flavours of varargs macros (test from GLib) AC_MSG_CHECKING(for ISO C99 varargs macros in C) AC_TRY_COMPILE([],[ int a(int p1, int p2, int p3); #define call_a(...) a(1,__VA_ARGS__) call_a(2,3); ],dbus_have_iso_c_varargs=yes,dbus_have_iso_c_varargs=no) AC_MSG_RESULT($dbus_have_iso_c_varargs) AC_MSG_CHECKING(for GNUC varargs macros) AC_TRY_COMPILE([],[ int a(int p1, int p2, int p3); #define call_a(params...) a(1,params) call_a(2,3); ],dbus_have_gnuc_varargs=yes,dbus_have_gnuc_varargs=no) AC_MSG_RESULT($dbus_have_gnuc_varargs) dnl Output varargs tests if test x$dbus_have_iso_c_varargs = xyes; then AC_DEFINE(HAVE_ISO_VARARGS,1,[Have ISO C99 varargs macros]) fi if test x$dbus_have_gnuc_varargs = xyes; then AC_DEFINE(HAVE_GNUC_VARARGS,1,[Have GNU-style varargs macros]) fi dnl Check for various credentials. AC_MSG_CHECKING(for struct cmsgcred) AC_TRY_COMPILE([ #include #include ],[ struct cmsgcred cred; cred.cmcred_pid = 0; ],dbus_have_struct_cmsgcred=yes,dbus_have_struct_cmsgcred=no) AC_MSG_RESULT($dbus_have_struct_cmsgcred) if test x$dbus_have_struct_cmsgcred = xyes; then AC_DEFINE(HAVE_CMSGCRED,1,[Have cmsgcred structure]) fi AC_CHECK_FUNCS(getpeerucred getpeereid) PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.90, have_dbus=true, have_dbus=false) AC_SUBST(DBUS_CFLAGS) AC_SUBST(DBUS_LIBS) DBUS_INCLUDEDIR=`pkg-config dbus-1 --variable=includedir` AC_SUBST(DBUS_INCLUDEDIR) dnl Qt3 detection if test -z "$with_qt3_moc" ; then AC_PATH_PROG(QT3_MOC, moc, no) else QT3_MOC=$with_qt3_moc AC_SUBST(QT3_MOC) fi have_qt3=no AC_MSG_CHECKING([for qglobal.h]) if test -n "$QTDIR" -a -f "$QTDIR/include/qglobal.h"; then have_qt3=yes DBUS_QT3_CXXFLAGS="-I$QTDIR/include" else for dir in "${prefix}/include/qt" "/usr/include/qt-3.1" "/usr/include/qt3" "/usr/include/qt" "/usr/lib/qt/include" "/usr/lib/qt-3.1/include"; do if test -f "$dir/qglobal.h"; then have_qt3=yes DBUS_QT3_CXXFLAGS="-I$dir" DBUS_QT3_LIBS="-L$QTDIR/lib -lqt-mt" fi done fi if test x$have_qt3 = xyes; then AC_MSG_RESULT([found]) else AC_MSG_RESULT([not found]) fi if test x$have_qt3 = xno; then AC_MSG_WARN([Qt3 development libraries not found]) fi if test x$enable_qt3 = xyes; then if test x$have_qt3 = xno; then AC_MSG_ERROR([Qt3 integration explicitly required, and Qt3 libraries not found]) fi fi if test x$enable_qt3 = xno; then have_qt3=no; fi AM_CONDITIONAL(HAVE_QT3, test x$have_qt3 = xyes) dnl Qt3 flags AC_SUBST(DBUS_QT3_CXXFLAGS) AC_SUBST(DBUS_QT3_LIBS) ### X11 detection AC_PATH_XTRA ## for now enable_x11 just tracks have_x11, ## there's no --enable-x11 if test x$no_x = xyes ; then have_x11=no enable_x11=no else have_x11=yes enable_x11=yes fi if test x$enable_x11 = xyes ; then AC_DEFINE(DBUS_BUILD_X11,1,[Build X11-dependent code]) DBUS_X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS" DBUS_X_CFLAGS="$X_CFLAGS" else DBUS_X_LIBS= DBUS_X_CFLAGS= fi AC_SUBST(DBUS_X_CFLAGS) AC_SUBST(DBUS_X_LIBS) #### Have to go $localstatedir->$prefix/var->/usr/local/var #### someone please fix this a better way... #### find the actual value for $prefix that we'll end up with ## (I know this is broken and should be done in the Makefile, but ## that's a major pain and almost nobody actually seems to care) REAL_PREFIX= if test "x$prefix" = "xNONE"; then REAL_PREFIX=$ac_default_prefix else REAL_PREFIX=$prefix fi ## temporarily change prefix and exec_prefix old_prefix=$prefix prefix=$REAL_PREFIX if test "x$exec_prefix" = xNONE ; then REAL_EXEC_PREFIX=$REAL_PREFIX else REAL_EXEC_PREFIX=$exec_prefix fi old_exec_prefix=$exec_prefix exec_prefix=$REAL_EXEC_PREFIX ## eval everything LOCALSTATEDIR_TMP="$localstatedir" EXPANDED_LOCALSTATEDIR=`eval echo $LOCALSTATEDIR_TMP` AC_SUBST(EXPANDED_LOCALSTATEDIR) LIBDIR_TMP="$libdir" EXPANDED_LIBDIR=`eval echo $LIBDIR_TMP` AC_SUBST(EXPANDED_LIBDIR) DATADIR_TMP="$datadir" EXPANDED_DATADIR=`eval echo $DATADIR_TMP` AC_SUBST(EXPANDED_DATADIR) AC_OUTPUT([ Makefile ]) dnl ========================================================================== echo " D-BUS QT3 binding $VERSION ============== prefix: ${prefix} exec_prefix: ${exec_prefix} libdir: ${EXPANDED_LIBDIR} datadir: ${EXPANDED_DATADIR} source code location: ${srcdir} compiler: ${CC} cflags: ${CFLAGS} cppflags: ${CPPFLAGS} cxxflags: ${CXXFLAGS} Maintainer mode: ${USE_MAINTAINER_MODE} Building Qt3 bindings: ${have_qt3} "