Commit | Line | Data |
---|---|---|
f434ba03 | 1 | # multiarch.m4 serial 5 |
db026a31 | 2 | dnl Copyright (C) 2008, 2009, 2010 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 | # | |
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 the macro AA_APPLE_UNIVERSAL_BUILD at the | |
20 | # beginning of config.h and set APPLE_UNIVERSAL_BUILD accordingly. | |
21 | ||
22 | AC_DEFUN_ONCE([gl_MULTIARCH], | |
23 | [ | |
24 | dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN. | |
25 | gl_cv_c_multiarch=no | |
26 | AC_COMPILE_IFELSE( | |
27 | [AC_LANG_SOURCE( | |
28 | [[#ifndef __APPLE_CC__ | |
29 | not a universal capable compiler | |
30 | #endif | |
31 | typedef int dummy; | |
32 | ]])], | |
33 | [ | |
34 | dnl Check for potential -arch flags. It is not universal unless | |
35 | dnl there are at least two -arch flags with different values. | |
36 | arch= | |
37 | prev= | |
38 | for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do | |
39 | if test -n "$prev"; then | |
40 | case $word in | |
41 | i?86 | x86_64 | ppc | ppc64) | |
42 | if test -z "$arch" || test "$arch" = "$word"; then | |
43 | arch="$word" | |
44 | else | |
45 | gl_cv_c_multiarch=yes | |
46 | fi | |
47 | ;; | |
48 | esac | |
49 | prev= | |
50 | else | |
51 | if test "x$word" = "x-arch"; then | |
52 | prev=arch | |
53 | fi | |
54 | fi | |
55 | done | |
56 | ]) | |
57 | if test $gl_cv_c_multiarch = yes; then | |
58 | AC_DEFINE([AA_APPLE_UNIVERSAL_BUILD], [1], | |
59 | [Define if the compiler is building for multiple architectures of Apple platforms at once.]) | |
60 | APPLE_UNIVERSAL_BUILD=1 | |
61 | else | |
62 | APPLE_UNIVERSAL_BUILD=0 | |
63 | fi | |
64 | AC_SUBST([APPLE_UNIVERSAL_BUILD]) | |
65 | ]) |