Eliminated the awkward and confusing "TurboJPEG/OSS" designation, since there are no other active implementations of the TurboJPEG API anymore; don't refer to the libjpeg API library as "libjpeg-turbo" anymore, since that can be confusing;  ARM v7s build instructions


git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@919 632fc199-4ca6-4c93-a231-07263d6284db
diff --git a/BUILDING.txt b/BUILDING.txt
index 2e52938..3207d24 100644
--- a/BUILDING.txt
+++ b/BUILDING.txt
@@ -34,7 +34,7 @@
 
 -- GCC v4.1 or later recommended for best performance
 
--- If building the TurboJPEG/OSS Java wrapper, JDK or OpenJDK 1.5 or later is
+-- If building the TurboJPEG Java wrapper, JDK or OpenJDK 1.5 or later is
    required.  Some systems, such as OS X 10.4, Solaris 10 and later, and Red
    Hat Enterprise Linux 5 and later, have this pre-installed.  On OS X 10.5 and
    later, it will be necessary to install the Java Developer Package, which can
@@ -61,9 +61,9 @@
 Building libjpeg-turbo
 ======================
 
-The following procedure will build libjpeg-turbo on Linux, FreeBSD, 32-bit
-OS X, Cygwin, and Solaris/x86 systems (on Solaris, this generates a 32-bit
-library.  See below for 64-bit build instructions.)
+The following procedure will build libjpeg-turbo on Linux, FreeBSD, Cygwin, and
+Solaris/x86 systems (on Solaris, this generates a 32-bit library.  See below
+for 64-bit build instructions.)
 
   cd {source_directory}
   autoreconf -fiv
@@ -77,34 +77,38 @@
 This will generate the following files under .libs/
 
   libjpeg.a
-      Static link library for libjpeg-turbo
+      Static link library for the libjpeg API
 
-  libjpeg.so.{version} (Linux, Solaris)
+  libjpeg.so.{version} (Linux, Unix)
   libjpeg.{version}.dylib (OS X)
   cygjpeg-{version}.dll (Cygwin)
-      Shared library for libjpeg-turbo
+      Shared library for the libjpeg API
 
-  libjpeg.so (Linux, Solaris)
+  By default, {version} is 62.1.0, 7.1.0, or 8.0.2, depending on whether
+  libjpeg v6b (default), v7, or v8 emulation is enabled.  If using Cygwin,
+  {version} is 62, 7, or 8.
+
+  libjpeg.so (Linux, Unix)
   libjpeg.dylib (OS X)
+      Development symlink for the libjpeg API
+
   libjpeg.dll.a (Cygwin)
-      Development stub for libjpeg-turbo shared library
+      Import library for the libjpeg API
 
   libturbojpeg.a
-      Static link library for TurboJPEG/OSS
+      Static link library for the TurboJPEG API
 
-  libturbojpeg.so (Linux, Solaris)
+  libturbojpeg.so.0.0.0 (Linux, Unix)
+  libturbojpeg.0.0.0.dylib (OS X)
+  cygturbojpeg-0.dll (Cygwin)
+      Shared library for the TurboJPEG API
+
+  libturbojpeg.so (Linux, Unix)
   libturbojpeg.dylib (OS X)
-      Shared library and development stub for TurboJPEG/OSS
-
-  cygturbojpeg.dll (Cygwin)
-      Shared library for TurboJPEG/OSS
+      Development symlink for the TurboJPEG API
 
   libturbojpeg.dll.a (Cygwin)
-      Development stub for TurboJPEG/OSS shared library
-
-{version} is 62.0.0, 7.0.0, or 8.0.2, depending on whether libjpeg v6b
-(default), v7, or v8 emulation is enabled.  If using Cygwin, {version} is
-62, 7, or 8.
+      Import library for the TurboJPEG API
 
 
 libjpeg v7 or v8 API/ABI Emulation
@@ -117,6 +121,16 @@
 on libjpeg v7 and v8 emulation.
 
 
+In-Memory Source/Destination Managers
+-------------------------------------
+
+When using libjpeg v6b or v7 API/ABI emulation, add --without-mem-srcdst to the
+configure command line to build a version of libjpeg-turbo that lacks the
+jpeg_mem_src() and jpeg_mem_dest() functions.  These functions were not part of
+the original libjpeg v6b and v7 APIs, so removing them ensures strict
+conformance with those APIs.  See README-turbo.txt for more information.
+
+
 Arithmetic Coding Support
 -------------------------
 
@@ -129,13 +143,12 @@
 disable encoding or decoding (respectively.)
 
 
-TurboJPEG/OSS Java Wrapper
---------------------------
+TurboJPEG Java Wrapper
+----------------------
 Add --with-java to the configure command line to incorporate an optional Java
-Native Interface wrapper into the TurboJPEG/OSS dynamic library and build the
-Java front-end classes to support it.  This allows the TurboJPEG/OSS dynamic
-library to be used directly from Java applications.  See java/README for more
-details.
+Native Interface wrapper into the TurboJPEG shared library and build the Java
+front-end classes to support it.  This allows the TurboJPEG shared library to
+be used directly from Java applications.  See java/README for more details.
 
 You can set the JAVAC, JAR, and JAVA configure variables to specify
 alternate commands for javac, jar, and java (respectively.)  You can also
@@ -167,7 +180,7 @@
 /usr/lib64 to overwrite the system's version of libjpeg.  If you do this,
 however, then be sure to BACK UP YOUR SYSTEM'S INSTALLATION OF LIBJPEG before
 overwriting it.  It is recommended that you instead install libjpeg-turbo into
-a non-system directory and manipulate the LD_LIBRARY_PATH or create sym links
+a non-system directory and manipulate the LD_LIBRARY_PATH or create symlinks
 to force applications to use libjpeg-turbo instead of libjpeg.  See
 README-turbo.txt for more information.
 
@@ -177,8 +190,8 @@
 =============
 
 
-32-bit Library Build on 64-bit Linux
-------------------------------------
+32-bit Build on 64-bit Linux
+----------------------------
 
 Add
 
@@ -187,8 +200,8 @@
 to the configure command line.
 
 
-64-bit Library Build on 64-bit OS X
------------------------------------
+64-bit Build on 64-bit OS X
+---------------------------
 
 Add
 
@@ -198,8 +211,8 @@
 installed.
 
 
-32-bit Library Build on 64-bit OS X
------------------------------------
+32-bit Build on 64-bit OS X
+---------------------------
 
 Add
 
@@ -208,8 +221,8 @@
 to the configure command line.
 
 
-64-bit Backward-Compatible Library Build on 64-bit OS X
--------------------------------------------------------
+64-bit Backward-Compatible Build on 64-bit OS X
+-----------------------------------------------
 
 Add
 
@@ -223,8 +236,8 @@
 MacPorts, must be installed.
 
 
-32-bit Backward-Compatible Library Build on OS X
-------------------------------------------------
+32-bit Backward-Compatible Build on OS X
+----------------------------------------
 
 Add
 
@@ -247,8 +260,8 @@
 to the configure command line.
 
 
-32-bit Library Build on 64-bit FreeBSD
---------------------------------------
+32-bit Build on 64-bit FreeBSD
+------------------------------
 
 Add
 
@@ -316,7 +329,7 @@
   ARM v6 only (up to and including iPhone 3G):
   IOS_CFLAGS="-march=armv6 -mcpu=arm1176jzf-s -mfpu=vfp"
 
-  ARM v7 only (iPhone 3GS and newer, iPad):
+  ARM v7 only (iPhone 3GS-4S, iPad 1st-3rd Generation):
   IOS_CFLAGS="-march=armv7 -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon"
 
 Follow the procedure under "Building libjpeg-turbo" above, adding
@@ -331,6 +344,19 @@
 Once built, lipo can be used to combine the ARM v6 and v7 variants into a
 universal library.
 
+An ARM v7s version of libjpeg-turbo, for iPhone 5 and iPad 4th Generation
+devices, can be built by using the iPhone 5 SDK in XCode 4.5.  You will have to
+adjust IOS_PLATFORMDIR, IOS_SYSROOT, and IOS_GCC accordingly, and use the
+following compiler flags:
+
+IOS_CFLAGS="-march=armv7s -mcpu=swift -mtune=swift -mfpu=neon"
+
+Unfortunately, XCode 4.5 also dropped support for ARM v6, so it will not be
+possible to use a single version of XCode to build a universal binary that
+supports both the iPhone 3G and earlier and the iPhone 5/iPad 4 and later.
+Even more unfortunately, XCode 4.5 requires OS X 10.7, which means that we
+cannot currently install and test it.
+
 
 *******************************************************************************
 **     Building on Windows (Visual C++ or MinGW)
@@ -373,8 +399,8 @@
 -- NASM (http://www.nasm.us/) 0.98 or later (NASM 2.05 or later is required for
    a 64-bit build)
 
--- If building the TurboJPEG/OSS Java wrapper, JDK 1.5 or later is required.
-   This can be downloaded from http://www.java.com.
+-- If building the TurboJPEG Java wrapper, JDK 1.5 or later is required.  This
+   can be downloaded from http://www.java.com.
 
 
 ==================
@@ -409,17 +435,17 @@
 The following files will be generated under {build_directory}:
 
   jpeg-static.lib
-      Static link library for libjpeg-turbo
+      Static link library for the libjpeg API
   sharedlib/jpeg{version}.dll
-      DLL for libjpeg-turbo
+      DLL for the libjpeg API
   sharedlib/jpeg.lib
-      Import library for libjpeg-turbo DLL
+      Import library for the libjpeg API
   turbojpeg-static.lib
-      Static link library for TurboJPEG/OSS
+      Static link library for the TurboJPEG API
   turbojpeg.dll
-      DLL for TurboJPEG/OSS
+      DLL for the TurboJPEG API
   turbojpeg.lib
-      Import library for TurboJPEG/OSS DLL
+      Import library for the TurboJPEG API
 
 {version} is 62, 7, or 8, depending on whether libjpeg v6b (default), v7, or
 v8 emulation is enabled.
@@ -442,17 +468,17 @@
 This will generate the following files under {build_directory}:
 
   {configuration}/jpeg-static.lib
-      Static link library for libjpeg-turbo
+      Static link library for the libjpeg API
   sharedlib/{configuration}/jpeg{version}.dll
-      DLL for libjpeg-turbo
+      DLL for the libjpeg API
   sharedlib/{configuration}/jpeg.lib
-      Import library for libjpeg-turbo DLL
+      Import library for the libjpeg API
   {configuration}/turbojpeg-static.lib
-      Static link library for TurboJPEG/OSS
+      Static link library for the TurboJPEG API
   {configuration}/turbojpeg.dll
-      DLL for TurboJPEG/OSS
+      DLL for the TurboJPEG API
   {configuration}/turbojpeg.lib
-      Import library for TurboJPEG/OSS DLL
+      Import library for the TurboJPEG API
 
 {configuration} is Debug, Release, RelWithDebInfo, or MinSizeRel, depending on
 the configuration you built in the IDE, and {version} is 62, 7, or 8,
@@ -469,17 +495,17 @@
 This will generate the following files under {build_directory}
 
   libjpeg.a
-      Static link library for libjpeg-turbo
+      Static link library for the libjpeg API
   sharedlib/libjpeg-{version}.dll
-      DLL for libjpeg-turbo
+      DLL for the libjpeg API
   sharedlib/libjpeg.dll.a
-      Import library for libjpeg-turbo DLL
+      Import library for the libjpeg API
   libturbojpeg.a
-      Static link library for TurboJPEG/OSS
+      Static link library for the TurboJPEG API
   libturbojpeg.dll
-      DLL for TurboJPEG/OSS
+      DLL for the TurboJPEG API
   libturbojpeg.dll.a
-      Import library for TurboJPEG/OSS DLL
+      Import library for the TurboJPEG API
 
 {version} is 62, 7, or 8, depending on whether libjpeg v6b (default), v7, or
 v8 emulation is enabled.
@@ -503,6 +529,16 @@
 on libjpeg v7 and v8 emulation.
 
 
+In-Memory Source/Destination Managers
+-------------------------------------
+
+When using libjpeg v6b or v7 API/ABI emulation, add -DWITH_MEM_SRCDST=0 to the
+CMake command line to build a version of libjpeg-turbo that lacks the
+jpeg_mem_src() and jpeg_mem_dest() functions.  These functions were not part of
+the original libjpeg v6b and v7 APIs, so removing them ensures strict
+conformance with those APIs.  See README-turbo.txt for more information.
+
+
 Arithmetic Coding Support
 -------------------------
 
@@ -515,13 +551,12 @@
 disable encoding or decoding (respectively.)
 
 
-TurboJPEG/OSS Java Wrapper
---------------------------
+TurboJPEG Java Wrapper
+----------------------
 Add "-DWITH_JAVA=1" to the cmake command line to incorporate an optional Java
-Native Interface wrapper into the TurboJPEG/OSS dynamic library and build the
-Java front-end classes to support it.  This allows the TurboJPEG/OSS dynamic
-library to be used directly from Java applications.  See java/README for more
-details.
+Native Interface wrapper into the TurboJPEG shared library and build the Java
+front-end classes to support it.  This allows the TurboJPEG shared library to
+be used directly from Java applications.  See java/README for more details.
 
 If you are using CMake 2.8, you can set the Java_JAVAC_EXECUTABLE,
 Java_JAVA_EXECUTABLE, and Java_JAR_EXECUTABLE CMake variables to specify
@@ -719,11 +754,11 @@
 the 'testclean' target (if using the Visual Studio IDE) will clean up the
 output images generated by 'make test'.
 
-On Unix/Linux platforms, more extensive tests of the TurboJPEG/OSS C and Java
+On Unix/Linux platforms, more extensive tests of the TurboJPEG C and Java
 wrappers can be run by invoking 'make tjtest'.  These extended TurboJPEG tests
 essentially iterate through all of the available features of the TurboJPEG APIs
 that are not covered by the TurboJPEG unit tests (this includes the lossless
 transform options) and compare the images generated by each feature to images
 generated using the equivalent feature in the libjpeg API.  The extended
 TurboJPEG tests are meant to test for regressions in the TurboJPEG wrappers,
-not in the underlying libjpeg-turbo library.
+not in the underlying libjpeg API library.