Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(355)

Side by Side Diff: source/libvpx/build/make/configure.sh

Issue 756673003: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « source/libvpx/build/make/Makefile ('k') | source/libvpx/build/make/gen_msvs_proj.sh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/sh 1 #!/bin/sh
2 ## 2 ##
3 ## configure.sh 3 ## configure.sh
4 ## 4 ##
5 ## This script is sourced by the main configure script and contains 5 ## This script is sourced by the main configure script and contains
6 ## utility functions and other common bits that aren't strictly libvpx 6 ## utility functions and other common bits that aren't strictly libvpx
7 ## related. 7 ## related.
8 ## 8 ##
9 ## This build system is based in part on the FFmpeg configure script. 9 ## This build system is based in part on the FFmpeg configure script.
10 ## 10 ##
11 11
12 12
13 # 13 #
14 # Logging / Output Functions 14 # Logging / Output Functions
15 # 15 #
16 die_unknown(){ 16 die_unknown(){
17 echo "Unknown option \"$1\"." 17 echo "Unknown option \"$1\"."
18 echo "See $0 --help for available options." 18 echo "See $0 --help for available options."
19 clean_temp_files 19 clean_temp_files
20 exit 1 20 exit 1
21 } 21 }
22 22
23
24 die() { 23 die() {
25 echo "$@" 24 echo "$@"
26 echo 25 echo
27 echo "Configuration failed. This could reflect a misconfiguration of your" 26 echo "Configuration failed. This could reflect a misconfiguration of your"
28 echo "toolchains, improper options selected, or another problem. If you" 27 echo "toolchains, improper options selected, or another problem. If you"
29 echo "don't see any useful error messages above, the next step is to look" 28 echo "don't see any useful error messages above, the next step is to look"
30 echo "at the configure error log file ($logfile) to determine what" 29 echo "at the configure error log file ($logfile) to determine what"
31 echo "configure was trying to do when it died." 30 echo "configure was trying to do when it died."
32 clean_temp_files 31 clean_temp_files
33 exit 1 32 exit 1
34 } 33 }
35 34
36
37 log(){ 35 log(){
38 echo "$@" >>$logfile 36 echo "$@" >>$logfile
39 } 37 }
40 38
41
42 log_file(){ 39 log_file(){
43 log BEGIN $1 40 log BEGIN $1
44 cat -n $1 >>$logfile 41 cat -n $1 >>$logfile
45 log END $1 42 log END $1
46 } 43 }
47 44
48
49 log_echo() { 45 log_echo() {
50 echo "$@" 46 echo "$@"
51 log "$@" 47 log "$@"
52 } 48 }
53 49
54
55 fwrite () { 50 fwrite () {
56 outfile=$1 51 outfile=$1
57 shift 52 shift
58 echo "$@" >> ${outfile} 53 echo "$@" >> ${outfile}
59 } 54 }
60 55
56 show_help_pre(){
57 for opt in ${CMDLINE_SELECT}; do
58 opt2=`echo $opt | sed -e 's;_;-;g'`
59 if enabled $opt; then
60 eval "toggle_${opt}=\"--disable-${opt2}\""
61 else
62 eval "toggle_${opt}=\"--enable-${opt2} \""
63 fi
64 done
61 65
62 show_help_pre(){ 66 cat <<EOF
63 for opt in ${CMDLINE_SELECT}; do
64 opt2=`echo $opt | sed -e 's;_;-;g'`
65 if enabled $opt; then
66 eval "toggle_${opt}=\"--disable-${opt2}\""
67 else
68 eval "toggle_${opt}=\"--enable-${opt2} \""
69 fi
70 done
71
72 cat <<EOF
73 Usage: configure [options] 67 Usage: configure [options]
74 Options: 68 Options:
75 69
76 Build options: 70 Build options:
77 --help print this message 71 --help print this message
78 --log=yes|no|FILE file configure log is written to [config.log] 72 --log=yes|no|FILE file configure log is written to [config.log]
79 --target=TARGET target platform tuple [generic-gnu] 73 --target=TARGET target platform tuple [generic-gnu]
80 --cpu=CPU optimize for a specific cpu rather than a family 74 --cpu=CPU optimize for a specific cpu rather than a family
81 --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS] 75 --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS]
82 ${toggle_extra_warnings} emit harmless warnings (always non-fatal) 76 ${toggle_extra_warnings} emit harmless warnings (always non-fatal)
(...skipping 10 matching lines...) Expand all
93 Install options: 87 Install options:
94 ${toggle_install_docs} control whether docs are installed 88 ${toggle_install_docs} control whether docs are installed
95 ${toggle_install_bins} control whether binaries are installed 89 ${toggle_install_bins} control whether binaries are installed
96 ${toggle_install_libs} control whether libraries are installed 90 ${toggle_install_libs} control whether libraries are installed
97 ${toggle_install_srcs} control whether sources are installed 91 ${toggle_install_srcs} control whether sources are installed
98 92
99 93
100 EOF 94 EOF
101 } 95 }
102 96
103
104 show_help_post(){ 97 show_help_post(){
105 cat <<EOF 98 cat <<EOF
106 99
107 100
108 NOTES: 101 NOTES:
109 Object files are built at the place where configure is launched. 102 Object files are built at the place where configure is launched.
110 103
111 All boolean options can be negated. The default value is the opposite 104 All boolean options can be negated. The default value is the opposite
112 of that shown above. If the option --disable-foo is listed, then 105 of that shown above. If the option --disable-foo is listed, then
113 the default value for foo is enabled. 106 the default value for foo is enabled.
114 107
115 Supported targets: 108 Supported targets:
116 EOF 109 EOF
117 show_targets ${all_platforms} 110 show_targets ${all_platforms}
118 echo 111 echo
119 exit 1 112 exit 1
120 } 113 }
121 114
122
123 show_targets() { 115 show_targets() {
124 while [ -n "$*" ]; do 116 while [ -n "$*" ]; do
125 if [ "${1%%-*}" = "${2%%-*}" ]; then 117 if [ "${1%%-*}" = "${2%%-*}" ]; then
126 if [ "${2%%-*}" = "${3%%-*}" ]; then 118 if [ "${2%%-*}" = "${3%%-*}" ]; then
127 printf " %-24s %-24s %-24s\n" "$1" "$2" "$3" 119 printf " %-24s %-24s %-24s\n" "$1" "$2" "$3"
128 shift; shift; shift 120 shift; shift; shift
129 else 121 else
130 printf " %-24s %-24s\n" "$1" "$2" 122 printf " %-24s %-24s\n" "$1" "$2"
131 shift; shift 123 shift; shift
132 fi 124 fi
133 else 125 else
134 printf " %-24s\n" "$1" 126 printf " %-24s\n" "$1"
135 shift 127 shift
136 fi 128 fi
137 done 129 done
138 } 130 }
139 131
140
141 show_help() { 132 show_help() {
142 show_help_pre 133 show_help_pre
143 show_help_post 134 show_help_post
144 } 135 }
145 136
146 # 137 #
147 # List Processing Functions 138 # List Processing Functions
148 # 139 #
149 set_all(){ 140 set_all(){
150 value=$1 141 value=$1
151 shift 142 shift
152 for var in $*; do 143 for var in $*; do
153 eval $var=$value 144 eval $var=$value
154 done 145 done
155 } 146 }
156 147
157
158 is_in(){ 148 is_in(){
159 value=$1 149 value=$1
160 shift 150 shift
161 for var in $*; do 151 for var in $*; do
162 [ $var = $value ] && return 0 152 [ $var = $value ] && return 0
163 done 153 done
164 return 1 154 return 1
165 } 155 }
166 156
167
168 add_cflags() { 157 add_cflags() {
169 CFLAGS="${CFLAGS} $@" 158 CFLAGS="${CFLAGS} $@"
170 CXXFLAGS="${CXXFLAGS} $@" 159 CXXFLAGS="${CXXFLAGS} $@"
171 } 160 }
172 161
173
174 add_cflags_only() { 162 add_cflags_only() {
175 CFLAGS="${CFLAGS} $@" 163 CFLAGS="${CFLAGS} $@"
176 } 164 }
177 165
178
179 add_cxxflags_only() { 166 add_cxxflags_only() {
180 CXXFLAGS="${CXXFLAGS} $@" 167 CXXFLAGS="${CXXFLAGS} $@"
181 } 168 }
182 169
183
184 add_ldflags() { 170 add_ldflags() {
185 LDFLAGS="${LDFLAGS} $@" 171 LDFLAGS="${LDFLAGS} $@"
186 } 172 }
187 173
188
189 add_asflags() { 174 add_asflags() {
190 ASFLAGS="${ASFLAGS} $@" 175 ASFLAGS="${ASFLAGS} $@"
191 } 176 }
192 177
193
194 add_extralibs() { 178 add_extralibs() {
195 extralibs="${extralibs} $@" 179 extralibs="${extralibs} $@"
196 } 180 }
197 181
198 # 182 #
199 # Boolean Manipulation Functions 183 # Boolean Manipulation Functions
200 # 184 #
201 enable_feature(){ 185 enable_feature(){
202 set_all yes $* 186 set_all yes $*
203 } 187 }
204 188
205 disable_feature(){ 189 disable_feature(){
206 set_all no $* 190 set_all no $*
207 } 191 }
208 192
209 enabled(){ 193 enabled(){
210 eval test "x\$$1" = "xyes" 194 eval test "x\$$1" = "xyes"
211 } 195 }
212 196
213 disabled(){ 197 disabled(){
214 eval test "x\$$1" = "xno" 198 eval test "x\$$1" = "xno"
215 } 199 }
216 200
217
218 soft_enable() { 201 soft_enable() {
219 for var in $*; do 202 for var in $*; do
220 if ! disabled $var; then 203 if ! disabled $var; then
221 log_echo " enabling $var" 204 log_echo " enabling $var"
222 enable_feature $var 205 enable_feature $var
223 fi 206 fi
224 done 207 done
225 } 208 }
226 209
227 soft_disable() { 210 soft_disable() {
228 for var in $*; do 211 for var in $*; do
229 if ! enabled $var; then 212 if ! enabled $var; then
230 log_echo " disabling $var" 213 log_echo " disabling $var"
231 disable_feature $var 214 disable_feature $var
232 fi 215 fi
233 done 216 done
234 } 217 }
235 218
236
237 # 219 #
238 # Text Processing Functions 220 # Text Processing Functions
239 # 221 #
240 toupper(){ 222 toupper(){
241 echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 223 echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
242 } 224 }
243 225
244
245 tolower(){ 226 tolower(){
246 echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 227 echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz
247 } 228 }
248 229
249
250 # 230 #
251 # Temporary File Functions 231 # Temporary File Functions
252 # 232 #
253 source_path=${0%/*} 233 source_path=${0%/*}
254 enable_feature source_path_used 234 enable_feature source_path_used
255 if [ -z "$source_path" ] || [ "$source_path" = "." ]; then 235 if [ -z "$source_path" ] || [ "$source_path" = "." ]; then
256 source_path="`pwd`" 236 source_path="`pwd`"
257 disable_feature source_path_used 237 disable_feature source_path_used
258 fi 238 fi
259 239
260 if test ! -z "$TMPDIR" ; then 240 if test ! -z "$TMPDIR" ; then
261 TMPDIRx="${TMPDIR}" 241 TMPDIRx="${TMPDIR}"
262 elif test ! -z "$TEMPDIR" ; then 242 elif test ! -z "$TEMPDIR" ; then
263 TMPDIRx="${TEMPDIR}" 243 TMPDIRx="${TEMPDIR}"
264 else 244 else
265 TMPDIRx="/tmp" 245 TMPDIRx="/tmp"
266 fi 246 fi
267 RAND=$(awk 'BEGIN { srand(); printf "%d\n",(rand() * 32768)}') 247 RAND=$(awk 'BEGIN { srand(); printf "%d\n",(rand() * 32768)}')
268 TMP_H="${TMPDIRx}/vpx-conf-$$-${RAND}.h" 248 TMP_H="${TMPDIRx}/vpx-conf-$$-${RAND}.h"
269 TMP_C="${TMPDIRx}/vpx-conf-$$-${RAND}.c" 249 TMP_C="${TMPDIRx}/vpx-conf-$$-${RAND}.c"
270 TMP_CC="${TMPDIRx}/vpx-conf-$$-${RAND}.cc" 250 TMP_CC="${TMPDIRx}/vpx-conf-$$-${RAND}.cc"
271 TMP_O="${TMPDIRx}/vpx-conf-$$-${RAND}.o" 251 TMP_O="${TMPDIRx}/vpx-conf-$$-${RAND}.o"
272 TMP_X="${TMPDIRx}/vpx-conf-$$-${RAND}.x" 252 TMP_X="${TMPDIRx}/vpx-conf-$$-${RAND}.x"
273 TMP_ASM="${TMPDIRx}/vpx-conf-$$-${RAND}.asm" 253 TMP_ASM="${TMPDIRx}/vpx-conf-$$-${RAND}.asm"
274 254
275 clean_temp_files() { 255 clean_temp_files() {
276 rm -f ${TMP_C} ${TMP_CC} ${TMP_H} ${TMP_O} ${TMP_X} ${TMP_ASM} 256 rm -f ${TMP_C} ${TMP_CC} ${TMP_H} ${TMP_O} ${TMP_X} ${TMP_ASM}
277 enabled gcov && rm -f ${TMP_C%.c}.gcno ${TMP_CC%.cc}.gcno 257 enabled gcov && rm -f ${TMP_C%.c}.gcno ${TMP_CC%.cc}.gcno
278 } 258 }
279 259
280 # 260 #
281 # Toolchain Check Functions 261 # Toolchain Check Functions
282 # 262 #
283 check_cmd() { 263 check_cmd() {
284 enabled external_build && return 264 enabled external_build && return
285 log "$@" 265 log "$@"
286 "$@" >>${logfile} 2>&1 266 "$@" >>${logfile} 2>&1
287 } 267 }
288 268
289 check_cc() { 269 check_cc() {
290 log check_cc "$@" 270 log check_cc "$@"
291 cat >${TMP_C} 271 cat >${TMP_C}
292 log_file ${TMP_C} 272 log_file ${TMP_C}
293 check_cmd ${CC} ${CFLAGS} "$@" -c -o ${TMP_O} ${TMP_C} 273 check_cmd ${CC} ${CFLAGS} "$@" -c -o ${TMP_O} ${TMP_C}
294 } 274 }
295 275
296 check_cxx() { 276 check_cxx() {
297 log check_cxx "$@" 277 log check_cxx "$@"
298 cat >${TMP_CC} 278 cat >${TMP_CC}
299 log_file ${TMP_CC} 279 log_file ${TMP_CC}
300 check_cmd ${CXX} ${CXXFLAGS} "$@" -c -o ${TMP_O} ${TMP_CC} 280 check_cmd ${CXX} ${CXXFLAGS} "$@" -c -o ${TMP_O} ${TMP_CC}
301 } 281 }
302 282
303 check_cpp() { 283 check_cpp() {
304 log check_cpp "$@" 284 log check_cpp "$@"
305 cat > ${TMP_C} 285 cat > ${TMP_C}
306 log_file ${TMP_C} 286 log_file ${TMP_C}
307 check_cmd ${CC} ${CFLAGS} "$@" -E -o ${TMP_O} ${TMP_C} 287 check_cmd ${CC} ${CFLAGS} "$@" -E -o ${TMP_O} ${TMP_C}
308 } 288 }
309 289
310 check_ld() { 290 check_ld() {
311 log check_ld "$@" 291 log check_ld "$@"
312 check_cc $@ \ 292 check_cc $@ \
313 && check_cmd ${LD} ${LDFLAGS} "$@" -o ${TMP_X} ${TMP_O} ${extralibs} 293 && check_cmd ${LD} ${LDFLAGS} "$@" -o ${TMP_X} ${TMP_O} ${extralibs}
314 } 294 }
315 295
316 check_header(){ 296 check_header(){
317 log check_header "$@" 297 log check_header "$@"
318 header=$1 298 header=$1
319 shift 299 shift
320 var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'` 300 var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'`
321 disable_feature $var 301 disable_feature $var
322 check_cpp "$@" <<EOF && enable_feature $var 302 check_cpp "$@" <<EOF && enable_feature $var
323 #include "$header" 303 #include "$header"
324 int x; 304 int x;
325 EOF 305 EOF
326 } 306 }
327 307
328
329 check_cflags() { 308 check_cflags() {
330 log check_cflags "$@" 309 log check_cflags "$@"
331 check_cc -Werror "$@" <<EOF 310 check_cc -Werror "$@" <<EOF
332 int x; 311 int x;
333 EOF 312 EOF
334 } 313 }
335 314
336 check_cxxflags() { 315 check_cxxflags() {
337 log check_cxxflags "$@" 316 log check_cxxflags "$@"
338 317
339 # Catch CFLAGS that trigger CXX warnings 318 # Catch CFLAGS that trigger CXX warnings
340 case "$CXX" in 319 case "$CXX" in
341 *c++-analyzer|*clang++|*g++*) check_cxx -Werror "$@" <<EOF 320 *c++-analyzer|*clang++|*g++*)
321 check_cxx -Werror "$@" <<EOF
342 int x; 322 int x;
343 EOF 323 EOF
344 ;; 324 ;;
345 *) check_cxx -Werror "$@" <<EOF 325 *)
326 check_cxx -Werror "$@" <<EOF
346 int x; 327 int x;
347 EOF 328 EOF
348 ;; 329 ;;
349 esac 330 esac
350 } 331 }
351 332
352 check_add_cflags() { 333 check_add_cflags() {
353 check_cxxflags "$@" && add_cxxflags_only "$@" 334 check_cxxflags "$@" && add_cxxflags_only "$@"
354 check_cflags "$@" && add_cflags_only "$@" 335 check_cflags "$@" && add_cflags_only "$@"
355 } 336 }
356 337
357 check_add_asflags() { 338 check_add_asflags() {
358 log add_asflags "$@" 339 log add_asflags "$@"
359 add_asflags "$@" 340 add_asflags "$@"
360 } 341 }
361 342
362 check_add_ldflags() { 343 check_add_ldflags() {
363 log add_ldflags "$@" 344 log add_ldflags "$@"
364 add_ldflags "$@" 345 add_ldflags "$@"
365 } 346 }
366 347
367 check_asm_align() { 348 check_asm_align() {
368 log check_asm_align "$@" 349 log check_asm_align "$@"
369 cat >${TMP_ASM} <<EOF 350 cat >${TMP_ASM} <<EOF
370 section .rodata 351 section .rodata
371 align 16 352 align 16
372 EOF 353 EOF
373 log_file ${TMP_ASM} 354 log_file ${TMP_ASM}
374 check_cmd ${AS} ${ASFLAGS} -o ${TMP_O} ${TMP_ASM} 355 check_cmd ${AS} ${ASFLAGS} -o ${TMP_O} ${TMP_ASM}
375 readelf -WS ${TMP_O} >${TMP_X} 356 readelf -WS ${TMP_O} >${TMP_X}
376 log_file ${TMP_X} 357 log_file ${TMP_X}
377 if ! grep -q '\.rodata .* 16$' ${TMP_X}; then 358 if ! grep -q '\.rodata .* 16$' ${TMP_X}; then
378 die "${AS} ${ASFLAGS} does not support section alignment (nasm <=2.08?)" 359 die "${AS} ${ASFLAGS} does not support section alignment (nasm <=2.08?)"
379 fi 360 fi
380 } 361 }
381 362
382 # tests for -m$1 toggling the feature given in $2. If $2 is empty $1 is used. 363 # tests for -m$1 toggling the feature given in $2. If $2 is empty $1 is used.
383 check_gcc_machine_option() { 364 check_gcc_machine_option() {
384 opt="$1" 365 opt="$1"
385 feature="$2" 366 feature="$2"
386 [ -n "$feature" ] || feature="$opt" 367 [ -n "$feature" ] || feature="$opt"
387 368
388 if enabled gcc && ! disabled "$feature" && ! check_cflags "-m$opt"; then 369 if enabled gcc && ! disabled "$feature" && ! check_cflags "-m$opt"; then
389 RTCD_OPTIONS="${RTCD_OPTIONS}--disable-$feature " 370 RTCD_OPTIONS="${RTCD_OPTIONS}--disable-$feature "
390 else 371 else
391 soft_enable "$feature" 372 soft_enable "$feature"
392 fi 373 fi
393 } 374 }
394 375
395 write_common_config_banner() { 376 write_common_config_banner() {
396 print_webm_license config.mk "##" "" 377 print_webm_license config.mk "##" ""
397 echo '# This file automatically generated by configure. Do not edit!' >> con fig.mk 378 echo '# This file automatically generated by configure. Do not edit!' >> confi g.mk
398 echo "TOOLCHAIN := ${toolchain}" >> config.mk 379 echo "TOOLCHAIN := ${toolchain}" >> config.mk
399 380
400 case ${toolchain} in 381 case ${toolchain} in
401 *-linux-rvct) 382 *-linux-rvct)
402 echo "ALT_LIBC := ${alt_libc}" >> config.mk 383 echo "ALT_LIBC := ${alt_libc}" >> config.mk
403 ;; 384 ;;
404 esac 385 esac
405 } 386 }
406 387
407 write_common_config_targets() { 388 write_common_config_targets() {
408 for t in ${all_targets}; do 389 for t in ${all_targets}; do
409 if enabled ${t}; then 390 if enabled ${t}; then
410 if enabled universal || enabled child; then 391 if enabled universal || enabled child; then
411 fwrite config.mk "ALL_TARGETS += ${t}-${toolchain}" 392 fwrite config.mk "ALL_TARGETS += ${t}-${toolchain}"
412 else 393 else
413 fwrite config.mk "ALL_TARGETS += ${t}" 394 fwrite config.mk "ALL_TARGETS += ${t}"
414 fi 395 fi
415 fi 396 fi
416 true; 397 true;
417 done 398 done
418 true 399 true
419 } 400 }
420 401
421 write_common_target_config_mk() { 402 write_common_target_config_mk() {
422 saved_CC="${CC}" 403 saved_CC="${CC}"
423 saved_CXX="${CXX}" 404 saved_CXX="${CXX}"
424 enabled ccache && CC="ccache ${CC}" 405 enabled ccache && CC="ccache ${CC}"
425 enabled ccache && CXX="ccache ${CXX}" 406 enabled ccache && CXX="ccache ${CXX}"
426 print_webm_license $1 "##" "" 407 print_webm_license $1 "##" ""
427 408
428 cat >> $1 << EOF 409 cat >> $1 << EOF
429 # This file automatically generated by configure. Do not edit! 410 # This file automatically generated by configure. Do not edit!
430 SRC_PATH="$source_path" 411 SRC_PATH="$source_path"
431 SRC_PATH_BARE=$source_path 412 SRC_PATH_BARE=$source_path
432 BUILD_PFX=${BUILD_PFX} 413 BUILD_PFX=${BUILD_PFX}
433 TOOLCHAIN=${toolchain} 414 TOOLCHAIN=${toolchain}
434 ASM_CONVERSION=${asm_conversion_cmd:-${source_path}/build/make/ads2gas.pl} 415 ASM_CONVERSION=${asm_conversion_cmd:-${source_path}/build/make/ads2gas.pl}
435 GEN_VCPROJ=${gen_vcproj_cmd} 416 GEN_VCPROJ=${gen_vcproj_cmd}
436 MSVS_ARCH_DIR=${msvs_arch_dir} 417 MSVS_ARCH_DIR=${msvs_arch_dir}
437 418
438 CC=${CC} 419 CC=${CC}
439 CXX=${CXX} 420 CXX=${CXX}
440 AR=${AR} 421 AR=${AR}
441 LD=${LD} 422 LD=${LD}
442 AS=${AS} 423 AS=${AS}
443 STRIP=${STRIP} 424 STRIP=${STRIP}
444 NM=${NM} 425 NM=${NM}
445 426
446 CFLAGS = ${CFLAGS} 427 CFLAGS = ${CFLAGS}
447 CXXFLAGS = ${CXXFLAGS} 428 CXXFLAGS = ${CXXFLAGS}
448 ARFLAGS = -rus\$(if \$(quiet),c,v) 429 ARFLAGS = -rus\$(if \$(quiet),c,v)
449 LDFLAGS = ${LDFLAGS} 430 LDFLAGS = ${LDFLAGS}
450 ASFLAGS = ${ASFLAGS} 431 ASFLAGS = ${ASFLAGS}
451 extralibs = ${extralibs} 432 extralibs = ${extralibs}
452 AS_SFX = ${AS_SFX:-.asm} 433 AS_SFX = ${AS_SFX:-.asm}
453 EXE_SFX = ${EXE_SFX} 434 EXE_SFX = ${EXE_SFX}
454 VCPROJ_SFX = ${VCPROJ_SFX} 435 VCPROJ_SFX = ${VCPROJ_SFX}
455 RTCD_OPTIONS = ${RTCD_OPTIONS} 436 RTCD_OPTIONS = ${RTCD_OPTIONS}
456 EOF 437 EOF
457 438
458 if enabled rvct; then cat >> $1 << EOF 439 if enabled rvct; then cat >> $1 << EOF
459 fmt_deps = sed -e 's;^__image.axf;\${@:.d=.o} \$@;' #hide 440 fmt_deps = sed -e 's;^__image.axf;\${@:.d=.o} \$@;' #hide
460 EOF 441 EOF
461 else cat >> $1 << EOF 442 else cat >> $1 << EOF
462 fmt_deps = sed -e 's;^\([a-zA-Z0-9_]*\)\.o;\${@:.d=.o} \$@;' 443 fmt_deps = sed -e 's;^\([a-zA-Z0-9_]*\)\.o;\${@:.d=.o} \$@;'
463 EOF 444 EOF
464 fi 445 fi
465 446
466 print_config_mk ARCH "${1}" ${ARCH_LIST} 447 print_config_mk ARCH "${1}" ${ARCH_LIST}
467 print_config_mk HAVE "${1}" ${HAVE_LIST} 448 print_config_mk HAVE "${1}" ${HAVE_LIST}
468 print_config_mk CONFIG "${1}" ${CONFIG_LIST} 449 print_config_mk CONFIG "${1}" ${CONFIG_LIST}
469 print_config_mk HAVE "${1}" gnu_strip 450 print_config_mk HAVE "${1}" gnu_strip
470 451
471 enabled msvs && echo "CONFIG_VS_VERSION=${vs_version}" >> "${1}" 452 enabled msvs && echo "CONFIG_VS_VERSION=${vs_version}" >> "${1}"
472 453
473 CC="${saved_CC}" 454 CC="${saved_CC}"
474 CXX="${saved_CXX}" 455 CXX="${saved_CXX}"
475 } 456 }
476 457
477
478 write_common_target_config_h() { 458 write_common_target_config_h() {
479 print_webm_license ${TMP_H} "/*" " */" 459 print_webm_license ${TMP_H} "/*" " */"
480 cat >> ${TMP_H} << EOF 460 cat >> ${TMP_H} << EOF
481 /* This file automatically generated by configure. Do not edit! */ 461 /* This file automatically generated by configure. Do not edit! */
482 #ifndef VPX_CONFIG_H 462 #ifndef VPX_CONFIG_H
483 #define VPX_CONFIG_H 463 #define VPX_CONFIG_H
484 #define RESTRICT ${RESTRICT} 464 #define RESTRICT ${RESTRICT}
485 #define INLINE ${INLINE} 465 #define INLINE ${INLINE}
486 EOF 466 EOF
487 print_config_h ARCH "${TMP_H}" ${ARCH_LIST} 467 print_config_h ARCH "${TMP_H}" ${ARCH_LIST}
488 print_config_h HAVE "${TMP_H}" ${HAVE_LIST} 468 print_config_h HAVE "${TMP_H}" ${HAVE_LIST}
489 print_config_h CONFIG "${TMP_H}" ${CONFIG_LIST} 469 print_config_h CONFIG "${TMP_H}" ${CONFIG_LIST}
490 print_config_vars_h "${TMP_H}" ${VAR_LIST} 470 print_config_vars_h "${TMP_H}" ${VAR_LIST}
491 echo "#endif /* VPX_CONFIG_H */" >> ${TMP_H} 471 echo "#endif /* VPX_CONFIG_H */" >> ${TMP_H}
492 mkdir -p `dirname "$1"` 472 mkdir -p `dirname "$1"`
493 cmp "$1" ${TMP_H} >/dev/null 2>&1 || mv ${TMP_H} "$1" 473 cmp "$1" ${TMP_H} >/dev/null 2>&1 || mv ${TMP_H} "$1"
494 } 474 }
495 475
496 process_common_cmdline() { 476 process_common_cmdline() {
497 for opt in "$@"; do 477 for opt in "$@"; do
498 optval="${opt#*=}" 478 optval="${opt#*=}"
499 case "$opt" in 479 case "$opt" in
500 --child) enable_feature child 480 --child)
481 enable_feature child
501 ;; 482 ;;
502 --log*) 483 --log*)
503 logging="$optval" 484 logging="$optval"
504 if ! disabled logging ; then 485 if ! disabled logging ; then
505 enabled logging || logfile="$logging" 486 enabled logging || logfile="$logging"
506 else 487 else
507 logfile=/dev/null 488 logfile=/dev/null
508 fi 489 fi
509 ;; 490 ;;
510 --target=*) toolchain="${toolchain:-${optval}}" 491 --target=*)
492 toolchain="${toolchain:-${optval}}"
511 ;; 493 ;;
512 --force-target=*) toolchain="${toolchain:-${optval}}"; enable_feature fo rce_toolchain 494 --force-target=*)
495 toolchain="${toolchain:-${optval}}"
496 enable_feature force_toolchain
513 ;; 497 ;;
514 --cpu) 498 --cpu)
515 ;; 499 ;;
516 --cpu=*) tune_cpu="$optval" 500 --cpu=*)
501 tune_cpu="$optval"
517 ;; 502 ;;
518 --extra-cflags=*) 503 --extra-cflags=*)
519 extra_cflags="${optval}" 504 extra_cflags="${optval}"
520 ;; 505 ;;
521 --enable-?*|--disable-?*) 506 --enable-?*|--disable-?*)
522 eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'` 507 eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
523 if echo "${ARCH_EXT_LIST}" | grep "^ *$option\$" >/dev/null; then 508 if echo "${ARCH_EXT_LIST}" | grep "^ *$option\$" >/dev/null; then
524 [ $action = "disable" ] && RTCD_OPTIONS="${RTCD_OPTIONS}--disable-${ option} " 509 [ $action = "disable" ] && RTCD_OPTIONS="${RTCD_OPTIONS}--disable-${op tion} "
525 elif [ $action = "disable" ] && ! disabled $option ; then 510 elif [ $action = "disable" ] && ! disabled $option ; then
526 echo "${CMDLINE_SELECT}" | grep "^ *$option\$" >/dev/null || 511 echo "${CMDLINE_SELECT}" | grep "^ *$option\$" >/dev/null ||
527 die_unknown $opt 512 die_unknown $opt
528 elif [ $action = "enable" ] && ! enabled $option ; then 513 elif [ $action = "enable" ] && ! enabled $option ; then
529 echo "${CMDLINE_SELECT}" | grep "^ *$option\$" >/dev/null || 514 echo "${CMDLINE_SELECT}" | grep "^ *$option\$" >/dev/null ||
530 die_unknown $opt 515 die_unknown $opt
531 fi 516 fi
532 ${action}_feature $option 517 ${action}_feature $option
533 ;; 518 ;;
534 --require-?*) 519 --require-?*)
535 eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'` 520 eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
536 if echo "${ARCH_EXT_LIST}" none | grep "^ *$option\$" >/dev/null; then 521 if echo "${ARCH_EXT_LIST}" none | grep "^ *$option\$" >/dev/null; then
537 RTCD_OPTIONS="${RTCD_OPTIONS}${opt} " 522 RTCD_OPTIONS="${RTCD_OPTIONS}${opt} "
538 else 523 else
539 die_unknown $opt 524 die_unknown $opt
540 fi 525 fi
541 ;; 526 ;;
542 --force-enable-?*|--force-disable-?*) 527 --force-enable-?*|--force-disable-?*)
543 eval `echo "$opt" | sed 's/--force-/action=/;s/-/ option=/;s/-/_/g'` 528 eval `echo "$opt" | sed 's/--force-/action=/;s/-/ option=/;s/-/_/g'`
544 ${action}_feature $option 529 ${action}_feature $option
545 ;; 530 ;;
546 --libc=*) 531 --libc=*)
547 [ -d "${optval}" ] || die "Not a directory: ${optval}" 532 [ -d "${optval}" ] || die "Not a directory: ${optval}"
548 disable_feature builtin_libc 533 disable_feature builtin_libc
549 alt_libc="${optval}" 534 alt_libc="${optval}"
550 ;; 535 ;;
551 --as=*) 536 --as=*)
552 [ "${optval}" = yasm ] || [ "${optval}" = nasm ] \ 537 [ "${optval}" = yasm ] || [ "${optval}" = nasm ] \
553 || [ "${optval}" = auto ] \ 538 || [ "${optval}" = auto ] \
554 || die "Must be yasm, nasm or auto: ${optval}" 539 || die "Must be yasm, nasm or auto: ${optval}"
555 alt_as="${optval}" 540 alt_as="${optval}"
556 ;; 541 ;;
557 --size-limit=*) 542 --size-limit=*)
558 w="${optval%%x*}" 543 w="${optval%%x*}"
559 h="${optval##*x}" 544 h="${optval##*x}"
560 VAR_LIST="DECODE_WIDTH_LIMIT ${w} DECODE_HEIGHT_LIMIT ${h}" 545 VAR_LIST="DECODE_WIDTH_LIMIT ${w} DECODE_HEIGHT_LIMIT ${h}"
561 [ ${w} -gt 0 ] && [ ${h} -gt 0 ] || die "Invalid size-limit: too small." 546 [ ${w} -gt 0 ] && [ ${h} -gt 0 ] || die "Invalid size-limit: too small."
562 [ ${w} -lt 65536 ] && [ ${h} -lt 65536 ] \ 547 [ ${w} -lt 65536 ] && [ ${h} -lt 65536 ] \
563 || die "Invalid size-limit: too big." 548 || die "Invalid size-limit: too big."
564 enable_feature size_limit 549 enable_feature size_limit
565 ;; 550 ;;
566 --prefix=*) 551 --prefix=*)
567 prefix="${optval}" 552 prefix="${optval}"
568 ;; 553 ;;
569 --libdir=*) 554 --libdir=*)
570 libdir="${optval}" 555 libdir="${optval}"
571 ;; 556 ;;
572 --sdk-path=*) 557 --sdk-path=*)
573 [ -d "${optval}" ] || die "Not a directory: ${optval}" 558 [ -d "${optval}" ] || die "Not a directory: ${optval}"
574 sdk_path="${optval}" 559 sdk_path="${optval}"
575 ;; 560 ;;
576 --libc|--as|--prefix|--libdir|--sdk-path) 561 --libc|--as|--prefix|--libdir|--sdk-path)
577 die "Option ${opt} requires argument" 562 die "Option ${opt} requires argument"
578 ;; 563 ;;
579 --help|-h) show_help 564 --help|-h)
580 ;; 565 show_help
581 *) die_unknown $opt 566 ;;
582 ;; 567 *)
583 esac 568 die_unknown $opt
584 done 569 ;;
570 esac
571 done
585 } 572 }
586 573
587 process_cmdline() { 574 process_cmdline() {
588 for opt do 575 for opt do
589 optval="${opt#*=}" 576 optval="${opt#*=}"
590 case "$opt" in 577 case "$opt" in
591 *) process_common_cmdline $opt 578 *)
592 ;; 579 process_common_cmdline $opt
593 esac 580 ;;
594 done 581 esac
582 done
595 } 583 }
596 584
597
598 post_process_common_cmdline() { 585 post_process_common_cmdline() {
599 prefix="${prefix:-/usr/local}" 586 prefix="${prefix:-/usr/local}"
600 prefix="${prefix%/}" 587 prefix="${prefix%/}"
601 libdir="${libdir:-${prefix}/lib}" 588 libdir="${libdir:-${prefix}/lib}"
602 libdir="${libdir%/}" 589 libdir="${libdir%/}"
603 if [ "${libdir#${prefix}}" = "${libdir}" ]; then 590 if [ "${libdir#${prefix}}" = "${libdir}" ]; then
604 die "Libdir ${libdir} must be a subdirectory of ${prefix}" 591 die "Libdir ${libdir} must be a subdirectory of ${prefix}"
592 fi
593 }
594
595 post_process_cmdline() {
596 true;
597 }
598
599 setup_gnu_toolchain() {
600 CC=${CC:-${CROSS}gcc}
601 CXX=${CXX:-${CROSS}g++}
602 AR=${AR:-${CROSS}ar}
603 LD=${LD:-${CROSS}${link_with_cc:-ld}}
604 AS=${AS:-${CROSS}as}
605 STRIP=${STRIP:-${CROSS}strip}
606 NM=${NM:-${CROSS}nm}
607 AS_SFX=.s
608 EXE_SFX=
609 }
610
611 process_common_toolchain() {
612 if [ -z "$toolchain" ]; then
613 gcctarget="${CHOST:-$(gcc -dumpmachine 2> /dev/null)}"
614
615 # detect tgt_isa
616 case "$gcctarget" in
617 armv6*)
618 tgt_isa=armv6
619 ;;
620 armv7*-hardfloat*)
621 tgt_isa=armv7
622 float_abi=hard
623 ;;
624 armv7*)
625 tgt_isa=armv7
626 float_abi=softfp
627 ;;
628 *x86_64*|*amd64*)
629 tgt_isa=x86_64
630 ;;
631 *i[3456]86*)
632 tgt_isa=x86
633 ;;
634 *powerpc64*)
635 tgt_isa=ppc64
636 ;;
637 *powerpc*)
638 tgt_isa=ppc32
639 ;;
640 *sparc*)
641 tgt_isa=sparc
642 ;;
643 esac
644
645 # detect tgt_os
646 case "$gcctarget" in
647 *darwin8*)
648 tgt_isa=universal
649 tgt_os=darwin8
650 ;;
651 *darwin9*)
652 tgt_isa=universal
653 tgt_os=darwin9
654 ;;
655 *darwin10*)
656 tgt_isa=x86_64
657 tgt_os=darwin10
658 ;;
659 *darwin11*)
660 tgt_isa=x86_64
661 tgt_os=darwin11
662 ;;
663 *darwin12*)
664 tgt_isa=x86_64
665 tgt_os=darwin12
666 ;;
667 *darwin13*)
668 tgt_isa=x86_64
669 tgt_os=darwin13
670 ;;
671 x86_64*mingw32*)
672 tgt_os=win64
673 ;;
674 *mingw32*|*cygwin*)
675 [ -z "$tgt_isa" ] && tgt_isa=x86
676 tgt_os=win32
677 ;;
678 *linux*|*bsd*)
679 tgt_os=linux
680 ;;
681 *solaris2.10)
682 tgt_os=solaris
683 ;;
684 *os2*)
685 tgt_os=os2
686 ;;
687 esac
688
689 if [ -n "$tgt_isa" ] && [ -n "$tgt_os" ]; then
690 toolchain=${tgt_isa}-${tgt_os}-gcc
605 fi 691 fi
606 } 692 fi
607 693
608 694 toolchain=${toolchain:-generic-gnu}
609 post_process_cmdline() { 695
610 true; 696 is_in ${toolchain} ${all_platforms} || enabled force_toolchain \
611 } 697 || die "Unrecognized toolchain '${toolchain}'"
612 698
613 setup_gnu_toolchain() { 699 enabled child || log_echo "Configuring for target '${toolchain}'"
614 CC=${CC:-${CROSS}gcc} 700
615 CXX=${CXX:-${CROSS}g++} 701 #
616 AR=${AR:-${CROSS}ar} 702 # Set up toolchain variables
617 LD=${LD:-${CROSS}${link_with_cc:-ld}} 703 #
618 AS=${AS:-${CROSS}as} 704 tgt_isa=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $1}')
619 STRIP=${STRIP:-${CROSS}strip} 705 tgt_os=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $2}')
620 NM=${NM:-${CROSS}nm} 706 tgt_cc=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $3}')
621 AS_SFX=.s 707
622 EXE_SFX= 708 # Mark the specific ISA requested as enabled
623 } 709 soft_enable ${tgt_isa}
624 710 enable_feature ${tgt_os}
625 process_common_toolchain() { 711 enable_feature ${tgt_cc}
626 if [ -z "$toolchain" ]; then 712
627 gcctarget="${CHOST:-$(gcc -dumpmachine 2> /dev/null)}" 713 # Enable the architecture family
628 714 case ${tgt_isa} in
629 # detect tgt_isa
630 case "$gcctarget" in
631 armv6*)
632 tgt_isa=armv6
633 ;;
634 armv7*-hardfloat*)
635 tgt_isa=armv7
636 float_abi=hard
637 ;;
638 armv7*)
639 tgt_isa=armv7
640 float_abi=softfp
641 ;;
642 armv5te*)
643 tgt_isa=armv5te
644 ;;
645 *x86_64*|*amd64*)
646 tgt_isa=x86_64
647 ;;
648 *i[3456]86*)
649 tgt_isa=x86
650 ;;
651 *powerpc64*)
652 tgt_isa=ppc64
653 ;;
654 *powerpc*)
655 tgt_isa=ppc32
656 ;;
657 *sparc*)
658 tgt_isa=sparc
659 ;;
660 esac
661
662 # detect tgt_os
663 case "$gcctarget" in
664 *darwin8*)
665 tgt_isa=universal
666 tgt_os=darwin8
667 ;;
668 *darwin9*)
669 tgt_isa=universal
670 tgt_os=darwin9
671 ;;
672 *darwin10*)
673 tgt_isa=x86_64
674 tgt_os=darwin10
675 ;;
676 *darwin11*)
677 tgt_isa=x86_64
678 tgt_os=darwin11
679 ;;
680 *darwin12*)
681 tgt_isa=x86_64
682 tgt_os=darwin12
683 ;;
684 *darwin13*)
685 tgt_isa=x86_64
686 tgt_os=darwin13
687 ;;
688 x86_64*mingw32*)
689 tgt_os=win64
690 ;;
691 *mingw32*|*cygwin*)
692 [ -z "$tgt_isa" ] && tgt_isa=x86
693 tgt_os=win32
694 ;;
695 *linux*|*bsd*)
696 tgt_os=linux
697 ;;
698 *solaris2.10)
699 tgt_os=solaris
700 ;;
701 *os2*)
702 tgt_os=os2
703 ;;
704 esac
705
706 if [ -n "$tgt_isa" ] && [ -n "$tgt_os" ]; then
707 toolchain=${tgt_isa}-${tgt_os}-gcc
708 fi
709 fi
710
711 toolchain=${toolchain:-generic-gnu}
712
713 is_in ${toolchain} ${all_platforms} || enabled force_toolchain \
714 || die "Unrecognized toolchain '${toolchain}'"
715
716 enabled child || log_echo "Configuring for target '${toolchain}'"
717
718 #
719 # Set up toolchain variables
720 #
721 tgt_isa=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $1}')
722 tgt_os=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $2}')
723 tgt_cc=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $3}')
724
725 # Mark the specific ISA requested as enabled
726 soft_enable ${tgt_isa}
727 enable_feature ${tgt_os}
728 enable_feature ${tgt_cc}
729
730 # Enable the architecture family
731 case ${tgt_isa} in
732 arm*) enable_feature arm;;
733 mips*) enable_feature mips;;
734 esac
735
736 # PIC is probably what we want when building shared libs
737 enabled shared && soft_enable pic
738
739 # Minimum iOS version for all target platforms (darwin and iphonesimulator).
740 IOS_VERSION_MIN="6.0"
741
742 # Handle darwin variants. Newer SDKs allow targeting older
743 # platforms, so find the newest SDK available.
744 case ${toolchain} in
745 *-darwin*)
746 if [ -z "${DEVELOPER_DIR}" ]; then
747 DEVELOPER_DIR=`xcode-select -print-path 2> /dev/null`
748 [ $? -ne 0 ] && OSX_SKIP_DIR_CHECK=1
749 fi
750 if [ -z "${OSX_SKIP_DIR_CHECK}" ]; then
751 OSX_SDK_ROOTS="${DEVELOPER_DIR}/SDKs"
752 OSX_SDK_VERSIONS="MacOSX10.4u.sdk MacOSX10.5.sdk MacOSX10.6.sdk"
753 OSX_SDK_VERSIONS="${OSX_SDK_VERSIONS} MacOSX10.7.sdk"
754 for v in ${OSX_SDK_VERSIONS}; do
755 if [ -d "${OSX_SDK_ROOTS}/${v}" ]; then
756 osx_sdk_dir="${OSX_SDK_ROOTS}/${v}"
757 fi
758 done
759 fi
760 ;;
761 esac
762
763 if [ -d "${osx_sdk_dir}" ]; then
764 add_cflags "-isysroot ${osx_sdk_dir}"
765 add_ldflags "-isysroot ${osx_sdk_dir}"
766 fi
767
768 case ${toolchain} in
769 *-darwin8-*)
770 add_cflags "-mmacosx-version-min=10.4"
771 add_ldflags "-mmacosx-version-min=10.4"
772 ;;
773 *-darwin9-*)
774 add_cflags "-mmacosx-version-min=10.5"
775 add_ldflags "-mmacosx-version-min=10.5"
776 ;;
777 *-darwin10-*)
778 add_cflags "-mmacosx-version-min=10.6"
779 add_ldflags "-mmacosx-version-min=10.6"
780 ;;
781 *-darwin11-*)
782 add_cflags "-mmacosx-version-min=10.7"
783 add_ldflags "-mmacosx-version-min=10.7"
784 ;;
785 *-darwin12-*)
786 add_cflags "-mmacosx-version-min=10.8"
787 add_ldflags "-mmacosx-version-min=10.8"
788 ;;
789 *-darwin13-*)
790 add_cflags "-mmacosx-version-min=10.9"
791 add_ldflags "-mmacosx-version-min=10.9"
792 ;;
793 *-iphonesimulator-*)
794 add_cflags "-miphoneos-version-min=${IOS_VERSION_MIN}"
795 add_ldflags "-miphoneos-version-min=${IOS_VERSION_MIN}"
796 osx_sdk_dir="$(xcrun --sdk iphonesimulator --show-sdk-path)"
797 add_cflags "-isysroot ${osx_sdk_dir}"
798 add_ldflags "-isysroot ${osx_sdk_dir}"
799 ;;
800 esac
801
802 # Handle Solaris variants. Solaris 10 needs -lposix4
803 case ${toolchain} in
804 sparc-solaris-*)
805 add_extralibs -lposix4
806 disable_feature fast_unaligned
807 ;;
808 *-solaris-*)
809 add_extralibs -lposix4
810 ;;
811 esac
812
813 # Process ARM architecture variants
814 case ${toolchain} in
815 arm*) 715 arm*)
816 # on arm, isa versions are supersets 716 enable_feature arm
817 case ${tgt_isa} in 717 ;;
718 mips*)
719 enable_feature mips
720 ;;
721 esac
722
723 # PIC is probably what we want when building shared libs
724 enabled shared && soft_enable pic
725
726 # Minimum iOS version for all target platforms (darwin and iphonesimulator).
727 IOS_VERSION_MIN="6.0"
728
729 # Handle darwin variants. Newer SDKs allow targeting older
730 # platforms, so find the newest SDK available.
731 case ${toolchain} in
732 *-darwin*)
733 if [ -z "${DEVELOPER_DIR}" ]; then
734 DEVELOPER_DIR=`xcode-select -print-path 2> /dev/null`
735 [ $? -ne 0 ] && OSX_SKIP_DIR_CHECK=1
736 fi
737 if [ -z "${OSX_SKIP_DIR_CHECK}" ]; then
738 OSX_SDK_ROOTS="${DEVELOPER_DIR}/SDKs"
739 OSX_SDK_VERSIONS="MacOSX10.4u.sdk MacOSX10.5.sdk MacOSX10.6.sdk"
740 OSX_SDK_VERSIONS="${OSX_SDK_VERSIONS} MacOSX10.7.sdk"
741 for v in ${OSX_SDK_VERSIONS}; do
742 if [ -d "${OSX_SDK_ROOTS}/${v}" ]; then
743 osx_sdk_dir="${OSX_SDK_ROOTS}/${v}"
744 fi
745 done
746 fi
747 ;;
748 esac
749
750 if [ -d "${osx_sdk_dir}" ]; then
751 add_cflags "-isysroot ${osx_sdk_dir}"
752 add_ldflags "-isysroot ${osx_sdk_dir}"
753 fi
754
755 case ${toolchain} in
756 *-darwin8-*)
757 add_cflags "-mmacosx-version-min=10.4"
758 add_ldflags "-mmacosx-version-min=10.4"
759 ;;
760 *-darwin9-*)
761 add_cflags "-mmacosx-version-min=10.5"
762 add_ldflags "-mmacosx-version-min=10.5"
763 ;;
764 *-darwin10-*)
765 add_cflags "-mmacosx-version-min=10.6"
766 add_ldflags "-mmacosx-version-min=10.6"
767 ;;
768 *-darwin11-*)
769 add_cflags "-mmacosx-version-min=10.7"
770 add_ldflags "-mmacosx-version-min=10.7"
771 ;;
772 *-darwin12-*)
773 add_cflags "-mmacosx-version-min=10.8"
774 add_ldflags "-mmacosx-version-min=10.8"
775 ;;
776 *-darwin13-*)
777 add_cflags "-mmacosx-version-min=10.9"
778 add_ldflags "-mmacosx-version-min=10.9"
779 ;;
780 *-iphonesimulator-*)
781 add_cflags "-miphoneos-version-min=${IOS_VERSION_MIN}"
782 add_ldflags "-miphoneos-version-min=${IOS_VERSION_MIN}"
783 osx_sdk_dir="$(xcrun --sdk iphonesimulator --show-sdk-path)"
784 add_cflags "-isysroot ${osx_sdk_dir}"
785 add_ldflags "-isysroot ${osx_sdk_dir}"
786 ;;
787 esac
788
789 # Handle Solaris variants. Solaris 10 needs -lposix4
790 case ${toolchain} in
791 sparc-solaris-*)
792 add_extralibs -lposix4
793 disable_feature fast_unaligned
794 ;;
795 *-solaris-*)
796 add_extralibs -lposix4
797 ;;
798 esac
799
800 # Process ARM architecture variants
801 case ${toolchain} in
802 arm*)
803 # on arm, isa versions are supersets
804 case ${tgt_isa} in
818 arm64|armv8) 805 arm64|armv8)
819 soft_enable neon 806 soft_enable neon
820 ;; 807 ;;
821 armv7|armv7s) 808 armv7|armv7s)
822 soft_enable neon 809 soft_enable neon
823 soft_enable neon_asm 810 soft_enable neon_asm
824 soft_enable media 811 soft_enable media
825 soft_enable edsp 812 soft_enable fast_unaligned
826 soft_enable fast_unaligned 813 ;;
827 ;;
828 armv6) 814 armv6)
829 soft_enable media 815 soft_enable media
830 soft_enable edsp 816 soft_enable fast_unaligned
831 soft_enable fast_unaligned 817 ;;
832 ;; 818 esac
833 armv5te) 819
834 soft_enable edsp 820 asm_conversion_cmd="cat"
835 disable_feature fast_unaligned 821
836 ;; 822 case ${tgt_cc} in
837 esac
838
839 asm_conversion_cmd="cat"
840
841 case ${tgt_cc} in
842 gcc) 823 gcc)
843 CROSS=${CROSS:-arm-none-linux-gnueabi-} 824 CROSS=${CROSS:-arm-none-linux-gnueabi-}
844 link_with_cc=gcc 825 link_with_cc=gcc
845 setup_gnu_toolchain 826 setup_gnu_toolchain
846 arch_int=${tgt_isa##armv} 827 arch_int=${tgt_isa##armv}
847 arch_int=${arch_int%%te} 828 arch_int=${arch_int%%te}
848 check_add_asflags --defsym ARCHITECTURE=${arch_int} 829 check_add_asflags --defsym ARCHITECTURE=${arch_int}
849 tune_cflags="-mtune=" 830 tune_cflags="-mtune="
850 if [ ${tgt_isa} = "armv7" ] || [ ${tgt_isa} = "armv7s" ]; then 831 if [ ${tgt_isa} = "armv7" ] || [ ${tgt_isa} = "armv7s" ]; then
851 if [ -z "${float_abi}" ]; then 832 if [ -z "${float_abi}" ]; then
852 check_cpp <<EOF && float_abi=hard || float_abi=softfp 833 check_cpp <<EOF && float_abi=hard || float_abi=softfp
853 #ifndef __ARM_PCS_VFP 834 #ifndef __ARM_PCS_VFP
854 #error "not hardfp" 835 #error "not hardfp"
855 #endif 836 #endif
856 EOF 837 EOF
857 fi 838 fi
858 check_add_cflags -march=armv7-a -mfloat-abi=${float_abi} 839 check_add_cflags -march=armv7-a -mfloat-abi=${float_abi}
859 check_add_asflags -march=armv7-a -mfloat-abi=${float_abi} 840 check_add_asflags -march=armv7-a -mfloat-abi=${float_abi}
860 841
861 if enabled neon || enabled neon_asm 842 if enabled neon || enabled neon_asm; then
862 then 843 check_add_cflags -mfpu=neon #-ftree-vectorize
863 check_add_cflags -mfpu=neon #-ftree-vectorize 844 check_add_asflags -mfpu=neon
864 check_add_asflags -mfpu=neon 845 fi
865 fi 846
866 847 if [ -z "${tune_cpu}" ]; then
867 if [ -z "${tune_cpu}" ]; then 848 tune_cpu=cortex-a8
868 tune_cpu=cortex-a8 849 fi
869 fi 850 else
851 check_add_cflags -march=${tgt_isa}
852 check_add_asflags -march=${tgt_isa}
853 fi
854
855 enabled debug && add_asflags -g
856 asm_conversion_cmd="${source_path}/build/make/ads2gas.pl"
857 if enabled thumb; then
858 asm_conversion_cmd="$asm_conversion_cmd -thumb"
859 check_add_cflags -mthumb
860 check_add_asflags -mthumb -mimplicit-it=always
861 fi
862 ;;
863 vs*)
864 asm_conversion_cmd="${source_path}/build/make/ads2armasm_ms.pl"
865 AS_SFX=.s
866 msvs_arch_dir=arm-msvs
867 disable_feature multithread
868 disable_feature unit_tests
869 vs_version=${tgt_cc##vs}
870 if [ $vs_version -ge 12 ]; then
871 # MSVC 2013 doesn't allow doing plain .exe projects for ARM,
872 # only "AppContainerApplication" which requires an AppxManifest.
873 # Therefore disable the examples, just build the library.
874 disable_feature examples
875 fi
876 ;;
877 rvct)
878 CC=armcc
879 AR=armar
880 AS=armasm
881 LD="${source_path}/build/make/armlink_adapter.sh"
882 STRIP=arm-none-linux-gnueabi-strip
883 NM=arm-none-linux-gnueabi-nm
884 tune_cflags="--cpu="
885 tune_asflags="--cpu="
886 if [ -z "${tune_cpu}" ]; then
887 if [ ${tgt_isa} = "armv7" ]; then
888 if enabled neon || enabled neon_asm
889 then
890 check_add_cflags --fpu=softvfp+vfpv3
891 check_add_asflags --fpu=softvfp+vfpv3
892 fi
893 check_add_cflags --cpu=Cortex-A8
894 check_add_asflags --cpu=Cortex-A8
870 else 895 else
871 check_add_cflags -march=${tgt_isa} 896 check_add_cflags --cpu=${tgt_isa##armv}
872 check_add_asflags -march=${tgt_isa} 897 check_add_asflags --cpu=${tgt_isa##armv}
873 fi 898 fi
874 899 fi
875 enabled debug && add_asflags -g 900 arch_int=${tgt_isa##armv}
876 asm_conversion_cmd="${source_path}/build/make/ads2gas.pl" 901 arch_int=${arch_int%%te}
877 if enabled thumb; then 902 check_add_asflags --pd "\"ARCHITECTURE SETA ${arch_int}\""
878 asm_conversion_cmd="$asm_conversion_cmd -thumb" 903 enabled debug && add_asflags -g
879 check_add_cflags -mthumb 904 add_cflags --gnu
880 check_add_asflags -mthumb -mimplicit-it=always 905 add_cflags --enum_is_int
881 fi 906 add_cflags --wchar32
882 ;; 907 ;;
908 esac
909
910 case ${tgt_os} in
911 none*)
912 disable_feature multithread
913 disable_feature os_support
914 ;;
915
916 android*)
917 SDK_PATH=${sdk_path}
918 COMPILER_LOCATION=`find "${SDK_PATH}" \
919 -name "arm-linux-androideabi-gcc*" -print -quit`
920 TOOLCHAIN_PATH=${COMPILER_LOCATION%/*}/arm-linux-androideabi-
921 CC=${TOOLCHAIN_PATH}gcc
922 CXX=${TOOLCHAIN_PATH}g++
923 AR=${TOOLCHAIN_PATH}ar
924 LD=${TOOLCHAIN_PATH}gcc
925 AS=${TOOLCHAIN_PATH}as
926 STRIP=${TOOLCHAIN_PATH}strip
927 NM=${TOOLCHAIN_PATH}nm
928
929 if [ -z "${alt_libc}" ]; then
930 alt_libc=`find "${SDK_PATH}" -name arch-arm -print | \
931 awk '{n = split($0,a,"/"); \
932 split(a[n-1],b,"-"); \
933 print $0 " " b[2]}' | \
934 sort -g -k 2 | \
935 awk '{ print $1 }' | tail -1`
936 fi
937
938 add_cflags "--sysroot=${alt_libc}"
939 add_ldflags "--sysroot=${alt_libc}"
940
941 # linker flag that routes around a CPU bug in some
942 # Cortex-A8 implementations (NDK Dev Guide)
943 add_ldflags "-Wl,--fix-cortex-a8"
944
945 enable_feature pic
946 soft_enable realtime_only
947 if [ ${tgt_isa} = "armv7" ]; then
948 soft_enable runtime_cpu_detect
949 fi
950 if enabled runtime_cpu_detect; then
951 add_cflags "-I${SDK_PATH}/sources/android/cpufeatures"
952 fi
953 ;;
954
955 darwin*)
956 XCRUN_FIND="xcrun --sdk iphoneos -find"
957 CXX="$(${XCRUN_FIND} clang++)"
958 CC="$(${XCRUN_FIND} clang)"
959 AR="$(${XCRUN_FIND} ar)"
960 AS="$(${XCRUN_FIND} as)"
961 STRIP="$(${XCRUN_FIND} strip)"
962 NM="$(${XCRUN_FIND} nm)"
963 RANLIB="$(${XCRUN_FIND} ranlib)"
964 AS_SFX=.s
965
966 # Special handling of ld for armv6 because libclang_rt.ios.a does
967 # not contain armv6 support in Apple's clang package:
968 # Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn).
969 # TODO(tomfinegan): Remove this. Our minimum iOS version (6.0)
970 # renders support for armv6 unnecessary because the 3GS and up
971 # support neon.
972 if [ "${tgt_isa}" = "armv6" ]; then
973 LD="$(${XCRUN_FIND} ld)"
974 else
975 LD="${CXX:-$(${XCRUN_FIND} ld)}"
976 fi
977
978 # ASFLAGS is written here instead of using check_add_asflags
979 # because we need to overwrite all of ASFLAGS and purge the
980 # options that were put in above
981 ASFLAGS="-arch ${tgt_isa} -g"
982
983 alt_libc="$(xcrun --sdk iphoneos --show-sdk-path)"
984 add_cflags -arch ${tgt_isa} -isysroot ${alt_libc}
985 add_ldflags -arch ${tgt_isa}
986
987 if [ "${LD}" = "${CXX}" ]; then
988 add_ldflags -miphoneos-version-min="${IOS_VERSION_MIN}"
989 else
990 add_ldflags -ios_version_min "${IOS_VERSION_MIN}"
991 fi
992
993 for d in lib usr/lib usr/lib/system; do
994 try_dir="${alt_libc}/${d}"
995 [ -d "${try_dir}" ] && add_ldflags -L"${try_dir}"
996 done
997
998 asm_conversion_cmd="${source_path}/build/make/ads2gas_apple.pl"
999 ;;
1000
1001 linux*)
1002 enable_feature linux
1003 if enabled rvct; then
1004 # Check if we have CodeSourcery GCC in PATH. Needed for
1005 # libraries
1006 hash arm-none-linux-gnueabi-gcc 2>&- || \
1007 die "Couldn't find CodeSourcery GCC from PATH"
1008
1009 # Use armcc as a linker to enable translation of
1010 # some gcc specific options such as -lm and -lpthread.
1011 LD="armcc --translate_gcc"
1012
1013 # create configuration file (uses path to CodeSourcery GCC)
1014 armcc --arm_linux_configure --arm_linux_config_file=arm_linux.cfg
1015
1016 add_cflags --arm_linux_paths --arm_linux_config_file=arm_linux.cfg
1017 add_asflags --no_hide_all --apcs=/interwork
1018 add_ldflags --arm_linux_paths --arm_linux_config_file=arm_linux.cfg
1019 enabled pic && add_cflags --apcs=/fpic
1020 enabled pic && add_asflags --apcs=/fpic
1021 enabled shared && add_cflags --shared
1022 fi
1023 ;;
1024 esac
1025 ;;
1026 mips*)
1027 link_with_cc=gcc
1028 setup_gnu_toolchain
1029 tune_cflags="-mtune="
1030 if enabled dspr2; then
1031 check_add_cflags -mips32r2 -mdspr2
1032 disable_feature fast_unaligned
1033 fi
1034 check_add_cflags -march=${tgt_isa}
1035 check_add_asflags -march=${tgt_isa}
1036 check_add_asflags -KPIC
1037 ;;
1038 ppc*)
1039 enable_feature ppc
1040 bits=${tgt_isa##ppc}
1041 link_with_cc=gcc
1042 setup_gnu_toolchain
1043 add_asflags -force_cpusubtype_ALL -I"\$(dir \$<)darwin"
1044 soft_enable altivec
1045 enabled altivec && add_cflags -maltivec
1046
1047 case "$tgt_os" in
1048 linux*)
1049 add_asflags -maltivec -mregnames -I"\$(dir \$<)linux"
1050 ;;
1051 darwin*)
1052 darwin_arch="-arch ppc"
1053 enabled ppc64 && darwin_arch="${darwin_arch}64"
1054 add_cflags ${darwin_arch} -m${bits} -fasm-blocks
1055 add_asflags ${darwin_arch} -force_cpusubtype_ALL -I"\$(dir \$<)darwin"
1056 add_ldflags ${darwin_arch} -m${bits}
1057 enabled altivec && add_cflags -faltivec
1058 ;;
1059 esac
1060 ;;
1061 x86*)
1062 case ${tgt_os} in
1063 win*)
1064 enabled gcc && add_cflags -fno-common
1065 ;;
1066 solaris*)
1067 CC=${CC:-${CROSS}gcc}
1068 CXX=${CXX:-${CROSS}g++}
1069 LD=${LD:-${CROSS}gcc}
1070 CROSS=${CROSS:-g}
1071 ;;
1072 os2)
1073 AS=${AS:-nasm}
1074 ;;
1075 esac
1076
1077 AS="${alt_as:-${AS:-auto}}"
1078 case ${tgt_cc} in
1079 icc*)
1080 CC=${CC:-icc}
1081 LD=${LD:-icc}
1082 setup_gnu_toolchain
1083 add_cflags -use-msasm # remove -use-msasm too?
1084 # add -no-intel-extensions to suppress warning #10237
1085 # refer to http://software.intel.com/en-us/forums/topic/280199
1086 add_ldflags -i-static -no-intel-extensions
1087 enabled x86_64 && add_cflags -ipo -static -O3 -no-prec-div
1088 enabled x86_64 && AR=xiar
1089 case ${tune_cpu} in
1090 atom*)
1091 tune_cflags="-x"
1092 tune_cpu="SSE3_ATOM"
1093 ;;
1094 *)
1095 tune_cflags="-march="
1096 ;;
1097 esac
1098 ;;
1099 gcc*)
1100 link_with_cc=gcc
1101 tune_cflags="-march="
1102 setup_gnu_toolchain
1103 #for 32 bit x86 builds, -O3 did not turn on this flag
1104 enabled optimizations && disabled gprof && check_add_cflags -fomit-fra me-pointer
1105 ;;
883 vs*) 1106 vs*)
884 asm_conversion_cmd="${source_path}/build/make/ads2armasm_ms.pl" 1107 # When building with Microsoft Visual Studio the assembler is
885 AS_SFX=.s 1108 # invoked directly. Checking at configure time is unnecessary.
886 msvs_arch_dir=arm-msvs 1109 # Skip the check by setting AS arbitrarily
887 disable_feature multithread 1110 AS=msvs
888 disable_feature unit_tests 1111 msvs_arch_dir=x86-msvs
889 vs_version=${tgt_cc##vs} 1112 vc_version=${tgt_cc##vs}
890 if [ $vs_version -ge 12 ]; then 1113 case $vc_version in
891 # MSVC 2013 doesn't allow doing plain .exe projects for ARM, 1114 7|8|9|10)
892 # only "AppContainerApplication" which requires an AppxManifest. 1115 echo "${tgt_cc} does not support avx/avx2, disabling....."
893 # Therefore disable the examples, just build the library. 1116 RTCD_OPTIONS="${RTCD_OPTIONS}--disable-avx --disable-avx2 "
894 disable_feature examples 1117 soft_disable avx
895 fi 1118 soft_disable avx2
896 ;; 1119 ;;
897 rvct) 1120 esac
898 CC=armcc 1121 ;;
899 AR=armar 1122 esac
900 AS=armasm 1123
901 LD="${source_path}/build/make/armlink_adapter.sh" 1124 bits=32
902 STRIP=arm-none-linux-gnueabi-strip 1125 enabled x86_64 && bits=64
903 NM=arm-none-linux-gnueabi-nm 1126 check_cpp <<EOF && bits=x32
904 tune_cflags="--cpu="
905 tune_asflags="--cpu="
906 if [ -z "${tune_cpu}" ]; then
907 if [ ${tgt_isa} = "armv7" ]; then
908 if enabled neon || enabled neon_asm
909 then
910 check_add_cflags --fpu=softvfp+vfpv3
911 check_add_asflags --fpu=softvfp+vfpv3
912 fi
913 check_add_cflags --cpu=Cortex-A8
914 check_add_asflags --cpu=Cortex-A8
915 else
916 check_add_cflags --cpu=${tgt_isa##armv}
917 check_add_asflags --cpu=${tgt_isa##armv}
918 fi
919 fi
920 arch_int=${tgt_isa##armv}
921 arch_int=${arch_int%%te}
922 check_add_asflags --pd "\"ARCHITECTURE SETA ${arch_int}\""
923 enabled debug && add_asflags -g
924 add_cflags --gnu
925 add_cflags --enum_is_int
926 add_cflags --wchar32
927 ;;
928 esac
929
930 case ${tgt_os} in
931 none*)
932 disable_feature multithread
933 disable_feature os_support
934 ;;
935
936 android*)
937 SDK_PATH=${sdk_path}
938 COMPILER_LOCATION=`find "${SDK_PATH}" \
939 -name "arm-linux-androideabi-gcc*" -print -quit`
940 TOOLCHAIN_PATH=${COMPILER_LOCATION%/*}/arm-linux-androideabi-
941 CC=${TOOLCHAIN_PATH}gcc
942 CXX=${TOOLCHAIN_PATH}g++
943 AR=${TOOLCHAIN_PATH}ar
944 LD=${TOOLCHAIN_PATH}gcc
945 AS=${TOOLCHAIN_PATH}as
946 STRIP=${TOOLCHAIN_PATH}strip
947 NM=${TOOLCHAIN_PATH}nm
948
949 if [ -z "${alt_libc}" ]; then
950 alt_libc=`find "${SDK_PATH}" -name arch-arm -print | \
951 awk '{n = split($0,a,"/"); \
952 split(a[n-1],b,"-"); \
953 print $0 " " b[2]}' | \
954 sort -g -k 2 | \
955 awk '{ print $1 }' | tail -1`
956 fi
957
958 add_cflags "--sysroot=${alt_libc}"
959 add_ldflags "--sysroot=${alt_libc}"
960
961 # linker flag that routes around a CPU bug in some
962 # Cortex-A8 implementations (NDK Dev Guide)
963 add_ldflags "-Wl,--fix-cortex-a8"
964
965 enable_feature pic
966 soft_enable realtime_only
967 if [ ${tgt_isa} = "armv7" ]; then
968 soft_enable runtime_cpu_detect
969 fi
970 if enabled runtime_cpu_detect; then
971 add_cflags "-I${SDK_PATH}/sources/android/cpufeatures"
972 fi
973 ;;
974
975 darwin*)
976 XCRUN_FIND="xcrun --sdk iphoneos -find"
977 CXX="$(${XCRUN_FIND} clang++)"
978 CC="$(${XCRUN_FIND} clang)"
979 AR="$(${XCRUN_FIND} ar)"
980 AS="$(${XCRUN_FIND} as)"
981 STRIP="$(${XCRUN_FIND} strip)"
982 NM="$(${XCRUN_FIND} nm)"
983 RANLIB="$(${XCRUN_FIND} ranlib)"
984 AS_SFX=.s
985
986 # Special handling of ld for armv6 because libclang_rt.ios.a does
987 # not contain armv6 support in Apple's clang package:
988 # Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn).
989 # TODO(tomfinegan): Remove this. Our minimum iOS version (6.0)
990 # renders support for armv6 unnecessary because the 3GS and up
991 # support neon.
992 if [ "${tgt_isa}" = "armv6" ]; then
993 LD="$(${XCRUN_FIND} ld)"
994 else
995 LD="${CXX:-$(${XCRUN_FIND} ld)}"
996 fi
997
998 # ASFLAGS is written here instead of using check_add_asflags
999 # because we need to overwrite all of ASFLAGS and purge the
1000 # options that were put in above
1001 ASFLAGS="-arch ${tgt_isa} -g"
1002
1003 alt_libc="$(xcrun --sdk iphoneos --show-sdk-path)"
1004 add_cflags -arch ${tgt_isa} -isysroot ${alt_libc}
1005 add_ldflags -arch ${tgt_isa}
1006
1007 if [ "${LD}" = "${CXX}" ]; then
1008 add_ldflags -miphoneos-version-min="${IOS_VERSION_MIN}"
1009 else
1010 add_ldflags -ios_version_min "${IOS_VERSION_MIN}"
1011 fi
1012
1013 for d in lib usr/lib usr/lib/system; do
1014 try_dir="${alt_libc}/${d}"
1015 [ -d "${try_dir}" ] && add_ldflags -L"${try_dir}"
1016 done
1017
1018 asm_conversion_cmd="${source_path}/build/make/ads2gas_apple.pl"
1019 ;;
1020
1021 linux*)
1022 enable_feature linux
1023 if enabled rvct; then
1024 # Check if we have CodeSourcery GCC in PATH. Needed for
1025 # libraries
1026 hash arm-none-linux-gnueabi-gcc 2>&- || \
1027 die "Couldn't find CodeSourcery GCC from PATH"
1028
1029 # Use armcc as a linker to enable translation of
1030 # some gcc specific options such as -lm and -lpthread.
1031 LD="armcc --translate_gcc"
1032
1033 # create configuration file (uses path to CodeSourcery GCC)
1034 armcc --arm_linux_configure --arm_linux_config_file=arm_linux.cf g
1035
1036 add_cflags --arm_linux_paths --arm_linux_config_file=arm_linux.c fg
1037 add_asflags --no_hide_all --apcs=/interwork
1038 add_ldflags --arm_linux_paths --arm_linux_config_file=arm_linux. cfg
1039 enabled pic && add_cflags --apcs=/fpic
1040 enabled pic && add_asflags --apcs=/fpic
1041 enabled shared && add_cflags --shared
1042 fi
1043 ;;
1044
1045 esac
1046 ;;
1047 mips*)
1048 link_with_cc=gcc
1049 setup_gnu_toolchain
1050 tune_cflags="-mtune="
1051 if enabled dspr2; then
1052 check_add_cflags -mips32r2 -mdspr2
1053 disable_feature fast_unaligned
1054 fi
1055 check_add_cflags -march=${tgt_isa}
1056 check_add_asflags -march=${tgt_isa}
1057 check_add_asflags -KPIC
1058 ;;
1059 ppc*)
1060 enable_feature ppc
1061 bits=${tgt_isa##ppc}
1062 link_with_cc=gcc
1063 setup_gnu_toolchain
1064 add_asflags -force_cpusubtype_ALL -I"\$(dir \$<)darwin"
1065 soft_enable altivec
1066 enabled altivec && add_cflags -maltivec
1067
1068 case "$tgt_os" in
1069 linux*)
1070 add_asflags -maltivec -mregnames -I"\$(dir \$<)linux"
1071 ;;
1072 darwin*)
1073 darwin_arch="-arch ppc"
1074 enabled ppc64 && darwin_arch="${darwin_arch}64"
1075 add_cflags ${darwin_arch} -m${bits} -fasm-blocks
1076 add_asflags ${darwin_arch} -force_cpusubtype_ALL -I"\$(dir \$<)darwi n"
1077 add_ldflags ${darwin_arch} -m${bits}
1078 enabled altivec && add_cflags -faltivec
1079 ;;
1080 esac
1081 ;;
1082 x86*)
1083 case ${tgt_os} in
1084 win*)
1085 enabled gcc && add_cflags -fno-common
1086 ;;
1087 solaris*)
1088 CC=${CC:-${CROSS}gcc}
1089 CXX=${CXX:-${CROSS}g++}
1090 LD=${LD:-${CROSS}gcc}
1091 CROSS=${CROSS:-g}
1092 ;;
1093 os2)
1094 AS=${AS:-nasm}
1095 ;;
1096 esac
1097
1098 AS="${alt_as:-${AS:-auto}}"
1099 case ${tgt_cc} in
1100 icc*)
1101 CC=${CC:-icc}
1102 LD=${LD:-icc}
1103 setup_gnu_toolchain
1104 add_cflags -use-msasm # remove -use-msasm too?
1105 # add -no-intel-extensions to suppress warning #10237
1106 # refer to http://software.intel.com/en-us/forums/topic/280199
1107 add_ldflags -i-static -no-intel-extensions
1108 enabled x86_64 && add_cflags -ipo -static -O3 -no-prec-div
1109 enabled x86_64 && AR=xiar
1110 case ${tune_cpu} in
1111 atom*)
1112 tune_cflags="-x"
1113 tune_cpu="SSE3_ATOM"
1114 ;;
1115 *)
1116 tune_cflags="-march="
1117 ;;
1118 esac
1119 ;;
1120 gcc*)
1121 link_with_cc=gcc
1122 tune_cflags="-march="
1123 setup_gnu_toolchain
1124 #for 32 bit x86 builds, -O3 did not turn on this flag
1125 enabled optimizations && disabled gprof && check_add_cflags -fom it-frame-pointer
1126 ;;
1127 vs*)
1128 # When building with Microsoft Visual Studio the assembler is
1129 # invoked directly. Checking at configure time is unnecessary.
1130 # Skip the check by setting AS arbitrarily
1131 AS=msvs
1132 msvs_arch_dir=x86-msvs
1133 vc_version=${tgt_cc##vs}
1134 case $vc_version in
1135 7|8|9|10)
1136 echo "${tgt_cc} does not support avx/avx2, disabling... .."
1137 RTCD_OPTIONS="${RTCD_OPTIONS}--disable-avx --disable-av x2 "
1138 soft_disable avx
1139 soft_disable avx2
1140 ;;
1141 esac
1142 ;;
1143 esac
1144
1145 bits=32
1146 enabled x86_64 && bits=64
1147 check_cpp <<EOF && bits=x32
1148 #ifndef __ILP32__ 1127 #ifndef __ILP32__
1149 #error "not x32" 1128 #error "not x32"
1150 #endif 1129 #endif
1151 EOF 1130 EOF
1152 case ${tgt_cc} in 1131 case ${tgt_cc} in
1153 gcc*) 1132 gcc*)
1154 add_cflags -m${bits} 1133 add_cflags -m${bits}
1155 add_ldflags -m${bits} 1134 add_ldflags -m${bits}
1156 ;; 1135 ;;
1157 esac 1136 esac
1158 1137
1159 soft_enable runtime_cpu_detect 1138 soft_enable runtime_cpu_detect
1160 # We can't use 'check_cflags' until the compiler is configured and CC is 1139 # We can't use 'check_cflags' until the compiler is configured and CC is
1161 # populated. 1140 # populated.
1162 check_gcc_machine_option mmx 1141 check_gcc_machine_option mmx
1163 check_gcc_machine_option sse 1142 check_gcc_machine_option sse
1164 check_gcc_machine_option sse2 1143 check_gcc_machine_option sse2
1165 check_gcc_machine_option sse3 1144 check_gcc_machine_option sse3
1166 check_gcc_machine_option ssse3 1145 check_gcc_machine_option ssse3
1167 check_gcc_machine_option sse4 sse4_1 1146 check_gcc_machine_option sse4 sse4_1
1168 check_gcc_machine_option avx 1147 check_gcc_machine_option avx
1169 check_gcc_machine_option avx2 1148 check_gcc_machine_option avx2
1170 1149
1171 case "${AS}" in 1150 case "${AS}" in
1172 auto|"") 1151 auto|"")
1173 which nasm >/dev/null 2>&1 && AS=nasm 1152 which nasm >/dev/null 2>&1 && AS=nasm
1174 which yasm >/dev/null 2>&1 && AS=yasm 1153 which yasm >/dev/null 2>&1 && AS=yasm
1175 [ "${AS}" = auto ] || [ -z "${AS}" ] \ 1154 [ "${AS}" = auto ] || [ -z "${AS}" ] \
1176 && die "Neither yasm nor nasm have been found" 1155 && die "Neither yasm nor nasm have been found"
1177 ;; 1156 ;;
1178 esac 1157 esac
1179 log_echo " using $AS" 1158 log_echo " using $AS"
1180 [ "${AS##*/}" = nasm ] && add_asflags -Ox 1159 [ "${AS##*/}" = nasm ] && add_asflags -Ox
1181 AS_SFX=.asm 1160 AS_SFX=.asm
1182 case ${tgt_os} in 1161 case ${tgt_os} in
1183 win32) 1162 win32)
1184 add_asflags -f win32 1163 add_asflags -f win32
1185 enabled debug && add_asflags -g cv8 1164 enabled debug && add_asflags -g cv8
1186 EXE_SFX=.exe 1165 EXE_SFX=.exe
1187 ;; 1166 ;;
1188 win64) 1167 win64)
1189 add_asflags -f x64 1168 add_asflags -f x64
1190 enabled debug && add_asflags -g cv8 1169 enabled debug && add_asflags -g cv8
1191 EXE_SFX=.exe 1170 EXE_SFX=.exe
1192 ;; 1171 ;;
1193 linux*|solaris*|android*) 1172 linux*|solaris*|android*)
1194 add_asflags -f elf${bits} 1173 add_asflags -f elf${bits}
1195 enabled debug && [ "${AS}" = yasm ] && add_asflags -g dwarf2 1174 enabled debug && [ "${AS}" = yasm ] && add_asflags -g dwarf2
1196 enabled debug && [ "${AS}" = nasm ] && add_asflags -g 1175 enabled debug && [ "${AS}" = nasm ] && add_asflags -g
1197 [ "${AS##*/}" = nasm ] && check_asm_align 1176 [ "${AS##*/}" = nasm ] && check_asm_align
1198 ;; 1177 ;;
1199 darwin*) 1178 darwin*)
1200 add_asflags -f macho${bits} 1179 add_asflags -f macho${bits}
1201 enabled x86 && darwin_arch="-arch i386" || darwin_arch="-arch x8 6_64" 1180 enabled x86 && darwin_arch="-arch i386" || darwin_arch="-arch x86_64"
1202 add_cflags ${darwin_arch} 1181 add_cflags ${darwin_arch}
1203 add_ldflags ${darwin_arch} 1182 add_ldflags ${darwin_arch}
1204 # -mdynamic-no-pic is still a bit of voodoo -- it was required a t 1183 # -mdynamic-no-pic is still a bit of voodoo -- it was required at
1205 # one time, but does not seem to be now, and it breaks some of t he 1184 # one time, but does not seem to be now, and it breaks some of the
1206 # code that still relies on inline assembly. 1185 # code that still relies on inline assembly.
1207 # enabled icc && ! enabled pic && add_cflags -fno-pic -mdynamic- no-pic 1186 # enabled icc && ! enabled pic && add_cflags -fno-pic -mdynamic-no-pic
1208 enabled icc && ! enabled pic && add_cflags -fno-pic 1187 enabled icc && ! enabled pic && add_cflags -fno-pic
1209 ;; 1188 ;;
1210 iphonesimulator) 1189 iphonesimulator)
1211 add_asflags -f macho${bits} 1190 add_asflags -f macho${bits}
1212 enabled x86 && sim_arch="-arch i386" || sim_arch="-arch x86_64" 1191 enabled x86 && sim_arch="-arch i386" || sim_arch="-arch x86_64"
1213 add_cflags ${sim_arch} 1192 add_cflags ${sim_arch}
1214 add_ldflags ${sim_arch} 1193 add_ldflags ${sim_arch}
1215 ;; 1194 ;;
1216 os2) 1195 os2)
1217 add_asflags -f aout 1196 add_asflags -f aout
1218 enabled debug && add_asflags -g 1197 enabled debug && add_asflags -g
1219 EXE_SFX=.exe 1198 EXE_SFX=.exe
1220 ;; 1199 ;;
1221 *) log "Warning: Unknown os $tgt_os while setting up $AS flags" 1200 *)
1222 ;; 1201 log "Warning: Unknown os $tgt_os while setting up $AS flags"
1223 esac 1202 ;;
1224 ;; 1203 esac
1204 ;;
1225 universal*|*-gcc|generic-gnu) 1205 universal*|*-gcc|generic-gnu)
1226 link_with_cc=gcc 1206 link_with_cc=gcc
1227 enable_feature gcc 1207 enable_feature gcc
1228 setup_gnu_toolchain 1208 setup_gnu_toolchain
1229 ;; 1209 ;;
1230 esac 1210 esac
1231 1211
1232 # Try to enable CPU specific tuning 1212 # Try to enable CPU specific tuning
1233 if [ -n "${tune_cpu}" ]; then 1213 if [ -n "${tune_cpu}" ]; then
1234 if [ -n "${tune_cflags}" ]; then 1214 if [ -n "${tune_cflags}" ]; then
1235 check_add_cflags ${tune_cflags}${tune_cpu} || \ 1215 check_add_cflags ${tune_cflags}${tune_cpu} || \
1236 die "Requested CPU '${tune_cpu}' not supported by compiler" 1216 die "Requested CPU '${tune_cpu}' not supported by compiler"
1237 fi 1217 fi
1238 if [ -n "${tune_asflags}" ]; then 1218 if [ -n "${tune_asflags}" ]; then
1239 check_add_asflags ${tune_asflags}${tune_cpu} || \ 1219 check_add_asflags ${tune_asflags}${tune_cpu} || \
1240 die "Requested CPU '${tune_cpu}' not supported by assembler" 1220 die "Requested CPU '${tune_cpu}' not supported by assembler"
1241 fi 1221 fi
1242 if [ -z "${tune_cflags}${tune_asflags}" ]; then 1222 if [ -z "${tune_cflags}${tune_asflags}" ]; then
1243 log_echo "Warning: CPU tuning not supported by this toolchain" 1223 log_echo "Warning: CPU tuning not supported by this toolchain"
1244 fi
1245 fi 1224 fi
1246 1225 fi
1247 if enabled debug; then 1226
1248 check_add_cflags -g && check_add_ldflags -g 1227 if enabled debug; then
1228 check_add_cflags -g && check_add_ldflags -g
1229 else
1230 check_add_cflags -DNDEBUG
1231 fi
1232
1233 enabled gprof && check_add_cflags -pg && check_add_ldflags -pg
1234 enabled gcov &&
1235 check_add_cflags -fprofile-arcs -ftest-coverage &&
1236 check_add_ldflags -fprofile-arcs -ftest-coverage
1237
1238 if enabled optimizations; then
1239 if enabled rvct; then
1240 enabled small && check_add_cflags -Ospace || check_add_cflags -Otime
1249 else 1241 else
1250 check_add_cflags -DNDEBUG 1242 enabled small && check_add_cflags -O2 || check_add_cflags -O3
1251 fi 1243 fi
1252 1244 fi
1253 enabled gprof && check_add_cflags -pg && check_add_ldflags -pg 1245
1254 enabled gcov && 1246 tgt_os_no_version=$(echo "${tgt_os}" | tr -d "[0-9]")
1255 check_add_cflags -fprofile-arcs -ftest-coverage && 1247 # Default use_x86inc to yes when we are 64 bit, non-pic, or on any
1256 check_add_ldflags -fprofile-arcs -ftest-coverage 1248 # non-Darwin target.
1257 1249 if [ "${tgt_isa}" = "x86_64" ] || [ "${pic}" != "yes" ] || \
1258 if enabled optimizations; then 1250 [ "${tgt_os_no_version}" != "darwin" ]; then
1259 if enabled rvct; then 1251 soft_enable use_x86inc
1260 enabled small && check_add_cflags -Ospace || check_add_cflags -Otime 1252 fi
1261 else 1253
1262 enabled small && check_add_cflags -O2 || check_add_cflags -O3 1254 # Position Independent Code (PIC) support, for building relocatable
1263 fi 1255 # shared objects
1264 fi 1256 enabled gcc && enabled pic && check_add_cflags -fPIC
1265 1257
1266 tgt_os_no_version=$(echo "${tgt_os}" | tr -d "[0-9]") 1258 # Work around longjmp interception on glibc >= 2.11, to improve binary
1267 # Default use_x86inc to yes when we are 64 bit, non-pic, or on any 1259 # compatibility. See http://code.google.com/p/webm/issues/detail?id=166
1268 # non-Darwin target. 1260 enabled linux && check_add_cflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
1269 if [ "${tgt_isa}" = "x86_64" ] || [ "${pic}" != "yes" ] || \ 1261
1270 [ "${tgt_os_no_version}" != "darwin" ]; then 1262 # Check for strip utility variant
1271 soft_enable use_x86inc 1263 ${STRIP} -V 2>/dev/null | grep GNU >/dev/null && enable_feature gnu_strip
1272 fi 1264
1273 1265 # Try to determine target endianness
1274 # Position Independent Code (PIC) support, for building relocatable 1266 check_cc <<EOF
1275 # shared objects 1267 unsigned int e = 'O'<<24 | '2'<<16 | 'B'<<8 | 'E';
1276 enabled gcc && enabled pic && check_add_cflags -fPIC
1277
1278 # Work around longjmp interception on glibc >= 2.11, to improve binary
1279 # compatibility. See http://code.google.com/p/webm/issues/detail?id=166
1280 enabled linux && check_add_cflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
1281
1282 # Check for strip utility variant
1283 ${STRIP} -V 2>/dev/null | grep GNU >/dev/null && enable_feature gnu_strip
1284
1285 # Try to determine target endianness
1286 check_cc <<EOF
1287 unsigned int e = 'O'<<24 | '2'<<16 | 'B'<<8 | 'E';
1288 EOF 1268 EOF
1289 [ -f "${TMP_O}" ] && od -A n -t x1 "${TMP_O}" | tr -d '\n' | 1269 [ -f "${TMP_O}" ] && od -A n -t x1 "${TMP_O}" | tr -d '\n' |
1290 grep '4f *32 *42 *45' >/dev/null 2>&1 && enable_feature big_endian 1270 grep '4f *32 *42 *45' >/dev/null 2>&1 && enable_feature big_endian
1291 1271
1292 # Try to find which inline keywords are supported 1272 # Try to find which inline keywords are supported
1293 check_cc <<EOF && INLINE="inline" 1273 check_cc <<EOF && INLINE="inline"
1294 static inline function() {} 1274 static inline function() {}
1295 EOF 1275 EOF
1296 check_cc <<EOF && INLINE="__inline__ __attribute__((always_inline))" 1276 check_cc <<EOF && INLINE="__inline__ __attribute__((always_inline))"
1297 static __attribute__((always_inline)) function() {} 1277 static __attribute__((always_inline)) function() {}
1298 EOF 1278 EOF
1299 1279
1300 # Almost every platform uses pthreads. 1280 # Almost every platform uses pthreads.
1301 if enabled multithread; then 1281 if enabled multithread; then
1302 case ${toolchain} in
1303 *-win*-vs*);;
1304 *-android-gcc);;
1305 *) check_header pthread.h && add_extralibs -lpthread
1306 esac
1307 fi
1308
1309 # only for MIPS platforms
1310 case ${toolchain} in 1282 case ${toolchain} in
1311 mips*) 1283 *-win*-vs*)
1312 if enabled dspr2; then 1284 ;;
1313 if enabled big_endian; then 1285 *-android-gcc)
1314 echo "dspr2 optimizations are available only for little endi an platforms" 1286 ;;
1315 disable_feature dspr2 1287 *)
1316 fi 1288 check_header pthread.h && add_extralibs -lpthread
1317 fi
1318 ;; 1289 ;;
1319 esac 1290 esac
1291 fi
1320 1292
1321 # glibc needs these 1293 # only for MIPS platforms
1322 if enabled linux; then 1294 case ${toolchain} in
1323 add_cflags -D_LARGEFILE_SOURCE 1295 mips*)
1324 add_cflags -D_FILE_OFFSET_BITS=64 1296 if enabled dspr2; then
1325 fi 1297 if enabled big_endian; then
1298 echo "dspr2 optimizations are available only for little endian platfor ms"
1299 disable_feature dspr2
1300 fi
1301 fi
1302 ;;
1303 esac
1326 1304
1327 # append any user defined extra cflags 1305 # glibc needs these
1328 if [ -n "${extra_cflags}" ] ; then 1306 if enabled linux; then
1329 check_add_cflags ${extra_cflags} || \ 1307 add_cflags -D_LARGEFILE_SOURCE
1330 die "Requested extra CFLAGS '${extra_cflags}' not supported by compiler" 1308 add_cflags -D_FILE_OFFSET_BITS=64
1331 fi 1309 fi
1310
1311 # append any user defined extra cflags
1312 if [ -n "${extra_cflags}" ] ; then
1313 check_add_cflags ${extra_cflags} || \
1314 die "Requested extra CFLAGS '${extra_cflags}' not supported by compiler"
1315 fi
1332 } 1316 }
1333 1317
1334 process_toolchain() { 1318 process_toolchain() {
1335 process_common_toolchain 1319 process_common_toolchain
1336 } 1320 }
1337 1321
1338 print_config_mk() { 1322 print_config_mk() {
1339 saved_prefix="${prefix}" 1323 saved_prefix="${prefix}"
1340 prefix=$1 1324 prefix=$1
1341 makefile=$2 1325 makefile=$2
1342 shift 2 1326 shift 2
1343 for cfg; do 1327 for cfg; do
1344 if enabled $cfg; then 1328 if enabled $cfg; then
1345 upname="`toupper $cfg`" 1329 upname="`toupper $cfg`"
1346 echo "${prefix}_${upname}=yes" >> $makefile 1330 echo "${prefix}_${upname}=yes" >> $makefile
1347 fi 1331 fi
1348 done 1332 done
1349 prefix="${saved_prefix}" 1333 prefix="${saved_prefix}"
1350 } 1334 }
1351 1335
1352 print_config_h() { 1336 print_config_h() {
1353 saved_prefix="${prefix}" 1337 saved_prefix="${prefix}"
1354 prefix=$1 1338 prefix=$1
1355 header=$2 1339 header=$2
1356 shift 2 1340 shift 2
1357 for cfg; do 1341 for cfg; do
1358 upname="`toupper $cfg`" 1342 upname="`toupper $cfg`"
1359 if enabled $cfg; then 1343 if enabled $cfg; then
1360 echo "#define ${prefix}_${upname} 1" >> $header 1344 echo "#define ${prefix}_${upname} 1" >> $header
1361 else 1345 else
1362 echo "#define ${prefix}_${upname} 0" >> $header 1346 echo "#define ${prefix}_${upname} 0" >> $header
1363 fi 1347 fi
1364 done 1348 done
1365 prefix="${saved_prefix}" 1349 prefix="${saved_prefix}"
1366 } 1350 }
1367 1351
1368 print_config_vars_h() { 1352 print_config_vars_h() {
1369 header=$1 1353 header=$1
1370 shift 1354 shift
1371 while [ $# -gt 0 ]; do 1355 while [ $# -gt 0 ]; do
1372 upname="`toupper $1`" 1356 upname="`toupper $1`"
1373 echo "#define ${upname} $2" >> $header 1357 echo "#define ${upname} $2" >> $header
1374 shift 2 1358 shift 2
1375 done 1359 done
1376 } 1360 }
1377 1361
1378 print_webm_license() { 1362 print_webm_license() {
1379 saved_prefix="${prefix}" 1363 saved_prefix="${prefix}"
1380 destination=$1 1364 destination=$1
1381 prefix="$2" 1365 prefix="$2"
1382 suffix="$3" 1366 suffix="$3"
1383 shift 3 1367 shift 3
1384 cat <<EOF > ${destination} 1368 cat <<EOF > ${destination}
1385 ${prefix} Copyright (c) 2011 The WebM project authors. All Rights Reserved.${suf fix} 1369 ${prefix} Copyright (c) 2011 The WebM project authors. All Rights Reserved.${suf fix}
1386 ${prefix} ${suffix} 1370 ${prefix} ${suffix}
1387 ${prefix} Use of this source code is governed by a BSD-style license${suffix} 1371 ${prefix} Use of this source code is governed by a BSD-style license${suffix}
1388 ${prefix} that can be found in the LICENSE file in the root of the source${suffi x} 1372 ${prefix} that can be found in the LICENSE file in the root of the source${suffi x}
1389 ${prefix} tree. An additional intellectual property rights grant can be found${s uffix} 1373 ${prefix} tree. An additional intellectual property rights grant can be found${s uffix}
1390 ${prefix} in the file PATENTS. All contributing project authors may${suffix} 1374 ${prefix} in the file PATENTS. All contributing project authors may${suffix}
1391 ${prefix} be found in the AUTHORS file in the root of the source tree.${suffix} 1375 ${prefix} be found in the AUTHORS file in the root of the source tree.${suffix}
1392 EOF 1376 EOF
1393 prefix="${saved_prefix}" 1377 prefix="${saved_prefix}"
1394 } 1378 }
1395 1379
1396 process_targets() { 1380 process_targets() {
1397 true; 1381 true;
1398 } 1382 }
1399 1383
1400 process_detect() { 1384 process_detect() {
1401 true; 1385 true;
1402 } 1386 }
1403 1387
1404 enable_feature logging 1388 enable_feature logging
1405 logfile="config.log" 1389 logfile="config.log"
1406 self=$0 1390 self=$0
1407 process() { 1391 process() {
1408 cmdline_args="$@" 1392 cmdline_args="$@"
1409 process_cmdline "$@" 1393 process_cmdline "$@"
1410 if enabled child; then 1394 if enabled child; then
1411 echo "# ${self} $@" >> ${logfile} 1395 echo "# ${self} $@" >> ${logfile}
1412 else 1396 else
1413 echo "# ${self} $@" > ${logfile} 1397 echo "# ${self} $@" > ${logfile}
1414 fi 1398 fi
1415 post_process_common_cmdline 1399 post_process_common_cmdline
1416 post_process_cmdline 1400 post_process_cmdline
1417 process_toolchain 1401 process_toolchain
1418 process_detect 1402 process_detect
1419 process_targets 1403 process_targets
1420 1404
1421 OOT_INSTALLS="${OOT_INSTALLS}" 1405 OOT_INSTALLS="${OOT_INSTALLS}"
1422 if enabled source_path_used; then 1406 if enabled source_path_used; then
1423 # Prepare the PWD for building. 1407 # Prepare the PWD for building.
1424 for f in ${OOT_INSTALLS}; do 1408 for f in ${OOT_INSTALLS}; do
1425 install -D "${source_path}/$f" "$f" 1409 install -D "${source_path}/$f" "$f"
1426 done 1410 done
1427 fi 1411 fi
1428 cp "${source_path}/build/make/Makefile" . 1412 cp "${source_path}/build/make/Makefile" .
1429 1413
1430 clean_temp_files 1414 clean_temp_files
1431 true 1415 true
1432 } 1416 }
OLDNEW
« no previous file with comments | « source/libvpx/build/make/Makefile ('k') | source/libvpx/build/make/gen_msvs_proj.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698