インストール: libjpeg | JPEGの基本ライブラリー

JPEGの基本ライブラリーであるlibjpegをソースコードからインストールする。

libGD内で使われており,PHPからjpeg関係の操作をする際に必要になったので,インストールした。

インストール情報
項目説明
配布元Independent JPEG Group
リポジトリー
手順ijg/install.txt at master · libjpeg-turbo/ijg
依存情報ijg/install.txt at master · libjpeg-turbo/ijg
依存先 (必須)Make (GNU Make)
依存先 (任意)
依存元libGD
インストールコマンド
sh -eux <<-"EOT"
PKG=libjpeg VER=9c TAG=${PKG#lib}-$VER PKG_VER=$PKG${VER:+-$VER}
LOCAL=~/.local J=$(grep -cs '^processor' /proc/cpuinfo || echo 2)
mkdir -p "$LOCAL/src"
cd "$LOCAL/src"

if command -v git >/dev/null; then
  [ -e $PKG ] || git clone --depth 1 git://github.com/libjpeg-turbo/ijg $PKG
  cd $PKG
git fetch --depth 1 ${TAG:+origin tag $TAG} git checkout -f ${TAG:-master}
else [ -e $PKG_VER ] || wget http://www.ijg.org/files/${PKG#lib}src.v$VER.tar.gz tar -xf $PKG_VER.* cd $PKG_VER fi
make -kj $J distclean clean || :
[ ! -e configure ] && [ -e configure.ac ] && autoreconf -is [ -x configure ] && ./configure --prefix="$LOCAL/stow/$PKG_VER" make -j $J make -j $J check make -j $J install cd "$LOCAL/stow" echo $PKG${VER:+-}[0-9]* | xargs -n 1 stow --ignore=dir -D stow --ignore=dir $PKG_VER EOT
インストール例
日付バージョンOS依存関係
2020-02-079cUbuntu 18.04GNU Make 4.2.1, GCC 7.4.0

2020-02-07時点での最新版は2020-01-12に公開された9dなのだが,GitHubのミラーリポジトリーの最新版が9cだったので,9cをインストールした。

当初のビルドではmake checkで以下のエラーが出てしまった。

make  check-local
make[1]: Entering directory '/home/senooken/.local/src/libjpeg'
rm -f testout*
./djpeg -dct int -ppm -outfile testout.ppm  ./testorig.jpg
Unsupported output file format
make[1]: *** [Makefile:1226: check-local] Error 1

PPMの出力に対応できていないようだ。調べたところjconfig.cfg~#define PPM_SUPPORTEDの定義があり,jconfig.txtを見ろとある。jconfig.hにコンパイル用のマクロが定義されている。

ビルドの過程でjconfig.cfgが修正されて,#define PPM_SUPPORTEDが削除されたのが原因のようだ。

通常,リポジトリーからチェックアウトした場合,autoreconf -isなどで,configure.acから自前でconfigureを作成する必要がある。ただし,libjpegの場合,configureがあらかじめ用意されていた。autoreconf -isを実行したのがまずかったようだ。

以下のようにビルド手順を見直して,configureが不在,かつconfigure.acが存在する場合にautoreconf -isを実行するようにした。つまり,今回はautoreconfを実行しないようにした。

[ ! -e configure ] && [ -e configure.ac ] && autoreconf -is

これで問題なくビルドできた。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です