Commit | Line | Data |
---|---|---|
40a73391 | 1 | # multiarch.m4 serial 7 |
49e4877c | 2 | dnl Copyright (C) 2008-2016 Free Software Foundation, Inc. |
f434ba03 PA |
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 | # | |
40a73391 | 9 | # On Mac OS X 10.5 and later systems, the user can create libraries and |
f434ba03 PA |
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 | # | |
770d76d7 | 19 | # Detect this situation and set APPLE_UNIVERSAL_BUILD accordingly. |
f434ba03 PA |
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 | |
f434ba03 PA |
57 | APPLE_UNIVERSAL_BUILD=1 |
58 | else | |
59 | APPLE_UNIVERSAL_BUILD=0 | |
60 | fi | |
61 | AC_SUBST([APPLE_UNIVERSAL_BUILD]) | |
62 | ]) |