1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
|
dnl Copyright (C) 2005-2006 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.
# AC_CHECK_CPPFLAGS(ADDITIONAL-CPPFLAGS, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
#
# checks whether the $(C) compiler accepts the ADDITIONAL-CPPFLAGS
# if so, they are added to the CPPFLAGS
AC_DEFUN([AC_CHECK_CPPFLAGS],
[
AC_MSG_CHECKING([whether $CPP accepts "$1"])
temp_check_cppflags="${CPPFLAGS}"
CPPFLAGS="$1 ${CPPFLAGS}"
AC_PREPROC_IFELSE(
[AC_LANG_SOURCE([[int main(void){return 0;}]])],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no]); CPPFLAGS="${temp_check_cppflags}"])
])# AC_CHECK_CPPFLAGS
# AC_CHECK_CFLAGS(ADDITIONAL-CFLAGS, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
#
# checks whether the $(C) compiler accepts the ADDITIONAL-CFLAGS
# if so, they are added to the CFLAGS
AC_DEFUN([AC_CHECK_CFLAGS],
[
AC_MSG_CHECKING([whether $CC accepts "$1"])
cat > conftest.c << EOF
int main(){
return 0;
}
EOF
if $CC $CFLAGS [$1] -o conftest.o conftest.c > /dev/null 2>&1
then
AC_MSG_RESULT([yes])
CFLAGS="${CFLAGS} [$1]"
AC_CHECK_CPPFLAGS([$1])
[$2]
else
AC_MSG_RESULT([no])
[$3]
fi
])# AC_CHECK_CFLAGS
# AC_CHECK_CXXFLAGS(ADDITIONAL-CXXFLAGS, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
#
# checks whether the $(CXX) (c++) compiler accepts the ADDITIONAL-CXXFLAGS
# if so, they are added to the CXXFLAGS
AC_DEFUN([AC_CHECK_CXXFLAGS],
[
AC_MSG_CHECKING([whether $CXX accepts "$1"])
cat > conftest.c++ << EOF
int main(){
return 0;
}
EOF
if $CXX $CPPFLAGS $CXXFLAGS -o conftest.o conftest.c++ [$1] > /dev/null 2>&1
then
AC_MSG_RESULT([yes])
CXXFLAGS="${CXXFLAGS} [$1]"
AC_CHECK_CPPFLAGS([$1])
[$2]
else
AC_MSG_RESULT([no])
[$3]
fi
])# AC_CHECK_CXXFLAGS
# AC_CHECK_FRAMEWORK(FRAMEWORK, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
#
#
AC_DEFUN([AC_CHECK_FRAMEWORK],
[
AC_MSG_CHECKING([for "$1"-framework])
temp_check_ldflags_org="${LDFLAGS}"
LDFLAGS="-framework [$1] ${LDFLAGS}"
AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [temp_check_ldflags_success="yes"],[temp_check_ldflags_success="no"])
if test "x$temp_check_ldflags_success" = "xyes"; then
AC_MSG_RESULT([yes])
[$2]
else
AC_MSG_RESULT([no])
LDFLAGS="$temp_check_ldflags_org"
[$3]
fi
])# AC_CHECK_FRAMEWORK
# AC_CHECK_LDFLAGS(ADDITIONAL-LDFLAGS, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
#
# checks whether the $(LD) linker accepts the ADDITIONAL-LDFLAGS
# if so, they are added to the LDFLAGS
AC_DEFUN([AC_CHECK_LDFLAGS],
[
AC_MSG_CHECKING([whether linker accepts "$1"])
temp_check_ldflags_org="${LDFLAGS}"
LDFLAGS="$1 ${LDFLAGS}"
AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [temp_check_ldflags_success="yes"],[temp_check_ldflags_success="no"])
if test "x$temp_check_ldflags_success" = "xyes"; then
AC_MSG_RESULT([yes])
[$2]
else
AC_MSG_RESULT([no])
LDFLAGS="$temp_check_ldflags_org"
[$3]
fi
])# AC_CHECK_LDFLAGS
AC_DEFUN([AC_CHECK_FAT],
[
AC_ARG_ENABLE(fat-binary,
[ --enable-fat-binary=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],
[fat_binary=$enableval], [fat_binary=no])
if test "$fat_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-fat-binary if present.
if test "$fat_binary" != yes; then
TARGET_ARCHS=`echo "$fat_binary" | tr ',' ' '`
else
# Choose a default set of architectures based upon platform.
TARGET_ARCHS="ppc i386"
fi
fi
AC_MSG_RESULT([$TARGET_ARCHS])
define([Name],[translit([$1],[./-], [___])])
# /usr/lib/arch_tool -archify_list $TARGET_ARCHS
[]Name=""
for archs in $TARGET_ARCHS
do
[]Name="$[]Name -arch $archs"
done
if test "x$[]Name" != "x"; then
AC_CHECK_CFLAGS($[]Name,,[]Name="")
fi
if test "x$[]Name" != "x"; then
AC_CHECK_LDFLAGS($[]Name,,[]Name="")
fi
undefine([Name])
fi
])# AC_CHECK_FAT
AC_DEFUN([AC_CHECK_SIMD],
[
AC_ARG_ENABLE(simd,
[ --enable-simd=ARCHS
enable SIMD optimization;
valid arguments are: SSE2
],
[simd=$enableval], [simd=no])
if test "$simd" != no; then
AC_MSG_CHECKING([SIMD optimization])
# Respect SIMD given to --enable-simd if present.
if test "$simd" != yes; then
SIMD=`echo "$simd" | tr ',' ' '`
else
# Choose a default set of architectures based upon platform.
SIMD="SSE2"
fi
AC_MSG_RESULT([$SIMD])
for smd in $SIMD
do
case "${smd}" in
SSE2|sse2)
AC_CHECK_CFLAGS([-mfpmath=sse -msse])
;;
*)
AC_MSG_RESULT([unknown SIMD instructions: ${smd}])
;;
esac
done
fi
])# AC_CHECK_SIMD
|