HOME / コンピュータTips / Solaris / コンパイル / glibmm

Date: 2019/12/08 |  このエントリーをはてなブックマークに追加  |  Tags: Solaris opensolaris Software compile コンパイル glibmm パッケージ package

インストールとデプロイ

ダウンロード

現時点で2.16がでているが、私の環境では2.14系までしかコンパイルが通らない。2.15、2.16は、glibのバージョンが云々とか言われてしまうようだ。

ソフト側の要求は2.4系、cswで入るのは2.2系なので、それよりはずっと良いであろう。

また、インストール後のディレクトリをみると、glibmm-2.4以下となっているので、どうやらここに大きな溝があるらしい。

展開

bzcat -dc glibmm-2.14.2.tar.bz2 | tar xvf -

コンパイル

gmakeは必須である。

先に、libsigc++をインストールしておく必要がある。ここでつくったSolaris用のlibsigc++パッケージを入れておくと良い。

PKG_CONFIG_PATH=/opt/JPC/lib/pkgconfig:/usr/lib/pkgconfig:/opt/csw/lib/pkgconfig ; export PKG_CONFIG_PATH

./configure \
 --prefix=/opt/JPC
gmake -j4

このままでは、/opt/JPCにインストールされてしまうので、泥縄であるが、JPCを一次的に待避させる。

いったん依存関係のあるものをアンインストール

pkgrm JPClibsigc++

待避して依存関係のあるものをインストール、

mv /opt/JPC /opt/JPC.orig
pkgadd -d JPClibsigc++-2.2.2J01.pkg

本体をインストール。

gmake install

インストール後の確認などなど・・・

# ls -l /opt/JPC/lib/pkgconfig/
glibmm-2.4.pc  sigc++-2.0.pc 

依存関係のあるパッケージをアンインストール

pkgrm JPClibsigc++

すると若干のゴミはあるかもしれないが、残りは今回入れた本体のみであるはず。

rm -rf ../install_root/
mkdir -p ../install_root/opt
mv /opt/JPC ../install_root/opt/
mv /opt/JPC.orig /opt/JPC

おわったら、依存物を間違いなくインストール・・・と言いたいが、ここは一度ぐっとまつ。

ここで ../install_rootにインストール後のイメージが出来ている。

パッケージ化

cd ../install_root

prototypeを作成

pkgproto . > prototype

出来たprototypeファイルから、prototypeのエントリを削除する。

f none prototype 0644 root root

その上で、下記の2行を追加。依存関係があるので注意。

i pkginfo
i depend

依存関係ファイルの作成

cat <<__END > ../depend
P       JPClibsigc++        typesafe callback system for standard C++
__END
cp ../depend .

pkginfoを作成

cat <<__END > ../pkginfo
PKG=JPCglibmm2
NAME=glibmm2
ARCH=i86pc
VERSION=2.14.2
CATEGORY=library
DESC=a C++ API for parts of glib that are useful for C++.
VENDOR=JPC
CLASSES=none
BASEDIR=/
__END
cp ../pkginfo .

パッケージ作成

../../make_package.sh 01

パッケージの作成(旧式)

pkgmk -r `pwd`
pushd /var/spool/pkg/
pkgtrans -s . パッケージ名.pkg

確認

ここでできたpkgをインストールすると、libsigc++が必要であることが確認できる。

## パッケージの依存関係を検査しています。
   警告:
   <JPClibsigc++> パッケージ "typesafe callback system for
   standard C++" は、必須パッケージであるため、インストール
   する必要があります。

後は仲良くインストールすればよい。

pkgadd -d JPClibsigc++-2.2.2J01.pkg
pkgadd -d JPCglibmm2-2.14.2J01.pkg
env PKG_CONFIG_PATH=/opt/JPC/lib/pkgconfig:/usr/lib/pkgconfig:/opt/csw/lib/pkgconfig pkg-config --list-all | grep glibmm
glibmm-2.0                  GLibmm - C++ wrapper for GLib
glibmm-2.4                  GLibmm - C++ wrapper for GLib

下が今作ったモノ。