diff --git a/c-deps/builddeps.sh b/c-deps/builddeps.sh index 6ed192ed4..3d63c6e4a 100755 --- a/c-deps/builddeps.sh +++ b/c-deps/builddeps.sh @@ -2,6 +2,8 @@ set -e +. ./vars + BASE=$(pwd) LIBS="$BASE/libs" mkdir -p $LIBS @@ -10,7 +12,7 @@ mkdir -p $LIBS if [ ! -f $LIBS/libjemalloc.a ]; then cd jemalloc bash autogen.sh - make -j8 + ${MAKE_CMD} -j${MAXJOBS} cp lib/libjemalloc.a ../libs cd ../libs fi @@ -24,7 +26,7 @@ if [ ! -f $LIBS/libsnappy.a ]; then cd build cmake ../ # sed -i.bak s/BUILD_SHARED_LIBS:BOOL=OFF/BUILD_SHARED_LIBS:BOOL=ON/g CMakeCache.txt - make -j8 + ${MAKE_CMD} -j${MAXJOBS} cp libsnappy.a ../../libs/ cp snappy-stubs-public.h ../ @@ -40,9 +42,9 @@ if [ ! -f $LIBS/librocksdb.a ]; then cd build cmake -DWITH_GFLAGS=OFF -DPORTABLE=ON \ -DWITH_SNAPPY=ON -DSNAPPY_LIBRARIES="$LIBS/libsnappy.a" -DSNAPPY_INCLUDE_DIR="$BASE/snappy" \ - -DWITH_JEMALLOC=ON -DJEMALLOC_LIBRARIES="$LIBS/libjemalloc.a" -DJEMALLOC_INCLUDE_DIR="$BASE/jemalloc/include" \ + -DWITH_JEMALLOC=${JEMALLOC_ENABLE} -DJEMALLOC_LIBRARIES="$LIBS/libjemalloc.a" -DJEMALLOC_INCLUDE_DIR="$BASE/jemalloc/include" \ -DCMAKE_BUILD_TYPE=Release -DUSE_RTTI=1 ../ - make -j8 rocksdb + ${MAKE_CMD} -j${MAXJOBS} rocksdb cp librocksdb.a ../../libs fi diff --git a/c-deps/cleandeps.sh b/c-deps/cleandeps.sh index ae8e538dc..e7f2ae30f 100755 --- a/c-deps/cleandeps.sh +++ b/c-deps/cleandeps.sh @@ -1,6 +1,8 @@ #!/usr/bin/env bash +. ./vars + for i in jemalloc snappy rocksdb do - make -C $i clean -done \ No newline at end of file + ${MAKE_CMD} -C $i clean +done diff --git a/c-deps/vars b/c-deps/vars new file mode 100644 index 000000000..69eab4ffc --- /dev/null +++ b/c-deps/vars @@ -0,0 +1,15 @@ +#! /usr/bin/env bash +# OS specific settings + +Osname=$(uname) +if [ "${Osname}" == "DragonFly" ]; then + # DragonFly BSD + JEMALLOC_ENABLE="OFF" + MAKE_CMD=gmake + MAXJOBS=$(sysctl -n hw.ncpu) +else + # Linux, Darwin + MAKE_CMD=make + JEMALLOC_ENABLE="ON" + MAXJOBS=8 +fi diff --git a/rocksdb/flags.go b/rocksdb/flags.go index 0862ff705..ac882ff37 100644 --- a/rocksdb/flags.go +++ b/rocksdb/flags.go @@ -20,12 +20,12 @@ package rocksdb // #cgo CXXFLAGS: -std=c++11 -O3 -I${SRCDIR}/../c-deps/rocksdb/include // #cgo LDFLAGS: -L${SRCDIR}/../c-deps/libs // #cgo LDFLAGS: -lrocksdb -// #cgo LDFLAGS: -ljemalloc +// #cgo !dragonfly LDFLAGS: -ljemalloc // #cgo LDFLAGS: -lsnappy // #cgo LDFLAGS: -lstdc++ // #cgo LDFLAGS: -ldl // #cgo LDFLAGS: -lpthread // #cgo LDFLAGS: -lm // #cgo darwin LDFLAGS: -Wl,-undefined -Wl,dynamic_lookup -// #cgo !darwin LDFLAGS: -Wl,-unresolved_symbols=ignore-all -lrt +// #cgo linux LDFLAGS: -Wl,-unresolved_symbols=ignore-all -lrt import "C"