weblog of key_amb

主にIT関連の技術メモ

(メモ) nghttp2 を MacOSX の特定パス上にビルド

最初、homebrew で入れたのだけど、よく見たらバージョンがかなり古かったので、最新をインストールしたくなった。

自分の環境は Mac OSX Yosemite。

基本、 Kazuho's Weblog: [memo] Installing nghttp2 onto OSX を参考に。

下準備

自分の環境で足りてなかったもの。

brew install wget
brew install libtool
cd /usr/local/bin
ln -s glibtool libtool
ln -s glibtoolize libtoolize

libtool は spdylay のビルド時にエラーになった。Mac に最初から入っているものでなくて、 GNU 版が必要だったようだ。*1

インストール手順

mkdir /usr/local/nghttp2
cd $_

## openssl
wget --no-check-certificate https://www.openssl.org/source/openssl-1.0.2e.tar.gz
tar xzf openssl-1.0.2e.tar.gz
cd openssl-1.0.2e
KERNEL_BITS=64 ./config shared enable-ec_nistp_64_gcc_128 --prefix=/usr/local/nghttp2
make depend
make make install

## libevent
cd ..
wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
tar xzf libevent-2.0.22-stable.tar.gz
cd libevent-2.0.22-stable
CFLAGS=-I/usr/local/nghttp2/include CXXFLAGS=-I/usr/local/nghttp2/include LDFLAGS=-L/usr/local/nghttp2/lib ./configure --prefix=/usr/local/nghttp2
make make install

## zlib
cd ..
wget http://zlib.net/zlib-1.2.8.tar.gz
tar xzf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure --prefix=/usr/local/nghttp2
make
make install

## spdylay
cd ..
git clone https://github.com/tatsuhiro-t/spdylay.git
cd spdylay
(cd m4 && curl https://raw.githubusercontent.com/agoston/whoisserver-legacy/master/m4/am_path_xml2.m4 > am_path_xml2.m4)
autoreconf -i
automake
autoconf
PKG_CONFIG_PATH=/usr/local/nghttp2/lib/pkgconfig ./configure --prefix=/usr/local/nghttp2
make
make install

## nghttp2
cd ..
git clone https://github.com/tatsuhiro-t/nghttp2.git
(cd m4 && curl https://raw.githubusercontent.com/agoston/whoisserver-legacy/master/m4/am_path_xml2.m4 > am_path_xml2.m4)
autoreconf -i
PKG_CONFIG_PATH=/usr/local/nghttp2/lib/pkgconfig ./configure --prefix=/usr/local/nghttp2 --enable-app --disable-threads
make
make install