1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
|
# autoconf template for the configure script
AC_INIT
AC_CANONICAL_SYSTEM
#Override the OBJC variable if it is empty and CC is also set.
if test -n "$CC"; then
if test -z "$OBJC"; then
OBJC="$CC"
fi
fi
AC_PROG_CC(clang gcc cc c1 egcs)
AC_PROG_CPP
AC_PROG_OBJC(clang gcc objcc objc cc CC)
AC_LANG(Objective C)
PKG_PROG_PKG_CONFIG([])
AC_LANG_PUSH(C)
AC_MSG_CHECKING([whether the compiler supports atomic operations]);
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[typedef int atomic;]],
[[atomic x; atomic y; __sync_bool_compare_and_swap(&x, y, y + 1);]])],
have_atomic=yes,
have_atomic=no);
if test "$have_atomic" = "yes"; then
AC_MSG_RESULT([yes]);
else
AC_MSG_RESULT([no]);
AC_MSG_ERROR([Please use a compiler that supports atomic operations.]);
fi
if test "$CC" = "gcc"; then
saved_CFLAGS="$CFLAGS";
ATOMIC_CFLAGS="";
case "$target_cpu" in
i586*|i686*|i786*)
ATOMIC_CFLAGS="-march=i586";
CFLAGS="$saved_CFLAGS $ATOMIC_CFLAGS";
esac
AC_MSG_CHECKING([checking whether atomic operations require an external library]);
AC_LINK_IFELSE([AC_LANG_PROGRAM([[typedef int atomic;]],
[[atomic x; atomic y; __sync_bool_compare_and_swap(&x, y, y + 1);]])],
need_linkage=no,
need_linkage=yes);
if test "$need_linkage" = "no"; then
AC_MSG_RESULT([no]);
else
AC_MSG_RESULT([yes]);
saved_LDFLAGS="$LDFLAGS";
LDFLAGS="$saved_LDFLAGS -lgcc";
AC_MSG_CHECKING([checking for atomic operations from libgcc]);
AC_LINK_IFELSE([AC_LANG_PROGRAM([[typedef int atomic;]],
[[atomic x; atomic y; __sync_bool_compare_and_swap(&x, y, y + 1);]])],
atomic_in_libgcc=yes,
atomic_in_libgcc=no);
if test "$atomic_in_libgcc" = "yes"; then
AC_MSG_RESULT([yes]);
MORE_LIBS="$MORE_LIBS -lgcc";
else
LDFLAGS="$saved_LDFLAGS";
AC_MSG_RESULT([no]);
AC_MSG_ERROR([Could not find library to link for atomic operations.]);
fi
fi
fi
AC_LANG_POP(C)
# FIXME: We need a proper test for libobjc2 for some advanced features (e.g.
# the declared-properties - dbus-properties bridge).
# AC_CHECK_FUNCS(objc_setProperty)
# if test $ac_cv_func_objc_setProperty = yes ; then
# HAVE_OBJC2=1
# else
# HAVE_OBJC2=0
# fi
#--------------------------------------------------------------------
# Check for libdbus
#--------------------------------------------------------------------
PKG_CHECK_MODULES(DBUS, dbus-1, HAVE_DBUS=1, HAVE_DBUS=0)
AC_SUBST(DBUS_CFLAGS)
AC_SUBST(DBUS_LIBS)
#--------------------------------------------------------------------
# Check for -Wdeclaration-after-statement (adopted from gnustep-base)
# TODO: Doing it this way looks really ugly because there is a bunch
# of other tests executed before the result of the test is
# printed.
#--------------------------------------------------------------------
AC_MSG_CHECKING(whether the compiler supports -Wdeclaration-after-statement)
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Wdeclaration-after-statement"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],HAS_W_DECL_AFTER_STATEMENT=yes,HAS_W_DECL_AFTER_STATEMENT=no)
CFLAGS="$saved_CFLAGS"
AC_MSG_RESULT($HAS_W_DECL_AFTER_STATEMENT)
if test x"$HAS_W_DECL_AFTER_STATEMENT" = x"yes"; then
WARN_FLAGS="-Wall -Wdeclaration-after-statement"
else
WARN_FLAGS="-Wall"
fi
AC_MSG_CHECKING(whether the compiler supports -Wno-deprecated-declarations)
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Wno-deprecated-declarations"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],HAS_W_NO_DEPRECATED_DECL=yes,HAS_W_NO_DEPRECATED_DECL=no)
CFLAGS="$saved_CFLAGS"
AC_MSG_RESULT($HAS_W_NO_DEPRECATED_DECL)
if test x"$HAS_W_NO_DEPRECATED_DECL" = x"yes"; then
WARN_FLAGS="$WARN_FLAGS -Wno-deprecated-declarations"
fi
AC_SUBST(WARN_FLAGS)
AC_SUBST(ATOMIC_CFLAGS)
# Setup variables:
saved_CFLAGS="$CFLAGS"
saved_CPPFLAGS="$CPPFLAGS$"
saved_LDFLAGS="$LDFLAGS"
GS_OBJCFLAGS=`gnustep-config --objc-flags`
CFLAGS="$CFLAGS $GS_OBJCFLAGS"
CPPFLAGS="$CPPFLAGS $GS_OBJCFLAGS"
GS_LDFLAGS=`gnustep-config --objc-libs`
LDFLAGS="$LDFLAGS $GS_LDFLAGS"
#--------------------------------------------------------------------
# Check whether we get runtime.h from libobjc2 or from the ObjectiveC2
# framework
#--------------------------------------------------------------------
CPPFLAGS="$CPPFLAGS -Werror"
AC_CHECK_HEADERS(ObjectiveC2/runtime.h,have_objectivec2_runtime_h=yes,have_objectivec2_runtime_h=no)
if test "$have_objectivec2_runtime_h" = "yes"; then
OBJC_RUNTIME_H="ObjectiveC2/runtime.h"
else
AC_CHECK_HEADERS(objc/runtime.h,have_libobjc2_runtime_h=yes,have_libobjc2_runtime_h=no)
if test "$have_libobjc2_runtime_h" = "yes"; then
OBJC_RUNTIME_H="objc/runtime.h"
else
AC_MSG_ERROR("could not find runtime.h. DBusKit requires gnustep-base >=1.20.")
fi
fi
AC_SUBST(OBJC_RUNTIME_H)
AC_SUBST(OBJC)
CFLAGS="$saved_CFLAGS"
CPPFLAGS="$saved_CPPFLAGS"
LDFLAGS="$saved_LDFLAGS"
AC_SUBST(MORE_LIBS)
AC_CONFIG_FILES([config.make Source/config.h])
AC_OUTPUT
|