aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Smith <alex.smith@warpsharp.info>2013-05-30 20:11:20 +0000
committerDerek Buitenhuis <derek.buitenhuis@gmail.com>2013-05-31 14:39:14 -0400
commit14fb9d3d8ccf5f50180aabdb1afe8b570fea3d28 (patch)
treecae23cea51015d3cc5b5550acfe7f216143cf103
parent0b0953baecc5b0f8a85169c6bcc3db69a73f2205 (diff)
downloadffmpeg-14fb9d3d8ccf5f50180aabdb1afe8b570fea3d28.tar.gz
configure: Separate commonalities in msvc and icl flags
Allows for easier handling of flags that may be specific to icl or msvc. Furthermore, simplify the handling of warnings and remarks thanks to icl's support of -Wall on Windows. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
-rwxr-xr-xconfigure42
1 files changed, 33 insertions, 9 deletions
diff --git a/configure b/configure
index 48b405f015..897e1ed3bf 100755
--- a/configure
+++ b/configure
@@ -2340,16 +2340,17 @@ ccc_flags(){
done
}
-msvc_flags(){
+msvc_common_flags(){
for flag; do
case $flag in
+ # In addition to specifying certain flags under the compiler
+ # specific filters, they must be specified here as well or else the
+ # generic catch all at the bottom will print the original flag.
+ -Wall) ;;
+ -std=c99) ;;
+ # Common flags
-fomit-frame-pointer) echo -Oy ;;
-g) echo -Z7 ;;
- -Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \
- -wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \
- -wd4152 -wd4324 -we4013 -wd4100 -wd4214 \
- -wd4996 -wd4273 ;;
- -std=c99) ;;
-fno-math-errno) ;;
-fno-common) ;;
-fno-signed-zeros) ;;
@@ -2365,6 +2366,30 @@ msvc_flags(){
done
}
+msvc_flags(){
+ msvc_common_flags "$@"
+ for flag; do
+ case $flag in
+ -Wall) echo -W4 -wd4244 -wd4127 -wd4018 -wd4389 \
+ -wd4146 -wd4057 -wd4204 -wd4706 -wd4305 \
+ -wd4152 -wd4324 -we4013 -wd4100 -wd4214 \
+ -wd4996 -wd4273 ;;
+ esac
+ done
+}
+
+icl_flags(){
+ msvc_common_flags "$@"
+ for flag; do
+ case $flag in
+ # Despite what Intel's documentation says -Wall, which is supported
+ # on Windows, does enable remarks so disable them here.
+ -Wall) echo $flag -Qdiag-disable:remark ;;
+ -std=c99) echo -Qstd=c99 ;;
+ esac
+ done
+}
+
pgi_flags(){
for flag; do
case $flag in
@@ -2590,13 +2615,13 @@ probe_cc(){
fi
_cc_o='-Fo $@'
_cc_e='-P'
- _flags_filter=msvc_flags
+ _flags_filter=icl_flags
_ld_lib='lib%.a'
_ld_path='-libpath:'
# -Qdiag-error to make icl error when presented with certain unknown arguments
_flags='-nologo -Qdiag-error:10157 -Qdiag-error:4044'
# -Qvec- -Qsimd- to prevent miscompilation, -GS for consistency with msvc which enables it by default
- _cflags='-D_USE_MATH_DEFINES -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64 -Qstd=c99 -Qms0 -Qvec- -Qsimd- -GS'
+ _cflags='-D_USE_MATH_DEFINES -Dinline=__inline -FIstdlib.h -Dstrtoll=_strtoi64 -Qms0 -Qvec- -Qsimd- -GS'
if [ $pfx = hostcc ]; then
append _cflags -Dsnprintf=_snprintf
fi
@@ -3916,7 +3941,6 @@ elif enabled msvc; then
enabled x86_32 && disable aligned_stack
elif enabled icl; then
enabled x86_32 && disable aligned_stack
- check_cflags -W1 # Just warnings, no remark spam
# basically -fstrict-aliasing for icl that doesn't work (correctly) on 13.x+
check_cpp_condition "windows.h" "__ICL < 1300" && add_cflags -Qansi-alias
# icl will pass the inline asm tests but inline asm is currently not supported (build will fail)