Lines Matching +full:gas +full:- +full:preprocessor
1 Building libjpeg-turbo
6 ------------------
11 - [CMake](http://www.cmake.org) v2.8.12 or later
13 - [NASM](http://www.nasm.us) or [YASM](http://yasm.tortall.net)
14 (if building x86 or x86-64 SIMD extensions)
16 * If using NASM, 2.10 or later (except 2.11.08) is required for an x86-64 Mac
17 build (2.11.08 does not work properly with libjpeg-turbo's x86-64 SIMD code
21 - NOTE: Currently, if it is desirable to hide the SIMD function symbols in
23 libjpeg-turbo, then YASM must be used when building libjpeg-turbo.
34 ARCH=`uname -m`
35 rpmbuild --rebuild nasm-{version}.src.rpm
36 rpm -Uvh /usr/src/redhat/RPMS/$ARCH/nasm-{version}.$ARCH.rpm
43 - GCC v4.1 (or later) or Clang recommended for best performance
45 - If building the TurboJPEG Java wrapper, JDK or OpenJDK 1.5 or later is
57 - Microsoft Visual C++ 2005 or later
61 [Windows SDK](http://msdn.microsoft.com/en-us/windows/bb980924.aspx).
62 The Windows SDK includes both 32-bit and 64-bit Visual C++ compilers and
63 everything necessary to build libjpeg-turbo.
67 build 32-bit code.)
68 * If you intend to build libjpeg-turbo from the command line, then add the
74 SDK. You can pass optional arguments to `SetEnv.cmd` to specify a 32-bit
75 or 64-bit build environment.
79 - MinGW
81 [MSYS2](http://msys2.github.io/) or [tdm-gcc](http://tdm-gcc.tdragon.net/)
86 - If building the TurboJPEG Java wrapper, JDK 1.5 or later is required. This
93 Out-of-Tree Builds
94 ------------------
98 necessarily be the same as the libjpeg-turbo source directory. You can create
100 libjpeg-turbo can be built from the same source tree using different compilers
102 directory, whereas *{source_directory}* refers to the libjpeg-turbo source
103 directory. For in-tree builds, these directories are the same.
107 ---------------
116 The following procedure will build libjpeg-turbo on Unix and Unix-like systems.
117 (On Solaris, this generates a 32-bit build. See "Build Recipes" below for
118 64-bit build instructions.)
121 cmake -G"Unix Makefiles" [additional CMake flags] {source_directory}
131 **cygjpeg-{version}.dll** (Cygwin)<br>
150 **cygturbojpeg-0.dll** (Cygwin)<br>
164 cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release [additional CMake flags] {source_directory}
167 This will build either a 32-bit or a 64-bit version of libjpeg-turbo, depending
172 **jpeg-static.lib**<br>
181 **turbojpeg-static.lib**<br>
201 cmake -G"Visual Studio 10" [additional CMake flags] {source_directory}
204 to build a 64-bit version of libjpeg-turbo. A separate build directory must be
205 used for 32-bit and 64-bit builds.
209 build of libjpeg-turbo.
213 **{configuration}/jpeg-static.lib**<br>
222 **{configuration}/turbojpeg-static.lib**<br>
239 environment. If you are cross-compiling on a Un*x platform (including Mac and
243 cmake -G"MSYS Makefiles" [additional CMake flags] {source_directory}
251 **libjpeg-{version}.dll**<br>
272 Add `-DCMAKE_BUILD_TYPE=Debug` to the CMake command line. Or, if building
273 with NMake, remove `-DCMAKE_BUILD_TYPE=Release` (Debug builds are the default
279 Add `-DWITH_JPEG7=1` to the CMake command line to build a version of
280 libjpeg-turbo that is API/ABI-compatible with libjpeg v7. Add `-DWITH_JPEG8=1`
281 to the CMake command line to build a version of libjpeg-turbo that is
282 API/ABI-compatible with libjpeg v8. See [README.md](README.md) for more
286 ### In-Memory Source/Destination Managers
288 When using libjpeg v6b or v7 API/ABI emulation, add `-DWITH_MEM_SRCDST=0` to
289 the CMake command line to build a version of libjpeg-turbo that lacks the
298 included in this release of libjpeg-turbo. libjpeg-turbo's implementation is
302 add `-DWITH_ARITH_ENC=0` or `-DWITH_ARITH_DEC=0` to the CMake command line to
308 Add `-DWITH_JAVA=1` to the CMake command line to incorporate an optional Java
310 Java front-end classes to support it. This allows the TurboJPEG shared library
315 build/test libjpeg-turbo, then (prior to running CMake) set the `JAVA_HOME`
328 -------------
331 ### 32-bit Build on 64-bit Linux/Unix/Mac
336 CFLAGS=-m32
337 LDFLAGS=-m32
340 ### 64-bit Build on Solaris
345 CFLAGS=-m64
346 LDFLAGS=-m64
355 ### 32-bit MinGW Build on Un*x (including Mac and Cygwin)
362 set(CMAKE_C_COMPILER {mingw_binary_path}/i686-w64-mingw32-gcc)
363 set(CMAKE_RC_COMPILER {mingw_binary_path}/i686-w64-mingw32-windres)
369 cmake -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake \
374 ### 64-bit MinGW Build on Un*x (including Mac and Cygwin)
381 set(CMAKE_C_COMPILER {mingw_binary_path}/x86_64-w64-mingw32-gcc)
382 set(CMAKE_RC_COMPILER {mingw_binary_path}/x86_64-w64-mingw32-windres)
388 cmake -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake \
393 Building libjpeg-turbo for iOS
394 ------------------------------
398 advantage of libjpeg-turbo's SIMD extensions to significantly accelerate JPEG
399 compression/decompression. This section describes how to build libjpeg-turbo
405 - For configurations that require [gas-preprocessor.pl]
406 (https://raw.githubusercontent.com/libjpeg-turbo/gas-preprocessor/master/gas-preprocessor.pl),
410 ### ARMv7 (32-bit)
412 **gas-preprocessor.pl required**
414 The following scripts demonstrate how to build libjpeg-turbo to run on the
415 iPhone 3GS-4S/iPad 1st-3rd Generation and newer:
417 #### Xcode 4.2 and earlier (LLVM-GCC)
421 …export CFLAGS="-mfloat-abi=softfp -march=armv7 -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -miphon…
428 set(CMAKE_C_COMPILER ${IOS_PLATFORMDIR}/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2)
431 cmake -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake \
432 -DCMAKE_OSX_SYSROOT=${IOS_SYSROOT[0]} \
436 #### Xcode 4.3-4.6 (LLVM-GCC)
446 export CFLAGS="-mfloat-abi=softfp -arch armv7 -miphoneos-version-min=3.0"
447 export ASMFLAGS="-no-integrated-as"
457 cmake -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake \
458 -DCMAKE_OSX_SYSROOT=${IOS_SYSROOT[0]} \
463 ### ARMv7s (32-bit)
465 **gas-preprocessor.pl required**
467 The following scripts demonstrate how to build libjpeg-turbo to run on the
470 #### Xcode 4.5-4.6 (LLVM-GCC)
474 …export CFLAGS="-Wall -mfloat-abi=softfp -march=armv7s -mcpu=swift -mtune=swift -mfpu=neon -miphone…
481 set(CMAKE_C_COMPILER ${IOS_PLATFORMDIR}/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2)
484 cmake -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake \
485 -DCMAKE_OSX_SYSROOT=${IOS_SYSROOT[0]} \
494 export CFLAGS="-Wall -mfloat-abi=softfp -arch armv7s -miphoneos-version-min=6.0"
497 ### ARMv8 (64-bit)
499 **gas-preprocessor.pl required if using Xcode < 6**
501 The following script demonstrates how to build libjpeg-turbo to run on the
506 export CFLAGS="-Wall -arch arm64 -miphoneos-version-min=7.0 -funwind-tables"
516 cmake -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake \
517 -DCMAKE_OSX_SYSROOT=${IOS_SYSROOT[0]} \
525 Building libjpeg-turbo for Android
526 ----------------------------------
528 Building libjpeg-turbo for Android platforms requires v13b or later of the
532 ### ARMv7 (32-bit)
538 NDK_PATH={full path to the NDK directory-- for example,
539 /opt/android/android-ndk-r16b}
540 TOOLCHAIN={"gcc" or "clang"-- "gcc" must be used with NDK r16b and earlier,
542 ANDROID_VERSION={the minimum version of Android to support-- for example,
546 cmake -G"Unix Makefiles" \
547 -DANDROID_ABI=armeabi-v7a \
548 -DANDROID_ARM_MODE=arm \
549 -DANDROID_PLATFORM=android-${ANDROID_VERSION} \
550 -DANDROID_TOOLCHAIN=${TOOLCHAIN} \
551 -DCMAKE_ASM_FLAGS="--target=arm-linux-androideabi${ANDROID_VERSION}" \
552 -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \
557 ### ARMv8 (64-bit)
563 NDK_PATH={full path to the NDK directory-- for example,
564 /opt/android/android-ndk-r16b}
565 TOOLCHAIN={"gcc" or "clang"-- "gcc" must be used with NDK r14b and earlier,
568 is required for a 64-bit build.}
571 cmake -G"Unix Makefiles" \
572 -DANDROID_ABI=arm64-v8a \
573 -DANDROID_ARM_MODE=arm \
574 -DANDROID_PLATFORM=android-${ANDROID_VERSION} \
575 -DANDROID_TOOLCHAIN=${TOOLCHAIN} \
576 -DCMAKE_ASM_FLAGS="--target=aarch64-linux-android${ANDROID_VERSION}" \
577 -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \
582 ### x86 (32-bit)
588 NDK_PATH={full path to the NDK directory-- for example,
589 /opt/android/android-ndk-r16b}
590 TOOLCHAIN={"gcc" or "clang"-- "gcc" must be used with NDK r14b and earlier,
592 ANDROID_VERSION={The minimum version of Android to support-- for example,
596 cmake -G"Unix Makefiles" \
597 -DANDROID_ABI=x86 \
598 -DANDROID_PLATFORM=android-${ANDROID_VERSION} \
599 -DANDROID_TOOLCHAIN=${TOOLCHAIN} \
600 -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \
605 ### x86-64 (64-bit)
611 NDK_PATH={full path to the NDK directory-- for example,
612 /opt/android/android-ndk-r16b}
613 TOOLCHAIN={"gcc" or "clang"-- "gcc" must be used with NDK r14b and earlier,
616 is required for a 64-bit build.}
619 cmake -G"Unix Makefiles" \
620 -DANDROID_ABI=x86_64 \
621 -DANDROID_PLATFORM=android-${ANDROID_VERSION} \
622 -DANDROID_TOOLCHAIN=${TOOLCHAIN} \
623 -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}/build/cmake/android.toolchain.cmake \
629 ----------------------
638 cmake-gui {source_directory}
641 text-based interactive version of CMake, and CMake-GUI is a GUI version. Both
642 will display all variables that are relevant to the libjpeg-turbo build, their
646 Installing libjpeg-turbo
649 You can use the build system to install libjpeg-turbo (as opposed to creating
653 the Visual Studio IDE) will uninstall libjpeg-turbo.
656 libjpeg-turbo into a directory of your choosing. If you don't specify
659 **c:\libjpeg-turbo**<br>
660 Visual Studio 32-bit build
662 **c:\libjpeg-turbo64**<br>
663 Visual Studio 64-bit build
665 **c:\libjpeg-turbo-gcc**<br>
666 MinGW 32-bit build
668 **c:\libjpeg-turbo-gcc64**<br>
669 MinGW 64-bit build
671 **/opt/libjpeg-turbo**<br>
674 The default value of `CMAKE_INSTALL_PREFIX` causes the libjpeg-turbo files to
676 libjpeg-turbo binary packages. Changing the value of `CMAKE_INSTALL_PREFIX`
677 (for instance, to **/usr/local**) causes the libjpeg-turbo files to be
683 finer degree of control over where specific files in the libjpeg-turbo
697 cmake -G"{generator type}" -DCMAKE_INSTALL_LIBDIR:PATH=lib {source_directory}
711 -----
715 Create Red Hat-style binary RPM package. Requires RPM v4 or later.
720 Red Hat-style source RPM package from the tarball. Requires RPM v4 or later.
724 Create Debian-style binary package. Requires dpkg.
728 ---
740 This creates a Mac package/disk image that contains universal x86-64/i386/ARM
745 * `OSX_32BIT_BUILD`: Directory containing an i386 (32-bit) Mac build of
746 libjpeg-turbo (default: *{source_directory}*/osxx86)
747 * `IOS_ARMV7_BUILD`: Directory containing an ARMv7 (32-bit) iOS build of
748 libjpeg-turbo (default: *{source_directory}*/iosarmv7)
749 * `IOS_ARMV7S_BUILD`: Directory containing an ARMv7s (32-bit) iOS build of
750 libjpeg-turbo (default: *{source_directory}*/iosarmv7s)
751 * `IOS_ARMV8_BUILD`: Directory containing an ARMv8 (64-bit) iOS build of
752 libjpeg-turbo (default: *{source_directory}*/iosarmv8)
755 sub-builds of libjpeg-turbo (see "Build Recipes" and "Building libjpeg-turbo
758 libjpeg-turbo as an out-of-tree build, and build it. Once the primary build
760 will build the sub-builds, use lipo to combine them into a single set of
766 ------
774 -------
788 The installer package (libjpeg-turbo-*{version}*[-gcc|-vc][64].exe) will be
802 The most common way to test libjpeg-turbo is by invoking `make test` (Un*x) or
806 libjpeg-turbo and libjpeg v6b. This also invokes the TurboJPEG unit tests,