Skip to content

Instantly share code, notes, and snippets.

@akhenakh
Last active August 29, 2015 14:19
Show Gist options
  • Save akhenakh/ce63a176f45e9831bb27 to your computer and use it in GitHub Desktop.
Save akhenakh/ce63a176f45e9831bb27 to your computer and use it in GitHub Desktop.
Compile LedisDB with leveldb and rocksdb support on OSX using Macports
#!/bin/bash
# using macports install:
# port install gcc5 rocksdb leveldb
export CC=/opt/local/bin/gcc-mp-5
export CXX=/opt/local/bin/g++-mp-5
export LEDISTOP=$(pwd)
export LEDISROOT="${LEDISROOT:-${LEDISTOP/\/src\/github.com\/siddontang\/ledisdb/}}"
# LEDISTOP sanity check
if [[ "$LEDISTOP" == "${LEDISTOP/\/src\/github.com\/siddontang\/ledisdb/}" ]]; then
echo "WARNING: LEDISTOP($LEDISTOP) does not contain src/github.com/siddontang/ledisdb"
exit 1
fi
#default snappy and leveldb install path
#you may change yourself
SNAPPY_DIR=/opt/local
LEVELDB_DIR=/opt/local
ROCKSDB_DIR=no
LUA_DIR=/opt/local/lua
function add_path()
{
# $1 path variable
# $2 path to add
if [ -d "$2" ] && [[ ":$1:" != *":$2:"* ]]; then
echo "$1:$2"
else
echo "$1"
fi
}
export GOPATH=$(add_path $GOPATH $LEDISROOT)
GO_BUILD_TAGS=
CGO_CFLAGS=-I/opt/local/include
CGO_CXXFLAGS=-I/opt/local/include
CGO_LDFLAGS=
# check dependent libray, now we only check simply, maybe later add proper checking way.
# check snappy
if [ -f $SNAPPY_DIR/include/snappy.h ]; then
CGO_CFLAGS="$CGO_CFLAGS -I$SNAPPY_DIR/include"
CGO_CXXFLAGS="$CGO_CXXFLAGS -I$SNAPPY_DIR/include"
CGO_LDFLAGS="$CGO_LDFLAGS -L$SNAPPY_DIR/lib -lsnappy"
fi
# check leveldb
if [ -f $LEVELDB_DIR/include/leveldb/c.h ]; then
CGO_CFLAGS="$CGO_CFLAGS -I$LEVELDB_DIR/include"
CGO_CXXFLAGS="$CGO_CXXFLAGS -I$LEVELDB_DIR/include"
CGO_LDFLAGS="$CGO_LDFLAGS -L$LEVELDB_DIR/lib -lleveldb"
GO_BUILD_TAGS="$GO_BUILD_TAGS leveldb"
fi
# check rocksdb
if [ -f $ROCKSDB_DIR/include/rocksdb/c.h ]; then
CGO_CFLAGS="$CGO_CFLAGS -I$ROCKSDB_DIR/include"
CGO_CXXFLAGS="$CGO_CXXFLAGS -I$ROCKSDB_DIR/include"
CGO_LDFLAGS="$CGO_LDFLAGS -L$ROCKSDB_DIR/lib -lrocksdb"
GO_BUILD_TAGS="$GO_BUILD_TAGS rocksdb"
fi
#check lua
if [ -f $LUA_DIR/include/lua.h ]; then
CGO_CFLAGS="$CGO_CFLAGS -I$LUA_DIR/include"
CGO_LDFLAGS="$CGO_LDFLAGS -L$LUA_DIR/lib -llua"
fi
export CGO_CFLAGS
export CGO_CXXFLAGS
export CGO_LDFLAGS
export GO_BUILD_TAGS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment