Fix Objective C compiler detection and Mac OS X header
authorcaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 5 Mar 2010 06:23:25 +0000 (06:23 +0000)
committercaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 5 Mar 2010 06:23:25 +0000 (06:23 +0000)
files detection. It should work with and without an
Objective C compiler. The problem is a bug in the
AC_PROG_OBJC macro.

Patch by Ralf Wildenhues

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@46890 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

configure.ac
m4/evas_check_engine.m4

index 738d726..94dfe28 100644 (file)
@@ -1,6 +1,19 @@
 # get rid of that stupid cache mechanism
 rm -f config.cache
 
+# rw_PROG_OBJC_WORKS
+# Check whether the Objective C compiler works.
+AC_DEFUN([rw_PROG_OBJC_WORKS],
+[AC_REQUIRE([AC_PROG_OBJC])dnl
+AC_CACHE_CHECK([whether the Objective C compiler works],
+               [rw_cv_prog_objc_works],
+               [AC_LANG_PUSH([Objective C])
+                AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
+                               [rw_cv_prog_objc_works=yes],
+                               [rw_cv_prog_objc_works=no])
+                AC_LANG_POP([Objective C])])
+])
+
 AC_INIT([evas], [0.9.9.063], [enlightenment-devel@lists.sourceforge.net])
 release="ver-pre-svn-05"
 AC_PREREQ([2.52])
@@ -138,6 +151,7 @@ AC_ARG_ENABLE([simple-x11],
 
 
 ### Checks for programs
+
 m4_ifdef([AC_PROG_OBJC],
    [
     AC_PROG_OBJC
@@ -147,8 +161,10 @@ m4_ifdef([AC_PROG_OBJC],
     AC_CHECK_TOOL([OBJC], [gcc])
     AC_SUBST([OBJC])
     AC_SUBST([OBJCFLAGS])
-   ]
-)
+   ])
+
+rw_PROG_OBJC_WORKS
+
 AC_PROG_CXX
 AC_PROG_CC
 
index 101ede6..0454951 100644 (file)
@@ -387,13 +387,24 @@ dnl use: EVAS_CHECK_ENGINE_DEP_QUARTZ(engine, simple, want_static[, ACTION-IF-FO
 AC_DEFUN([EVAS_CHECK_ENGINE_DEP_QUARTZ],
 [
 
+have_dep="no"
 evas_engine_[]$1[]_cflags=""
 evas_engine_[]$1[]_libs=""
 
-AC_CHECK_HEADERS([/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h],
-   [have_dep="yes"],
-   [have_dep="no"]
-)
+AC_REQUIRE([EVAS_MAYBE_GET_OBJCPP])
+
+AS_IF([test "x${rw_cv_prog_objc_works}" = "xyes"],
+[
+   AC_LANG_PUSH([Objective C]) 
+   AC_CHECK_HEADERS([/System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h],
+      [
+       have_dep="yes"
+       evas_engine_[]$1[]_libs="-framework Cocoa"
+      ],
+      [have_dep="no"])
+   AC_LANG_POP([Objective C]) 
+
+])
 
 AC_SUBST([evas_engine_$1_cflags])
 AC_SUBST([evas_engine_$1_libs])
@@ -406,6 +417,13 @@ fi
 
 ])
 
+dnl Helper macro for EVAS_CHECK_ENGINE_DEP_QUARTZ
+
+AC_DEFUN([EVAS_MAYBE_GET_OBJCPP],
+[AS_IF([test "x${rw_cv_prog_objc_works}" = "xyes"],
+       [AC_PROG_OBJCPP])
+])
+
 dnl use: EVAS_CHECK_ENGINE_DEP_GL_GLEW(engine, simple, want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
 
 AC_DEFUN([EVAS_CHECK_ENGINE_DEP_GL_GLEW],