0. 環境
- CentOS release 6.2 (Final) / x86_64
- httpd-2.4.2 (自前ビルド)
1. mruby をビルド
$ git clone https://github.com/mruby/mruby.git
$ cd mruby
$ make CFLAGS="-g -O3 -fPIC"
2. json-c をビルド & インストール
$ git clone https://github.com/matsumoto-r/json-c.git
$ cd json-c
$ git checkout json-c-0.10
$ ./configure --prefix=$HOME/opt/json-c
$ make
$ make install
make install では json_object _iterator.h だけがインストールされないので、手動でインストールする。 もしくは、Makefile の libjsoninclude_HEADERS に追加して make install を実行する。
2.1 おまけ作業 - pkgconfig のパス設定
prefix を指定した場合、pc ファイルが参照されないので、設定を行う。
環境変数を設定
.bashrc
export PKG_CONFIG_PATH=$HOME/opt/json-c/lib/pkgconfig
$ . ~/.bashrc
動作確認
$ pkg-config --libs json
-L/home/foo/opt/json-c/lib -ljson
$ pkg-config --cflags json
-I/home/foo/opt/json-c/include/json
##3. mod_mruby をビルド & インストール
自分の環境に合わせて、make 時に、apxs コマンドのパスmruby のパスjson-c のパスの 3 つを指定する。
$ git clone https://github.com/matsumoto-r/mod_mruby.git
$ cd mod_mruby
$ make install \
MRUBY_PREFIX='$(HOME)/build/mruby' \
APXS='$(shell which apxs)' \
INC='-I. -I$(MRUBY_PREFIX)/src -I$(MRUBY_PREFIX)/include $(shell pkg-config --cflags json)' \
LIB='-lm $(MRUBY_PREFIX)/lib/libmruby.a -lm $(MRUBY_PREFIX)/mrblib/mrblib.o -lm $(shell pkg-config --libs json)'
...省略...
[activating module `mruby' in /home/foo/opt/apache-2.4.2/conf/httpd.conf]
インストールはこれで、おしまい。