Solaris 10以降にはBerkeley DBのライブラリが付属していますが、
ヘッダーファイルがないため、他のプログラムからリンクすることができません。
ヘッダーファイルを用意してリンクできるようにします。
まずソースコードを展開し、必要なヘッダーファイルを生成します。
# gzip -dc db-4.2.25.tar.gz | tar xf - # cd db-4.2.25 # patch -p0 < patch-4.2.25.1 # patch -p0 < patch-4.2.25.2 # patch -p0 < patch-4.2.25.3 # patch -p0 < patch-4.2.25.4 # patch -p0 < patch-4.2.25.5 # cd build_unix # ../dist/configure
システムにコピーします。
# cp db.h /usr/include # cp db_cxx.h /usr/include
-ldbでリンクできるようにシンボリックリンクを張ります。
# cd /usr/lib # ln -s libdb.so.1 libdb.so # cd /usr/lib/64 # ln -s libdb.so.1 libdb.so
シェアードライブラリにします。SPARCでは32bit版と64bit版を両方コンパ イルしておきます。パッチが出ているので、それらも適用しておきます。
build_unixディレクトリで以下のようなスクリプトを実行します。
setup.sh(4.4.20の例)
#!/bin/sh
if [ $# -eq 1 ]; then
. ../../../setup-pre.sh $1
else
. ../../../setup-pre.sh
fi
BDBVER=4.4
LDFLAGS="$CFLAGS -L/usr/local/lib/db${BDBVER}${LIBISA} -R/usr/local/lib/db${BDBVER}${LIBISA} $LDFLAGS"
export LDFLAGS
../dist/configure --prefix=/usr/local \
--bindir=/usr/local/bin/db${BDBVER}/${ISA} \
--libdir=/usr/local/lib/db${BDBVER}${LIBISA} \
--includedir=/usr/local/include/db${BDBVER} \
--mandir=/usr/local/share/man
setup.shを実行してmakeします。
% ./setup.sh && gmake or % ./setup.sh sparcv9 && gmake
# gmake install
ISA自動起動リンクを作るために、以下のスクリプトを実行します。
4.2.52と4.4.20の例
#!/bin/sh
#
BINPROG42="db_archive db_checkpoint db_deadlock db_dump db_load db_printlog db_recover db_stat db_upgrade db_verify"
BINPROG44="db_archive db_checkpoint db_deadlock db_dump db_hotbackup db_load db_printlog db_recover db_stat db_upgrade db_verify"
BINPROG=$BINPROG42
BINDIR=/usr/local/bin/db4.2
if [ "${BINPROG}" != "" ]; then
cd ${BINDIR}
for prog in ${BINPROG}
do
rm -f $prog
ln /usr/lib/isaexec $prog
echo $prog
done
fi
cd /usr/local/tecgw/isaexec
BINPROG=$BINPROG44
BINDIR=/usr/local/bin/db4.4
if [ "${BINPROG}" != "" ]; then
cd ${BINDIR}
for prog in ${BINPROG}
do
rm -f $prog
ln /usr/lib/isaexec $prog
echo $prog
done
fi
for i in $BINPROG42
do
cd /usr/local/bin
rm -f $i
echo "ln -s db4.2/${i} ${i}"
ln -s db4.2/${i} ${i}
done