summaryrefslogtreecommitdiff
path: root/media/libjpeg/moz.build
diff options
context:
space:
mode:
authorJob Bautista <jobbautista9@protonmail.com>2022-06-24 22:33:06 +0800
committerJob Bautista <jobbautista9@protonmail.com>2022-06-24 22:33:06 +0800
commit0f61aed51f7b6bc93b34499e2407238e2e2aead1 (patch)
treebc43ed8df96555c178131b219fcc0b7d3e749699 /media/libjpeg/moz.build
parent6558fea8334ac8f001616781f991829fa2070f9c (diff)
downloaduxp-0f61aed51f7b6bc93b34499e2407238e2e2aead1.tar.gz
Issue #1933 - Part 1: Update build system for libjpeg-turbo.
Diffstat (limited to 'media/libjpeg/moz.build')
-rw-r--r--media/libjpeg/moz.build227
1 files changed, 165 insertions, 62 deletions
diff --git a/media/libjpeg/moz.build b/media/libjpeg/moz.build
index 6519c30fbd..0da04dabc3 100644
--- a/media/libjpeg/moz.build
+++ b/media/libjpeg/moz.build
@@ -1,4 +1,5 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
@@ -22,6 +23,7 @@ SOURCES += [
'jdcolor.c',
'jddctmgr.c',
'jdhuff.c',
+ 'jdicc.c',
'jdinput.c',
'jdmainct.c',
'jdmarker.c',
@@ -54,6 +56,7 @@ SOURCES += [
'jccolor.c',
'jcdctmgr.c',
'jchuff.c',
+ 'jcicc.c',
'jcinit.c',
'jcmainct.c',
'jcmarker.c',
@@ -70,88 +73,188 @@ if CONFIG['LIBJPEG_TURBO_USE_YASM']:
if CONFIG['LIBJPEG_TURBO_ASFLAGS']:
if CONFIG['CPU_ARCH'] == 'arm':
+ LOCAL_INCLUDES += [
+ '/media/libjpeg/simd/arm',
+ '/media/libjpeg/simd/arm/aarch32',
+ ]
SOURCES += [
- 'simd/jsimd_arm.c',
- 'simd/jsimd_arm_neon.S',
+ 'simd/arm/aarch32/jchuff-neon.c',
+ 'simd/arm/aarch32/jsimd.c',
+ 'simd/arm/aarch32/jsimd_neon.S',
+ 'simd/arm/jcgray-neon.c',
+ 'simd/arm/jcphuff-neon.c',
+ 'simd/arm/jcsample-neon.c',
+ 'simd/arm/jdcolor-neon.c',
+ 'simd/arm/jdmerge-neon.c',
+ 'simd/arm/jdsample-neon.c',
+ 'simd/arm/jfdctfst-neon.c',
+ 'simd/arm/jfdctint-neon.c',
+ 'simd/arm/jidctred-neon.c',
+ 'simd/arm/jquanti-neon.c',
]
elif CONFIG['CPU_ARCH'] == 'aarch64':
+ LOCAL_INCLUDES += [
+ '/media/libjpeg/simd/arm',
+ '/media/libjpeg/simd/arm/aarch64',
+ ]
+ SOURCES += [
+ 'simd/arm/aarch64/jsimd.c',
+ 'simd/arm/aarch64/jsimd_neon.S',
+ 'simd/arm/jcgray-neon.c',
+ 'simd/arm/jcphuff-neon.c',
+ 'simd/arm/jcsample-neon.c',
+ 'simd/arm/jdmerge-neon.c',
+ 'simd/arm/jdsample-neon.c',
+ 'simd/arm/jfdctfst-neon.c',
+ 'simd/arm/jidctfst-neon.c',
+ 'simd/arm/jidctred-neon.c',
+ 'simd/arm/jquanti-neon.c',
+ ]
+ elif CONFIG['CPU_ARCH'] == 'mips32':
SOURCES += [
- 'simd/jsimd_arm64.c',
- 'simd/jsimd_arm64_neon.S',
+ 'simd/mips/jsimd.c',
+ 'simd/mips/jsimd_dspr2.S',
]
- elif CONFIG['CPU_ARCH'] == 'mips':
+ if CONFIG['CC_TYPE'] == 'clang':
+ SOURCES['simd/mips/jsimd_dspr2.S'].flags += [
+ '-fno-integrated-as',
+ ]
+ elif CONFIG['CPU_ARCH'] == 'mips64':
+ LOCAL_INCLUDES += ['/media/libjpeg/simd/mips64']
SOURCES += [
- 'simd/jsimd_mips.c',
- 'simd/jsimd_mips_dspr2.S',
+ 'simd/mips64/jccolor-mmi.c',
+ 'simd/mips64/jcgray-mmi.c',
+ 'simd/mips64/jcsample-mmi.c',
+ 'simd/mips64/jdcolor-mmi.c',
+ 'simd/mips64/jdmerge-mmi.c',
+ 'simd/mips64/jdsample-mmi.c',
+ 'simd/mips64/jfdctfst-mmi.c',
+ 'simd/mips64/jfdctint-mmi.c',
+ 'simd/mips64/jidctfst-mmi.c',
+ 'simd/mips64/jidctint-mmi.c',
+ 'simd/mips64/jquanti-mmi.c',
+ 'simd/mips64/jsimd.c',
]
elif CONFIG['CPU_ARCH'] == 'x86_64':
SOURCES += [
- 'simd/jccolor-sse2-64.asm',
- 'simd/jcgray-sse2-64.asm',
- 'simd/jchuff-sse2-64.asm',
- 'simd/jcsample-sse2-64.asm',
- 'simd/jdcolor-sse2-64.asm',
- 'simd/jdmerge-sse2-64.asm',
- 'simd/jdsample-sse2-64.asm',
- 'simd/jfdctflt-sse-64.asm',
- 'simd/jfdctfst-sse2-64.asm',
- 'simd/jfdctint-sse2-64.asm',
- 'simd/jidctflt-sse2-64.asm',
- 'simd/jidctfst-sse2-64.asm',
- 'simd/jidctint-sse2-64.asm',
- 'simd/jidctred-sse2-64.asm',
- 'simd/jquantf-sse2-64.asm',
- 'simd/jquanti-sse2-64.asm',
- 'simd/jsimd_x86_64.c',
+ 'simd/x86_64/jccolor-avx2.asm',
+ 'simd/x86_64/jccolor-sse2.asm',
+ 'simd/x86_64/jcgray-avx2.asm',
+ 'simd/x86_64/jcgray-sse2.asm',
+ 'simd/x86_64/jchuff-sse2.asm',
+ 'simd/x86_64/jcphuff-sse2.asm',
+ 'simd/x86_64/jcsample-avx2.asm',
+ 'simd/x86_64/jcsample-sse2.asm',
+ 'simd/x86_64/jdcolor-avx2.asm',
+ 'simd/x86_64/jdcolor-sse2.asm',
+ 'simd/x86_64/jdmerge-avx2.asm',
+ 'simd/x86_64/jdmerge-sse2.asm',
+ 'simd/x86_64/jdsample-avx2.asm',
+ 'simd/x86_64/jdsample-sse2.asm',
+ 'simd/x86_64/jfdctflt-sse.asm',
+ 'simd/x86_64/jfdctfst-sse2.asm',
+ 'simd/x86_64/jfdctint-avx2.asm',
+ 'simd/x86_64/jfdctint-sse2.asm',
+ 'simd/x86_64/jidctflt-sse2.asm',
+ 'simd/x86_64/jidctfst-sse2.asm',
+ 'simd/x86_64/jidctint-avx2.asm',
+ 'simd/x86_64/jidctint-sse2.asm',
+ 'simd/x86_64/jidctred-sse2.asm',
+ 'simd/x86_64/jquantf-sse2.asm',
+ 'simd/x86_64/jquanti-avx2.asm',
+ 'simd/x86_64/jquanti-sse2.asm',
+ 'simd/x86_64/jsimd.c',
+ 'simd/x86_64/jsimdcpu.asm',
]
elif CONFIG['CPU_ARCH'] == 'x86':
SOURCES += [
- 'simd/jccolor-mmx.asm',
- 'simd/jccolor-sse2.asm',
- 'simd/jcgray-mmx.asm',
- 'simd/jcgray-sse2.asm',
- 'simd/jchuff-sse2.asm',
- 'simd/jcsample-mmx.asm',
- 'simd/jcsample-sse2.asm',
- 'simd/jdcolor-mmx.asm',
- 'simd/jdcolor-sse2.asm',
- 'simd/jdmerge-mmx.asm',
- 'simd/jdmerge-sse2.asm',
- 'simd/jdsample-mmx.asm',
- 'simd/jdsample-sse2.asm',
- 'simd/jfdctflt-3dn.asm',
- 'simd/jfdctflt-sse.asm',
- 'simd/jfdctfst-mmx.asm',
- 'simd/jfdctfst-sse2.asm',
- 'simd/jfdctint-mmx.asm',
- 'simd/jfdctint-sse2.asm',
- 'simd/jidctflt-3dn.asm',
- 'simd/jidctflt-sse.asm',
- 'simd/jidctflt-sse2.asm',
- 'simd/jidctfst-mmx.asm',
- 'simd/jidctfst-sse2.asm',
- 'simd/jidctint-mmx.asm',
- 'simd/jidctint-sse2.asm',
- 'simd/jidctred-mmx.asm',
- 'simd/jidctred-sse2.asm',
- 'simd/jquant-3dn.asm',
- 'simd/jquant-mmx.asm',
- 'simd/jquant-sse.asm',
- 'simd/jquantf-sse2.asm',
- 'simd/jquanti-sse2.asm',
- 'simd/jsimd_i386.c',
- 'simd/jsimdcpu.asm',
+ 'simd/i386/jccolor-avx2.asm',
+ 'simd/i386/jccolor-mmx.asm',
+ 'simd/i386/jccolor-sse2.asm',
+ 'simd/i386/jcgray-avx2.asm',
+ 'simd/i386/jcgray-mmx.asm',
+ 'simd/i386/jcgray-sse2.asm',
+ 'simd/i386/jchuff-sse2.asm',
+ 'simd/i386/jcphuff-sse2.asm',
+ 'simd/i386/jcsample-avx2.asm',
+ 'simd/i386/jcsample-mmx.asm',
+ 'simd/i386/jcsample-sse2.asm',
+ 'simd/i386/jdcolor-avx2.asm',
+ 'simd/i386/jdcolor-mmx.asm',
+ 'simd/i386/jdcolor-sse2.asm',
+ 'simd/i386/jdmerge-avx2.asm',
+ 'simd/i386/jdmerge-mmx.asm',
+ 'simd/i386/jdmerge-sse2.asm',
+ 'simd/i386/jdsample-avx2.asm',
+ 'simd/i386/jdsample-mmx.asm',
+ 'simd/i386/jdsample-sse2.asm',
+ 'simd/i386/jfdctflt-3dn.asm',
+ 'simd/i386/jfdctflt-sse.asm',
+ 'simd/i386/jfdctfst-mmx.asm',
+ 'simd/i386/jfdctfst-sse2.asm',
+ 'simd/i386/jfdctint-avx2.asm',
+ 'simd/i386/jfdctint-mmx.asm',
+ 'simd/i386/jfdctint-sse2.asm',
+ 'simd/i386/jidctflt-3dn.asm',
+ 'simd/i386/jidctflt-sse.asm',
+ 'simd/i386/jidctflt-sse2.asm',
+ 'simd/i386/jidctfst-mmx.asm',
+ 'simd/i386/jidctfst-sse2.asm',
+ 'simd/i386/jidctint-avx2.asm',
+ 'simd/i386/jidctint-mmx.asm',
+ 'simd/i386/jidctint-sse2.asm',
+ 'simd/i386/jidctred-mmx.asm',
+ 'simd/i386/jidctred-sse2.asm',
+ 'simd/i386/jquant-3dn.asm',
+ 'simd/i386/jquant-mmx.asm',
+ 'simd/i386/jquant-sse.asm',
+ 'simd/i386/jquantf-sse2.asm',
+ 'simd/i386/jquanti-avx2.asm',
+ 'simd/i386/jquanti-sse2.asm',
+ 'simd/i386/jsimd.c',
+ 'simd/i386/jsimdcpu.asm',
]
+elif CONFIG['CPU_ARCH'].startswith('ppc'):
+ # PowerPC has no assembly files, but still needs its own headers.
+ LOCAL_INCLUDES += ['/media/libjpeg/simd/powerpc']
+
+ # For libjpeg's internal runtime detection to work, jsimd.c must NOT
+ # be compiled with -maltivec (otherwise it gets statically set),
+ # but everything else should be. If -maltivec was already
+ # specified in .mozconfig, though, then this won't harm anything.
+ ppc_vmx_sources = [
+ 'simd/powerpc/jccolor-altivec.c',
+ 'simd/powerpc/jcgray-altivec.c',
+ 'simd/powerpc/jcsample-altivec.c',
+ 'simd/powerpc/jdcolor-altivec.c',
+ 'simd/powerpc/jdmerge-altivec.c',
+ 'simd/powerpc/jdsample-altivec.c',
+ 'simd/powerpc/jfdctfst-altivec.c',
+ 'simd/powerpc/jfdctint-altivec.c',
+ 'simd/powerpc/jidctfst-altivec.c',
+ 'simd/powerpc/jidctint-altivec.c',
+ 'simd/powerpc/jquanti-altivec.c',
+ ]
+ SOURCES += ppc_vmx_sources
+ SOURCES += [
+ 'simd/powerpc/jsimd.c',
+ ]
+ for srcfile in ppc_vmx_sources:
+ SOURCES[srcfile].flags += CONFIG['PPC_VMX_FLAGS']
else: # No SIMD support?
SOURCES += [
'jsimd_none.c',
]
ASFLAGS += CONFIG['LIBJPEG_TURBO_ASFLAGS']
-ASFLAGS += ['-I%s/media/libjpeg/simd/' % TOPSRCDIR]
-if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
- NO_VISIBILITY_FLAGS = True
+# Make sure the x86 & x86-64 ASM files can see the necessary includes.
+if CONFIG['CPU_ARCH'] == 'x86':
+ ASFLAGS += ['-I%s/media/libjpeg/simd/nasm/' % TOPSRCDIR]
+ ASFLAGS += ['-I%s/media/libjpeg/simd/i386/' % TOPSRCDIR]
+if CONFIG['CPU_ARCH'] == 'x86_64':
+ ASFLAGS += ['-I%s/media/libjpeg/simd/nasm/' % TOPSRCDIR]
+ ASFLAGS += ['-I%s/media/libjpeg/simd/x86_64/' % TOPSRCDIR]
# We allow warnings for third-party code that can be updated from upstream.
ALLOW_COMPILER_WARNINGS = True