# Copied and pasted from an entry on http://mjpeg.sourceforge.net/:
#
# (Nov 16th, 2006 - by Bernhard)
#
# The jpeg-mmx is declared dead.
# There are several causes. The most important is the minimal speed gain you
# have with machinges running faster than 1GHz. The other thing is that it
# speed up things only on 32bit Intel and AMD machines. The last thing is that
# we have no maintaner for the jpeg-mmx, and it cause problems with other
# packages (libquicktime for example) So we have removed the jpeg-mmx from the
# list of downloadable software.
# =====
#
# ...so, I'm assuming there will be no further updates to jpeg-mmx or this
# HOWTO.
#
# =====
# There are two versions below. The latest stable release and instructions
# that cover installing it from CVS.
# The last time I updated this howto, SourceForge's CVS server was
# completely unresponsive, so I didn't get to verify that everything is OK
# with that one.
# This is a modified version of libjpeg. Your original /usr/lib/libjpeg.*
# will still be there, but the include files in /usr/include/ will be
# replaced. As it is below, it will install a static /usr/lib/libjpeg-mmx.a
# To build it with a shared library, add --enable-shared to the configure
# line, but be aware that it wouldn't build for me the last time I tried it
# (version 0.1.5; with either version).
# jpeg-mmx 0.1.6
# ==============
# Get it
cd
test -f installed/jpeg-mmx-0.1.6.tar.gz &&
mv installed/jpeg-mmx-0.1.6.tar.gz .
test ! -f jpeg-mmx-0.1.6.tar.gz &&
wget http://download.sf.net/mjpeg/jpeg-mmx-0.1.6.tar.gz
# Extract it
mkdir -p -m 0700 src
cd src
test -d ./jpeg-mmx && rm -r ./jpeg-mmx
find -maxdepth 1 -type d -name "jpeg-mmx-*" -exec rm -r {} \;
tar xzvf ~/jpeg-mmx-0.1.6.tar.gz
mv -f jpeg-mmx jpeg-mmx-0.1.6
cd jpeg-mmx-0.1.6
test $UID = 0 && chown -R root:root .
# Configure the build
./configure --prefix=/usr
# If make below fails with a bunch of errors like this:
# libjpeg-mmx.a(jidctint.o)(.text+0x51): In function `domidct8x8llmW':
# : undefined reference to `fix_054n184_054'
# give up and skip down to the CVS version below. This happened for me with
# version 0.1.5 and gcc 3.4.x. I'm using 0.1.6 and gcc 3.3.6 at the moment,
# no error.
# Build it
make
# Install it as root
su -c "make install_real"
# Save the source for later
cd
mkdir -p -m 0700 installed
rm -f installed/jpeg-mmx-*.tar.*
mv jpeg-mmx-0.1.6.tar.gz installed/
# Skip to the bottom for info about reverting back to the real libjpeg
# The CVS Version
# ===============
# Prerequisites (in addition to those listed above):
# autoconf
# automake
# libtool
# nasm
# Get it
cd
rm -f installed/jpeg-mmx-*.tar.*
mkdir -p -m 0700 src
cd src
find -maxdepth 1 -type d -name "jpeg-mmx-*" -exec rm -r {} \;
test -d jpeg-mmx && ( cd jpeg-mmx ; cvs update )
test ! -d jpeg-mmx &&
( cvs -d:pserver:anonymous@mjpeg.cvs.sourceforge.net:/cvsroot/mjpeg login
# Hit enter for the password
cvs -z3 -d:pserver:anonymous@mjpeg.cvs.sourceforge.net:/cvsroot/mjpeg \
co -P jpeg-mmx )
cd jpeg-mmx
test $UID = 0 && chown -R root:root .
# I had to open up jquant_x86simd.c and change the "X" in line 107
# to a "m". Otherwise it would fail with assembler errors. FYI I have gcc
# 4.1.1 and nasm 0.98.39 installed.
# Configure the build
./configure --prefix=/usr
# Build it
make
# Install it
su -c "make install_real"
# Make note for later where the CVS-based source is
# (no tarball)
cd
echo 'jpeg-mmx was installed from CVS' > installed/jpeg-mmx.README
echo 'Source is in ~/src/jpeg-mmx' >> installed/jpeg-mmx.README
chmod 600 installed/jpeg-mmx.README
# If you ever need to uninstall this version (jpeg-mmx) and revert back to
# the "real" one (the regular libjpeg), run this, then go through
# the regular howto
cd
su
( cd /usr/include ; rm -f jconfig.h jerror.h jinclude.h jmorecfg.h jpeglib.h )
rm -f /usr/lib/libjpeg-mmx.a
exit
find ~/src -maxdepth 1 -type d -name "jpeg-mmx-*" -exec rm -r {} \;
rm -f ~/installed/jpeg-mmx-*.tar.*