diff options
author | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2010-08-17 14:17:42 +0000 |
---|---|---|
committer | IOhannes m zmölnig <zmoelnig@users.sourceforge.net> | 2010-08-17 14:17:42 +0000 |
commit | a127d39b6540353734d8557ca39f401a2683aca8 (patch) | |
tree | d983f7d9c444a441f5b22af675c653f0a74123d5 | |
parent | 70d8fd2e96d8a19149653052049c6f28ac1ac789 (diff) |
use autoconf
svn path=/trunk/externals/hardware/wiimote/; revision=13823
-rw-r--r-- | Makefile | 145 | ||||
-rw-r--r-- | Makefile.am | 23 | ||||
-rw-r--r-- | README | 20 | ||||
-rwxr-xr-x | autogen.sh | 23 | ||||
-rw-r--r-- | configure.ac | 46 | ||||
-rw-r--r-- | m4/pd.m4 | 64 | ||||
-rw-r--r-- | m4/pkg.m4 | 157 | ||||
-rw-r--r-- | m4/universal.m4 | 84 |
8 files changed, 410 insertions, 152 deletions
diff --git a/Makefile b/Makefile deleted file mode 100644 index 7629c3e..0000000 --- a/Makefile +++ /dev/null @@ -1,145 +0,0 @@ -# To use this Makefile for your project, first put the name of your library in -# LIBRARY_NAME variable. The folder for your project should have the same name -# as your library. -LIBRARY_NAME = wiimote - -# Next, add your source files to the SOURCES variable. -SOURCES = wiimote.c - -# For objects that only build on certain platforms, add those to the SOURCES -# line for the right platforms. -SOURCES_Darwin = -SOURCES_Linux = -SOURCES_Windows = - -#------------------------------------------------------------------------------# -# -# you shouldn't need to edit anything below here, if we did it right :) -# -#------------------------------------------------------------------------------# - -VERSION=0.3.1 - -# where Pd lives -PD_PATH = ../../pd -# where to install the library -prefix = /usr/local -libdir = $(prefix)/lib -pkglibdir = $(libdir)/pd/extra -objectsdir = $(pkglibdir) - - -CFLAGS = -DPD -I$(PD_PATH)/src -Wall -W -g -DVERSION=\"$(VERSION)\" -LDFLAGS = -LIBS = -lcwiid -lbluetooth -lpthread - -UNAME := $(shell uname -s) -ifeq ($(UNAME),Darwin) - SOURCES += $(SOURCES_Darwin) - EXTENSION = pd_darwin - OS = macosx - OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast - FAT_FLAGS = -arch i386 -arch ppc -mmacosx-version-min=10.4 - CFLAGS += -fPIC $(FAT_FLAGS) - LDFLAGS += -bundle -undefined dynamic_lookup $(FAT_FLAGS) - LIBS += -lc - endif -ifeq ($(UNAME),Linux) - SOURCES += $(SOURCES_Linux) - EXTENSION = pd_linux - OS = linux - OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer - CFLAGS += -fPIC - LDFLAGS += -Wl,--export-dynamic -shared -fPIC - LIBS += -lc -endif -ifeq (MINGW,$(findstring MINGW,$(UNAME))) - SOURCES += $(SOURCES_Windows) - EXTENSION = dll - OS = windows - OPT_CFLAGS = -O3 -funroll-loops -fomit-frame-pointer -march=i686 -mtune=pentium4 - WINDOWS_HACKS = -D'O_NONBLOCK=1' - CFLAGS += -mms-bitfields $(WINDOWS_HACKS) - LDFLAGS += -s -shared -Wl,--enable-auto-import - LIBS += -L$(PD_PATH)/bin -L$(PD_PATH)/obj -lpd -lwsock32 -lkernel32 -luser32 -lgdi32 -endif - -CFLAGS += $(OPT_CFLAGS) - --include Make.local - - -.PHONY = install libdir_install single_install install-doc install-exec clean dist etags - -all: $(SOURCES:.c=.$(EXTENSION)) - -%.o: %.c - $(CC) $(CFLAGS) -o "$*.o" -c "$*.c" - -%.$(EXTENSION): %.o - $(CC) $(LDFLAGS) -o "$*.$(EXTENSION)" "$*.o" $(LIBS) - chmod a-x "$*.$(EXTENSION)" - rm -f -- $*.o - -# this links everything into a single binary file -$(LIBRARY_NAME): $(SOURCES:.c=.o) $(LIBRARY_NAME).o - $(CC) $(LDFLAGS) -o $(LIBRARY_NAME).$(EXTENSION) $(SOURCES:.c=.o) $(LIBRARY_NAME).o $(LIBS) - chmod a-x $(LIBRARY_NAME).$(EXTENSION) - - -install: libdir_install - -# The meta and help files are explicitly installed to make sure they are -# actually there. Those files are not optional, then need to be there. -libdir_install: $(SOURCES:.c=.$(EXTENSION)) install-doc install-exec - install -d $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) - install -m644 -p $(LIBRARY_NAME)-meta.pd $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) - install -m644 -p $(SOURCES:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) - -# install library linked as single binary -single_install: $(LIBRARY_NAME) install-doc install-exec - install -d $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) - install -m644 -p $(LIBRARY_NAME).$(EXTENSION) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) - -install-doc: - install -d $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) - install -m644 -p $(SOURCES:.c=-help.pd) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) -# install -m644 -p $(wildcard *.pd) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) - install -m644 -p README $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/README.txt - install -m644 -p VERSION $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/VERSION.txt - install -m644 -p CHANGES $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/CHANGES.txt - -install-exec: - install -d $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) -# install -m644 -p $(wildcard *.pd) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) - - -clean: - -rm -f -- $(SOURCES:.c=.o) - -rm -f -- $(SOURCES:.c=.$(EXTENSION)) - -rm -f -- $(LIBRARY_NAME).$(EXTENSION) - -distclean: clean - -rm -f -- ../$(LIBRARY_NAME)-$(OS)-$(shell uname -m).tar.bz2 - -rm -f -- ../$(LIBRARY_NAME)-$(OS).tar.bz2 - -dist: all dist_$(OS) - -dist_linux: - cd .. && tar --exclude=.svn -cjpf $(LIBRARY_NAME)-$(OS)-$(shell uname -m).tar.bz2 $(LIBRARY_NAME) - -dist_macosx: - cd .. && tar --exclude=.svn -cjpf $(LIBRARY_NAME)-$(OS).tar.bz2 $(LIBRARY_NAME) - -dist_windows: - cd .. && tar --exclude=.svn -cjpf $(LIBRARY_NAME)-$(OS).tar.bz2 $(LIBRARY_NAME) - - -etags: - etags *.[ch] ../../pd/src/*.[ch] /usr/include/*.h /usr/include/*/*.h - -showpaths: - @echo "PD_PATH: $(PD_PATH)" - @echo "objectsdir: $(objectsdir)" - @echo "LIBRARY_NAME: $(LIBRARY_NAME)" - @echo "SOURCES: $(SOURCES)" diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..69c5232 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,23 @@ +## Makefile.am -- Process this file with automake to produce Makefile.in +## + +AUTOMAKE_OPTIONS = foreign +#AUTOMAKE_OPTIONS = no-dependencies foreign +ACLOCAL_AMFLAGS = -I m4/generated -I m4 +AM_CPPFLAGS = -I$(top_srcdir)/../../../pd/src + +lib_LTLIBRARIES = wiimote.la + +SOURCES = wiimote.c +dist_data_DATA = wiimote-help.pd + + + +wiimote_la_SOURCES = $(SOURCES) +wiimote_la_CFLAGS = @ARCH_CFLAGS@ @PD_CFLAGS@ +wiimote_la_LIBADD = $(LIBM) +wiimote_la_LDFLAGS = -module -avoid-version -shared @ARCH_LDFLAGS@ @PD_LDFLAGS@ + + +libtool: $(LIBTOOL_DEPS) + $(SHELL) ./config.status --recheck @@ -4,10 +4,22 @@ wiimote for Pd [wiimote] is a Pd-object that allows to read data from a Wii Remote Controller it depends on libcwiid, which is currently only available on linux - random notes ============ +compiling +--------- +wiimote uses autoconf: +% ./configure +% make +% make install +if you are using an svn snapshot, you will first have to run +% ./autogen.sh + +note: autoconf will put the resulting pd-object binary into .libs/ +if you don't want to "make install" the library, just copy the +./.lib/wiimote.pd_linux to ./ + extensions ---------- the external is known to support the nunchuck, classic, motionplus extensions @@ -28,12 +40,6 @@ $ patch < /path/to/wiimote/patches/cwiid201_motionplus_sensitivity.patch $ cd /path/to/cwiid/ $ make (read README to see how to patch libcwiid) -once you have done that, you need to make the external aware of the new feature. -for this create a file -/path/to/wiimote/Make.local -and add the following line: -CFLAGS += -DHAVE_CWIID_MOTIONPLUS_LOWSPEED - then recompile wiimote multiple bluetooth dongles diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..27b75c6 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +PATH=/sw/bin:$PATH + +PWD=${0%/*} + + +## git cannot really handle empty directories +## so let's create the missing ones +mkdir -p ${PWD}/m4/generated + +case `uname -s` in + MINGW*) +# autoreconf doesn't always work on MinGW + libtoolize --install --force \ + && aclocal \ + && automake --add-missing --force-missing \ + && autoconf + ;; + *) + autoreconf --install --force --verbose + ;; +esac diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..0d18499 --- /dev/null +++ b/configure.ac @@ -0,0 +1,46 @@ +AC_PREREQ([2.57]) + +AC_INIT([wiimote],[0.4.svn],[zmoelnig@iem.at]) +AC_CONFIG_SRCDIR([wiimote.c]) +AC_CONFIG_MACRO_DIR([m4/generated]) +AC_CONFIG_AUX_DIR([m4/config]) + +AM_INIT_AUTOMAKE + +AC_PROG_CC + + +LT_INIT +AC_SUBST([LIBTOOL_DEPS]) + +LT_LIB_M + +AC_SUBST([EXTENSION]) + +AC_SUBST([ARCH_CFLAGS]) +AC_SUBST([ARCH_LDFLAGS]) + +AC_SUBST([PD_CFLAGS]) +AC_SUBST([PD_LDFLAGS]) + +AC_CANONICAL_HOST + +PD_CHECK_PD + +AC_CHECK_LIB(pd, nullfn) + +PKG_CHECK_MODULES([CWIID], [cwiid]) +CFLAGS="$CFLAGS $CWIID_CFLAGS" +LIBS="$LIBS $CWIID_LIBS" + +AC_CHECK_MEMBER([struct cwiid_motionplus_mesg.low_speed], + [AC_DEFINE([HAVE_CWIID_MOTIONPLUS_LOWSPEED], [1], [Define if `struct cwiid_motionplus_mesg' has `low_speed' member]) + ], [], + [[#include <cwiid.h>]] + ) + + + +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT + 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=<ARCHS>" flag +# if <ARCH> 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=<path/to/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 <scott@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]) +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 <http://pkg-config.freedesktop.org/>.])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=<ARCHS>" flag +# if <ARCH> 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=<ARCHS>], + [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 |