計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)

AIX 7.1 にて ImageMagick-6.7.4-2 を構築する


必要なもの
  なるべく最新の下記ライブラリをインストールしておくこと
    PNGライブラリ/ZLIBライブラリ http://www.libpng.org/pub/png/pngcode.html
      ※特記する事はない
    JPEG/JFIFライブラリ http://www.ijg.org/
      ※前のバージョンのライブラリはアンインストールしてから make すること
    JBIGライブラリ http://www.cl.cam.ac.uk/~mgk25/jbigkit/
      ※make installはないので自分でライブラリやインクルードファイルを
        コピーしてインストールする
    TIFFライブラリ ftp://ftp.remotesensing.org/pub/libtiff
      ※ZLIB,JBIGに依存する
      ※前のバージョンのライブラリはアンインストールしてから make すること
      ※基本的にコンパイルにはxlcを使う
      ※コンフィグレーション
        CC=xlc CXX=xlC CFLAGS="-Duint64=uint64_t -I/home/ocg/pub/include" LDFLAGS=-L/home/ocg/pub/lib CPPFLAGS=-I/home/ocg/pub/include ./configure --prefix=/home/ocg/pub --build=rs6000-ibm-aix
    bzip2ライブラリ http://www.bzip.org/downloads.html
      ※特記する事はない
  Ghostscript
  GNU make

ソース
  magick/locale.c を次のように修正
    AIX は strtod_l 関数を持たないが MAGICKCORE_HAVE_STRTOD_L で隠されてしまう一部は
    strtod_l とは関係なさそうに見える

93c93
< #if defined(MAGICKCORE_HAVE_STRTOD_L)
---
> /* #if defined(MAGICKCORE_HAVE_STRTOD_L) */
96c96
< #endif
---
> /* #endif */
108c108
< #if defined(MAGICKCORE_HAVE_STRTOD_L)
---
> /* #if defined(MAGICKCORE_HAVE_STRTOD_L) */
139c139
< #endif
---
> /* #endif */

コンフィグレーション
  configureコマンドを実行
    IBM XLコンパイラを使う場合 CC=xlc CXX=xlC ...
    TrueTypeフォントを使う場合 --with-windows-font-dir=...

    CC=xlc CXX=xlC \
    CFLAGS="-g -O3 -I/home/ocg/pub/include" \
    CXXFLAGS="-g -O3 -I/home/ocg/pub/include" \
    CPPFLAGS="-I/home/ocg/pub/include" \
    LDFLAGS="-g -O3 -bsvr4 -L/home/ocg/pub/lib -R/home/ocg/pub/lib" \
      ./configure \
        --prefix=/home/ocg/pub \
        --with-jpeg=no \
        --with-windows-font-dir=/home/ocg/pub/share/fonts/truetype

  ※どうしても/usr/local/libのjpegライブラリを使ってリンクしようとする.
    自分の環境では/usr/local/libには存在しない(置く権限が無い)ので,
    あきらめて --with-jpeg=no とした. それでも JPEG が扱えるので無問題.
  ※/home/ocg/pub は /usr/local にするなど自分の環境に合わせて変更すること

ビルド

    gmake
    gmake check

  ※convert のテストでエラーが出た

インストール

    gmake install

備考
  大量のメモリを使うような作業では core dump することがある.
  たとえば549枚の Postscript ファイルから海面高度偏差の gif 動画を作ろうとしたらできなかった(Linux Ubuntuでは無問題).
  その場合, 環境変数 LDR_CNTRL を MAXDATA=0x80000000 などにセットして実行するとよい.
  ただし, 実行後は LDR_CNTRL を unset すること.
  参照
    http://publib.boulder.ibm.com/tividd/td/ITAME/SC32-1145-01/ja_JA/HTML/am41_perftune98.htm


計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)
海洋大循環分野
daigo@ocg.aori.u-tokyo.ac.jp