| OLD | NEW |
| 1 #!/bin/sh | 1 #!/bin/sh |
| 2 ## | 2 ## |
| 3 ## configure | 3 ## configure |
| 4 ## | 4 ## |
| 5 ## This script is the front-end to the build system. It provides a similar | 5 ## This script is the front-end to the build system. It provides a similar |
| 6 ## interface to standard configure scripts with some extra bits for dealing | 6 ## interface to standard configure scripts with some extra bits for dealing |
| 7 ## with toolchains that differ from the standard POSIX interface and | 7 ## with toolchains that differ from the standard POSIX interface and |
| 8 ## for extracting subsets of the source tree. In theory, reusable parts | 8 ## for extracting subsets of the source tree. In theory, reusable parts |
| 9 ## of this script were intended to live in build/make/configure.sh, | 9 ## of this script were intended to live in build/make/configure.sh, |
| 10 ## but in practice, the line is pretty blurry. | 10 ## but in practice, the line is pretty blurry. |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 all_platforms="${all_platforms} x86_64-iphonesimulator-gcc" | 141 all_platforms="${all_platforms} x86_64-iphonesimulator-gcc" |
| 142 all_platforms="${all_platforms} x86_64-linux-gcc" | 142 all_platforms="${all_platforms} x86_64-linux-gcc" |
| 143 all_platforms="${all_platforms} x86_64-linux-icc" | 143 all_platforms="${all_platforms} x86_64-linux-icc" |
| 144 all_platforms="${all_platforms} x86_64-solaris-gcc" | 144 all_platforms="${all_platforms} x86_64-solaris-gcc" |
| 145 all_platforms="${all_platforms} x86_64-win64-gcc" | 145 all_platforms="${all_platforms} x86_64-win64-gcc" |
| 146 all_platforms="${all_platforms} x86_64-win64-vs8" | 146 all_platforms="${all_platforms} x86_64-win64-vs8" |
| 147 all_platforms="${all_platforms} x86_64-win64-vs9" | 147 all_platforms="${all_platforms} x86_64-win64-vs9" |
| 148 all_platforms="${all_platforms} x86_64-win64-vs10" | 148 all_platforms="${all_platforms} x86_64-win64-vs10" |
| 149 all_platforms="${all_platforms} x86_64-win64-vs11" | 149 all_platforms="${all_platforms} x86_64-win64-vs11" |
| 150 all_platforms="${all_platforms} x86_64-win64-vs12" | 150 all_platforms="${all_platforms} x86_64-win64-vs12" |
| 151 all_platforms="${all_platforms} universal-darwin8-gcc" | |
| 152 all_platforms="${all_platforms} universal-darwin9-gcc" | |
| 153 all_platforms="${all_platforms} universal-darwin10-gcc" | |
| 154 all_platforms="${all_platforms} universal-darwin11-gcc" | |
| 155 all_platforms="${all_platforms} universal-darwin12-gcc" | |
| 156 all_platforms="${all_platforms} universal-darwin13-gcc" | |
| 157 all_platforms="${all_platforms} universal-darwin14-gcc" | |
| 158 all_platforms="${all_platforms} generic-gnu" | 151 all_platforms="${all_platforms} generic-gnu" |
| 159 | 152 |
| 160 # all_targets is a list of all targets that can be configured | 153 # all_targets is a list of all targets that can be configured |
| 161 # note that these should be in dependency order for now. | 154 # note that these should be in dependency order for now. |
| 162 all_targets="libs examples docs" | 155 all_targets="libs examples docs" |
| 163 | 156 |
| 164 # all targets available are enabled, by default. | 157 # all targets available are enabled, by default. |
| 165 for t in ${all_targets}; do | 158 for t in ${all_targets}; do |
| 166 [ -f "${source_path}/${t}.mk" ] && enable_feature ${t} | 159 [ -f "${source_path}/${t}.mk" ] && enable_feature ${t} |
| 167 done | 160 done |
| (...skipping 16 matching lines...) Expand all Loading... |
| 184 if [ ${doxy_major:-0} -ge 1 ]; then | 177 if [ ${doxy_major:-0} -ge 1 ]; then |
| 185 doxy_version=${doxy_version#*.} | 178 doxy_version=${doxy_version#*.} |
| 186 doxy_minor=${doxy_version%%.*} | 179 doxy_minor=${doxy_version%%.*} |
| 187 doxy_patch=${doxy_version##*.} | 180 doxy_patch=${doxy_version##*.} |
| 188 | 181 |
| 189 [ $doxy_major -gt 1 ] && enable_feature doxygen | 182 [ $doxy_major -gt 1 ] && enable_feature doxygen |
| 190 [ $doxy_minor -gt 5 ] && enable_feature doxygen | 183 [ $doxy_minor -gt 5 ] && enable_feature doxygen |
| 191 [ $doxy_minor -eq 5 ] && [ $doxy_patch -ge 3 ] && enable_feature doxygen | 184 [ $doxy_minor -eq 5 ] && [ $doxy_patch -ge 3 ] && enable_feature doxygen |
| 192 fi | 185 fi |
| 193 | 186 |
| 187 # disable codecs when their source directory does not exist |
| 188 [ -d "${source_path}/vp8" ] || disable_feature vp8 |
| 189 [ -d "${source_path}/vp9" ] || disable_feature vp9 |
| 190 |
| 194 # install everything except the sources, by default. sources will have | 191 # install everything except the sources, by default. sources will have |
| 195 # to be enabled when doing dist builds, since that's no longer a common | 192 # to be enabled when doing dist builds, since that's no longer a common |
| 196 # case. | 193 # case. |
| 197 enabled doxygen && enable_feature install_docs | 194 enabled doxygen && enable_feature install_docs |
| 198 enable_feature install_bins | 195 enable_feature install_bins |
| 199 enable_feature install_libs | 196 enable_feature install_libs |
| 200 | 197 |
| 201 enable_feature static | 198 enable_feature static |
| 202 enable_feature optimizations | 199 enable_feature optimizations |
| 203 enable_feature dependency_tracking | 200 enable_feature dependency_tracking |
| 204 enable_feature spatial_resampling | 201 enable_feature spatial_resampling |
| 205 enable_feature multithread | 202 enable_feature multithread |
| 206 enable_feature os_support | 203 enable_feature os_support |
| 207 enable_feature temporal_denoising | 204 enable_feature temporal_denoising |
| 208 | 205 |
| 209 [ -d "${source_path}/../include" ] && enable_feature alt_tree_layout | 206 CODECS=" |
| 210 for d in vp8 vp9; do | 207 vp8_encoder |
| 211 [ -d "${source_path}/${d}" ] && disable_feature alt_tree_layout; | 208 vp8_decoder |
| 212 done | 209 vp9_encoder |
| 213 | 210 vp9_decoder |
| 214 if ! enabled alt_tree_layout; then | 211 " |
| 215 # development environment | 212 CODEC_FAMILIES=" |
| 216 [ -d "${source_path}/vp8" ] && CODECS="${CODECS} vp8_encoder vp8_decoder" | 213 vp8 |
| 217 [ -d "${source_path}/vp9" ] && CODECS="${CODECS} vp9_encoder vp9_decoder" | 214 vp9 |
| 218 else | 215 " |
| 219 # customer environment | |
| 220 [ -f "${source_path}/../include/vpx/vp8cx.h" ] && CODECS="${CODECS} vp8_encoder" | |
| 221 [ -f "${source_path}/../include/vpx/vp8dx.h" ] && CODECS="${CODECS} vp8_decoder" | |
| 222 [ -f "${source_path}/../include/vpx/vp9cx.h" ] && CODECS="${CODECS} vp9_encoder" | |
| 223 [ -f "${source_path}/../include/vpx/vp9dx.h" ] && CODECS="${CODECS} vp9_decoder" | |
| 224 [ -f "${source_path}/../include/vpx/vp8cx.h" ] || disable_feature vp8_encoder | |
| 225 [ -f "${source_path}/../include/vpx/vp8dx.h" ] || disable_feature vp8_decoder | |
| 226 [ -f "${source_path}/../include/vpx/vp9cx.h" ] || disable_feature vp9_encoder | |
| 227 [ -f "${source_path}/../include/vpx/vp9dx.h" ] || disable_feature vp9_decoder | |
| 228 | |
| 229 [ -f "${source_path}/../lib/*/*mt.lib" ] && soft_enable static_msvcrt | |
| 230 fi | |
| 231 | |
| 232 CODECS="$(echo ${CODECS} | tr ' ' '\n')" | |
| 233 CODEC_FAMILIES="$(for c in ${CODECS}; do echo ${c%_*}; done | sort | uniq)" | |
| 234 | 216 |
| 235 ARCH_LIST=" | 217 ARCH_LIST=" |
| 236 arm | 218 arm |
| 237 mips | 219 mips |
| 238 x86 | 220 x86 |
| 239 x86_64 | 221 x86_64 |
| 240 " | 222 " |
| 241 ARCH_EXT_LIST=" | 223 ARCH_EXT_LIST=" |
| 242 edsp | 224 edsp |
| 243 media | 225 media |
| (...skipping 11 matching lines...) Expand all Loading... |
| 255 sse3 | 237 sse3 |
| 256 ssse3 | 238 ssse3 |
| 257 sse4_1 | 239 sse4_1 |
| 258 avx | 240 avx |
| 259 avx2 | 241 avx2 |
| 260 " | 242 " |
| 261 HAVE_LIST=" | 243 HAVE_LIST=" |
| 262 ${ARCH_EXT_LIST} | 244 ${ARCH_EXT_LIST} |
| 263 vpx_ports | 245 vpx_ports |
| 264 stdint_h | 246 stdint_h |
| 265 alt_tree_layout | |
| 266 pthread_h | 247 pthread_h |
| 267 sys_mman_h | 248 sys_mman_h |
| 268 unistd_h | 249 unistd_h |
| 269 " | 250 " |
| 270 EXPERIMENT_LIST=" | 251 EXPERIMENT_LIST=" |
| 271 spatial_svc | 252 spatial_svc |
| 272 fp_mb_stats | 253 fp_mb_stats |
| 273 emulate_hardware | 254 emulate_hardware |
| 274 " | 255 " |
| 275 CONFIG_LIST=" | 256 CONFIG_LIST=" |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 429 | 410 |
| 430 # Set the {en,de}coders variable if any algorithm in that class is enabled | 411 # Set the {en,de}coders variable if any algorithm in that class is enabled |
| 431 for c in ${CODECS}; do | 412 for c in ${CODECS}; do |
| 432 enabled ${c} && enable_feature ${c##*_}s | 413 enabled ${c} && enable_feature ${c##*_}s |
| 433 done | 414 done |
| 434 } | 415 } |
| 435 | 416 |
| 436 | 417 |
| 437 process_targets() { | 418 process_targets() { |
| 438 enabled child || write_common_config_banner | 419 enabled child || write_common_config_banner |
| 439 enabled universal || write_common_target_config_h ${BUILD_PFX}vpx_config.h | 420 write_common_target_config_h ${BUILD_PFX}vpx_config.h |
| 440 | |
| 441 # For fat binaries, call configure recursively to configure for each | |
| 442 # binary architecture to be included. | |
| 443 if enabled universal; then | |
| 444 # Call configure (ourselves) for each subarchitecture | |
| 445 for arch in $fat_bin_archs; do | |
| 446 BUILD_PFX=${arch}/ toolchain=${arch} $self --child $cmdline_args ||
exit $? | |
| 447 done | |
| 448 fi | |
| 449 | |
| 450 # The write_common_config (config.mk) logic is deferred until after the | |
| 451 # recursive calls to configure complete, because we want our universal | |
| 452 # targets to be executed last. | |
| 453 write_common_config_targets | 421 write_common_config_targets |
| 454 enabled universal && echo "FAT_ARCHS=${fat_bin_archs}" >> config.mk | |
| 455 | 422 |
| 456 # Calculate the default distribution name, based on the enabled features | 423 # Calculate the default distribution name, based on the enabled features |
| 457 cf="" | 424 cf="" |
| 458 DIST_DIR=vpx | 425 DIST_DIR=vpx |
| 459 for cf in $CODEC_FAMILIES; do | 426 for cf in $CODEC_FAMILIES; do |
| 460 if enabled ${cf}_encoder && enabled ${cf}_decoder; then | 427 if enabled ${cf}_encoder && enabled ${cf}_decoder; then |
| 461 DIST_DIR="${DIST_DIR}-${cf}" | 428 DIST_DIR="${DIST_DIR}-${cf}" |
| 462 elif enabled ${cf}_encoder; then | 429 elif enabled ${cf}_encoder; then |
| 463 DIST_DIR="${DIST_DIR}-${cf}cx" | 430 DIST_DIR="${DIST_DIR}-${cf}cx" |
| 464 elif enabled ${cf}_decoder; then | 431 elif enabled ${cf}_decoder; then |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 589 check_header pthread.h | 556 check_header pthread.h |
| 590 check_header sys/mman.h | 557 check_header sys/mman.h |
| 591 check_header unistd.h # for sysconf(3) and friends. | 558 check_header unistd.h # for sysconf(3) and friends. |
| 592 | 559 |
| 593 check_header vpx/vpx_integer.h -I${source_path} && enable_feature vpx_ports | 560 check_header vpx/vpx_integer.h -I${source_path} && enable_feature vpx_ports |
| 594 } | 561 } |
| 595 | 562 |
| 596 process_toolchain() { | 563 process_toolchain() { |
| 597 process_common_toolchain | 564 process_common_toolchain |
| 598 | 565 |
| 599 # Handle universal binaries for this architecture | |
| 600 case $toolchain in | |
| 601 universal-darwin*) | |
| 602 darwin_ver=${tgt_os##darwin} | |
| 603 | |
| 604 # Tiger (10.4/darwin8) brought support for x86 | |
| 605 if [ $darwin_ver -ge 8 ]; then | |
| 606 fat_bin_archs="$fat_bin_archs x86-${tgt_os}-${tgt_cc}" | |
| 607 fi | |
| 608 | |
| 609 # Leopard (10.5/darwin9) brought 64 bit support | |
| 610 if [ $darwin_ver -ge 9 ]; then | |
| 611 fat_bin_archs="$fat_bin_archs x86_64-${tgt_os}-${tgt_cc}" | |
| 612 fi | |
| 613 ;; | |
| 614 esac | |
| 615 | |
| 616 | |
| 617 # Enable some useful compiler flags | 566 # Enable some useful compiler flags |
| 618 if enabled gcc; then | 567 if enabled gcc; then |
| 619 enabled werror && check_add_cflags -Werror | 568 enabled werror && check_add_cflags -Werror |
| 620 check_add_cflags -Wall | 569 check_add_cflags -Wall |
| 621 check_add_cflags -Wdeclaration-after-statement | 570 check_add_cflags -Wdeclaration-after-statement |
| 622 check_add_cflags -Wdisabled-optimization | 571 check_add_cflags -Wdisabled-optimization |
| 623 check_add_cflags -Wpointer-arith | 572 check_add_cflags -Wpointer-arith |
| 624 check_add_cflags -Wtype-limits | 573 check_add_cflags -Wtype-limits |
| 625 check_add_cflags -Wcast-qual | 574 check_add_cflags -Wcast-qual |
| 626 check_add_cflags -Wvla | 575 check_add_cflags -Wvla |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 694 gen_vcproj_cmd=${source_path}/build/make/gen_msvs_vcxproj.sh | 643 gen_vcproj_cmd=${source_path}/build/make/gen_msvs_vcxproj.sh |
| 695 enabled werror && gen_vcproj_cmd="${gen_vcproj_cmd} --enable-we
rror" | 644 enabled werror && gen_vcproj_cmd="${gen_vcproj_cmd} --enable-we
rror" |
| 696 ;; | 645 ;; |
| 697 esac | 646 esac |
| 698 all_targets="${all_targets} solution" | 647 all_targets="${all_targets} solution" |
| 699 INLINE="__forceinline" | 648 INLINE="__forceinline" |
| 700 ;; | 649 ;; |
| 701 esac | 650 esac |
| 702 | 651 |
| 703 # Other toolchain specific defaults | 652 # Other toolchain specific defaults |
| 704 case $toolchain in x86*|universal*) soft_enable postproc;; esac | 653 case $toolchain in x86*) soft_enable postproc;; esac |
| 705 | 654 |
| 706 if enabled postproc_visualizer; then | 655 if enabled postproc_visualizer; then |
| 707 enabled postproc || die "postproc_visualizer requires postproc to be ena
bled" | 656 enabled postproc || die "postproc_visualizer requires postproc to be ena
bled" |
| 708 fi | 657 fi |
| 709 | 658 |
| 710 # Enable unit tests by default if we have a working C++ compiler. | 659 # Enable unit tests by default if we have a working C++ compiler. |
| 711 case "$toolchain" in | 660 case "$toolchain" in |
| 712 *-vs*) | 661 *-vs*) |
| 713 soft_enable unit_tests | 662 soft_enable unit_tests |
| 714 soft_enable webm_io | 663 soft_enable webm_io |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 758 } | 707 } |
| 759 | 708 |
| 760 | 709 |
| 761 ## | 710 ## |
| 762 ## END APPLICATION SPECIFIC CONFIGURATION | 711 ## END APPLICATION SPECIFIC CONFIGURATION |
| 763 ## | 712 ## |
| 764 CONFIGURE_ARGS="$@" | 713 CONFIGURE_ARGS="$@" |
| 765 process "$@" | 714 process "$@" |
| 766 print_webm_license ${BUILD_PFX}vpx_config.c "/*" " */" | 715 print_webm_license ${BUILD_PFX}vpx_config.c "/*" " */" |
| 767 cat <<EOF >> ${BUILD_PFX}vpx_config.c | 716 cat <<EOF >> ${BUILD_PFX}vpx_config.c |
| 717 #include "vpx/vpx_codec.h" |
| 768 static const char* const cfg = "$CONFIGURE_ARGS"; | 718 static const char* const cfg = "$CONFIGURE_ARGS"; |
| 769 const char *vpx_codec_build_config(void) {return cfg;} | 719 const char *vpx_codec_build_config(void) {return cfg;} |
| 770 EOF | 720 EOF |
| OLD | NEW |