#!/bin/sh
# Some fixes are from http://blog.segment7.net/articles/2006/03/02/fast-memcached-on-os-x
#
# AFTER RUNNING THIS SCRIPT:
#
# Set the environment variable EVENT_NOKQUEUE to 1
# * csh and derivatives: setenv EVENT_NOKQUEUE 1
# * sh and derivatives (like bash): export EVENT_NOKQUEUE=1
#
# You may also need to add /usr/local to your PATH, if it's not there already --
# which it *should be*.
#
PREFIX=/usr/local
mkdir src
cd src
# Install libevent dependency
curl -O http://www.monkey.org/~provos/libevent-1.1b.tar.gz
tar xfz libevent-1.1b.tar.gz
cd libevent-1.1b
./configure --prefix=${PREFIX} && make
sudo make install
cd ..
# Install memcached and fixes
curl -O http://www.danga.com/memcached/dist/memcached-1.1.12.tar.gz
tar xfz memcached-1.1.12.tar.gz
cd memcached-1.1.12
./configure --prefix=${PREFIX}
# in Makefile
# LDFLAGS = -L/lib
# LDFLAGS = -L${libdir}
sed -e 's/-L\/lib/-L${libdir}/' Makefile > Makefile.new
mv Makefile.new Makefile
# also in Makefile
# CFLAGS = -g -O2 -I/include
# CFLAGS = -g -O2 -I${includedir}
sed -e 's/-I\/include/-I${includedir}/' Makefile > Makefile.new
mv Makefile.new Makefile
# insert in memcached.c...
# #undef TCP_NOPUSH
# #ifdef TCP_NOPUSH
curl -O http://topfunky.net/svn/shovel/memcached/fixmemcached_c.rb
ruby fixmemcached_c.rb > memcached.c.new
mv memcached.c.new memcached.c
make
sudo make install
cd ../..
echo "Installation complete. Please add EVENT_NOKQUEUE=1 to your shell environment."