1 | # multiarch.m4 serial 6
|
---|
2 | dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
|
---|
3 | dnl This file is free software; the Free Software Foundation
|
---|
4 | dnl gives unlimited permission to copy and/or distribute it,
|
---|
5 | dnl with or without modifications, as long as this notice is preserved.
|
---|
6 |
|
---|
7 | # Determine whether the compiler is or may be producing universal binaries.
|
---|
8 | #
|
---|
9 | # On MacOS X 10.5 and later systems, the user can create libraries and
|
---|
10 | # executables that work on multiple system types--known as "fat" or
|
---|
11 | # "universal" binaries--by specifying multiple '-arch' options to the
|
---|
12 | # compiler but only a single '-arch' option to the preprocessor. Like
|
---|
13 | # this:
|
---|
14 | #
|
---|
15 | # ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
---|
16 | # CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
---|
17 | # CPP="gcc -E" CXXCPP="g++ -E"
|
---|
18 | #
|
---|
19 | # Detect this situation and set APPLE_UNIVERSAL_BUILD accordingly.
|
---|
20 |
|
---|
21 | AC_DEFUN_ONCE([gl_MULTIARCH],
|
---|
22 | [
|
---|
23 | dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN.
|
---|
24 | gl_cv_c_multiarch=no
|
---|
25 | AC_COMPILE_IFELSE(
|
---|
26 | [AC_LANG_SOURCE(
|
---|
27 | [[#ifndef __APPLE_CC__
|
---|
28 | not a universal capable compiler
|
---|
29 | #endif
|
---|
30 | typedef int dummy;
|
---|
31 | ]])],
|
---|
32 | [
|
---|
33 | dnl Check for potential -arch flags. It is not universal unless
|
---|
34 | dnl there are at least two -arch flags with different values.
|
---|
35 | arch=
|
---|
36 | prev=
|
---|
37 | for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
|
---|
38 | if test -n "$prev"; then
|
---|
39 | case $word in
|
---|
40 | i?86 | x86_64 | ppc | ppc64)
|
---|
41 | if test -z "$arch" || test "$arch" = "$word"; then
|
---|
42 | arch="$word"
|
---|
43 | else
|
---|
44 | gl_cv_c_multiarch=yes
|
---|
45 | fi
|
---|
46 | ;;
|
---|
47 | esac
|
---|
48 | prev=
|
---|
49 | else
|
---|
50 | if test "x$word" = "x-arch"; then
|
---|
51 | prev=arch
|
---|
52 | fi
|
---|
53 | fi
|
---|
54 | done
|
---|
55 | ])
|
---|
56 | if test $gl_cv_c_multiarch = yes; then
|
---|
57 | APPLE_UNIVERSAL_BUILD=1
|
---|
58 | else
|
---|
59 | APPLE_UNIVERSAL_BUILD=0
|
---|
60 | fi
|
---|
61 | AC_SUBST([APPLE_UNIVERSAL_BUILD])
|
---|
62 | ])
|
---|