blob: a3cea30a89cccc0b829c6fdbee028b902926f73a [file] [log] [blame]
DRC68fef832010-02-16 05:29:10 +00001*******************************************************************************
2** Building on Unix Platforms, Cygwin, and MinGW
3*******************************************************************************
4
5==================
6Build Requirements
7==================
8
9-- autoconf 2.56 or later
10 * If using MinGW, this can be obtained by installing the MSYS DTK
11
12-- automake 1.7 or later
13 * If using MinGW, this can be obtained by installing the MSYS DTK
14
15-- libtool 1.4 or later
16 * If using MinGW, this can be obtained by installing the MSYS DTK
17
18-- NASM
19 * 0.98 or later is required for a 32-bit build
20 * NASM 2.05 or later is required for a 64-bit build
21 * NASM 2.07 or later is required for a 64-bit build on OS/X (10.6 "Snow
22 Leopard" or later.) This can be obtained from MacPorts
23 (http://www.macports.org/).
24
25 The NASM 2.05 RPMs do not work on older Linux systems, such as Enterprise
26 Linux 4. On such systems, you can easily build and install NASM 2.05
27 from the source RPM by executing the following as root:
28
29 ARCH=`uname -m`
30 wget http://www.nasm.us/pub/nasm/releasebuilds/2.05.01/nasm-2.05.01-1.src.rpm
31 rpmbuild --rebuild nasm-2.05.01-1.src.rpm
32 rpm -Uvh /usr/src/redhat/RPMS/$ARCH/nasm-2.05.01-1.$ARCH.rpm
33
DRCc3f4ac02010-02-19 21:51:26 +000034 NOTE: NASM build will fail if texinfo is not installed.
35
DRC8f870c22010-02-24 00:30:00 +000036-- GCC v4.1 or later recommended for best performance
DRC68fef832010-02-16 05:29:10 +000037
38======================
39Building libjpeg-turbo
40======================
41
42The following procedure will build libjpeg-turbo on Linux, 32-bit OS X, and
43Solaris/x86 systems (on Solaris, this generates a 32-bit library. See below
44for 64-bit build instructions.)
45
46 cd libjpeg-turbo
47 autoreconf -fiv
48 sh ./configure
49 make
50
51NOTE: Running autoreconf is only necessary if building libjpeg-turbo from the
52SVN repository.
53
54This will generate the following files under .libs/
55
56 libjpeg.a
57 Static link library for libjpeg-turbo
58
59 libjpeg.so.62.0.0 (Linux, Solaris)
60 libjpeg.62.dylib (OS X)
61 libjpeg-62.dll (MinGW)
62 cygjpeg-62.dll (Cygwin)
63 Shared library for libjpeg-turbo
64
65 libjpeg.so (Linux, Solaris)
66 libjpeg.dylib (OS X)
67 libjpeg.dll.a (Cygwin, MinGW)
68 Development stub for libjpeg-turbo shared library
69
70 libturbojpeg.a
71 Static link library for TurboJPEG/OSS
72
73 libturbojpeg.so (Linux, Solaris)
74 libturbojpeg.dylib (OS X)
75 Shared library and development stub for TurboJPEG/OSS
76
77 libturbojpeg.dll (MinGW)
78 cygturbojpeg.dll (Cygwin)
79 Shared library for TurboJPEG/OSS
80
81 libturbojpeg.dll.a (Cygwin, MinGW)
82 Development stub for TurboJPEG/OSS shared library
83
84========================
85Installing libjpeg-turbo
86========================
87
88If you intend to install these libraries and the associated header files, then
89replace 'make' in the instructions above with
90
91 make install prefix={base dir} libdir={library directory}
92
93For example,
94
95 make install prefix=/usr/local libdir=/usr/local/lib64
96
97will install the header files in /usr/local/include and the library files in
98/usr/local/lib64. If 'prefix' and 'libdir' are not specified, then the default
99is to install the header files in /opt/libjpeg-turbo/include and the library
100files in /opt/libjpeg-turbo/lib.
101
102NOTE: You can specify a prefix of /usr and a libdir of, for instance,
103/usr/lib64 to overwrite the system's version of libjpeg. If you do this,
104however, then be sure to BACK UP YOUR SYSTEM'S INSTALLATION OF LIBJPEG before
105overwriting it. It is recommended that you instead install libjpeg-turbo into
106a non-system directory and manipulate the LD_LIBRARY_PATH or create sym links
107to force applications to use libjpeg-turbo instead of libjpeg. See
108README-turbo.txt for more information.
109
110=============
111Build Recipes
112=============
113
11432-bit Library Build on 64-bit Linux
115------------------------------------
116
DRCca5e7d12010-02-17 02:25:06 +0000117Add
DRC68fef832010-02-16 05:29:10 +0000118
119 --host i686-pc-linux-gnu CFLAGS='-O3 -m32' CXXFLAGS='-O3 -m32'
120
121to the configure command line.
122
123
12464-bit Library Build on 64-bit OS/X
125-----------------------------------
126
DRCca5e7d12010-02-17 02:25:06 +0000127Add
DRC68fef832010-02-16 05:29:10 +0000128
129 --host x86_64-apple-darwin10.0.0 NASM=/opt/local/bin/nasm
130
131to the configure command line. NASM 2.07 from MacPorts must be installed.
132
133
13432-bit Library Build on 64-bit OS/X
135-----------------------------------
136
DRCca5e7d12010-02-17 02:25:06 +0000137Add
DRC68fef832010-02-16 05:29:10 +0000138
139 CFLAGS='-O3 -m32' CXXFLAGS='-O3 -m32' LDFLAGS=-m32
140
141to the configure command line.
142
143
14432-bit Backward-Compatible Library Build on 64-bit OS/X
145-------------------------------------------------------
146
DRCca5e7d12010-02-17 02:25:06 +0000147Add
DRC68fef832010-02-16 05:29:10 +0000148
DRC485cd802010-02-23 23:23:42 +0000149 CFLAGS='-isysroot /Developer/SDKs/MacOSX10.4u.sdk \
150 -mmacosx-version-min=10.4 -O3 -m32' \
151 CXXFLAGS='-isysroot /Developer/SDKs/MacOSX10.4u.sdk \
152 -mmacosx-version-min=10.4 -O3 -m32' \
DRC68fef832010-02-16 05:29:10 +0000153 LDFLAGS='-isysroot /Developer/SDKs/MacOSX10.4u.sdk \
154 -mmacosx-version-min=10.4 -m32'
155
156to the configure command line. The OS X 10.4 SDK must be installed.
157
158
15964-bit Library Build on 64-bit Solaris
160--------------------------------------
161
DRCca5e7d12010-02-17 02:25:06 +0000162Add
DRC68fef832010-02-16 05:29:10 +0000163
164 --host x86_64-pc-solaris CFLAGS='-O3 -m64' CXXFLAGS='-O3 -m64' LDFLAGS=-m64
165
166to the configure command line.
167
168
169MinGW Build on Cygwin
170---------------------
171
DRCca5e7d12010-02-17 02:25:06 +0000172Add
DRC68fef832010-02-16 05:29:10 +0000173
174 --host mingw32
175
176to the configure command line. This will produce libraries which do not
177depend on cygwin1.dll or other Cygwin DLL's.
178
179
DRCca5e7d12010-02-17 02:25:06 +0000180Sun Studio
181----------
182
183Add
184
185 CC=cc CXX=CC
186
187to the configure command line. libjpeg-turbo will automatically be built with
188the maximum optimization level (-xO5) unless you override CFLAGS and CXXFLAGS.
189
190To build a 64-bit version of libjpeg-turbo using Sun Studio, add
191
192 --host x86_64-pc-solaris CC=cc CXX=CC CFLAGS='-xO5 -m64' \
193 CXXFLAGS='-xO5 -m64' LDFLAGS=-m64
194
195to the configure command line.
196
DRC8b014d72010-02-18 13:03:41 +0000197
DRC68fef832010-02-16 05:29:10 +0000198*******************************************************************************
DRC8b014d72010-02-18 13:03:41 +0000199** Building on Windows (Visual C++)
DRC68fef832010-02-16 05:29:10 +0000200*******************************************************************************
201
202==================
203Build Requirements
204==================
205
206-- GNU Make v3.7 or later
207 * Can be found in MSYS (http://www.mingw.org/download.shtml) or
208 Cygwin (http://www.cygwin.com/)
209
DRC8b014d72010-02-18 13:03:41 +0000210-- Windows SDK for Windows Server 2008 and .NET Framework 3.5 (or a later
211 version)
DRC68fef832010-02-16 05:29:10 +0000212
DRC8b014d72010-02-18 13:03:41 +0000213 http://msdn.microsoft.com/en-us/windows/dd146047.aspx
DRC68fef832010-02-16 05:29:10 +0000214
DRC8b014d72010-02-18 13:03:41 +0000215 * The Windows SDK includes both 32-bit and 64-bit Visual C++ compilers and
216 everything necessary to build libjpeg-turbo. If you do not already have
217 Visual C++ installed, then this is the recommended solution. Also tested
218 with Microsoft Visual C++ 2008 Express Edition (both are free downloads.)
219 * Add the compiler and SDK binary directories (for instance,
DRC68fef832010-02-16 05:29:10 +0000220 c:\Program Files\Microsoft Visual Studio 9.0\VC\BIN;
DRC8b014d72010-02-18 13:03:41 +0000221 c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;
222 c:\Program Files\Microsoft SDKs\Windows\v6.1\bin)
DRC68fef832010-02-16 05:29:10 +0000223 to the system or user PATH environment variable prior to building
224 libjpeg-turbo.
DRC8b014d72010-02-18 13:03:41 +0000225 * Add the compiler and SDK include directories (for instance,
226 c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE;
227 c:\Program Files\Microsoft SDKs\Windows\v6.1\include)
DRC68fef832010-02-16 05:29:10 +0000228 to the system or user INCLUDE environment variable prior to building
229 libjpeg-turbo.
230 * Add the compiler library directory (for instance,
DRC8b014d72010-02-18 13:03:41 +0000231 c:\Program Files\Microsoft Visual Studio 9.0\VC\LIB;
232 c:\Program Files\Microsoft SDKs\Windows\v6.1\lib)
DRC68fef832010-02-16 05:29:10 +0000233 to the system or user LIB environment variable prior to building
234 libjpeg-turbo.
235
236-- NASM (http://www.nasm.us/) 0.98 or later
237
238======================
239Building libjpeg-turbo
240======================
241
242 cd libjpeg-turbo
243 make -f win/Makefile
244
DRC8b014d72010-02-18 13:03:41 +0000245This will generate the following files under libjpeg-turbo\windows\:
DRC68fef832010-02-16 05:29:10 +0000246
247 jpeg-static.lib Static link library for libjpeg-turbo
248 jpeg62.dll Shared library for libjpeg-turbo
249 jpeg.lib Development stub for libjpeg-turbo shared library
250 turbojpeg-static.lib Static link library for TurboJPEG/OSS
251 turbojpeg.dll Shared library for TurboJPEG/OSS
252 turbojpeg.lib Development stub for TurboJPEG/OSS shared library
253
DRC8b014d72010-02-18 13:03:41 +0000254#If a 64-bit Windows platform is detected, then the build system will attempt
255#to build a 64-bit version of libjpeg-turbo. You can override this by running
256#
257# make -f win/Makefile WIN64=no
258
DRC4df84bf2010-02-22 04:55:23 +0000259NOTE: For unknown reasons, Win64 support doesn't work yet, so at the moment,
260you have to run 'make -f win/Makefile WIN64=yes' to get a 64-bit build on
26164-bit Windows. The paragraph above will apply once Win64 support is working.
DRC8b014d72010-02-18 13:03:41 +0000262
DRC68fef832010-02-16 05:29:10 +0000263
264*******************************************************************************
265** Creating Release Packages
266*******************************************************************************
267
268The following commands can be used to create various types of release packages:
269
270make rpm
271
272 Create RedHat-style binary RPM package. Requires RPM v4 or later.
273
274make srpm
275
276 This runs 'make dist' to create a pristine source tarball, then creates a
277 RedHat-style source RPM package from the tarball. Requires RPM v4 or later.
278
279make deb
280
281 Create Debian-style binary package. Requires dpkg.
282
283make dmg
284
285 Create Macintosh package/disk image. This requires the PackageMaker
286 application, which must be installed in /Developer/Applications/Utilities.
287
288make udmg
289
290 On 64-bit OS X (10.6 "Snow Leopard" or later), this creates a version of the
291 Macintosh package/disk image which contains universal i386/x86-64 binaries.
292 The 32-bit fork of these binaries is backward compatible with OS X 10.4 and
293 later, whereas the 64-bit fork is compatible with OS X 10.6 and later. OS X
294 10.4 compatibility SDK required.
295
DRC0a1f68e2010-02-24 07:24:26 +0000296make nsi
297
298 When using MinGW, this creates a Win32 installer for the GCC version of the
299 libjpeg-turbo SDK. This requires the Nullsoft Install System
300 (http://nsis.sourceforge.net/.) makensis.exe should be in your PATH.
301
DRC68fef832010-02-16 05:29:10 +0000302make -f win/Makefile dist
303
DRC0a1f68e2010-02-24 07:24:26 +0000304 This creates a Win32 installer for the Visual C++ version of the
305 libjpeg-turbo SDK. This requires the Nullsoft Install System
306 (http://nsis.sourceforge.net/.) makensis.exe should be in your PATH.