medit/m4/moo-objc.m4

125 lines
2.8 KiB
Plaintext

AC_DEFUN_ONCE([MOO_AC_OBJC],[
MOO_USE_OBJC=auto
AC_ARG_WITH([objc], AC_HELP_STRING([--without-objc], [do not use Objective-C]), [
MOO_USE_OBJC=$with_objc
])
if test "x$MOO_USE_OBJC" != "xno"; then
_MOO_OBJC_CHECK([
MOO_USE_OBJC=yes
AC_DEFINE(MOO_USE_OBJC, 1, [Use Objective-C.])
AC_MSG_NOTICE([Objective-C flags: $MOO_OBJCFLAGS $MOO_OBJC_LIBS])
],[
MOO_USE_OBJC=no
MOO_OBJCFLAGS=
MOO_OBJC_LIBS=
])
fi
AC_SUBST(MOO_OBJCFLAGS)
AC_SUBST(MOO_OBJC_LIBS)
AM_CONDITIONAL(MOO_USE_OBJC, test $MOO_USE_OBJC = yes)
])
#############################################################################
## Try to find Foundation
##
AC_DEFUN([_MOO_OBJC_CHECK_FOUNDATION],[
AC_MSG_CHECKING([for Foundation])
AC_LANG_SAVE
AC_LANG_OBJC
saved_LIBS="$LIBS"
LIBS="-lobjc $LIBS"
_moo_ac_have_foundation=no
# First try to compile and link without any stuff, OBJCFLAGS and LIBS might be good enough
AC_LINK_IFELSE([AC_LANG_PROGRAM([#import <Foundation/Foundation.h>],[NSAutoreleasePool *pool = @<:@@<:@NSAutoreleasePool alloc@:>@ init@:>@;])],[
_moo_ac_have_foundation=yes
MOO_OBJC_LIBS="-lobjc"
AC_MSG_RESULT([yes])
],[
LIBS="$LIBS -framework Foundation -lobjc"
AC_LINK_IFELSE([AC_LANG_PROGRAM([#import <Foundation/Foundation.h>],[NSAutoreleasePool *pool = @<:@@<:@NSAutoreleasePool alloc@:>@ init@:>@;])],[
_moo_ac_have_foundation=yes
MOO_OBJC_LIBS="-framework Foundation -lobjc"
AC_MSG_RESULT([yes])
],[
_moo_ac_have_foundation=no
])
])
LIBS="$saved_LIBS"
AC_LANG_RESTORE
if test "$_moo_ac_have_foundation" = "no"; then
PKG_CHECK_MODULES(OBJCX,[libobjcx],[
MOO_OBJC_LIBS="$OBJCX_LIBS"
MOO_OBJCFLAGS="$OBJCX_CFLAGS"
AC_MSG_RESULT([SideStep])
_moo_ac_have_foundation=yes
],[
AC_MSG_RESULT([no])
])
fi
if test "$_moo_ac_have_foundation" = "yes"; then
MOO_OBJC_USE_FOUNDATION=yes
MOO_OBJCFLAGS="$MOO_OBJCFLAGS -DMOO_OBJC_USE_FOUNDATION"
fi
])
#############################################################################
## Check if basic ObjC runtime is available
##
AC_DEFUN([_MOO_OBJC_CHECK_RUNTIME],[
AC_MSG_CHECKING(whether Objective-C compiler works)
AC_LANG_SAVE
AC_LANG([Objective C])
save_LIBS=$LIBS
LIBS="-lobjc $LIBS"
AC_LINK_IFELSE([AC_LANG_PROGRAM(
[#import <objc/Object.h>
@interface Foo : Object {
@private
int blah;
}
- foo;
@end
@implementation Foo : Object
- foo
{
return self;
}
@end
],
[Foo *obj = @<:@Foo new@:>@;])],
[AC_MSG_RESULT(yes)
MOO_OBJC_LIBS="-lobjc"
$1],
[AC_MSG_RESULT(no)
$2])
LIBS="$save_LIBS"
AC_LANG_RESTORE
])
AC_DEFUN([_MOO_OBJC_CHECK],[
MOO_OBJC_LIBS=
MOO_OBJCFLAGS=
_MOO_OBJC_CHECK_RUNTIME([
MOO_OBJC_USE_FOUNDATION=no
dnl _MOO_OBJC_CHECK_FOUNDATION
$1
],[
$2
])
])