Last active
August 29, 2015 14:19
-
-
Save akhenakh/ce63a176f45e9831bb27 to your computer and use it in GitHub Desktop.
Compile LedisDB with leveldb and rocksdb support on OSX using Macports
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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