付録 B. ビルド

目次

ビルド方法
qmake
CMake
RPM
ebuild
静的ビルド

ソースファイルの改行コードは LF(Unix 形式)です。使用しているコンパイラが対応していなければ改行コードの変換を行ってください。また、使用している文字コードは Unicode (UTF-8) です。

コンパイルに必要なものは以下の通りです。

Qt ライブラリについては使用している OS に対応するものをダウンロードしてください。Linux の場合は Qt/X11 です。Open Source Edition は以下からダウンロードできます。なお、Qt ライブラリはバージョン4で大幅な変更が加えられ、Qt3 と Qt4 との間にソース互換性がないため、Qt3 ではコンパイルできません。

Cueplot で使用している Qt のモジュールは QtCore と QtGui のみです。Qt3Support は使っていません。

注意

Qt3.x がインストールされている環境では、ソースコードをコンパイルしようとしても Qt3.x のライブラリやコマンドが使われてしまい、コンパイルできないことがあります。この場合は環境変数を変えるとコンパイルできると思います。Red Hat Enterprise Linux などの場合は以下のようにしてください。/usr/lib ディレクトリは環境によっては /usr/lib64 ディレクトリになります。

$ export QTDIR=/usr/lib/qt4

$ export PATH=/usr/lib/qt4/bin:$PATH

以下では開発パッケージがインストールされていることを前提として話を進めます。

ビルドする方法は4種類用意されています。

ビルド方法

qmake

このセクションの方法は Cueplot が対応するすべての環境で行えます。

  1. cd

    tarball を展開したら、cueplot.pro ファイルが含まれているディレクトリにカレントディレクトリを移動します。ただし、x.y.z はバージョン番号です。

    $ cd src

  2. cueplot.pro の編集(Mac OS X のみ)

    Mac OS X では cueplot.pro を編集してください。具体的には cueplot.proTARGET を変えます。

    TARGET = cueplot

    とあるのを、以下のように変更してください。

    TARGET = Cueplot

  3. qmake

    次に、qmake コマンドを実行します。

    $ qmake

    ただし、ICC(Intel 製のコンパイラ)などデフォルトのコンパイラ以外でコンパイルする場合は qmake コマンドの -spec オプションでそのコンパイラ用ディレクトリを指定してください。

    $ qmake -spec /usr/share/qt4/mkspecs/linux-icc/

    注意

    使用しているパッケージによっては qmake-qt4 コマンドが使えることがあります。そのときは qmake の代わりとして qmake-qt4 を使ってください。

  4. make

    そして、make と入力するとコンパイルが始まるはずです。

    $ make

    コンパイルすると実行可能ファイルが生成されます。ファイル(Mac OS X の場合はディレクトリ)の名前は以下に示す通りです。

    表 B.1. 実行可能ファイル名

    OSファイル名
    Linuxcueplot
    Mac OS XCueplot.app
    Windowscueplot.exe

    Cueplot の動作に最低限必要なのはこれだけです。

  5. ts ファイルの書き換え(Mac OS X のみ)

    Mac OS X の場合、lang ディレクトリにある ts ファイルを書き換えて、書き換えた ts ファイルから生成された qm ファイルを Cueplot.app/Contents/MacOS ディレクトリ内に置いてください。これを自動化するシェルスクリプトは以下の通りです。カレントディレクトリを lang ディレクトリにして実行してください。

    		#!/bin/sh
    		
    		for file in *.ts
    		do
    		    sed 's/(&[[:upper:]])//' $file > tmp && mv -f tmp $file
    		done
    		lrelease *.ts
    		mv *.qm ../Cueplot.app/Contents/MacOS
    						

    上記のシェルスクリプトはレポジトリにあります。このスクリプトが行う処理は以下の通りです。

    • カレントディレクトリ内の ts ファイル中の「&大文字一文字」を削除(3-6 行目)

    • 編集した ts ファイルから qm ファイルを生成(7 行目)

    • qm ファイルを ../Cueplot.app/Contents/MacOS に移動(8 行目)

    ts ファイルを書き換えないと、メニューやボタンで「ファイル(F)」「追加(A)」などと表示されます。

  6. lrelease

    lrelease コマンドで lang ディレクトリにある ts ファイルから qm ファイルを生成してください。qm ファイルは翻訳ファイルです。このファイルがないと日本語環境でもメニュー等が英語で表示されます。ファイルを実行可能ファイルと同じディレクトリ内に置いてください。Mac OS X の場合は、Cueplot.app/Contents/MacOS にファイル Cueplot があります。

    $ lrelease *.ts

    Qt 4.3 以降に含まれている qt_ja_jp.ts では "Open" に対する訳語が「オープン」になっています。レポジトリ上にある qt_ja_JP.ts では訳語を「開く」に変えてあります。

    注意

    上記で qmake-qt4 を使った人は lrelease の代わりに lrelease-qt4 を使ってください。

  7. Resources ディレクトリの作成(Mac OS X のみ)

    このままではアプリケーションメニュー(この場合は「Cueplot」メニュー)が日本語で表示されないので Cueplot.app/Contents ディレクトリ内に Resources ディレクトリを作ります。そしてソースファイルの lang ディレクトリ内にある locversion.plist ファイルを入れ、ja_JP.lproj という空のディレクトリを作ります。

    • Resources/

    • Resources/locversion.plist

    • Resources/ja_JP.lproj/

  8. strip(Unix 系 OS のみ)

    strip コマンドで実行可能ファイルのサイズを小さくできます。

    Linux の場合

    $ strip cueplot

    Mac OS X の場合

    $ strip Cueplot.app/Contents/MacOS/Cueplot

もしこちらで動作確認している環境以外でコンパイルして動作しなければ以下のファイルを修正してみてください。

CMake

上記の方法は繁雑(特に Mac OS X)で作業を自動化するため、バージョン 0.0.5 から CMake を導入しました。ビルドとインストールの成功を確認しているのは以下の環境です。

  • Linux の共有ビルド

  • Mac OS X の静的ビルド

今のところ Windows の静的ビルドではリンクに失敗します。

  1. cmake

    CMakeLists.txt のあるディレクトリのうち上位にあるディレクトリで cmake コマンドを実行します。cmake コマンドには ./configure のような役割があります。

    cmake コマンドの実行例は以下の通りです。

    例 B.1. Linux における cmake

    $ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBIN_INSTALL_DIR=/usr/bin -DLIB_INSTALL_DIR=/usr/lib


    例 B.2. Mac OS X における cmake

    $ cmake -DCMAKE_INSTALL_PREFIX=/ -DCMAKE_BUILD_TYPE=Release -DBIN_INSTALL_DIR=/Applications -DCMAKE_OSX_ARCHITECTURES="ppc;i386" -DCMAKE_OSX_SYSROOT=/Developer/SDKs/MacOSX10.5.sdk


    代表的なオプションは以下の通りです。

    表 B.2. CMake オプション

    変数名意味
    CMAKE_INSTALL_PREFIXインストール先のベースディレクトリ/usr, /usr/local
    CMAKE_BUILD_TYPEビルドの種類Release, Debug
    CMAKE_OSX_ARCHITECTURESバイナリの対応する CPU アーキテクチャー。Mac OS X のみ。ppc, i386, "ppc;i386"
    CMAKE_OSX_SYSROOT使用する SDK。Mac OS X のみ。/Developer/SDKs/MacOSX10.5.sdk, /Developer/SDKs/MacOSX10.4u.sdk
    BIN_INSTALL_DIR実行可能ファイル等のインストール先。指定しなければ、Linux では CMAKE_INSTALL_PREFIX 内の bin ディレクトリで、Mac OS X では CMAKE_INSTALL_PREFIX 内の Applications ディレクトリ/usr/bin, /usr/local/bin, /Applications
    LIB_INSTALL_DIRライブラリ等のインストール先。指定しなければ、CMAKE_INSTALL_PREFIX 内の lib ディレクトリ。Mac OS X では使わない。/usr/lib, /usr/local/lib
    XDG_APPS_INSTALL_DIRデスクトップエントリーファイルのインストール先。指定しなければ、CMAKE_INSTALL_PREFIX 内の share/applications ディレクトリ。Mac OS X では使わない。/usr/share/applications, /usr/share/applnk

    このうち、CMake であらかじめ定義されているのは CMAKE_ で始まる変数のみです。XDG_APPS_INSTALL_DIR はバージョン 0.0.6 で追加しました。これらを含む変数の設定は CMakeCache.txt というファイルに保存されます。

    Mac OS X 10.5 の場合、CMake 2.4.8 で CMAKE_OSX_ARCHITECTURES を設定すると CMAKE_OSX_SYSROOT/Developer/SDKs/MacOSX10.4u.sdk が設定されコンパイルに失敗するので、このようなときには CMAKE_OSX_SYSROOT/Developer/SDKs/MacOSX10.5.sdk を指定してください。

  2. make

    $ make

  3. make install

    $ make install

    Linux では以下のファイルがインストールされます。

    • ${BIN_INSTALL_DIR}/cueplot${LIB_INSTALL_DIR}/cueplot/cueplot へのシンボリックリンク)

    • ${LIB_INSTALL_DIR}/cueplot/cueplot

    • ${LIB_INSTALL_DIR}/cueplot/cueplot_ja_JP.qm

    • ${LIB_INSTALL_DIR}/cueplot/qt_ja_JP.qm

    • ${XDG_APPS_INSTALL_DIR}/cueplot.desktop

    cueplot.desktop もインストールされるようになったのはバージョン 0.0.6 からです。

    注意

    Linux で Cueplot のパッケージを作る際には DESTDIR を利用するといいでしょう。バージョン 0.0.6 から DESTDIR の指定によって make install の挙動を変えられるようにしました。

    $ make install DESTDIR=dir

    Mac OS X では以下のディレクトリがインストールされます。

    • ${BIN_INSTALL_DIR}/Cueplot.app

    ここで ${BIN_INSTALL_DIR}${LIB_INSTALL_DIR}${XDG_APPS_INSTALL_DIR} はそれぞれ cmake コマンドのオプションで指定した BIN_INSTALL_DIRLIB_INSTALL_DIRXDG_APPS_INSTALL_DIR の値です。

  4. strip

    strip コマンドについては qmake のセクションにおける解説を参照してください。

RPM

RHEL のような rpm 系 Linux ならば、アップロードされている SRPM から容易に RPM を作れます。

$ rpmbuild --rebuild cueplot-x.y.z-n.src.rpm

作成される RPM をインストールすると以下のファイルがインストールされます。/usr/lib ディレクトリは環境によっては /usr/lib64 ディレクトリになります。

  • /usr/bin/cueplot/usr/lib/cueplot/cueplot へのシンボリックリンク)

  • /usr/lib/cueplot/cueplot

  • /usr/lib/cueplot/cueplot_ja_JP.qm

  • /usr/lib/cueplot/qt_ja_JP.qm

  • /usr/share/applications/cueplot.desktop

KDE や GNOME などならばメニューに Cueplot が追加されます。また、コンソールからも起動できるようになります。

$ cueplot

-style オプションで look and feel を指定できます。

$ cueplot -style cde

-style オプションで指定できる値には cde の他に cleanlooks、motif や windows があります。cleanlooks は Qt 4.2 以降で利用できます。

ebuild

Gentoo Linux で使える ebuild もアップロードされています。

ebuild では LINGUAS 変数で "ja"(日本語)が設定されているときのみ cueplot_ja_JP.qm がインストールされます。また、qt_ja_JP.qm がインストールされるのは Qt 4.3 よりも前のバージョンしかインストールされていないときです。

インストールされるファイルや起動方法などについては RPM のセクションを参照してください。