snmptrap を IRC に出力(ビルド編)

※05.21:kyototycoonのLD_RUN_PATH/configure微修正。

今更車輪の再発明もどうかと思いつつ、kyotoなどの習作がてら作ったもののまとめです。
ビルドして入れたもののまとめ。(snmptrapdに関してはOS付属を使用。IRCサーバは別に既にあるもの想定)

当時64bitで全部作ろうかと思ったのですが、作業している当時はOS付属のgcc合わせで32bitで作ろうとしたので
ここに記載しているのはすべて32bitで作っています。
64bitは、tamtam180さんのが非常に参考になります。(Solaris環境ではいつもお世話になっています。)
 つhttp://mt.orz.at/archives/2012/02/solaris10kyoto.html

また、KyotoCabinet/KyotoTycoonはそもそもMakefileが64bit向けですので、32bitでビルドはできていますが、
動かしていることで何かしら想定外挙動は起き得ると思っています。その辺も全部自己責任。

●環境
 x86 Solaris10 u8
 Intel(R) Atom(TM) CPU 330 @ 1.60GHz CPUSocket

●GCC4.4.6(Kyoto系・Lua系のビルド用)
インストール先:/usr/local/gcc-4.4.6

$ export PATH=/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin


gtar xjf gmp-4.3.1.tar.bz2
cd gmp-4.3.1
CC=/usr/sfw/bin/gcc CXX=/usr/sfw/bin/gcc \
ABI=32 ./configure --prefix=/usr/local/gcc-4.4.6
gmake -j 4
gmake check
su
export PATH=/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
gmake install
exit


gtar xjf mpfr-2.4.1.tar.bz2
cd mpfr-2.4.1
CC=/usr/sfw/bin/gcc CXX=/usr/sfw/bin/gcc \
LDFLAGS="-L/usr/local/gcc-4.4.6/lib -R/usr/local/gcc-4.4.6/lib" \
ABI=32 ./configure --prefix=/usr/local/gcc-4.4.6 --with-gmp=/usr/local/gcc-4.4.6
gmake -j 4
gmake check
su
export PATH=/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
gmake install
exit


gtar xzf binutils-2.22.tar.gz
cd binutils-2.22
export PATH=/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
./configure --prefix=/usr/local/binutils-2.22
gmake -j 4
gmake check
su
export PATH=/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
gmake install
exit


gtar xzf gcc-4.4.6.tar.gz
mkdir gccbuild
cd gccbuild
export PATH=/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin:/usr/local/binutils-2.22/bin
export LD_RUN_PATH="/usr/local/gcc-4.4.6/lib"
CC=/usr/sfw/bin/gcc CXX=/usr/sfw/bin/gcc \
LDFLAGS="-L/usr/local/gcc-4.4.6/lib -R/usr/local/gcc-4.4.6/lib" \
 ../gcc-4.4.6/configure \
 --prefix=/usr/local/gcc-4.4.6 \
 --with-gmp=/usr/local/gcc-4.4.6 \
 --with-mpfr=/usr/local/gcc-4.4.6 \
 --with-ar=/usr/ccs/bin/ar \
 --with-as=/usr/sfw/bin/gas \
 --with-gnu-as \
 --with-ld=/usr/ccs/bin/ld \
 --without-gnu-ld \
 --enable-languages=c,c++ \
 --enable-shared \
 --enable-static \
 --enable-threads=posix
gmake -j 4 bootstrap
su
export PATH=/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
gmake install
exit
unset LD_RUN_PATH


※参考:Sparc環境の場合はasをccs側にします
$ export LD_RUN_PATH="/usr/local/gcc-4.4.6/lib"
$ LDFLAGS="-L/usr/local/gcc-4.4.6/lib -R/usr/local/gcc-4.4.6/lib" \
> ../gcc-4.4.6/configure \
> --prefix=/usr/local/gcc-4.4.6 \
> --with-gmp=/usr/local/gcc-4.4.6 \
> --with-mpfr=/usr/local/gcc-4.4.6 \
> --with-ar=/usr/ccs/bin/ar \
> --without-gnu-as \
> --with-as=/usr/ccs/bin/as \
> --with-ld=/usr/ccs/bin/ld \
> --without-gnu-ld \
> --enable-languages=c,c++ \
> --enable-shared \
> --enable-static \
> --enable-threads=posix


●Lua-5.1.4(KyotoTycoonで参照させるので、先に本体だけ入れてしまいます)
インストール先:/usr/local/lua-5.1.4
http://www.lua.org/download.html

export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
gtar xzf lua-5.1.4.tar.gz
cd lua-5.1.4
vi Makefile
  INSTALL_TOP をインストール予定場所に修正(今回は/usr/local/lua-5.1.4)
  INSTALL/INSTALL_EXEC/INSTALL_DATA を cp 版側に変更
vi src/luaconf.h
  LUA_ROOT をインストール予定場所に修正(今回は/usr/local/lua-5.1.4/)
export LD_RUN_PATH="/usr/local/gcc-4.4.6/lib"
LDFLAGS="-L:/usr/local/gcc-4.4.6/lib -R/usr/local/gcc-4.4.6/lib" gmake solaris
su
export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
gmake install
exit
unset LD_RUN_PATH


●KyotoCabinet/KyotoTycoon
http://fallabs.com/kyotocabinet/pkg/
http://fallabs.com/kyototycoon/pkg/

gtar xzf kyotocabinet-1.2.72.tar.gz
cd kyotocabinet-1.2.72
export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
export LD_RUN_PATH="/usr/local/gcc-4.4.6/lib"
CC=/usr/local/gcc-4.4.6/bin/gcc CXX=/usr/local/gcc-4.4.6/bin/g++ \
LDFLAGS="-L:/usr/local/gcc-4.4.6/lib -R/usr/local/gcc-4.4.6/lib" \
./configure --prefix=/usr/local/kyotocabinet-1.2.72
cp -p Makefile Makefile.org
vi Makefile
diff Makefile Makefile.org
53,54c53,54
< CFLAGS = -march=native -g -O2 -Wall -ansi -pedantic -fPIC -fsigned-char -g0 -O2
< CXXFLAGS = -march=native -g -O2 -Wall -fPIC -fsigned-char -g0 -O2
---
> CFLAGS = -march=native -m64 -g -O2 -Wall -ansi -pedantic -fPIC -fsigned-char -g0 -O2
> CXXFLAGS = -march=native -m64 -g -O2 -Wall -fPIC -fsigned-char -g0 -O2
gmake -j 4
gmake check
su
export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
gmake install"
exit


gtar xzf kyototycoon-0.9.53.tar.gz
cd kyototycoon-0.9.53
export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
export LD_RUN_PATH="/usr/local/gcc-4.4.6/lib:/usr/local/kyotocabinet-1.2.72/lib:/usr/local/kyototycoon-0.9.53/lib"
CC=/usr/local/gcc-4.4.6/bin/gcc CXX=/usr/local/gcc-4.4.6/bin/g++ \
LDFLAGS="-L:/usr/local/gcc-4.4.6/lib:/usr/local/kyotocabinet-1.2.72/lib:/usr/local/kyototycoon-0.9.53/lib -R/usr/local/gcc-4.4.6/lib:/usr/local/kyotocabinet-1.2.72/lib:/usr/local/kyototycoon-0.9.53/lib" \
./configure --prefix=/usr/local/kyototycoon-0.9.53 --with-kc=/usr/local/kyotocabinet-1.2.72 --with-lua=/usr/local/lua-5.1.4
cp -p Makefile Makefile.org
vi Makefile
diff Makefile Makefile.org
gmake -j 4
gmake check
su
export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
gmake install
exit


●Luaライブラリ
http://luamemcached.luaforge.net/
https://github.com/JakobOvrum/LuaIRC
http://w3.impa.br/~diego/software/luasocket/
http://luaforge.net/projects/alt-getopt/
https://github.com/Neopallium/lualogging (rolling_fileがほしかったのでこっち)

gtar xzf luasocket-2.0.2.tar.gz
cd luasocket-2.0.2
export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
cp -p config config.org
vi config
===
LUAINC=-I/usr/local/lua-5.1.4/include
INSTALL_TOP_SHARE=/usr/local/lua-5.1.4/share/lua/5.1
INSTALL_TOP_LIB=/usr/local/lua-5.1.4/lib/lua/5.1
LDFLAGS=-O -shared -fpic -lsocket -lresolv -lrt
===
diff config config.org
21d20
< LUAINC=-I/usr/local/lua-5.1.4/include
34,35c33,34
< INSTALL_TOP_SHARE=/usr/local/lua-5.1.4/share/lua/5.1
< INSTALL_TOP_LIB=/usr/local/lua-5.1.4/lib/lua/5.1
---
> INSTALL_TOP_SHARE=/usr/local/share/lua/5.1
> INSTALL_TOP_LIB=/usr/local/lib/lua/5.1
56c55
< LDFLAGS=-O -shared -fpic -lsocket -lresolv -lrt
---
> LDFLAGS=-O -shared -fpic

export LD_RUN_PATH="/usr/local/gcc-4.4.6/lib"
LDFLAGS="-L:/usr/local/gcc-4.4.6/lib -R/usr/local/gcc-4.4.6/lib" gmake -f makefile
su
export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
gmake install
exit


gtar xzf lua-alt-getopt-0.7.0.tar.gz
cd lua-alt-getopt-0.7.0
su
chown root:root alt_getopt.lua
cp -p alt_getopt.lua /usr/local/lua-5.1.4/share/lua/5.1/
exit


gtar xzf lualogging-1.2.0.tar.gz
cd Neopallium-lualogging-445395d/
vi Makefile
===
PREFIX = /usr/local/lua-5.1.4
ROOT_LUAS= src/logging.lua
===
su
export PATH=/usr/local/gcc-4.4.6/bin:/usr/sfw/bin:/usr/sfw/sbin:/usr/xpg4/bin:/usr/ccs/bin:/usr/sbin:/usr/bin
gmake install
exit


gtar xzf luamemcached.0.7.tar.gz
su
chown root:root Memcached.lua CRC32.lua
mv Memcached.lua CRC32.lua /usr/local/lua-5.1.4/share/lua/5.1
exit


unzip JakobOvrum-LuaIRC.zip
cd JakobOvrum-LuaIRC-ad53b2a/
su
chown root:root *.lua
mkdir /usr/local/lua-5.1.4/share/lua/5.1/irc
cp -p *.lua /usr/local/lua-5.1.4/share/lua/5.1/irc
exit