[Libreoffice-commits] .: autogen.sh configure.in m4/mac

Christian Lohmaier cloph at kemper.freedesktop.org
Fri Oct 8 12:40:05 PDT 2010


 autogen.sh    |    3 +
 configure.in  |   27 +++++++---
 m4/mac/pkg.m4 |  154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 176 insertions(+), 8 deletions(-)

New commits:
commit 23fbcd84fbf557b4a2151cbf38be6c2f2054925d
Author: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
Date:   Fri Oct 8 21:51:16 2010 +0200

    don't require pkg-config on mac

diff --git a/autogen.sh b/autogen.sh
index af519e9..6f1b027 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -22,6 +22,9 @@ fi
 
 touch ChangeLog
 
+if test "z$ACLOCAL_FLAGS" = "z" -a "z`uname -s`" = "zDarwin" ; then
+    ACLOCAL_FLAGS="-I./m4/mac"
+fi
 aclocal $ACLOCAL_FLAGS || exit 1;
 automake --gnu --add-missing --copy --warnings=no-portability || exit 1;
 # intltoolize --copy --force --automake
diff --git a/configure.in b/configure.in
index 2c12e10..b4abd1d 100644
--- a/configure.in
+++ b/configure.in
@@ -507,18 +507,29 @@ AC_SUBST(PERL)
 INTLTOOL_PERL=$PERL
 AC_SUBST(INTLTOOL_PERL)
 
-AC_PATH_PROG(PKG_CONFIG, pkg-config)
-if test ! -x "$PKG_CONFIG" ; then
+# ********** check for pkg-config ***********
+dnl if a minimum version required, specify as argument
+dnl PKG_PROG_PKG_CONFIG([0.9.0])
+PKG_PROG_PKG_CONFIG()
+
+if test ! -x "$PKG_CONFIG" -a "z`uname -s`" != "zDarwin"; then
    AC_MSG_ERROR([
-*** You need the latest pkg-config.
+*** You need the pkg-config to build LibreOffice.
 *** Get the latest version of pkg-config from
 *** <http://www.freedesktop.org/software/pkgconfig/>.])
 fi
-AC_SUBST(PKG_CONFIG)
 
-PKG_CHECK_MODULES( FOO_COMMON,
-                   [ libxml-2.0 fontconfig >= 1.0.1 ],
-                   have_common=true, have_common=false )
+PKG_CHECK_MODULES( MINIMUM_REQS,
+	[ libxml-2.0 fontconfig >= 1.0.1 ],
+	have_common=true, have_common=false )
+
+if test "z`uname -s`" = "zDarwin" -a -d "/Developer/SDKs/MacOSX10.4u.sdk"; then
+	AC_MSG_RESULT([ok])
+	have_common="yes"
+else
+	AC_MSG_RESULT([not met])
+	AC_MSG_ERROR([To build LibreOffice on the Mac, you need to have the 10.4u-SDK installed (rerun XCode installer)])
+fi
 
 # NB. according to:
 #   http://sources.redhat.com/ml/bug-automake/2002/msg02066.html
@@ -531,7 +542,7 @@ if test "z`uname -s`" != "zSunOS" -a "z$with_win32" = "z" -a \( "z`uname -o 2>/d
     PROPAGATED_ARGS="$PROPAGATED_ARGS --disable-build-mozilla"
 fi
 if test "z$with_win32" = "z"; then
-    if test ! $have_common; then
+    if test "$have_common" = "false" ; then
         AC_MSG_ERROR([Library requirements were not met])
     fi
     BUILD_WIN32=
diff --git a/m4/mac/pkg.m4 b/m4/mac/pkg.m4
new file mode 100644
index 0000000..2cd2290
--- /dev/null
+++ b/m4/mac/pkg.m4
@@ -0,0 +1,154 @@
+# pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
+#
+# Copyright © 2004 Scott James Remnant <scott at netsplit.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=m4_default([$1], [0.9.0])
+	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		AC_MSG_RESULT([yes])
+	else
+		AC_MSG_RESULT([no])
+		PKG_CONFIG=""
+	fi
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists.  Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+#
+# Similar to PKG_CHECK_MODULES, make sure that the first instance of
+# this or PKG_CHECK_MODULES is called, or make sure to call
+# PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_ifval([$2], [$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+    pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS([$3],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+		     [pkg_failed=yes])
+ else
+    pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
+        else
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+	ifelse([$4], , [AC_MSG_ERROR(dnl
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT
+])],
+		[AC_MSG_RESULT([no])
+                $4])
+elif test $pkg_failed = untried; then
+	ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
+		[$4])
+else
+	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
+	ifelse([$3], , :, [$3])
+fi[]dnl
+])# PKG_CHECK_MODULES


More information about the Libreoffice-commits mailing list