diff options
author | Job Bautista <jobbautista9@protonmail.com> | 2022-06-24 22:33:06 +0800 |
---|---|---|
committer | Job Bautista <jobbautista9@protonmail.com> | 2022-06-24 22:33:06 +0800 |
commit | 0f61aed51f7b6bc93b34499e2407238e2e2aead1 (patch) | |
tree | bc43ed8df96555c178131b219fcc0b7d3e749699 /media/libjpeg/moz.build | |
parent | 6558fea8334ac8f001616781f991829fa2070f9c (diff) | |
download | uxp-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.build | 227 |
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 |