Add USE_SSE
flag to allow build-time choise of SSE instructions for libimagequant
This commit is contained in:
parent
2e765e8e96
commit
5970301a3c
2 changed files with 14 additions and 4 deletions
|
@ -412,6 +412,7 @@ opts.AddVariables(
|
||||||
BoolVariable('NIK2IMG', 'Compile and install a utility to generate render a map to an image', 'True'),
|
BoolVariable('NIK2IMG', 'Compile and install a utility to generate render a map to an image', 'True'),
|
||||||
BoolVariable('COLOR_PRINT', 'Print build status information in color', 'True'),
|
BoolVariable('COLOR_PRINT', 'Print build status information in color', 'True'),
|
||||||
BoolVariable('BIGINT', 'Compile support for 64-bit integers in mapnik::value', 'True'),
|
BoolVariable('BIGINT', 'Compile support for 64-bit integers in mapnik::value', 'True'),
|
||||||
|
EnumVariable('USE_SSE', 'Enable support for SSE vector instructions','yes',['yes','no','platform_default'])
|
||||||
)
|
)
|
||||||
|
|
||||||
# variables to pickle after successful configure step
|
# variables to pickle after successful configure step
|
||||||
|
|
11
src/build.py
11
src/build.py
|
@ -346,11 +346,20 @@ source += Split(
|
||||||
""")
|
""")
|
||||||
|
|
||||||
# libimagequant
|
# libimagequant
|
||||||
lib_env.Append(CFLAGS = "-O3 -fno-math-errno -funroll-loops -fomit-frame-pointer -std=c99 -msse -mfpmath=sse")
|
lib_env.Append(CFLAGS = "-O3 -fno-math-errno -funroll-loops -fomit-frame-pointer -std=c99")
|
||||||
|
if env["USE_SSE"] == "yes":
|
||||||
|
lib_env.Append(CFLAGS="-msse -mfpmath=sse")
|
||||||
# As of GCC 4.5, 387 fp math is significantly slower in C99 mode without this.
|
# As of GCC 4.5, 387 fp math is significantly slower in C99 mode without this.
|
||||||
# Note: CPUs without SSE2 use 387 for doubles, even when SSE fp math is set.
|
# Note: CPUs without SSE2 use 387 for doubles, even when SSE fp math is set.
|
||||||
if 'gcc' in env['CC']:
|
if 'gcc' in env['CC']:
|
||||||
lib_env.Append(CFLAGS='-fexcess-prevision=fast')
|
lib_env.Append(CFLAGS='-fexcess-prevision=fast')
|
||||||
|
elif env["USE_SSE"] == "no":
|
||||||
|
lib_env.Append(CFLAGS="-mno-sse")
|
||||||
|
elif env["USE_SSE"] == "platform_default":
|
||||||
|
# Let compiler decide
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
source += glob.glob("../deps/pngquant/" + "*.c")
|
source += glob.glob("../deps/pngquant/" + "*.c")
|
||||||
|
|
||||||
if env['RUNTIME_LINK'] == "static":
|
if env['RUNTIME_LINK'] == "static":
|
||||||
|
|
Loading…
Reference in a new issue