Add libjpeg-turbo library (depends on yasm)
Mangle external function names to avoid conflict with libjpeg Take advantage of direct color conversion (RGBA, BGRA, 565) Prepare to use jpeg_skip_scanlines (when it is upstreamed) BUG=skia: Committed: https://skia.googlesource.com/skia/+/b60c3f8291529303299262dba19b1a896060bd2d Committed: https://skia.googlesource.com/skia/+/f8bf9181d7b0463c8e371755cfbb9ece90b34fc5 Committed: https://skia.googlesource.com/skia/+/e9e3ee33f30c14c31afd5fc3fe4dda7f15783c75 Review URL: https://codereview.chromium.org/1180983002
This commit is contained in:
parent
c50acf2321
commit
40141b57f0
5
DEPS
5
DEPS
@ -21,6 +21,11 @@ deps = {
|
||||
"third_party/externals/libpng" : "https://skia.googlesource.com/third_party/libpng.git@070a616b8275277e18ef8ee91e2ca23f7bdc67d5",
|
||||
"third_party/externals/giflib" : "https://android.googlesource.com/platform/external/giflib.git@android-5.1.0_r3",
|
||||
|
||||
"third_party/externals/libjpeg-turbo" : "https://skia.googlesource.com/third_party/libjpeg-turbo.git@trunk+leakfix",
|
||||
# libjpeg-turbo depends on yasm to compile .asm files
|
||||
"third_party/externals/yasm/source/patched-yasm/" : "https://chromium.googlesource.com/chromium/deps/yasm/patched-yasm.git@4671120cd8558ce62ee8672ebf3eb6f5216f909b",
|
||||
"third_party/externals/yasm/binaries" : "https://chromium.googlesource.com/chromium/deps/yasm/binaries.git@52f9b3f4b0aa06da24ef8b123058bb61ee468881",
|
||||
|
||||
"platform_tools/android/third_party/externals/expat" : "https://android.googlesource.com/platform/external/expat.git@android-5.1.0_r3",
|
||||
"platform_tools/android/third_party/externals/jpeg" : "https://android.googlesource.com/platform/external/jpeg.git@android-5.1.0_r3",
|
||||
"platform_tools/android/third_party/externals/png" : "https://android.googlesource.com/platform/external/libpng.git@android-4.2.2_r1.2",
|
||||
|
@ -209,7 +209,7 @@ static void push_codec_srcs(Path path) {
|
||||
// TODO (msarett): Add more scaling tests as we implement more flexible scaling.
|
||||
// TODO (msarett): Implement scaling tests for SkImageDecoder in order to compare with these
|
||||
// tests. SkImageDecoder supports downscales by integer factors.
|
||||
const float scales[] = { 0.125f, 0.25f, 0.5f, 1.0f };
|
||||
const float scales[] = { 0.125f, 0.25f, 0.375f, 0.5f, 0.625f, 0.750f, 0.875f, 1.0f };
|
||||
|
||||
for (float scale : scales) {
|
||||
// Build additional test cases for images that decode natively to non-canvas types
|
||||
|
@ -18,9 +18,12 @@
|
||||
'dependencies': [
|
||||
'core.gyp:*',
|
||||
'giflib.gyp:giflib',
|
||||
'libjpeg.gyp:libjpeg',
|
||||
'libjpeg-turbo.gyp:libjpeg-turbo',
|
||||
'libwebp.gyp:libwebp',
|
||||
],
|
||||
'export_dependent_settings': [
|
||||
'libjpeg-turbo.gyp:libjpeg-turbo',
|
||||
],
|
||||
'cflags':[
|
||||
# FIXME: This gets around a longjmp warning. See
|
||||
# http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-x86_64-Release-Trybot/builds/113/steps/build%20most/logs/stdio
|
||||
@ -60,10 +63,23 @@
|
||||
'dependencies': [
|
||||
'libpng.gyp:libpng',
|
||||
],
|
||||
# TODO(msarett): update libjpeg-turbo on Android so we can compile SkJpegCodec
|
||||
# for the framework.
|
||||
'sources!': [
|
||||
'../src/codec/SkJpegCodec.cpp',
|
||||
'../src/codec/SkJpegDecoderMgr.cpp',
|
||||
'../src/codec/SkJpegUtility_codec.cpp',
|
||||
],
|
||||
'dependencies!': [
|
||||
'libjpeg-turbo.gyp:libjpeg-turbo',
|
||||
],
|
||||
}, { # !skia_android_framework
|
||||
'dependencies': [
|
||||
'libpng.gyp:libpng_static',
|
||||
],
|
||||
'cflags': [
|
||||
'-DTURBO_HAS_SKIP',
|
||||
],
|
||||
}
|
||||
]
|
||||
]
|
||||
|
341
gyp/libjpeg-turbo.gyp
Normal file
341
gyp/libjpeg-turbo.gyp
Normal file
@ -0,0 +1,341 @@
|
||||
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
{
|
||||
'variables': {
|
||||
'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/externals/libjpeg-turbo',
|
||||
'conditions': [
|
||||
[ 'skia_os == "win"', {
|
||||
'object_suffix': 'obj',
|
||||
}, {
|
||||
'object_suffix': 'o',
|
||||
}],
|
||||
],
|
||||
},
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'libjpeg-turbo',
|
||||
'type': 'static_library',
|
||||
'include_dirs': [
|
||||
'../third_party/externals/libjpeg-turbo/',
|
||||
],
|
||||
'defines': [
|
||||
'WITH_SIMD',
|
||||
'MOTION_JPEG_SUPPORTED',
|
||||
'NO_GETENV',
|
||||
],
|
||||
'cflags': [
|
||||
'-w', # supresses warnings
|
||||
],
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'AdditionalOptions': [
|
||||
'/w',
|
||||
],
|
||||
},
|
||||
},
|
||||
'xcode_settings': {
|
||||
'WARNING_CFLAGS': [
|
||||
'-w',
|
||||
],
|
||||
},
|
||||
'sources': [
|
||||
'../third_party/externals/libjpeg-turbo/jaricom.c',
|
||||
'../third_party/externals/libjpeg-turbo/jcapimin.c',
|
||||
'../third_party/externals/libjpeg-turbo/jcapistd.c',
|
||||
'../third_party/externals/libjpeg-turbo/jcarith.c',
|
||||
'../third_party/externals/libjpeg-turbo/jccoefct.c',
|
||||
'../third_party/externals/libjpeg-turbo/jccolor.c',
|
||||
'../third_party/externals/libjpeg-turbo/jcdctmgr.c',
|
||||
'../third_party/externals/libjpeg-turbo/jchuff.c',
|
||||
'../third_party/externals/libjpeg-turbo/jchuff.h',
|
||||
'../third_party/externals/libjpeg-turbo/jcinit.c',
|
||||
'../third_party/externals/libjpeg-turbo/jcmainct.c',
|
||||
'../third_party/externals/libjpeg-turbo/jcmarker.c',
|
||||
'../third_party/externals/libjpeg-turbo/jcmaster.c',
|
||||
'../third_party/externals/libjpeg-turbo/jcomapi.c',
|
||||
'../third_party/externals/libjpeg-turbo/jconfig.h',
|
||||
'../third_party/externals/libjpeg-turbo/jconfigint.h',
|
||||
'../third_party/externals/libjpeg-turbo/jcparam.c',
|
||||
'../third_party/externals/libjpeg-turbo/jcphuff.c',
|
||||
'../third_party/externals/libjpeg-turbo/jcprepct.c',
|
||||
'../third_party/externals/libjpeg-turbo/jcsample.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdapimin.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdapistd.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdarith.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdcoefct.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdcolor.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdct.h',
|
||||
'../third_party/externals/libjpeg-turbo/jddctmgr.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdhuff.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdhuff.h',
|
||||
'../third_party/externals/libjpeg-turbo/jdinput.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdmainct.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdmarker.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdmaster.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdmerge.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdphuff.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdpostct.c',
|
||||
'../third_party/externals/libjpeg-turbo/jdsample.c',
|
||||
'../third_party/externals/libjpeg-turbo/jerror.c',
|
||||
'../third_party/externals/libjpeg-turbo/jerror.h',
|
||||
'../third_party/externals/libjpeg-turbo/jfdctflt.c',
|
||||
'../third_party/externals/libjpeg-turbo/jfdctfst.c',
|
||||
'../third_party/externals/libjpeg-turbo/jfdctint.c',
|
||||
'../third_party/externals/libjpeg-turbo/jidctflt.c',
|
||||
'../third_party/externals/libjpeg-turbo/jidctfst.c',
|
||||
'../third_party/externals/libjpeg-turbo/jidctint.c',
|
||||
'../third_party/externals/libjpeg-turbo/jidctred.c',
|
||||
'../third_party/externals/libjpeg-turbo/jinclude.h',
|
||||
'../third_party/externals/libjpeg-turbo/jmemmgr.c',
|
||||
'../third_party/externals/libjpeg-turbo/jmemnobs.c',
|
||||
'../third_party/externals/libjpeg-turbo/jmemsys.h',
|
||||
'../third_party/externals/libjpeg-turbo/jmorecfg.h',
|
||||
'../third_party/externals/libjpeg-turbo/jpegint.h',
|
||||
'../third_party/externals/libjpeg-turbo/jpeglib.h',
|
||||
'../third_party/externals/libjpeg-turbo/jpeglibmangler.h',
|
||||
'../third_party/externals/libjpeg-turbo/jquant1.c',
|
||||
'../third_party/externals/libjpeg-turbo/jquant2.c',
|
||||
'../third_party/externals/libjpeg-turbo/jutils.c',
|
||||
'../third_party/externals/libjpeg-turbo/jversion.h',
|
||||
],
|
||||
'direct_dependent_settings': {
|
||||
'include_dirs': [
|
||||
'../third_party/externals/libjpeg-turbo/',
|
||||
],
|
||||
},
|
||||
'msvs_disabled_warnings': [4018, 4101],
|
||||
# VS2010 does not correctly incrementally link obj files generated
|
||||
# from asm files. This flag disables UseLibraryDependencyInputs to
|
||||
# avoid this problem.
|
||||
'msvs_2010_disable_uldi_when_referenced': 1,
|
||||
|
||||
# Add target-specific source files.
|
||||
'conditions': [
|
||||
[ 'skia_arch_type == "x86"', {
|
||||
'sources': [
|
||||
'../third_party/externals/libjpeg-turbo/simd/jsimd_i386.c',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jccolor-mmx.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jccolor-sse2.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jcgray-mmx.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jcgray-sse2.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jcsample-mmx.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jcsample-sse2.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jdcolor-mmx.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jdcolor-sse2.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jdmerge-mmx.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jdmerge-sse2.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jdsample-mmx.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jdsample-sse2.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jfdctflt-3dn.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jfdctflt-sse.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jfdctfst-mmx.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jfdctfst-sse2.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jfdctint-mmx.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jfdctint-sse2.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jidctflt-3dn.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jidctflt-sse2.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jidctflt-sse.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jidctfst-mmx.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jidctfst-sse2.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jidctint-mmx.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jidctint-sse2.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jidctred-mmx.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jidctred-sse2.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jquant-3dn.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jquantf-sse2.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jquanti-sse2.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jquant-mmx.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jquant-sse.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jsimdcpu.asm',
|
||||
],
|
||||
}],
|
||||
[ 'skia_arch_type == "x86_64"', {
|
||||
'sources': [
|
||||
'../third_party/externals/libjpeg-turbo/simd/jsimd_x86_64.c',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jccolor-sse2-64.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jcgray-sse2-64.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jcsample-sse2-64.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jdcolor-sse2-64.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jdmerge-sse2-64.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jdsample-sse2-64.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jfdctflt-sse-64.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jfdctfst-sse2-64.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jfdctint-sse2-64.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jidctflt-sse2-64.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jidctfst-sse2-64.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jidctint-sse2-64.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jidctred-sse2-64.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jquantf-sse2-64.asm',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jquanti-sse2-64.asm',
|
||||
],
|
||||
}],
|
||||
[ 'skia_arch_type == "arm64"', {
|
||||
'sources': [
|
||||
'../third_party/externals/libjpeg-turbo/simd/jsimd_arm64.c',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jsimd_arm64_neon.S',
|
||||
],
|
||||
}],
|
||||
[ 'skia_arch_type == "arm"', {
|
||||
'conditions': [
|
||||
[ 'arm_version >= 7 and (arm_neon == 1 or arm_neon_optional == 1)', {
|
||||
'sources': [
|
||||
'../third_party/externals/libjpeg-turbo/simd/jsimd_arm.c',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jsimd_arm_neon.S',
|
||||
],
|
||||
}, {
|
||||
'sources': [
|
||||
'../third_party/externals/libjpeg-turbo/jsimd_none.c',
|
||||
],
|
||||
}],
|
||||
],
|
||||
}],
|
||||
[ 'skia_arch_type == "mips"', {
|
||||
'conditions': [
|
||||
[ 'skia_arch_width == 64', {
|
||||
'sources': [
|
||||
'../third_party/externals/libjpeg-turbo/simd/jsimd_mips.c',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jsimd_mips_dspr2_asm.h',
|
||||
'../third_party/externals/libjpeg-turbo/simd/jsimd_mips_dspr2.S',
|
||||
],
|
||||
}, {
|
||||
'sources': [
|
||||
'../third_party/externals/libjpeg-turbo/jsimd_none.c',
|
||||
],
|
||||
}],
|
||||
],
|
||||
}],
|
||||
|
||||
# Build rules for an asm file.
|
||||
# On Windows, we use the precompiled yasm binary.
|
||||
# On Linux, we build our patched yasm and use it except when use_system_yasm is 1.
|
||||
# On Mac, we always build our patched yasm and use it.
|
||||
[ 'skia_os == "win"', {
|
||||
'variables': {
|
||||
'yasm_path': '../third_party/externals/yasm/binaries/win/yasm.exe',
|
||||
'conditions': [
|
||||
[ 'skia_arch_type == "x86"', {
|
||||
'yasm_format': '-fwin32',
|
||||
'yasm_flags': [
|
||||
'-D__x86__',
|
||||
'-DWIN32',
|
||||
'-DMSVC',
|
||||
'-Iwin/'
|
||||
],
|
||||
}, {
|
||||
'yasm_format': '-fwin64',
|
||||
'yasm_flags': [
|
||||
'-D__x86_64__',
|
||||
'-DWIN64',
|
||||
'-DMSVC',
|
||||
'-Iwin/'
|
||||
],
|
||||
}],
|
||||
],
|
||||
},
|
||||
}],
|
||||
[ 'skia_os == "android" and (skia_arch_type == "x86" or skia_arch_type == "x86_64")', {
|
||||
'variables': {
|
||||
'yasm_path': '../third_party/yasm/config/android/yasm',
|
||||
'conditions': [
|
||||
[ 'skia_arch_type == "x86"', {
|
||||
'yasm_format': '-felf',
|
||||
'yasm_flags': [
|
||||
'-D__x86__',
|
||||
'-DELF',
|
||||
'-Ilinux/'
|
||||
],
|
||||
}, {
|
||||
'yasm_format': '-felf64',
|
||||
'yasm_flags': [
|
||||
'-D__x86_64__',
|
||||
'-DELF',
|
||||
'-Ilinux/'
|
||||
],
|
||||
}],
|
||||
],
|
||||
},
|
||||
}],
|
||||
[ '(skia_os == "mac" or skia_os == "ios") and \
|
||||
(skia_arch_type == "x86" or skia_arch_type == "x86_64")', {
|
||||
'dependencies': [
|
||||
'yasm.gyp:yasm#host',
|
||||
],
|
||||
'variables': {
|
||||
'yasm_path': '<(PRODUCT_DIR)/yasm',
|
||||
'conditions': [
|
||||
[ 'skia_arch_type == "x86"', {
|
||||
'yasm_format': '-fmacho',
|
||||
'yasm_flags': [
|
||||
'-D__x86__',
|
||||
'-DMACHO',
|
||||
'-Imac/'
|
||||
],
|
||||
}, {
|
||||
'yasm_format': '-fmacho64',
|
||||
'yasm_flags': [
|
||||
'-D__x86_64__',
|
||||
'-DMACHO',
|
||||
'-Imac/'
|
||||
],
|
||||
}],
|
||||
],
|
||||
},
|
||||
}],
|
||||
[ '(skia_os == "linux" or skia_os == "freebsd" or skia_os == "openbsd" or \
|
||||
skia_os == "solaris" or skia_os == "chromeos")', {
|
||||
'dependencies': [
|
||||
'yasm.gyp:yasm#host',
|
||||
],
|
||||
'variables': {
|
||||
'yasm_path': '<(PRODUCT_DIR)/yasm',
|
||||
'conditions': [
|
||||
[ 'skia_arch_type == "x86"', {
|
||||
'yasm_format': '-felf',
|
||||
'yasm_flags': [
|
||||
'-D__x86__',
|
||||
'-DELF',
|
||||
'-Ilinux/'
|
||||
],
|
||||
}, {
|
||||
'yasm_format': '-felf64',
|
||||
'yasm_flags': [
|
||||
'-D__x86_64__',
|
||||
'-DELF',
|
||||
'-Ilinux/'
|
||||
],
|
||||
}],
|
||||
],
|
||||
},
|
||||
}],
|
||||
],
|
||||
'rules': [
|
||||
{
|
||||
'rule_name': 'assemble',
|
||||
'extension': 'asm',
|
||||
'conditions': [
|
||||
[ 'skia_arch_type == "x86" or skia_arch_type == "x86_64"', {
|
||||
'inputs': [],
|
||||
'outputs': [
|
||||
'<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)',
|
||||
],
|
||||
'action': [
|
||||
'<(yasm_path)',
|
||||
'<(yasm_format)',
|
||||
'<@(yasm_flags)',
|
||||
'-DRGBX_FILLER_0XFF',
|
||||
'-DSTRICT_MEMORY_ACCESS',
|
||||
'-Isimd/',
|
||||
'-o', '<(shared_generated_dir)/<(RULE_INPUT_ROOT).<(object_suffix)',
|
||||
'<(RULE_INPUT_PATH)',
|
||||
],
|
||||
'process_outputs_as_sources': 1,
|
||||
'message': 'Building <(RULE_INPUT_ROOT).<(object_suffix)',
|
||||
}],
|
||||
]
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
644
gyp/yasm.gyp
Normal file
644
gyp/yasm.gyp
Normal file
@ -0,0 +1,644 @@
|
||||
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
# The yasm build process creates a slew of small C subprograms that
|
||||
# dynamically generate files at various point in the build process. This makes
|
||||
# the build integration moderately complex.
|
||||
#
|
||||
# There are three classes of dynamically generated files:
|
||||
# 1) C source files that should be included in the build (eg., lc3bid.c)
|
||||
# 2) C source files that are #included by static C sources (eg., license.c)
|
||||
# 3) Intermediate files that are used as input by other subprograms to
|
||||
# further generate files in category #1 or #2. (eg., version.mac)
|
||||
#
|
||||
# This structure is represented with the following targets:
|
||||
# 1) yasm -- Sources, flags for the main yasm executable. Also has most of
|
||||
# of the actions and rules that invoke the subprograms.
|
||||
# 2) config_sources -- Checked in version of files generated by manually
|
||||
# running configure that are used by all binaries.
|
||||
# 3) generate_files -- Actions and rules for files of type #3.
|
||||
# 4) genperf_libs -- Object files shared between yasm and the genperf
|
||||
# subprogram.
|
||||
# 5) genmacro, genmodule, etc. -- One executable target for each subprogram.
|
||||
#
|
||||
# You will notice that a lot of the action targets seem very similar --
|
||||
# especially for genmacro invocations. This makes it seem like they should
|
||||
# be a rule. The problem is that the correct invocation cannot be inferred
|
||||
# purely from the file name, or extension. Nor is it obvious whether the
|
||||
# output should be processed as a source or not. Thus, we are left with a
|
||||
# large amount of repetitive code.
|
||||
|
||||
{
|
||||
'variables': {
|
||||
'yasm_include_dirs': [
|
||||
'../third_party/yasm/config/<(skia_os)',
|
||||
'../third_party/externals/yasm/source/patched-yasm',
|
||||
],
|
||||
|
||||
# The cflags used by any target that will be directly linked into yasm.
|
||||
# These are specifically not used when building the subprograms. While
|
||||
# it would probably be safe to use these flags there as well, the
|
||||
# ./configure based build does not use the same flags between the main
|
||||
# yasm executable, and its subprograms.
|
||||
'yasm_defines': ['HAVE_CONFIG_H'],
|
||||
'yasm_cflags': [
|
||||
'-std=gnu99',
|
||||
'-ansi',
|
||||
'-pedantic',
|
||||
'-w',
|
||||
],
|
||||
|
||||
# Locations for various generated artifacts.
|
||||
'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/yasm',
|
||||
'generated_dir': '<(INTERMEDIATE_DIR)/third_party/yasm',
|
||||
|
||||
# Various files referenced by multiple targets.
|
||||
'version_file': 'version.mac', # Generated by genversion.
|
||||
'genmodule_source': 'genmodule_outfile.c',
|
||||
},
|
||||
'target_defaults': {
|
||||
# Silence warnings in libc++ builds (C code doesn't need this flag).
|
||||
'ldflags!': [ '-stdlib=libc++', '-fsanitize=address' ],
|
||||
# https://crbug.com/489901
|
||||
'cflags!': [ '-fsanitize=bounds', '-fsanitize=address' ],
|
||||
},
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'yasm',
|
||||
'type': 'executable',
|
||||
'toolsets': ['host'],
|
||||
'dependencies': [
|
||||
'config_sources',
|
||||
'genmacro',
|
||||
'genmodule',
|
||||
'genperf',
|
||||
'genperf_libs',
|
||||
'generate_files', # Needed to generate gperf and instruction files.
|
||||
'genstring',
|
||||
're2c',
|
||||
],
|
||||
'variables': {
|
||||
'clang_warning_flags': [
|
||||
# yasm passes a `const elf_machine_sym*` through `void*`.
|
||||
'-Wno-incompatible-pointer-types',
|
||||
],
|
||||
},
|
||||
'conditions': [
|
||||
['skia_os == "win"', {
|
||||
# As of VS 2013 Update 3, building this project with /analyze hits an
|
||||
# internal compiler error on elf-x86-amd64.c in release builds with
|
||||
# the amd64_x86 compiler. This halts the build and prevents subsequent
|
||||
# analysis. Therefore, /analyze is disabled for this project. See this
|
||||
# bug for details:
|
||||
# https://connect.microsoft.com/VisualStudio/feedback/details/1014799/internal-compiler-error-when-using-analyze
|
||||
'msvs_settings': {
|
||||
'VCCLCompilerTool': {
|
||||
'AdditionalOptions!': [ '/analyze' ]
|
||||
},
|
||||
},
|
||||
}],
|
||||
],
|
||||
'sources': [
|
||||
'../third_party/externals/yasm/source/patched-yasm/frontends/yasm/yasm-options.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/frontends/yasm/yasm.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/assocdat.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/bc-align.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/bc-data.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/bc-incbin.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/bc-org.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/bc-reserve.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/bitvect.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/bytecode.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/errwarn.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/expr.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/file.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/floatnum.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/hamt.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/insn.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/intnum.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/inttree.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/linemap.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/md5.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/mergesort.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/section.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/strcasecmp.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/strsep.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/symrec.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/valparam.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/value.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/arch/lc3b/lc3barch.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/arch/lc3b/lc3bbc.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/arch/x86/x86arch.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/arch/x86/x86bc.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/arch/x86/x86expr.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/arch/x86/x86id.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/dbgfmts/codeview/cv-dbgfmt.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/dbgfmts/codeview/cv-symline.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/dbgfmts/codeview/cv-type.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/dwarf2-aranges.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/dwarf2-dbgfmt.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/dwarf2-info.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/dbgfmts/dwarf2/dwarf2-line.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/dbgfmts/null/null-dbgfmt.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/dbgfmts/stabs/stabs-dbgfmt.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/listfmts/nasm/nasm-listfmt.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/objfmts/bin/bin-objfmt.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/objfmts/coff/coff-objfmt.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/objfmts/coff/win64-except.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/objfmts/dbg/dbg-objfmt.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/objfmts/elf/elf-objfmt.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/objfmts/elf/elf-x86-amd64.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/objfmts/elf/elf-x86-x86.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/objfmts/elf/elf.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/objfmts/macho/macho-objfmt.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/objfmts/rdf/rdf-objfmt.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/objfmts/xdf/xdf-objfmt.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/parsers/gas/gas-parse.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/parsers/gas/gas-parse-intel.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/parsers/gas/gas-parser.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/parsers/nasm/nasm-parse.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/parsers/nasm/nasm-parser.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/preprocs/cpp/cpp-preproc.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/preprocs/nasm/nasm-eval.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/preprocs/nasm/nasm-pp.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/preprocs/nasm/nasm-preproc.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/preprocs/nasm/nasmlib.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/preprocs/raw/raw-preproc.c',
|
||||
|
||||
# Sources needed by re2c.
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/parsers/gas/gas-token.re',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/parsers/nasm/nasm-token.re',
|
||||
|
||||
# Sources needed by genperf. Make sure the generated gperf files
|
||||
# (the ones in shared_generated_dir) are synced with the outputs
|
||||
# for the related generate_*_insn actions in the generate_files
|
||||
# target below.
|
||||
'<(shared_generated_dir)/x86insn_nasm.gperf',
|
||||
'<(shared_generated_dir)/x86insn_gas.gperf',
|
||||
'<(shared_generated_dir)/x86cpu.c',
|
||||
'<(shared_generated_dir)/x86regtmod.c',
|
||||
],
|
||||
'include_dirs': [
|
||||
'<@(yasm_include_dirs)',
|
||||
'<(shared_generated_dir)',
|
||||
'<(generated_dir)',
|
||||
],
|
||||
'defines': [ '<@(yasm_defines)' ],
|
||||
'cflags': [ '<@(yasm_cflags)', ],
|
||||
'cflags!': [
|
||||
'-mfpu=neon',
|
||||
'-mthumb',
|
||||
'-march=armv7-a',
|
||||
],
|
||||
'xcode_settings': {
|
||||
'WARNING_CFLAGS': [
|
||||
'-w',
|
||||
],
|
||||
},
|
||||
'msvs_disabled_warnings': [ 4267 ],
|
||||
'rules': [
|
||||
{
|
||||
'rule_name': 'generate_gperf',
|
||||
'extension': 'gperf',
|
||||
'inputs': [ '<(PRODUCT_DIR)/'
|
||||
'<(EXECUTABLE_PREFIX)genperf<(EXECUTABLE_SUFFIX)' ],
|
||||
'outputs': [
|
||||
'<(generated_dir)/<(RULE_INPUT_ROOT).c',
|
||||
],
|
||||
'action': ['<(PRODUCT_DIR)/genperf',
|
||||
'<(RULE_INPUT_PATH)',
|
||||
'<(generated_dir)/<(RULE_INPUT_ROOT).c',
|
||||
],
|
||||
# These files are #included, so do not treat them as sources.
|
||||
'process_outputs_as_sources': 0,
|
||||
'message': 'yasm gperf for <(RULE_INPUT_PATH)',
|
||||
},
|
||||
{
|
||||
'rule_name': 'generate_re2c',
|
||||
'extension': 're',
|
||||
'inputs': [ '<(PRODUCT_DIR)/'
|
||||
'<(EXECUTABLE_PREFIX)re2c<(EXECUTABLE_SUFFIX)' ],
|
||||
'outputs': [ '<(generated_dir)/<(RULE_INPUT_ROOT).c', ],
|
||||
'action': [
|
||||
'<(PRODUCT_DIR)/re2c',
|
||||
'-b',
|
||||
'-o',
|
||||
'<(generated_dir)/<(RULE_INPUT_ROOT).c',
|
||||
'<(RULE_INPUT_PATH)',
|
||||
],
|
||||
'process_outputs_as_sources': 1,
|
||||
'message': 'yasm re2c for <(RULE_INPUT_PATH)',
|
||||
},
|
||||
],
|
||||
'actions': [
|
||||
###
|
||||
### genmacro calls.
|
||||
###
|
||||
{
|
||||
'action_name': 'generate_nasm_macros',
|
||||
'variables': {
|
||||
'infile': '../third_party/externals/yasm/source/patched-yasm/modules/parsers/nasm/nasm-std.mac',
|
||||
'varname': 'nasm_standard_mac',
|
||||
'outfile': '<(generated_dir)/nasm-macros.c',
|
||||
},
|
||||
'inputs': [ '<(PRODUCT_DIR)/'
|
||||
'<(EXECUTABLE_PREFIX)genmacro<(EXECUTABLE_SUFFIX)',
|
||||
'<(infile)', ],
|
||||
'outputs': [ '<(outfile)', ],
|
||||
'action': ['<(PRODUCT_DIR)/genmacro',
|
||||
'<(outfile)', '<(varname)', '<(infile)', ],
|
||||
# Not a direct source because this is #included by
|
||||
# source/patched-yasm/modules/parsers/nasm/nasm-parser.c
|
||||
'process_outputs_as_sources': 1,
|
||||
'xcode_settings': {
|
||||
'WARNING_CFLAGS': [
|
||||
'-w',
|
||||
],
|
||||
},
|
||||
'message': 'yasm genmacro for <(infile)',
|
||||
},
|
||||
{
|
||||
'action_name': 'generate_nasm_version',
|
||||
'variables': {
|
||||
'infile': '<(shared_generated_dir)/<(version_file)',
|
||||
'varname': 'nasm_version_mac',
|
||||
'outfile': '<(generated_dir)/nasm-version.c',
|
||||
},
|
||||
'inputs': [ '<(PRODUCT_DIR)/'
|
||||
'<(EXECUTABLE_PREFIX)genmacro<(EXECUTABLE_SUFFIX)',
|
||||
'<(infile)', ],
|
||||
'outputs': [ '<(outfile)', ],
|
||||
'action': ['<(PRODUCT_DIR)/genmacro',
|
||||
'<(outfile)', '<(varname)', '<(infile)',
|
||||
],
|
||||
# Not a direct source because this is #included by
|
||||
# source/patched-yasm/modules/preprocs/nasm/nasm-preproc.c
|
||||
'process_outputs_as_sources': 0,
|
||||
'message': 'yasm genmacro for <(infile)',
|
||||
},
|
||||
{
|
||||
'action_name': 'generate_win64_gas',
|
||||
'variables': {
|
||||
'infile': '../third_party/externals/yasm/source/patched-yasm/modules/objfmts/coff/win64-gas.mac',
|
||||
'varname': 'win64_gas_stdmac',
|
||||
'outfile': '<(generated_dir)/win64-gas.c',
|
||||
},
|
||||
'inputs': [ '<(PRODUCT_DIR)/'
|
||||
'<(EXECUTABLE_PREFIX)genmacro<(EXECUTABLE_SUFFIX)',
|
||||
'<(infile)', ],
|
||||
'outputs': [ '<(outfile)', ],
|
||||
'action': ['<(PRODUCT_DIR)/genmacro',
|
||||
'<(outfile)', '<(varname)', '<(infile)',
|
||||
],
|
||||
# Not a direct source because this is #included by
|
||||
# source/patched-yasm/modules/objfmts/coff/coff-objfmt.c
|
||||
'process_outputs_as_sources': 0,
|
||||
'message': 'yasm genmacro for <(infile)',
|
||||
},
|
||||
{
|
||||
'action_name': 'generate_win64_nasm',
|
||||
'variables': {
|
||||
'infile': '../third_party/externals/yasm/source/patched-yasm/modules/objfmts/coff/win64-nasm.mac',
|
||||
'varname': 'win64_nasm_stdmac',
|
||||
'outfile': '<(generated_dir)/win64-nasm.c',
|
||||
},
|
||||
'inputs': [ '<(PRODUCT_DIR)/'
|
||||
'<(EXECUTABLE_PREFIX)genmacro<(EXECUTABLE_SUFFIX)',
|
||||
'<(infile)', ],
|
||||
'outputs': [ '<(outfile)', ],
|
||||
'action': ['<(PRODUCT_DIR)/genmacro',
|
||||
'<(outfile)',
|
||||
'<(varname)',
|
||||
'<(infile)',
|
||||
],
|
||||
# Not a direct source because this is #included by
|
||||
# source/patched-yasm/modules/objfmts/coff/coff-objfmt.c
|
||||
'process_outputs_as_sources': 0,
|
||||
'message': 'yasm genmacro for <(infile)',
|
||||
},
|
||||
|
||||
###
|
||||
### genstring call.
|
||||
###
|
||||
{
|
||||
'action_name': 'generate_license',
|
||||
'variables': {
|
||||
'infile': '../third_party/externals/yasm/source/patched-yasm/COPYING',
|
||||
'varname': 'license_msg',
|
||||
'outfile': '<(generated_dir)/license.c',
|
||||
},
|
||||
'inputs': [ '<(PRODUCT_DIR)/'
|
||||
'<(EXECUTABLE_PREFIX)genstring<(EXECUTABLE_SUFFIX)',
|
||||
'<(infile)', ],
|
||||
'outputs': [ '<(outfile)', ],
|
||||
'action': ['<(PRODUCT_DIR)/genstring',
|
||||
'<(varname)',
|
||||
'<(outfile)',
|
||||
'<(infile)',
|
||||
],
|
||||
# Not a direct source because this is #included by
|
||||
# source/patched-yasm/frontends/yasm/yasm.c
|
||||
'process_outputs_as_sources': 0,
|
||||
'message': 'Generating yasm embeddable license',
|
||||
},
|
||||
|
||||
###
|
||||
### A re2c call that doesn't fit into the rule below.
|
||||
###
|
||||
{
|
||||
'action_name': 'generate_lc3b_token',
|
||||
'variables': {
|
||||
'infile': '../third_party/externals/yasm/source/patched-yasm/modules/arch/lc3b/lc3bid.re',
|
||||
# The license file is #included by yasm.c.
|
||||
'outfile': '<(generated_dir)/lc3bid.c',
|
||||
},
|
||||
'inputs': [ '<(PRODUCT_DIR)/'
|
||||
'<(EXECUTABLE_PREFIX)re2c<(EXECUTABLE_SUFFIX)',
|
||||
'<(infile)', ],
|
||||
'outputs': [ '<(outfile)', ],
|
||||
'action': [
|
||||
'<(PRODUCT_DIR)/re2c',
|
||||
'-s',
|
||||
'-o', '<(outfile)',
|
||||
'<(infile)'
|
||||
],
|
||||
'process_outputs_as_sources': 1,
|
||||
'message': 'Generating yasm tokens for lc3b',
|
||||
},
|
||||
|
||||
###
|
||||
### genmodule call.
|
||||
###
|
||||
{
|
||||
'action_name': 'generate_module',
|
||||
'variables': {
|
||||
'makefile': '../third_party/yasm/config/<(skia_os)/Makefile',
|
||||
'module_in': '../third_party/externals/yasm/source/patched-yasm/libyasm/module.in',
|
||||
'outfile': '<(generated_dir)/module.c',
|
||||
},
|
||||
'inputs': [
|
||||
'<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)genmodule<(EXECUTABLE_SUFFIX)',
|
||||
'<(module_in)',
|
||||
'<(makefile)'
|
||||
],
|
||||
'outputs': [ '<(generated_dir)/module.c' ],
|
||||
'action': [
|
||||
'<(PRODUCT_DIR)/genmodule',
|
||||
'<(module_in)',
|
||||
'<(makefile)',
|
||||
'<(outfile)'
|
||||
],
|
||||
'process_outputs_as_sources': 1,
|
||||
'message': 'Generating yasm module information',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'target_name': 'config_sources',
|
||||
'type': 'none',
|
||||
'toolsets': ['host'],
|
||||
'sources': [
|
||||
'../third_party/yasm/config/<(skia_os)/Makefile',
|
||||
'../third_party/yasm/config/<(skia_os)/config.h',
|
||||
'../third_party/yasm/config/<(skia_os)/libyasm-stdint.h',
|
||||
],
|
||||
},
|
||||
{
|
||||
'target_name': 'generate_files',
|
||||
'type': 'none',
|
||||
'toolsets': ['host'],
|
||||
'dependencies': [
|
||||
'genperf',
|
||||
'genversion',
|
||||
],
|
||||
'sources': [
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/arch/x86/x86cpu.gperf',
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/arch/x86/x86regtmod.gperf',
|
||||
],
|
||||
'rules': [
|
||||
{
|
||||
'rule_name': 'generate_gperf',
|
||||
'extension': 'gperf',
|
||||
'inputs': [ '<(PRODUCT_DIR)/'
|
||||
'<(EXECUTABLE_PREFIX)genperf<(EXECUTABLE_SUFFIX)' ],
|
||||
'outputs': [ '<(shared_generated_dir)/<(RULE_INPUT_ROOT).c', ],
|
||||
'action': [
|
||||
'<(PRODUCT_DIR)/genperf',
|
||||
'<(RULE_INPUT_PATH)',
|
||||
'<(shared_generated_dir)/<(RULE_INPUT_ROOT).c',
|
||||
],
|
||||
'process_outputs_as_sources': 0,
|
||||
'message': 'yasm genperf for <(RULE_INPUT_PATH)',
|
||||
},
|
||||
],
|
||||
'actions': [
|
||||
{
|
||||
'action_name': 'generate_x86_insn',
|
||||
'variables': {
|
||||
'gen_insn_path':
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/arch/x86/gen_x86_insn.py',
|
||||
},
|
||||
'inputs': [ '<(gen_insn_path)', ],
|
||||
'outputs': [
|
||||
'<(shared_generated_dir)/x86insns.c',
|
||||
'<(shared_generated_dir)/x86insn_gas.gperf',
|
||||
'<(shared_generated_dir)/x86insn_nasm.gperf',
|
||||
],
|
||||
'action': [
|
||||
'python',
|
||||
'<(gen_insn_path)',
|
||||
'<(shared_generated_dir)',
|
||||
],
|
||||
'message': 'Running <(gen_insn_path)',
|
||||
'process_outputs_as_sources': 0,
|
||||
},
|
||||
{
|
||||
'action_name': 'generate_version',
|
||||
'inputs': [ '<(PRODUCT_DIR)/'
|
||||
'<(EXECUTABLE_PREFIX)genversion<(EXECUTABLE_SUFFIX)' ],
|
||||
'outputs': [ '<(shared_generated_dir)/<(version_file)', ],
|
||||
'action': [
|
||||
'<(PRODUCT_DIR)/genversion',
|
||||
'<(shared_generated_dir)/<(version_file)'
|
||||
],
|
||||
'message': 'Generating yasm version file: '
|
||||
'<(shared_generated_dir)/<(version_file)',
|
||||
'process_outputs_as_sources': 0,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
'target_name': 'genperf_libs',
|
||||
'type': 'static_library',
|
||||
'toolsets': ['host'],
|
||||
'dependencies': [ 'config_sources', ],
|
||||
'sources': [
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/phash.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/xmalloc.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/xstrdup.c',
|
||||
],
|
||||
'include_dirs': [
|
||||
'<@(yasm_include_dirs)',
|
||||
],
|
||||
'defines': [ '<@(yasm_defines)' ],
|
||||
'cflags': [
|
||||
'<@(yasm_cflags)',
|
||||
],
|
||||
'cflags!': [
|
||||
'-mfpu=neon',
|
||||
'-mthumb',
|
||||
'-march=armv7-a',
|
||||
],
|
||||
},
|
||||
{
|
||||
'target_name': 'genstring',
|
||||
'type': 'executable',
|
||||
'toolsets': ['host'],
|
||||
'dependencies': [ 'config_sources', ],
|
||||
'sources': [
|
||||
'../third_party/externals/yasm/source/patched-yasm/genstring.c',
|
||||
],
|
||||
'include_dirs': [
|
||||
'<@(yasm_include_dirs)',
|
||||
],
|
||||
'cflags': [
|
||||
'-std=gnu99',
|
||||
'-w',
|
||||
],
|
||||
'cflags!': [
|
||||
'-mfpu=neon',
|
||||
'-mthumb',
|
||||
'-march=armv7-a',
|
||||
],
|
||||
},
|
||||
{
|
||||
'target_name': 'genperf',
|
||||
'type': 'executable',
|
||||
'toolsets': ['host'],
|
||||
'dependencies': [
|
||||
'genperf_libs',
|
||||
],
|
||||
'sources': [
|
||||
'../third_party/externals/yasm/source/patched-yasm/tools/genperf/genperf.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/tools/genperf/perfect.c',
|
||||
],
|
||||
'include_dirs': [
|
||||
'<@(yasm_include_dirs)',
|
||||
],
|
||||
'cflags': [
|
||||
'-std=gnu99',
|
||||
'-w',
|
||||
],
|
||||
'cflags!': [
|
||||
'-mfpu=neon',
|
||||
'-mthumb',
|
||||
'-march=armv7-a',
|
||||
],
|
||||
},
|
||||
{
|
||||
'target_name': 'genmacro',
|
||||
'type': 'executable',
|
||||
'toolsets': ['host'],
|
||||
'dependencies': [ 'config_sources', ],
|
||||
'sources': [
|
||||
'../third_party/externals/yasm/source/patched-yasm/tools/genmacro/genmacro.c',
|
||||
],
|
||||
'include_dirs': [
|
||||
'<@(yasm_include_dirs)',
|
||||
],
|
||||
'cflags': [
|
||||
'-std=gnu99',
|
||||
'-w',
|
||||
],
|
||||
'cflags!': [
|
||||
'-mfpu=neon',
|
||||
'-mthumb',
|
||||
'-march=armv7-a',
|
||||
],
|
||||
},
|
||||
{
|
||||
'target_name': 'genversion',
|
||||
'type': 'executable',
|
||||
'toolsets': ['host'],
|
||||
'dependencies': [ 'config_sources', ],
|
||||
'sources': [
|
||||
'../third_party/externals/yasm/source/patched-yasm/modules/preprocs/nasm/genversion.c',
|
||||
],
|
||||
'include_dirs': [
|
||||
'<@(yasm_include_dirs)',
|
||||
],
|
||||
'cflags': [
|
||||
'-std=gnu99',
|
||||
'-w',
|
||||
],
|
||||
'cflags!': [
|
||||
'-mfpu=neon',
|
||||
'-mthumb',
|
||||
'-march=armv7-a',
|
||||
],
|
||||
},
|
||||
{
|
||||
'target_name': 're2c',
|
||||
'type': 'executable',
|
||||
'toolsets': ['host'],
|
||||
'dependencies': [ 'config_sources', ],
|
||||
'sources': [
|
||||
'../third_party/externals/yasm/source/patched-yasm/tools/re2c/main.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/tools/re2c/code.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/tools/re2c/dfa.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/tools/re2c/parser.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/tools/re2c/actions.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/tools/re2c/scanner.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/tools/re2c/mbo_getopt.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/tools/re2c/substr.c',
|
||||
'../third_party/externals/yasm/source/patched-yasm/tools/re2c/translate.c',
|
||||
],
|
||||
'include_dirs': [
|
||||
'<@(yasm_include_dirs)',
|
||||
],
|
||||
'cflags': [
|
||||
'-std=gnu99',
|
||||
'-w',
|
||||
],
|
||||
'cflags!': [
|
||||
'-mfpu=neon',
|
||||
'-mthumb',
|
||||
'-march=armv7-a',
|
||||
],
|
||||
'xcode_settings': {
|
||||
'WARNING_CFLAGS': [
|
||||
'-w',
|
||||
],
|
||||
},
|
||||
'variables': {
|
||||
# re2c is missing CLOSEVOP from one switch.
|
||||
'clang_warning_flags': [ '-Wno-switch' ],
|
||||
},
|
||||
'msvs_disabled_warnings': [ 4267 ],
|
||||
},
|
||||
{
|
||||
'target_name': 'genmodule',
|
||||
'type': 'executable',
|
||||
'toolsets': ['host'],
|
||||
'dependencies': [
|
||||
'config_sources',
|
||||
],
|
||||
'sources': [
|
||||
'../third_party/externals/yasm/source/patched-yasm/libyasm/genmodule.c',
|
||||
],
|
||||
'include_dirs': [
|
||||
'<@(yasm_include_dirs)',
|
||||
|
||||
],
|
||||
'cflags': [
|
||||
'-std=gnu99',
|
||||
],
|
||||
'cflags!': [
|
||||
'-mfpu=neon',
|
||||
'-mthumb',
|
||||
'-march=armv7-a',
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
@ -13,7 +13,9 @@
|
||||
#include "SkCodec_libpng.h"
|
||||
#include "SkCodec_wbmp.h"
|
||||
#include "SkCodecPriv.h"
|
||||
#ifndef SK_BUILD_FOR_ANDROID_FRAMEWORK
|
||||
#include "SkJpegCodec.h"
|
||||
#endif
|
||||
#include "SkStream.h"
|
||||
#include "SkWebpCodec.h"
|
||||
|
||||
@ -24,7 +26,9 @@ struct DecoderProc {
|
||||
|
||||
static const DecoderProc gDecoderProcs[] = {
|
||||
{ SkPngCodec::IsPng, SkPngCodec::NewFromStream },
|
||||
#ifndef SK_BUILD_FOR_ANDROID_FRAMEWORK
|
||||
{ SkJpegCodec::IsJpeg, SkJpegCodec::NewFromStream },
|
||||
#endif
|
||||
{ SkWebpCodec::IsWebp, SkWebpCodec::NewFromStream },
|
||||
{ SkGifCodec::IsGif, SkGifCodec::NewFromStream },
|
||||
{ SkIcoCodec::IsIco, SkIcoCodec::NewFromStream },
|
||||
|
@ -15,53 +15,23 @@
|
||||
#include "SkTemplates.h"
|
||||
#include "SkTypes.h"
|
||||
|
||||
// stdio is needed for jpeglib
|
||||
// stdio is needed for libjpeg-turbo
|
||||
#include <stdio.h>
|
||||
|
||||
extern "C" {
|
||||
#include "jpeglibmangler.h"
|
||||
#include "jerror.h"
|
||||
#include "jmorecfg.h"
|
||||
#include "jpegint.h"
|
||||
#include "jpeglib.h"
|
||||
}
|
||||
|
||||
// ANDROID_RGB
|
||||
// If this is defined in the jpeg headers it indicates that jpeg offers
|
||||
// support for two additional formats: JCS_RGBA_8888 and JCS_RGB_565.
|
||||
|
||||
/*
|
||||
* Get the source configuarion for the swizzler
|
||||
*/
|
||||
SkSwizzler::SrcConfig get_src_config(const jpeg_decompress_struct& dinfo) {
|
||||
if (JCS_CMYK == dinfo.out_color_space) {
|
||||
// We will need to perform a manual conversion
|
||||
return SkSwizzler::kRGBX;
|
||||
}
|
||||
if (3 == dinfo.out_color_components && JCS_RGB == dinfo.out_color_space) {
|
||||
return SkSwizzler::kRGB;
|
||||
}
|
||||
#ifdef ANDROID_RGB
|
||||
if (JCS_RGBA_8888 == dinfo.out_color_space) {
|
||||
return SkSwizzler::kRGBX;
|
||||
}
|
||||
|
||||
if (JCS_RGB_565 == dinfo.out_color_space) {
|
||||
return SkSwizzler::kRGB_565;
|
||||
}
|
||||
#endif
|
||||
if (1 == dinfo.out_color_components && JCS_GRAYSCALE == dinfo.out_color_space) {
|
||||
return SkSwizzler::kGray;
|
||||
}
|
||||
return SkSwizzler::kUnknown;
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert a row of CMYK samples to RGBX in place.
|
||||
* Convert a row of CMYK samples to RGBA in place.
|
||||
* Note that this method moves the row pointer.
|
||||
* @param width the number of pixels in the row that is being converted
|
||||
* CMYK is stored as four bytes per pixel
|
||||
*/
|
||||
static void convert_CMYK_to_RGB(uint8_t* row, uint32_t width) {
|
||||
static void convert_CMYK_to_RGBA(uint8_t* row, uint32_t width) {
|
||||
// We will implement a crude conversion from CMYK -> RGB using formulas
|
||||
// from easyrgb.com.
|
||||
//
|
||||
@ -104,9 +74,16 @@ static void convert_CMYK_to_RGB(uint8_t* row, uint32_t width) {
|
||||
// G = M * K / 255
|
||||
// B = Y * K / 255
|
||||
for (uint32_t x = 0; x < width; x++, row += 4) {
|
||||
#if defined(SK_PMCOLOR_IS_RGBA)
|
||||
row[0] = SkMulDiv255Round(row[0], row[3]);
|
||||
row[1] = SkMulDiv255Round(row[1], row[3]);
|
||||
row[2] = SkMulDiv255Round(row[2], row[3]);
|
||||
#else
|
||||
uint8_t tmp = row[0];
|
||||
row[0] = SkMulDiv255Round(row[2], row[3]);
|
||||
row[1] = SkMulDiv255Round(row[1], row[3]);
|
||||
row[2] = SkMulDiv255Round(tmp, row[3]);
|
||||
#endif
|
||||
row[3] = 0xFF;
|
||||
}
|
||||
}
|
||||
@ -133,7 +110,7 @@ bool SkJpegCodec::ReadHeader(SkStream* stream, SkCodec** codecOut,
|
||||
decoderMgr->init();
|
||||
|
||||
// Read the jpeg header
|
||||
if (JPEG_HEADER_OK != jpeg_read_header(decoderMgr->dinfo(), true)) {
|
||||
if (JPEG_HEADER_OK != turbo_jpeg_read_header(decoderMgr->dinfo(), true)) {
|
||||
return decoderMgr->returnFalse("read_header");
|
||||
}
|
||||
|
||||
@ -168,24 +145,32 @@ SkJpegCodec::SkJpegCodec(const SkImageInfo& srcInfo, SkStream* stream,
|
||||
JpegDecoderMgr* decoderMgr)
|
||||
: INHERITED(srcInfo, stream)
|
||||
, fDecoderMgr(decoderMgr)
|
||||
, fSwizzler(NULL)
|
||||
, fSrcRowBytes(0)
|
||||
{}
|
||||
|
||||
/*
|
||||
* Return a valid set of output dimensions for this decoder, given an input scale
|
||||
*/
|
||||
SkISize SkJpegCodec::onGetScaledDimensions(float desiredScale) const {
|
||||
// libjpeg supports scaling by 1/1, 1/2, 1/4, and 1/8, so we will support these as well
|
||||
long scale;
|
||||
if (desiredScale > 0.75f) {
|
||||
scale = 1;
|
||||
// libjpeg-turbo supports scaling by 1/8, 1/4, 3/8, 1/2, 5/8, 3/4, 7/8, and 1/1, so we will
|
||||
// support these as well
|
||||
long num;
|
||||
long denom = 8;
|
||||
if (desiredScale > 0.875f) {
|
||||
num = 8;
|
||||
} else if (desiredScale > 0.75f) {
|
||||
num = 7;
|
||||
} else if (desiredScale > 0.625f) {
|
||||
num = 6;
|
||||
} else if (desiredScale > 0.5f) {
|
||||
num = 5;
|
||||
} else if (desiredScale > 0.375f) {
|
||||
scale = 2;
|
||||
} else if (desiredScale > 0.1875f) {
|
||||
scale = 4;
|
||||
num = 4;
|
||||
} else if (desiredScale > 0.25f) {
|
||||
num = 3;
|
||||
} else if (desiredScale > 0.125f) {
|
||||
num = 2;
|
||||
} else {
|
||||
scale = 8;
|
||||
num = 1;
|
||||
}
|
||||
|
||||
// Set up a fake decompress struct in order to use libjpeg to calculate output dimensions
|
||||
@ -195,39 +180,14 @@ SkISize SkJpegCodec::onGetScaledDimensions(float desiredScale) const {
|
||||
dinfo.image_height = this->getInfo().height();
|
||||
dinfo.global_state = DSTATE_READY;
|
||||
dinfo.num_components = 0;
|
||||
dinfo.scale_num = 1;
|
||||
dinfo.scale_denom = scale;
|
||||
jpeg_calc_output_dimensions(&dinfo);
|
||||
dinfo.scale_num = num;
|
||||
dinfo.scale_denom = denom;
|
||||
turbo_jpeg_calc_output_dimensions(&dinfo);
|
||||
|
||||
// Return the calculated output dimensions for the given scale
|
||||
return SkISize::Make(dinfo.output_width, dinfo.output_height);
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks if the conversion between the input image and the requested output
|
||||
* image has been implemented
|
||||
*/
|
||||
static bool conversion_possible(const SkImageInfo& dst,
|
||||
const SkImageInfo& src) {
|
||||
// Ensure that the profile type is unchanged
|
||||
if (dst.profileType() != src.profileType()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Ensure that the alpha type is opaque
|
||||
if (kOpaque_SkAlphaType != dst.alphaType()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Always allow kN32 as the color type
|
||||
if (kN32_SkColorType == dst.colorType()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Otherwise require that the destination color type match our recommendation
|
||||
return dst.colorType() == src.colorType();
|
||||
}
|
||||
|
||||
/*
|
||||
* Handles rewinding the input stream if it is necessary
|
||||
*/
|
||||
@ -252,44 +212,90 @@ bool SkJpegCodec::handleRewind() {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks if the conversion between the input image and the requested output
|
||||
* image has been implemented
|
||||
* Sets the output color space
|
||||
*/
|
||||
bool SkJpegCodec::setOutputColorSpace(const SkImageInfo& dst) {
|
||||
const SkImageInfo& src = this->getInfo();
|
||||
|
||||
// Ensure that the profile type is unchanged
|
||||
if (dst.profileType() != src.profileType()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Ensure that the alpha type is opaque
|
||||
if (kOpaque_SkAlphaType != dst.alphaType()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check if we will decode to CMYK because a conversion to RGBA is not supported
|
||||
J_COLOR_SPACE colorSpace = fDecoderMgr->dinfo()->jpeg_color_space;
|
||||
bool isCMYK = JCS_CMYK == colorSpace || JCS_YCCK == colorSpace;
|
||||
|
||||
// Check for valid color types and set the output color space
|
||||
switch (dst.colorType()) {
|
||||
case kN32_SkColorType:
|
||||
if (isCMYK) {
|
||||
fDecoderMgr->dinfo()->out_color_space = JCS_CMYK;
|
||||
} else {
|
||||
// Check the byte ordering of the RGBA color space for the
|
||||
// current platform
|
||||
#if defined(SK_PMCOLOR_IS_RGBA)
|
||||
fDecoderMgr->dinfo()->out_color_space = JCS_EXT_RGBA;
|
||||
#else
|
||||
fDecoderMgr->dinfo()->out_color_space = JCS_EXT_BGRA;
|
||||
#endif
|
||||
}
|
||||
return true;
|
||||
case kRGB_565_SkColorType:
|
||||
if (isCMYK) {
|
||||
return false;
|
||||
} else {
|
||||
fDecoderMgr->dinfo()->out_color_space = JCS_RGB565;
|
||||
}
|
||||
return true;
|
||||
case kGray_8_SkColorType:
|
||||
if (isCMYK) {
|
||||
return false;
|
||||
} else {
|
||||
// We will enable decodes to gray even if the image is color because this is
|
||||
// much faster than decoding to color and then converting
|
||||
fDecoderMgr->dinfo()->out_color_space = JCS_GRAYSCALE;
|
||||
}
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Checks if we can scale to the requested dimensions and scales the dimensions
|
||||
* if possible
|
||||
*/
|
||||
bool SkJpegCodec::scaleToDimensions(uint32_t dstWidth, uint32_t dstHeight) {
|
||||
// libjpeg can scale to 1/1, 1/2, 1/4, and 1/8
|
||||
SkASSERT(1 == fDecoderMgr->dinfo()->scale_num);
|
||||
SkASSERT(1 == fDecoderMgr->dinfo()->scale_denom);
|
||||
jpeg_calc_output_dimensions(fDecoderMgr->dinfo());
|
||||
// libjpeg-turbo can scale to 1/8, 1/4, 3/8, 1/2, 5/8, 3/4, 7/8, and 1/1
|
||||
fDecoderMgr->dinfo()->scale_denom = 8;
|
||||
fDecoderMgr->dinfo()->scale_num = 8;
|
||||
turbo_jpeg_calc_output_dimensions(fDecoderMgr->dinfo());
|
||||
while (fDecoderMgr->dinfo()->output_width != dstWidth ||
|
||||
fDecoderMgr->dinfo()->output_height != dstHeight) {
|
||||
|
||||
// Return a failure if we have tried all of the possible scales
|
||||
if (8 == fDecoderMgr->dinfo()->scale_denom ||
|
||||
if (1 == fDecoderMgr->dinfo()->scale_num ||
|
||||
dstWidth > fDecoderMgr->dinfo()->output_width ||
|
||||
dstHeight > fDecoderMgr->dinfo()->output_height) {
|
||||
return fDecoderMgr->returnFalse("could not scale to requested dimensions");
|
||||
}
|
||||
|
||||
// Try the next scale
|
||||
fDecoderMgr->dinfo()->scale_denom *= 2;
|
||||
jpeg_calc_output_dimensions(fDecoderMgr->dinfo());
|
||||
fDecoderMgr->dinfo()->scale_num -= 1;
|
||||
turbo_jpeg_calc_output_dimensions(fDecoderMgr->dinfo());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* Create the swizzler based on the encoded format
|
||||
*/
|
||||
void SkJpegCodec::initializeSwizzler(const SkImageInfo& dstInfo,
|
||||
void* dst, size_t dstRowBytes,
|
||||
const Options& options) {
|
||||
SkSwizzler::SrcConfig srcConfig = get_src_config(*fDecoderMgr->dinfo());
|
||||
fSwizzler.reset(SkSwizzler::CreateSwizzler(srcConfig, NULL, dstInfo, dst, dstRowBytes,
|
||||
options.fZeroInitialized));
|
||||
fSrcRowBytes = SkSwizzler::BytesPerPixel(srcConfig) * dstInfo.width();
|
||||
}
|
||||
|
||||
/*
|
||||
* Performs the jpeg decode
|
||||
*/
|
||||
@ -316,79 +322,58 @@ SkCodec::Result SkJpegCodec::onGetPixels(const SkImageInfo& dstInfo,
|
||||
return fDecoderMgr->returnFailure("setjmp", kInvalidInput);
|
||||
}
|
||||
|
||||
// Check if we can decode to the requested destination
|
||||
if (!conversion_possible(dstInfo, this->getInfo())) {
|
||||
// Check if we can decode to the requested destination and set the output color space
|
||||
if (!this->setOutputColorSpace(dstInfo)) {
|
||||
return fDecoderMgr->returnFailure("conversion_possible", kInvalidConversion);
|
||||
}
|
||||
|
||||
// Perform the necessary scaling
|
||||
if (!this->scaleToDimensions(dstInfo.width(), dstInfo.height())) {
|
||||
fDecoderMgr->returnFailure("cannot scale to requested dims", kInvalidScale);
|
||||
return fDecoderMgr->returnFailure("cannot scale to requested dims", kInvalidScale);
|
||||
}
|
||||
|
||||
// Now, given valid output dimensions, we can start the decompress
|
||||
if (!jpeg_start_decompress(dinfo)) {
|
||||
if (!turbo_jpeg_start_decompress(dinfo)) {
|
||||
return fDecoderMgr->returnFailure("startDecompress", kInvalidInput);
|
||||
}
|
||||
|
||||
// Create the swizzler
|
||||
this->initializeSwizzler(dstInfo, dst, dstRowBytes, options);
|
||||
if (NULL == fSwizzler) {
|
||||
return fDecoderMgr->returnFailure("getSwizzler", kUnimplemented);
|
||||
}
|
||||
// The recommended output buffer height should always be 1 in high quality modes.
|
||||
// If it's not, we want to know because it means our strategy is not optimal.
|
||||
SkASSERT(1 == dinfo->rec_outbuf_height);
|
||||
|
||||
// This is usually 1, but can also be 2 or 4.
|
||||
// If we wanted to always read one row at a time, we could, but we will save space and time
|
||||
// by using the recommendation from libjpeg.
|
||||
const uint32_t rowsPerDecode = dinfo->rec_outbuf_height;
|
||||
SkASSERT(rowsPerDecode <= 4);
|
||||
|
||||
// Create a buffer to contain decoded rows (libjpeg requires a 2D array)
|
||||
SkASSERT(0 != fSrcRowBytes);
|
||||
SkAutoTDeleteArray<uint8_t> srcBuffer(SkNEW_ARRAY(uint8_t, fSrcRowBytes * rowsPerDecode));
|
||||
JSAMPLE* srcRows[4];
|
||||
uint8_t* srcPtr = srcBuffer.get();
|
||||
for (uint8_t i = 0; i < rowsPerDecode; i++) {
|
||||
srcRows[i] = (JSAMPLE*) srcPtr;
|
||||
srcPtr += fSrcRowBytes;
|
||||
}
|
||||
|
||||
// Ensure that we loop enough times to decode all of the rows
|
||||
// libjpeg will prevent us from reading past the bottom of the image
|
||||
// Perform the decode a single row at a time
|
||||
uint32_t dstHeight = dstInfo.height();
|
||||
for (uint32_t y = 0; y < dstHeight + rowsPerDecode - 1; y += rowsPerDecode) {
|
||||
JSAMPLE* dstRow = (JSAMPLE*) dst;
|
||||
for (uint32_t y = 0; y < dstHeight; y++) {
|
||||
// Read rows of the image
|
||||
uint32_t rowsDecoded = jpeg_read_scanlines(dinfo, srcRows, rowsPerDecode);
|
||||
|
||||
// Convert to RGB if necessary
|
||||
if (JCS_CMYK == dinfo->out_color_space) {
|
||||
convert_CMYK_to_RGB(srcRows[0], dstInfo.width() * rowsDecoded);
|
||||
}
|
||||
|
||||
// Swizzle to output destination
|
||||
for (uint32_t i = 0; i < rowsDecoded; i++) {
|
||||
fSwizzler->next(srcRows[i]);
|
||||
}
|
||||
uint32_t rowsDecoded = turbo_jpeg_read_scanlines(dinfo, &dstRow, 1);
|
||||
|
||||
// If we cannot read enough rows, assume the input is incomplete
|
||||
if (rowsDecoded < rowsPerDecode && y + rowsDecoded < dstHeight) {
|
||||
if (rowsDecoded != 1) {
|
||||
// Fill the remainder of the image with black. This error handling
|
||||
// behavior is unspecified but SkCodec consistently uses black as
|
||||
// the fill color for opaque images. If the destination is kGray,
|
||||
// the low 8 bits of SK_ColorBLACK will be used. Conveniently,
|
||||
// these are zeros, which is the representation for black in kGray.
|
||||
SkSwizzler::Fill(fSwizzler->getDstRow(), dstInfo, dstRowBytes,
|
||||
dstHeight - y - rowsDecoded, SK_ColorBLACK, NULL);
|
||||
SkSwizzler::Fill(dstRow, dstInfo, dstRowBytes, dstHeight - y, SK_ColorBLACK, NULL);
|
||||
|
||||
// Prevent libjpeg from failing on incomplete decode
|
||||
dinfo->output_scanline = dstHeight;
|
||||
|
||||
// Finish the decode and indicate that the input was incomplete.
|
||||
jpeg_finish_decompress(dinfo);
|
||||
turbo_jpeg_finish_decompress(dinfo);
|
||||
return fDecoderMgr->returnFailure("Incomplete image data", kIncompleteInput);
|
||||
}
|
||||
|
||||
// Convert to RGBA if necessary
|
||||
if (JCS_CMYK == dinfo->out_color_space) {
|
||||
convert_CMYK_to_RGBA(dstRow, dstInfo.width());
|
||||
}
|
||||
|
||||
// Move to the next row
|
||||
dstRow = SkTAddOffset<JSAMPLE>(dstRow, dstRowBytes);
|
||||
}
|
||||
jpeg_finish_decompress(dinfo);
|
||||
turbo_jpeg_finish_decompress(dinfo);
|
||||
|
||||
return kSuccess;
|
||||
}
|
||||
@ -408,7 +393,7 @@ SkJpegCodec::~SkJpegCodec() {
|
||||
// We may not have decoded the entire image. Prevent libjpeg-turbo from failing on a
|
||||
// partial decode.
|
||||
fDecoderMgr->dinfo()->output_scanline = this->getInfo().height();
|
||||
jpeg_finish_decompress(fDecoderMgr->dinfo());
|
||||
turbo_jpeg_finish_decompress(fDecoderMgr->dinfo());
|
||||
}
|
||||
}
|
||||
|
||||
@ -420,10 +405,7 @@ public:
|
||||
SkJpegScanlineDecoder(const SkImageInfo& dstInfo, SkJpegCodec* codec)
|
||||
: INHERITED(dstInfo)
|
||||
, fCodec(codec)
|
||||
{
|
||||
fStorage.reset(fCodec->fSrcRowBytes);
|
||||
fSrcRow = static_cast<uint8_t*>(fStorage.get());
|
||||
}
|
||||
{}
|
||||
|
||||
SkImageGenerator::Result onGetScanlines(void* dst, int count, size_t rowBytes) override {
|
||||
// Set the jump location for libjpeg errors
|
||||
@ -432,46 +414,52 @@ public:
|
||||
}
|
||||
|
||||
// Read rows one at a time
|
||||
JSAMPLE* dstRow = (JSAMPLE*) dst;
|
||||
for (int y = 0; y < count; y++) {
|
||||
// Read row of the image
|
||||
uint32_t rowsDecoded = jpeg_read_scanlines(fCodec->fDecoderMgr->dinfo(), &fSrcRow, 1);
|
||||
uint32_t rowsDecoded =
|
||||
turbo_jpeg_read_scanlines(fCodec->fDecoderMgr->dinfo(), &dstRow, 1);
|
||||
if (rowsDecoded != 1) {
|
||||
SkSwizzler::Fill(dst, this->dstInfo(), rowBytes, count - y, SK_ColorBLACK, NULL);
|
||||
SkSwizzler::Fill(
|
||||
dstRow, this->dstInfo(), rowBytes, count - y, SK_ColorBLACK, NULL);
|
||||
fCodec->fDecoderMgr->dinfo()->output_scanline = this->dstInfo().height();
|
||||
return SkImageGenerator::kIncompleteInput;
|
||||
}
|
||||
|
||||
// Convert to RGB if necessary
|
||||
// Convert to RGBA if necessary
|
||||
if (JCS_CMYK == fCodec->fDecoderMgr->dinfo()->out_color_space) {
|
||||
convert_CMYK_to_RGB(fSrcRow, dstInfo().width());
|
||||
convert_CMYK_to_RGBA(dstRow, this->dstInfo().width());
|
||||
}
|
||||
|
||||
// Swizzle to output destination
|
||||
fCodec->fSwizzler->setDstRow(dst);
|
||||
fCodec->fSwizzler->next(fSrcRow);
|
||||
dst = SkTAddOffset<void>(dst, rowBytes);
|
||||
// Move to the next row
|
||||
dstRow = SkTAddOffset<JSAMPLE>(dstRow, rowBytes);
|
||||
}
|
||||
|
||||
return SkImageGenerator::kSuccess;
|
||||
}
|
||||
|
||||
#ifndef TURBO_HAS_SKIP
|
||||
#define turbo_jpeg_skip_scanlines(dinfo, count) \
|
||||
SkAutoMalloc storage(dinfo->output_width * dinfo->out_color_components); \
|
||||
uint8_t* storagePtr = static_cast<uint8_t*>(storage.get()); \
|
||||
for (int y = 0; y < count; y++) { \
|
||||
turbo_jpeg_read_scanlines(dinfo, &storagePtr, 1); \
|
||||
}
|
||||
#endif
|
||||
|
||||
SkImageGenerator::Result onSkipScanlines(int count) override {
|
||||
// Set the jump location for libjpeg errors
|
||||
if (setjmp(fCodec->fDecoderMgr->getJmpBuf())) {
|
||||
return fCodec->fDecoderMgr->returnFailure("setjmp", SkImageGenerator::kInvalidInput);
|
||||
}
|
||||
|
||||
// Read rows but ignore the output
|
||||
for (int y = 0; y < count; y++) {
|
||||
jpeg_read_scanlines(fCodec->fDecoderMgr->dinfo(), &fSrcRow, 1);
|
||||
}
|
||||
turbo_jpeg_skip_scanlines(fCodec->fDecoderMgr->dinfo(), count);
|
||||
|
||||
return SkImageGenerator::kSuccess;
|
||||
}
|
||||
|
||||
private:
|
||||
SkJpegCodec* fCodec; // unowned
|
||||
SkAutoMalloc fStorage;
|
||||
uint8_t* fSrcRow; // ptr into fStorage
|
||||
SkJpegCodec* fCodec; // unowned
|
||||
|
||||
typedef SkScanlineDecoder INHERITED;
|
||||
};
|
||||
@ -491,31 +479,24 @@ SkScanlineDecoder* SkJpegCodec::onGetScanlineDecoder(const SkImageInfo& dstInfo,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Check if we can decode to the requested destination
|
||||
if (!conversion_possible(dstInfo, this->getInfo())) {
|
||||
// Check if we can decode to the requested destination and set the output color space
|
||||
if (!this->setOutputColorSpace(dstInfo)) {
|
||||
SkCodecPrintf("Cannot convert to output type\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Perform the necessary scaling
|
||||
if (!this->scaleToDimensions(dstInfo.width(), dstInfo.height())) {
|
||||
SkCodecPrintf("Cannot scale ot output dimensions\n");
|
||||
SkCodecPrintf("Cannot scale to output dimensions\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Now, given valid output dimensions, we can start the decompress
|
||||
if (!jpeg_start_decompress(fDecoderMgr->dinfo())) {
|
||||
if (!turbo_jpeg_start_decompress(fDecoderMgr->dinfo())) {
|
||||
SkCodecPrintf("start decompress failed\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Create the swizzler
|
||||
this->initializeSwizzler(dstInfo, NULL, dstInfo.minRowBytes(), options);
|
||||
if (NULL == fSwizzler) {
|
||||
SkCodecPrintf("Could not create swizzler\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Return the new scanline decoder
|
||||
return SkNEW_ARGS(SkJpegScanlineDecoder, (dstInfo, this));
|
||||
}
|
||||
|
@ -105,6 +105,13 @@ private:
|
||||
*/
|
||||
bool handleRewind();
|
||||
|
||||
/*
|
||||
* Checks if the conversion between the input image and the requested output
|
||||
* image has been implemented
|
||||
* Sets the output color space
|
||||
*/
|
||||
bool setOutputColorSpace(const SkImageInfo& dst);
|
||||
|
||||
/*
|
||||
* Checks if we can scale to the requested dimensions and scales the dimensions
|
||||
* if possible
|
||||
@ -118,8 +125,6 @@ private:
|
||||
const Options& options);
|
||||
|
||||
SkAutoTDelete<JpegDecoderMgr> fDecoderMgr;
|
||||
SkAutoTDelete<SkSwizzler> fSwizzler;
|
||||
size_t fSrcRowBytes;
|
||||
|
||||
friend class SkJpegScanlineDecoder;
|
||||
|
||||
|
@ -39,22 +39,9 @@ SkCodec::Result JpegDecoderMgr::returnFailure(const char caller[], SkCodec::Resu
|
||||
|
||||
SkColorType JpegDecoderMgr::getColorType() {
|
||||
switch (fDInfo.jpeg_color_space) {
|
||||
case JCS_CMYK:
|
||||
case JCS_YCCK:
|
||||
// libjpeg cannot convert from CMYK or YCCK to RGB.
|
||||
// Here, we ask libjpeg to give us CMYK samples back and
|
||||
// we will later manually convert them to RGB.
|
||||
fDInfo.out_color_space = JCS_CMYK;
|
||||
return kN32_SkColorType;
|
||||
case JCS_GRAYSCALE:
|
||||
fDInfo.out_color_space = JCS_GRAYSCALE;
|
||||
return kGray_8_SkColorType;
|
||||
default:
|
||||
#ifdef ANDROID_RGB
|
||||
fDInfo.out_color_space = JCS_RGBA_8888;
|
||||
#else
|
||||
fDInfo.out_color_space = JCS_RGB;
|
||||
#endif
|
||||
return kN32_SkColorType;
|
||||
}
|
||||
}
|
||||
@ -64,7 +51,7 @@ JpegDecoderMgr::JpegDecoderMgr(SkStream* stream)
|
||||
, fInit(false)
|
||||
{
|
||||
// Error manager must be set before any calls to libjeg in order to handle failures
|
||||
fDInfo.err = jpeg_std_error(&fErrorMgr);
|
||||
fDInfo.err = turbo_jpeg_std_error(&fErrorMgr);
|
||||
fErrorMgr.error_exit = skjpeg_err_exit;
|
||||
}
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include <stdio.h>
|
||||
|
||||
extern "C" {
|
||||
#include "jpeglibmangler.h"
|
||||
#include "jpeglib.h"
|
||||
}
|
||||
|
||||
|
@ -73,7 +73,7 @@ skjpeg_source_mgr::skjpeg_source_mgr(SkStream* stream)
|
||||
init_source = sk_init_source;
|
||||
fill_input_buffer = sk_fill_input_buffer;
|
||||
skip_input_data = sk_skip_input_data;
|
||||
resync_to_restart = jpeg_resync_to_restart;
|
||||
resync_to_restart = turbo_jpeg_resync_to_restart;
|
||||
term_source = sk_term_source;
|
||||
}
|
||||
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include <stdio.h>
|
||||
|
||||
extern "C" {
|
||||
#include "jpeglibmangler.h"
|
||||
#include "jpeglib.h"
|
||||
#include "jerror.h"
|
||||
}
|
||||
|
138
third_party/yasm/README.skia
vendored
Normal file
138
third_party/yasm/README.skia
vendored
Normal file
@ -0,0 +1,138 @@
|
||||
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
These platform specific Makefiles are necesary to build yasm on different platforms. The rest of
|
||||
the yasm code is pulled into externals via the DEPS file.
|
||||
|
||||
Chromium builds yasm using the below procedure. We take a few shortcuts. We mirror Chromium's
|
||||
yasm repositories in our DEPS file, and we copy these config files directly from Chromium.
|
||||
|
||||
NOTE: We were are currently unable to build yasm for Android on x86 and x86_64. Instead we are
|
||||
using a precompiled binary in the config/android directory.
|
||||
TODO (msarett): Fix this!
|
||||
|
||||
Excerpt from [chromium] //src/third_party/yasm/README.chromium:
|
||||
|
||||
Instructions for recreating the yasm.gyp file.
|
||||
1) Get a clean version of the yasm source tree. The clean tree can be found
|
||||
at:
|
||||
|
||||
src/third_party/yasm/source/yasm
|
||||
|
||||
2) Run configure on the pristine source from a different directory (eg.,
|
||||
/tmp/yasm_build). Running configure from another directory will keep
|
||||
the source tree clean.
|
||||
|
||||
3) Next, capture all the output from a build of yasm. We will use the build
|
||||
log as a reference for making the yasm.gyp file.
|
||||
|
||||
make yasm > yasm_build_log 2> yasm_build_err
|
||||
|
||||
4) Check yasm_build_err to see if there are any anomalies beyond yasm's
|
||||
compiler warnings.
|
||||
|
||||
5) Grab the generated Makefile, libyasm-stdint.h, config.h, and put into
|
||||
the correct platform location. For android platform, copy the files
|
||||
generated for linux, but make sure that ENABLE_NLS is not defined to
|
||||
allow mac host compiles to work. For ios, copy the files from mac.
|
||||
|
||||
src/third_party/yasm/source/config/[platform]
|
||||
|
||||
While we do not directly use the "Makefile" to build, it is needed by
|
||||
the "genmodule" subprogram as input for creating the available modules
|
||||
list.
|
||||
|
||||
6) Make sure all the subprograms are represented in yasm.gyp.
|
||||
|
||||
grep '^gcc' yasm_build_log |
|
||||
grep -v ' -DHAVE_CONFIG_H '
|
||||
|
||||
The yasm build creates a bunch of subprograms that in-turn generate
|
||||
more .c files in the build. Luckily the commands to generate the
|
||||
subprogram do not have -DHAVE_CONFIG_H as a cflag.
|
||||
|
||||
From this list, make sure all the subprograms that are build have
|
||||
appropriate targets in the yasm.gyp.
|
||||
|
||||
You will notice, when you get to the next step, that there are some
|
||||
.c source files that are compiled both for yasm, and for genperf.
|
||||
|
||||
Those should go into the genperf_libs target so that they can be
|
||||
shared by the genperf and yasm targets. Find those files by appending
|
||||
|
||||
| grep 'gp-'
|
||||
|
||||
to the command above.
|
||||
|
||||
7) Find all the source files used to build yasm proper.
|
||||
|
||||
grep -E '^gcc' yasm_build_log |
|
||||
grep ' -DHAVE_CONFIG_H ' |
|
||||
awk '{print $NF }' |
|
||||
sed -e "s/'\.\/'\`//" | # Removes some garbage from the build line.
|
||||
sort -u |
|
||||
sed -e "s/\(.*\)/'\1',/" # Add quotes to each line.
|
||||
|
||||
Reversing the -DHAVE_CONFIG_H filter from the command above should
|
||||
list the compile lines for yasm proper.
|
||||
|
||||
This should get you close, but you will need to manually examine this
|
||||
list. However, some of the built products are still included in the
|
||||
command above. Generally, if the source file is in the root directory,
|
||||
it's a generated file.
|
||||
|
||||
Inspect the current yasm.gyp for a list of the subprograms and their
|
||||
outputs.
|
||||
|
||||
Update the sources list in the yasm target accordingly. Read step #9
|
||||
as well if you update the source list to avoid problems.
|
||||
|
||||
8) Update the actions for each of the subprograms.
|
||||
|
||||
Here is the real fun. For each subprogram created, you will need to
|
||||
update the actions and rules in yasm.gyp that invoke the subprogram to
|
||||
generate the files needed by the rest of the build.
|
||||
|
||||
I don't have any good succinct instructions for this. Grep the build
|
||||
log for each subprogram invocation (eg., "./genversion"), look at
|
||||
its command inputs and output, then verify our yasm.gyp does something
|
||||
similar.
|
||||
|
||||
The good news is things likely only link or compile if this is done
|
||||
right so you'll know if there is a problem.
|
||||
|
||||
Again, refer to the existing yasm.gyp for a guide to how the generated
|
||||
files are used.
|
||||
|
||||
Here are a few gotchas:
|
||||
1) genmodule, by default, writes module.c into the current
|
||||
directory. This does not play nicely with gyp. We patch the
|
||||
source during build to allow specifying a specific output file.
|
||||
|
||||
2) Most of the generated files, even though they are .c files, are
|
||||
#included by other files in the build. Make sure they end up
|
||||
in a directory that is in the include path for the build.
|
||||
One of <(shared_generated_dir) or <(generated_dir) should work.
|
||||
|
||||
3) Some of the genperf output is #included while others need to be
|
||||
compiled directly. That is why there are 2 different rules for
|
||||
.gperf files in two targets.
|
||||
|
||||
9) Check for python scripts that are run.
|
||||
|
||||
grep python yasm_build_log
|
||||
|
||||
Yasm uses python scripts to generate the assembly code description
|
||||
files in C++. Make sure to get these put into the gyp file properly as
|
||||
well. An example is gen_x86_insn.py for x86 assembly.
|
||||
|
||||
Note that at least the gen_x86_insn.py script suffers from the same
|
||||
problem as genmacro in that it outputs to the current directory by
|
||||
default. The yasm.gyp build patches this file before invoking it to
|
||||
allow specifying an output directory.
|
||||
|
||||
10) Recreate the 'AdditionalOptions!': [ '/analyze' ] block so that VC++
|
||||
/analyze builds won't fail.
|
||||
|
||||
11) If all that's is finished, attempt to build....and cross your fingers.
|
3822
third_party/yasm/config/android/Makefile
vendored
Normal file
3822
third_party/yasm/config/android/Makefile
vendored
Normal file
File diff suppressed because it is too large
Load Diff
173
third_party/yasm/config/android/config.h
vendored
Normal file
173
third_party/yasm/config/android/config.h
vendored
Normal file
@ -0,0 +1,173 @@
|
||||
/* config.h. Generated from config.h.in by configure. */
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Command name to run C preprocessor */
|
||||
#define CPP_PROG "gcc -E"
|
||||
|
||||
/* */
|
||||
/* #undef ENABLE_NLS */
|
||||
|
||||
/* Define to 1 if you have the `abort' function. */
|
||||
#define HAVE_ABORT 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_CATGETS */
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
|
||||
CoreFoundation framework. */
|
||||
/* #undef HAVE_CFLOCALECOPYCURRENT */
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
|
||||
the CoreFoundation framework. */
|
||||
/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */
|
||||
|
||||
/* Define if the GNU dcgettext() function is already present or preinstalled.
|
||||
*/
|
||||
#define HAVE_DCGETTEXT 1
|
||||
|
||||
/* Define to 1 if you have the <direct.h> header file. */
|
||||
/* #undef HAVE_DIRECT_H */
|
||||
|
||||
/* Define to 1 if you have the `ftruncate' function. */
|
||||
#define HAVE_FTRUNCATE 1
|
||||
|
||||
/* Define to 1 if you have the `getcwd' function. */
|
||||
#define HAVE_GETCWD 1
|
||||
|
||||
/* */
|
||||
#define HAVE_GETTEXT 1
|
||||
|
||||
/* Define to 1 if you have the GNU C Library */
|
||||
#define HAVE_GNU_C_LIBRARY 1
|
||||
|
||||
/* Define if you have the iconv() function and it works. */
|
||||
/* #undef HAVE_ICONV */
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_LC_MESSAGES */
|
||||
|
||||
/* Define to 1 if you have the <libgen.h> header file. */
|
||||
#define HAVE_LIBGEN_H 1
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the `mergesort' function. */
|
||||
/* #undef HAVE_MERGESORT */
|
||||
|
||||
/* Define to 1 if you have the `popen' function. */
|
||||
#define HAVE_POPEN 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_STPCPY */
|
||||
|
||||
/* Define to 1 if you have the `strcasecmp' function. */
|
||||
#define HAVE_STRCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `strcmpi' function. */
|
||||
/* #undef HAVE_STRCMPI */
|
||||
|
||||
/* Define to 1 if you have the `stricmp' function. */
|
||||
/* #undef HAVE_STRICMP */
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the `strncasecmp' function. */
|
||||
#define HAVE_STRNCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `strsep' function. */
|
||||
#define HAVE_STRSEP 1
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the `toascii' function. */
|
||||
#define HAVE_TOASCII 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to 1 if you have the `vsnprintf' function. */
|
||||
#define HAVE_VSNPRINTF 1
|
||||
|
||||
/* Define to 1 if you have the `_stricmp' function. */
|
||||
/* #undef HAVE__STRICMP */
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "yasm"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "bug-yasm@tortall.net"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "yasm"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "yasm 1.2.0"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "yasm"
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "1.2.0"
|
||||
|
||||
/* Define to 1 if the C compiler supports function prototypes. */
|
||||
#define PROTOTYPES 1
|
||||
|
||||
/* The size of `char', as computed by sizeof. */
|
||||
/* #undef SIZEOF_CHAR */
|
||||
|
||||
/* The size of `int', as computed by sizeof. */
|
||||
/* #undef SIZEOF_INT */
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
/* #undef SIZEOF_LONG */
|
||||
|
||||
/* The size of `short', as computed by sizeof. */
|
||||
/* #undef SIZEOF_SHORT */
|
||||
|
||||
/* The size of `void*', as computed by sizeof. */
|
||||
/* #undef SIZEOF_VOIDP */
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "1.2.0"
|
||||
|
||||
/* Define if using the dmalloc debugging malloc package */
|
||||
/* #undef WITH_DMALLOC */
|
||||
|
||||
/* Define like PROTOTYPES; this can be used by system headers. */
|
||||
#define __PROTOTYPES 1
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
/* #undef inline */
|
||||
#endif
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
9
third_party/yasm/config/android/libyasm-stdint.h
vendored
Normal file
9
third_party/yasm/config/android/libyasm-stdint.h
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
#ifndef _YASM_LIBYASM_STDINT_H
|
||||
#define _YASM_LIBYASM_STDINT_H 1
|
||||
#ifndef _GENERATED_STDINT_H
|
||||
#define _GENERATED_STDINT_H "yasm HEAD"
|
||||
/* generated using gcc -std=gnu99 */
|
||||
#define _STDINT_HAVE_STDINT_H 1
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
#endif
|
3822
third_party/yasm/config/chromeos/Makefile
vendored
Normal file
3822
third_party/yasm/config/chromeos/Makefile
vendored
Normal file
File diff suppressed because it is too large
Load Diff
173
third_party/yasm/config/chromeos/config.h
vendored
Normal file
173
third_party/yasm/config/chromeos/config.h
vendored
Normal file
@ -0,0 +1,173 @@
|
||||
/* config.h. Generated from config.h.in by configure. */
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Command name to run C preprocessor */
|
||||
#define CPP_PROG "gcc -E"
|
||||
|
||||
/* */
|
||||
#define ENABLE_NLS 1
|
||||
|
||||
/* Define to 1 if you have the `abort' function. */
|
||||
#define HAVE_ABORT 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_CATGETS */
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
|
||||
CoreFoundation framework. */
|
||||
/* #undef HAVE_CFLOCALECOPYCURRENT */
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
|
||||
the CoreFoundation framework. */
|
||||
/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */
|
||||
|
||||
/* Define if the GNU dcgettext() function is already present or preinstalled.
|
||||
*/
|
||||
#define HAVE_DCGETTEXT 1
|
||||
|
||||
/* Define to 1 if you have the <direct.h> header file. */
|
||||
/* #undef HAVE_DIRECT_H */
|
||||
|
||||
/* Define to 1 if you have the `ftruncate' function. */
|
||||
#define HAVE_FTRUNCATE 1
|
||||
|
||||
/* Define to 1 if you have the `getcwd' function. */
|
||||
#define HAVE_GETCWD 1
|
||||
|
||||
/* */
|
||||
#define HAVE_GETTEXT 1
|
||||
|
||||
/* Define to 1 if you have the GNU C Library */
|
||||
#define HAVE_GNU_C_LIBRARY 1
|
||||
|
||||
/* Define if you have the iconv() function and it works. */
|
||||
/* #undef HAVE_ICONV */
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_LC_MESSAGES */
|
||||
|
||||
/* Define to 1 if you have the <libgen.h> header file. */
|
||||
#define HAVE_LIBGEN_H 1
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the `mergesort' function. */
|
||||
/* #undef HAVE_MERGESORT */
|
||||
|
||||
/* Define to 1 if you have the `popen' function. */
|
||||
#define HAVE_POPEN 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_STPCPY */
|
||||
|
||||
/* Define to 1 if you have the `strcasecmp' function. */
|
||||
#define HAVE_STRCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `strcmpi' function. */
|
||||
/* #undef HAVE_STRCMPI */
|
||||
|
||||
/* Define to 1 if you have the `stricmp' function. */
|
||||
/* #undef HAVE_STRICMP */
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the `strncasecmp' function. */
|
||||
#define HAVE_STRNCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `strsep' function. */
|
||||
#define HAVE_STRSEP 1
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the `toascii' function. */
|
||||
#define HAVE_TOASCII 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to 1 if you have the `vsnprintf' function. */
|
||||
#define HAVE_VSNPRINTF 1
|
||||
|
||||
/* Define to 1 if you have the `_stricmp' function. */
|
||||
/* #undef HAVE__STRICMP */
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "yasm"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "bug-yasm@tortall.net"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "yasm"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "yasm 1.2.0"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "yasm"
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "1.2.0"
|
||||
|
||||
/* Define to 1 if the C compiler supports function prototypes. */
|
||||
#define PROTOTYPES 1
|
||||
|
||||
/* The size of `char', as computed by sizeof. */
|
||||
/* #undef SIZEOF_CHAR */
|
||||
|
||||
/* The size of `int', as computed by sizeof. */
|
||||
/* #undef SIZEOF_INT */
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
/* #undef SIZEOF_LONG */
|
||||
|
||||
/* The size of `short', as computed by sizeof. */
|
||||
/* #undef SIZEOF_SHORT */
|
||||
|
||||
/* The size of `void*', as computed by sizeof. */
|
||||
/* #undef SIZEOF_VOIDP */
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "1.2.0"
|
||||
|
||||
/* Define if using the dmalloc debugging malloc package */
|
||||
/* #undef WITH_DMALLOC */
|
||||
|
||||
/* Define like PROTOTYPES; this can be used by system headers. */
|
||||
#define __PROTOTYPES 1
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
/* #undef inline */
|
||||
#endif
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
9
third_party/yasm/config/chromeos/libyasm-stdint.h
vendored
Normal file
9
third_party/yasm/config/chromeos/libyasm-stdint.h
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
#ifndef _YASM_LIBYASM_STDINT_H
|
||||
#define _YASM_LIBYASM_STDINT_H 1
|
||||
#ifndef _GENERATED_STDINT_H
|
||||
#define _GENERATED_STDINT_H "yasm HEAD"
|
||||
/* generated using gcc -std=gnu99 */
|
||||
#define _STDINT_HAVE_STDINT_H 1
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
#endif
|
3822
third_party/yasm/config/ios/Makefile
vendored
Normal file
3822
third_party/yasm/config/ios/Makefile
vendored
Normal file
File diff suppressed because it is too large
Load Diff
173
third_party/yasm/config/ios/config.h
vendored
Normal file
173
third_party/yasm/config/ios/config.h
vendored
Normal file
@ -0,0 +1,173 @@
|
||||
/* config.h. Generated from config.h.in by configure. */
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Command name to run C preprocessor */
|
||||
#define CPP_PROG "gcc -E"
|
||||
|
||||
/* */
|
||||
/* #undef ENABLE_NLS */
|
||||
|
||||
/* Define to 1 if you have the `abort' function. */
|
||||
#define HAVE_ABORT 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_CATGETS */
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
|
||||
CoreFoundation framework. */
|
||||
#define HAVE_CFLOCALECOPYCURRENT 1
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
|
||||
the CoreFoundation framework. */
|
||||
#define HAVE_CFPREFERENCESCOPYAPPVALUE 1
|
||||
|
||||
/* Define if the GNU dcgettext() function is already present or preinstalled.
|
||||
*/
|
||||
/* #undef HAVE_DCGETTEXT */
|
||||
|
||||
/* Define to 1 if you have the <direct.h> header file. */
|
||||
/* #undef HAVE_DIRECT_H */
|
||||
|
||||
/* Define to 1 if you have the `ftruncate' function. */
|
||||
#define HAVE_FTRUNCATE 1
|
||||
|
||||
/* Define to 1 if you have the `getcwd' function. */
|
||||
#define HAVE_GETCWD 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_GETTEXT */
|
||||
|
||||
/* Define to 1 if you have the GNU C Library */
|
||||
/* #undef HAVE_GNU_C_LIBRARY */
|
||||
|
||||
/* Define if you have the iconv() function and it works. */
|
||||
#define HAVE_ICONV 1
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_LC_MESSAGES */
|
||||
|
||||
/* Define to 1 if you have the <libgen.h> header file. */
|
||||
#define HAVE_LIBGEN_H 1
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the `mergesort' function. */
|
||||
#define HAVE_MERGESORT 1
|
||||
|
||||
/* Define to 1 if you have the `popen' function. */
|
||||
#define HAVE_POPEN 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_STPCPY */
|
||||
|
||||
/* Define to 1 if you have the `strcasecmp' function. */
|
||||
#define HAVE_STRCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `strcmpi' function. */
|
||||
/* #undef HAVE_STRCMPI */
|
||||
|
||||
/* Define to 1 if you have the `stricmp' function. */
|
||||
/* #undef HAVE_STRICMP */
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the `strncasecmp' function. */
|
||||
#define HAVE_STRNCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `strsep' function. */
|
||||
#define HAVE_STRSEP 1
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the `toascii' function. */
|
||||
#define HAVE_TOASCII 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to 1 if you have the `vsnprintf' function. */
|
||||
#define HAVE_VSNPRINTF 1
|
||||
|
||||
/* Define to 1 if you have the `_stricmp' function. */
|
||||
/* #undef HAVE__STRICMP */
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "yasm"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "bug-yasm@tortall.net"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "yasm"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "yasm 1.2.0"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "yasm"
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "1.2.0"
|
||||
|
||||
/* Define to 1 if the C compiler supports function prototypes. */
|
||||
#define PROTOTYPES 1
|
||||
|
||||
/* The size of `char', as computed by sizeof. */
|
||||
/* #undef SIZEOF_CHAR */
|
||||
|
||||
/* The size of `int', as computed by sizeof. */
|
||||
/* #undef SIZEOF_INT */
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
/* #undef SIZEOF_LONG */
|
||||
|
||||
/* The size of `short', as computed by sizeof. */
|
||||
/* #undef SIZEOF_SHORT */
|
||||
|
||||
/* The size of `void*', as computed by sizeof. */
|
||||
/* #undef SIZEOF_VOIDP */
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "1.2.0"
|
||||
|
||||
/* Define if using the dmalloc debugging malloc package */
|
||||
/* #undef WITH_DMALLOC */
|
||||
|
||||
/* Define like PROTOTYPES; this can be used by system headers. */
|
||||
#define __PROTOTYPES 1
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
/* #undef inline */
|
||||
#endif
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
9
third_party/yasm/config/ios/libyasm-stdint.h
vendored
Normal file
9
third_party/yasm/config/ios/libyasm-stdint.h
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
#ifndef _YASM_LIBYASM_STDINT_H
|
||||
#define _YASM_LIBYASM_STDINT_H 1
|
||||
#ifndef _GENERATED_STDINT_H
|
||||
#define _GENERATED_STDINT_H "yasm 0.8.0"
|
||||
/* generated using gcc -std=gnu99 */
|
||||
#define _STDINT_HAVE_STDINT_H 1
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
#endif
|
3822
third_party/yasm/config/linux/Makefile
vendored
Normal file
3822
third_party/yasm/config/linux/Makefile
vendored
Normal file
File diff suppressed because it is too large
Load Diff
173
third_party/yasm/config/linux/config.h
vendored
Normal file
173
third_party/yasm/config/linux/config.h
vendored
Normal file
@ -0,0 +1,173 @@
|
||||
/* config.h. Generated from config.h.in by configure. */
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Command name to run C preprocessor */
|
||||
#define CPP_PROG "gcc -E"
|
||||
|
||||
/* */
|
||||
#define ENABLE_NLS 1
|
||||
|
||||
/* Define to 1 if you have the `abort' function. */
|
||||
#define HAVE_ABORT 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_CATGETS */
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
|
||||
CoreFoundation framework. */
|
||||
/* #undef HAVE_CFLOCALECOPYCURRENT */
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
|
||||
the CoreFoundation framework. */
|
||||
/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */
|
||||
|
||||
/* Define if the GNU dcgettext() function is already present or preinstalled.
|
||||
*/
|
||||
#define HAVE_DCGETTEXT 1
|
||||
|
||||
/* Define to 1 if you have the <direct.h> header file. */
|
||||
/* #undef HAVE_DIRECT_H */
|
||||
|
||||
/* Define to 1 if you have the `ftruncate' function. */
|
||||
#define HAVE_FTRUNCATE 1
|
||||
|
||||
/* Define to 1 if you have the `getcwd' function. */
|
||||
#define HAVE_GETCWD 1
|
||||
|
||||
/* */
|
||||
#define HAVE_GETTEXT 1
|
||||
|
||||
/* Define to 1 if you have the GNU C Library */
|
||||
#define HAVE_GNU_C_LIBRARY 1
|
||||
|
||||
/* Define if you have the iconv() function and it works. */
|
||||
/* #undef HAVE_ICONV */
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_LC_MESSAGES */
|
||||
|
||||
/* Define to 1 if you have the <libgen.h> header file. */
|
||||
#define HAVE_LIBGEN_H 1
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the `mergesort' function. */
|
||||
/* #undef HAVE_MERGESORT */
|
||||
|
||||
/* Define to 1 if you have the `popen' function. */
|
||||
#define HAVE_POPEN 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_STPCPY */
|
||||
|
||||
/* Define to 1 if you have the `strcasecmp' function. */
|
||||
#define HAVE_STRCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `strcmpi' function. */
|
||||
/* #undef HAVE_STRCMPI */
|
||||
|
||||
/* Define to 1 if you have the `stricmp' function. */
|
||||
/* #undef HAVE_STRICMP */
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the `strncasecmp' function. */
|
||||
#define HAVE_STRNCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `strsep' function. */
|
||||
#define HAVE_STRSEP 1
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the `toascii' function. */
|
||||
#define HAVE_TOASCII 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to 1 if you have the `vsnprintf' function. */
|
||||
#define HAVE_VSNPRINTF 1
|
||||
|
||||
/* Define to 1 if you have the `_stricmp' function. */
|
||||
/* #undef HAVE__STRICMP */
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "yasm"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "bug-yasm@tortall.net"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "yasm"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "yasm 1.2.0"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "yasm"
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "1.2.0"
|
||||
|
||||
/* Define to 1 if the C compiler supports function prototypes. */
|
||||
#define PROTOTYPES 1
|
||||
|
||||
/* The size of `char', as computed by sizeof. */
|
||||
/* #undef SIZEOF_CHAR */
|
||||
|
||||
/* The size of `int', as computed by sizeof. */
|
||||
/* #undef SIZEOF_INT */
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
/* #undef SIZEOF_LONG */
|
||||
|
||||
/* The size of `short', as computed by sizeof. */
|
||||
/* #undef SIZEOF_SHORT */
|
||||
|
||||
/* The size of `void*', as computed by sizeof. */
|
||||
/* #undef SIZEOF_VOIDP */
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "1.2.0"
|
||||
|
||||
/* Define if using the dmalloc debugging malloc package */
|
||||
/* #undef WITH_DMALLOC */
|
||||
|
||||
/* Define like PROTOTYPES; this can be used by system headers. */
|
||||
#define __PROTOTYPES 1
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
/* #undef inline */
|
||||
#endif
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
9
third_party/yasm/config/linux/libyasm-stdint.h
vendored
Normal file
9
third_party/yasm/config/linux/libyasm-stdint.h
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
#ifndef _YASM_LIBYASM_STDINT_H
|
||||
#define _YASM_LIBYASM_STDINT_H 1
|
||||
#ifndef _GENERATED_STDINT_H
|
||||
#define _GENERATED_STDINT_H "yasm HEAD"
|
||||
/* generated using gcc -std=gnu99 */
|
||||
#define _STDINT_HAVE_STDINT_H 1
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
#endif
|
3822
third_party/yasm/config/mac/Makefile
vendored
Normal file
3822
third_party/yasm/config/mac/Makefile
vendored
Normal file
File diff suppressed because it is too large
Load Diff
173
third_party/yasm/config/mac/config.h
vendored
Normal file
173
third_party/yasm/config/mac/config.h
vendored
Normal file
@ -0,0 +1,173 @@
|
||||
/* config.h. Generated from config.h.in by configure. */
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Command name to run C preprocessor */
|
||||
#define CPP_PROG "gcc -E"
|
||||
|
||||
/* */
|
||||
/* #undef ENABLE_NLS */
|
||||
|
||||
/* Define to 1 if you have the `abort' function. */
|
||||
#define HAVE_ABORT 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_CATGETS */
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
|
||||
CoreFoundation framework. */
|
||||
#define HAVE_CFLOCALECOPYCURRENT 1
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
|
||||
the CoreFoundation framework. */
|
||||
#define HAVE_CFPREFERENCESCOPYAPPVALUE 1
|
||||
|
||||
/* Define if the GNU dcgettext() function is already present or preinstalled.
|
||||
*/
|
||||
/* #undef HAVE_DCGETTEXT */
|
||||
|
||||
/* Define to 1 if you have the <direct.h> header file. */
|
||||
/* #undef HAVE_DIRECT_H */
|
||||
|
||||
/* Define to 1 if you have the `ftruncate' function. */
|
||||
#define HAVE_FTRUNCATE 1
|
||||
|
||||
/* Define to 1 if you have the `getcwd' function. */
|
||||
#define HAVE_GETCWD 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_GETTEXT */
|
||||
|
||||
/* Define to 1 if you have the GNU C Library */
|
||||
/* #undef HAVE_GNU_C_LIBRARY */
|
||||
|
||||
/* Define if you have the iconv() function and it works. */
|
||||
#define HAVE_ICONV 1
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_LC_MESSAGES */
|
||||
|
||||
/* Define to 1 if you have the <libgen.h> header file. */
|
||||
#define HAVE_LIBGEN_H 1
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the `mergesort' function. */
|
||||
#define HAVE_MERGESORT 1
|
||||
|
||||
/* Define to 1 if you have the `popen' function. */
|
||||
#define HAVE_POPEN 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_STPCPY */
|
||||
|
||||
/* Define to 1 if you have the `strcasecmp' function. */
|
||||
#define HAVE_STRCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `strcmpi' function. */
|
||||
/* #undef HAVE_STRCMPI */
|
||||
|
||||
/* Define to 1 if you have the `stricmp' function. */
|
||||
/* #undef HAVE_STRICMP */
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the `strncasecmp' function. */
|
||||
#define HAVE_STRNCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `strsep' function. */
|
||||
#define HAVE_STRSEP 1
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the `toascii' function. */
|
||||
#define HAVE_TOASCII 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to 1 if you have the `vsnprintf' function. */
|
||||
#define HAVE_VSNPRINTF 1
|
||||
|
||||
/* Define to 1 if you have the `_stricmp' function. */
|
||||
/* #undef HAVE__STRICMP */
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "yasm"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "bug-yasm@tortall.net"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "yasm"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "yasm 1.2.0"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "yasm"
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "1.2.0"
|
||||
|
||||
/* Define to 1 if the C compiler supports function prototypes. */
|
||||
#define PROTOTYPES 1
|
||||
|
||||
/* The size of `char', as computed by sizeof. */
|
||||
/* #undef SIZEOF_CHAR */
|
||||
|
||||
/* The size of `int', as computed by sizeof. */
|
||||
/* #undef SIZEOF_INT */
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
/* #undef SIZEOF_LONG */
|
||||
|
||||
/* The size of `short', as computed by sizeof. */
|
||||
/* #undef SIZEOF_SHORT */
|
||||
|
||||
/* The size of `void*', as computed by sizeof. */
|
||||
/* #undef SIZEOF_VOIDP */
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "1.2.0"
|
||||
|
||||
/* Define if using the dmalloc debugging malloc package */
|
||||
/* #undef WITH_DMALLOC */
|
||||
|
||||
/* Define like PROTOTYPES; this can be used by system headers. */
|
||||
#define __PROTOTYPES 1
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
/* #undef inline */
|
||||
#endif
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
9
third_party/yasm/config/mac/libyasm-stdint.h
vendored
Normal file
9
third_party/yasm/config/mac/libyasm-stdint.h
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
#ifndef _YASM_LIBYASM_STDINT_H
|
||||
#define _YASM_LIBYASM_STDINT_H 1
|
||||
#ifndef _GENERATED_STDINT_H
|
||||
#define _GENERATED_STDINT_H "yasm 0.8.0"
|
||||
/* generated using gcc -std=gnu99 */
|
||||
#define _STDINT_HAVE_STDINT_H 1
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
#endif
|
3822
third_party/yasm/config/openbsd/Makefile
vendored
Normal file
3822
third_party/yasm/config/openbsd/Makefile
vendored
Normal file
File diff suppressed because it is too large
Load Diff
165
third_party/yasm/config/openbsd/config.h
vendored
Normal file
165
third_party/yasm/config/openbsd/config.h
vendored
Normal file
@ -0,0 +1,165 @@
|
||||
/* config.h. Generated from config.h.in by configure. */
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Command name to run C preprocessor */
|
||||
#define CPP_PROG "cc -E"
|
||||
|
||||
/* */
|
||||
/* #undef ENABLE_NLS */
|
||||
|
||||
/* Define to 1 if you have the `abort' function. */
|
||||
#define HAVE_ABORT 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_CATGETS */
|
||||
|
||||
/* Define if the GNU dcgettext() function is already present or preinstalled.
|
||||
*/
|
||||
/* #undef HAVE_DCGETTEXT */
|
||||
|
||||
/* Define to 1 if you have the <direct.h> header file. */
|
||||
/* #undef HAVE_DIRECT_H */
|
||||
|
||||
/* Define to 1 if you have the `ftruncate' function. */
|
||||
#define HAVE_FTRUNCATE 1
|
||||
|
||||
/* Define to 1 if you have the `getcwd' function. */
|
||||
#define HAVE_GETCWD 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_GETTEXT */
|
||||
|
||||
/* Define to 1 if you have the GNU C Library */
|
||||
/* #undef HAVE_GNU_C_LIBRARY */
|
||||
|
||||
/* Define if you have the iconv() function and it works. */
|
||||
/* #undef HAVE_ICONV */
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_LC_MESSAGES */
|
||||
|
||||
/* Define to 1 if you have the <libgen.h> header file. */
|
||||
#define HAVE_LIBGEN_H 1
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the `mergesort' function. */
|
||||
#define HAVE_MERGESORT 1
|
||||
|
||||
/* Define to 1 if you have the `popen' function. */
|
||||
#define HAVE_POPEN 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_STPCPY */
|
||||
|
||||
/* Define to 1 if you have the `strcasecmp' function. */
|
||||
#define HAVE_STRCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `strcmpi' function. */
|
||||
/* #undef HAVE_STRCMPI */
|
||||
|
||||
/* Define to 1 if you have the `stricmp' function. */
|
||||
/* #undef HAVE_STRICMP */
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the `strncasecmp' function. */
|
||||
#define HAVE_STRNCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `strsep' function. */
|
||||
#define HAVE_STRSEP 1
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the `toascii' function. */
|
||||
#define HAVE_TOASCII 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to 1 if you have the `vsnprintf' function. */
|
||||
#define HAVE_VSNPRINTF 1
|
||||
|
||||
/* Define to 1 if you have the `_stricmp' function. */
|
||||
/* #undef HAVE__STRICMP */
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "yasm"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "bug-yasm@tortall.net"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "yasm"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "yasm 1.2.0"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "yasm"
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "1.2.0"
|
||||
|
||||
/* Define to 1 if the C compiler supports function prototypes. */
|
||||
#define PROTOTYPES 1
|
||||
|
||||
/* The size of `char', as computed by sizeof. */
|
||||
/* #undef SIZEOF_CHAR */
|
||||
|
||||
/* The size of `int', as computed by sizeof. */
|
||||
/* #undef SIZEOF_INT */
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
/* #undef SIZEOF_LONG */
|
||||
|
||||
/* The size of `short', as computed by sizeof. */
|
||||
/* #undef SIZEOF_SHORT */
|
||||
|
||||
/* The size of `void*', as computed by sizeof. */
|
||||
/* #undef SIZEOF_VOIDP */
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "1.2.0"
|
||||
|
||||
/* Define if using the dmalloc debugging malloc package */
|
||||
/* #undef WITH_DMALLOC */
|
||||
|
||||
/* Define like PROTOTYPES; this can be used by system headers. */
|
||||
#define __PROTOTYPES 1
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
/* #undef inline */
|
||||
#endif
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
9
third_party/yasm/config/openbsd/libyasm-stdint.h
vendored
Normal file
9
third_party/yasm/config/openbsd/libyasm-stdint.h
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
#ifndef _YASM_LIBYASM_STDINT_H
|
||||
#define _YASM_LIBYASM_STDINT_H 1
|
||||
#ifndef _GENERATED_STDINT_H
|
||||
#define _GENERATED_STDINT_H "yasm 1.1.0"
|
||||
/* generated using gcc -std=gnu99 */
|
||||
#define _STDINT_HAVE_STDINT_H 1
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
#endif
|
3822
third_party/yasm/config/win/Makefile
vendored
Normal file
3822
third_party/yasm/config/win/Makefile
vendored
Normal file
File diff suppressed because it is too large
Load Diff
173
third_party/yasm/config/win/config.h
vendored
Normal file
173
third_party/yasm/config/win/config.h
vendored
Normal file
@ -0,0 +1,173 @@
|
||||
/* config.h. Generated from config.h.in by configure. */
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Command name to run C preprocessor */
|
||||
#define CPP_PROG "gcc -E"
|
||||
|
||||
/* */
|
||||
/* #undef ENABLE_NLS */
|
||||
|
||||
/* Define to 1 if you have the `abort' function. */
|
||||
#define HAVE_ABORT 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_CATGETS */
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
|
||||
CoreFoundation framework. */
|
||||
/* #undef HAVE_CFLOCALECOPYCURRENT */
|
||||
|
||||
/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
|
||||
the CoreFoundation framework. */
|
||||
/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */
|
||||
|
||||
/* Define if the GNU dcgettext() function is already present or preinstalled.
|
||||
*/
|
||||
#define HAVE_DCGETTEXT 1
|
||||
|
||||
/* Define to 1 if you have the <direct.h> header file. */
|
||||
#define HAVE_DIRECT_H 1
|
||||
|
||||
/* Define to 1 if you have the `ftruncate' function. */
|
||||
/* #undef HAVE_FTRUNCATE */
|
||||
|
||||
/* Define to 1 if you have the `getcwd' function. */
|
||||
#define HAVE_GETCWD 1
|
||||
|
||||
/* */
|
||||
#define HAVE_GETTEXT 1
|
||||
|
||||
/* Define to 1 if you have the GNU C Library */
|
||||
#define HAVE_GNU_C_LIBRARY 0
|
||||
|
||||
/* Define if you have the iconv() function and it works. */
|
||||
/* #undef HAVE_ICONV */
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_LC_MESSAGES */
|
||||
|
||||
/* Define to 1 if you have the <libgen.h> header file. */
|
||||
/* #undef HAVE_LIBGEN_H */
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the `mergesort' function. */
|
||||
/* #undef HAVE_MERGESORT */
|
||||
|
||||
/* Define to 1 if you have the `popen' function. */
|
||||
/* #undef HAVE_POPEN */
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* */
|
||||
/* #undef HAVE_STPCPY */
|
||||
|
||||
/* Define to 1 if you have the `strcasecmp' function. */
|
||||
/* #undef HAVE_STRCASECMP */
|
||||
|
||||
/* Define to 1 if you have the `strcmpi' function. */
|
||||
/* #undef HAVE_STRCMPI */
|
||||
|
||||
/* Define to 1 if you have the `stricmp' function. */
|
||||
/* #undef HAVE_STRICMP */
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
/* #undef HAVE_STRINGS_H */
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the `strncasecmp' function. */
|
||||
#define HAVE_STRNCASECMP 1
|
||||
|
||||
/* Define to 1 if you have the `strsep' function. */
|
||||
/* #undef HAVE_STRSEP */
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the `toascii' function. */
|
||||
#define HAVE_TOASCII 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
/* #undef HAVE_UNISTD_H */
|
||||
|
||||
/* Define to 1 if you have the `vsnprintf' function. */
|
||||
#define HAVE_VSNPRINTF 1
|
||||
|
||||
/* Define to 1 if you have the `_stricmp' function. */
|
||||
/* #undef HAVE__STRICMP */
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "yasm"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "bug-yasm@tortall.net"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "yasm"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "yasm 1.2.0"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "yasm"
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#define PACKAGE_URL ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "1.2.0"
|
||||
|
||||
/* Define to 1 if the C compiler supports function prototypes. */
|
||||
#define PROTOTYPES 1
|
||||
|
||||
/* The size of `char', as computed by sizeof. */
|
||||
/* #undef SIZEOF_CHAR */
|
||||
|
||||
/* The size of `int', as computed by sizeof. */
|
||||
/* #undef SIZEOF_INT */
|
||||
|
||||
/* The size of `long', as computed by sizeof. */
|
||||
/* #undef SIZEOF_LONG */
|
||||
|
||||
/* The size of `short', as computed by sizeof. */
|
||||
/* #undef SIZEOF_SHORT */
|
||||
|
||||
/* The size of `void*', as computed by sizeof. */
|
||||
/* #undef SIZEOF_VOIDP */
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "1.2.0"
|
||||
|
||||
/* Define if using the dmalloc debugging malloc package */
|
||||
/* #undef WITH_DMALLOC */
|
||||
|
||||
/* Define like PROTOTYPES; this can be used by system headers. */
|
||||
#define __PROTOTYPES 1
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
/* #undef const */
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
/* #undef inline */
|
||||
#endif
|
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
/* #undef size_t */
|
9
third_party/yasm/config/win/libyasm-stdint.h
vendored
Normal file
9
third_party/yasm/config/win/libyasm-stdint.h
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
#ifndef _YASM_LIBYASM_STDINT_H
|
||||
#define _YASM_LIBYASM_STDINT_H 1
|
||||
#ifndef _GENERATED_STDINT_H
|
||||
#define _GENERATED_STDINT_H "yasm HEAD"
|
||||
/* generated using gcc -std=gnu99 */
|
||||
#define _STDINT_HAVE_STDINT_H 1
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
#endif
|
30
third_party/yasm/config/win/stdint.h
vendored
Normal file
30
third_party/yasm/config/win/stdint.h
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
// YASM is written in C99 and requires <stdint.h> and <inttypes.h>.
|
||||
|
||||
#ifndef THIRD_PARTY_YASM_SOURCE_CONFIG_WIN_STDINT_H_
|
||||
#define THIRD_PARTY_YASM_SOURCE_CONFIG_WIN_STDINT_H_
|
||||
|
||||
#if !defined(_MSC_VER)
|
||||
#error This file should only be included when compiling with MSVC.
|
||||
#endif
|
||||
|
||||
// Define C99 equivalent types.
|
||||
typedef signed char int8_t;
|
||||
typedef signed short int16_t;
|
||||
typedef signed int int32_t;
|
||||
typedef signed long long int64_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned int uint32_t;
|
||||
typedef unsigned long long uint64_t;
|
||||
|
||||
// Define the C99 INT64_C macro that is used for declaring 64-bit literals.
|
||||
// Technically, these should only be definied when __STDC_CONSTANT_MACROS
|
||||
// is defined.
|
||||
#define INT64_C(value) value##LL
|
||||
#define UINT64_C(value) value##ULL
|
||||
|
||||
#endif // THIRD_PARTY_YASM_SOURCE_CONFIG_WIN_STDINT_H_
|
Loading…
Reference in New Issue
Block a user