From a127d39b6540353734d8557ca39f401a2683aca8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Tue, 17 Aug 2010 14:17:42 +0000 Subject: use autoconf svn path=/trunk/externals/hardware/wiimote/; revision=13823 --- m4/pd.m4 | 64 +++++++++++++++++++++++ m4/pkg.m4 | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ m4/universal.m4 | 84 ++++++++++++++++++++++++++++++ 3 files changed, 305 insertions(+) create mode 100644 m4/pd.m4 create mode 100644 m4/pkg.m4 create mode 100644 m4/universal.m4 (limited to 'm4') diff --git a/m4/pd.m4 b/m4/pd.m4 new file mode 100644 index 0000000..cb87cfc --- /dev/null +++ b/m4/pd.m4 @@ -0,0 +1,64 @@ +dnl Copyright (C) 2010 IOhannes m zmölnig +dnl This file is free software; IOhannes m zmölnig +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# PD_CHECK_UNIVERSAL([VARIABLE-NAME], [ACTION-IF-SUCCESS], [ACTION-IF-NO-SUCCESS]) +# will enable the "--enable-universal=" flag +# if is "yes", platform defaults are used +# the system tries to build a test program with the archs, on succes it calls ACTION-IF-SUCCESS, and ACTION-IF-NO-SUCCESS otherwise +# on success it will also add the flags to: +# [VARIABLE-NAME]_CFLAGS will hold a list of cflags to compile for all requested archs +# [VARIABLE-NAME]_LDFLAGS will hold a list of ldflags to link for all requested archs + + +AC_DEFUN([PD_CHECK_PD], +[ +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_ARG_WITH([pd], AS_HELP_STRING([--with-pd=],[where to find pd-binary (./bin/pd.exe) and pd-sources])) +if test -d "${with_pd}" ; then + AC_MSG_CHECKING([adding Pd-path(s) to build]) + if test -d "${with_pd}/src" ; then + AC_LIB_APPENDTOVAR([PD_CFLAGS],"-I${with_pd}/src") + AC_MSG_RESULT([${PD_CFLAGS}]) + else + AC_LIB_APPENDTOVAR([PD_CFLAGS],"-I${with_pd}") + AC_MSG_RESULT([${PD_CFLAGS}]) + fi + if test -d "${with_pd}/bin" ; then + PD_LDFLAGS="${PD_LDFLAGS}${PD_LDFLAGS:+ }-L${with_pd}/bin" + AC_MSG_RESULT([${PD_LDFLAGS}]) + else + PD_LDFLAGS="${PD_LDFLAGS}${PD_LDFLAGS:+ }-L${with_pd}" + AC_MSG_RESULT([${PD_LDFLAGS}]) + fi +fi + + +case $host in +powerpc-apple-darwin* | i*86*-apple-darwin*) + EXTENSION="pd_darwin" + ;; +*linux*) + EXTENSION=pd_linux + ;; +*mingw* ) + EXTENSION=dll + LIBS+="-lpd" + ;; +*cygwin*) + EXTENSION=dll + + tmp_arch_cflags="$CFLAGS" + CFLAGS="$CFLAGS -mms-bitfield" + AC_TRY_COMPILE([], [return 0;], , CFLAGS="$tmp_arch_cflags") + ;; +esac + +AC_CHECK_LIB(pd, nullfn) + + +PD_CHECK_UNIVERSAL +shrext_cmds=".${EXTENSION}" + +]) diff --git a/m4/pkg.m4 b/m4/pkg.m4 new file mode 100644 index 0000000..9bb3e06 --- /dev/null +++ b/m4/pkg.m4 @@ -0,0 +1,157 @@ +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +# +# Copyright © 2004 Scott James Remnant . +# +# 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]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +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. +# +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have 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_default([$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 + AC_MSG_RESULT([no]) + _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 + + m4_default([$4], [AC_MSG_ERROR( +[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])dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[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 .])dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])# PKG_CHECK_MODULES diff --git a/m4/universal.m4 b/m4/universal.m4 new file mode 100644 index 0000000..9963b0d --- /dev/null +++ b/m4/universal.m4 @@ -0,0 +1,84 @@ +dnl Copyright (C) 2005-2010 IOhannes m zmölnig +dnl This file is free software; IOhannes m zmölnig +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# PD_CHECK_UNIVERSAL([VARIABLE-NAME], [ACTION-IF-SUCCESS], [ACTION-IF-NO-SUCCESS]) +# will enable the "--enable-universal=" flag +# if is "yes", platform defaults are used +# the system tries to build a test program with the archs, on succes it calls ACTION-IF-SUCCESS, and ACTION-IF-NO-SUCCESS otherwise +# on success it will also add the flags to: +# [VARIABLE-NAME]_CFLAGS will hold a list of cflags to compile for all requested archs +# [VARIABLE-NAME]_LDFLAGS will hold a list of ldflags to link for all requested archs + +AC_DEFUN([PD_CHECK_UNIVERSAL], +[ +AC_REQUIRE([AC_CANONICAL_HOST])dnl + +AC_ARG_ENABLE(universal, + AS_HELP_STRING([--enable-universal=], + [build an Apple Multi Architecture Binary (MAB); ARCHS is a comma-delimited list of architectures for which to build; if ARCHS is omitted, then the package will be built for all architectures supported by the platform (e.g. "ppc,i386" for MacOS/X and Darwin); if this option is disabled or omitted entirely, then the package will be built only for the target platform]), + [universal_binary=$enableval], [universal_binary=no]) + +_pd_universal_success="no" +if test "$universal_binary" != no; then + AC_MSG_CHECKING([target architectures]) + # Respect TARGET_ARCHS setting from environment if available. + if test -z "$TARGET_ARCHS"; then + # Respect ARCH given to --enable-universal-binary if present. + if test "$universal_binary" != yes; then + TARGET_ARCHS=$(echo "$universal_binary" | tr ',' ' ') + else + # Choose a default set of architectures based upon platform. + case $host in + *darwin*) + TARGET_ARCHS="ppc i386" + ;; + *) + TARGET_ARCHS="" + ;; + esac + fi + fi + AC_MSG_RESULT([$TARGET_ARCHS]) + + # /usr/lib/arch_tool -archify_list $TARGET_ARCHS + _pd_universal="" + for archs in $TARGET_ARCHS + do + _pd_universal="$_pd_universal -arch $archs" + done + +dnl run checks whether the compiler linker like this... + if test "x$_pd_universal" != "x"; then + tmp_arch_cflags="$CFLAGS" + tmp_arch_ldflags="$LDFLAGS" + + CFLAGS="$CFLAGS $_pd_universal" + LDFLAGS="$LDFLAGS $_universal" + AC_TRY_LINK([], [return 0;], [_pd_universal_success="yes"], [_pd_universal_success="no"]) + + CFLAGS="$tmp_arch_cflags" + LDFLAGS="$tmp_arch_ldflags" + fi +fi + +if test "x$_pd_universal_success" = "xyes"; then + [$2] + $1[]CFLAGS="$[]$1[]CFLAGS $_pd_universal" + $1[]LDFLAGS="$[]$1[]LDFLAGS $_pd_universal" + + case $host in + *darwin*) + EXTENSION=d_fat + ;; + esac + +else + : + [$3] +fi + +AC_SUBST($1[]CFLAGS) +AC_SUBST($1[]LDFLAGS) +])# GEM_CHECK_UNIVERSAL -- cgit v1.2.1