HOME / コンピュータTips / Solaris / コンパイル / glibmm
Date: 2024/10/05 | | 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 .
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
下が今作ったモノ。