|
| 1 | +LEVELDB_VSN ?= "2.0.38" |
| 2 | +SNAPPY_VSN ?= "1.1.9" |
| 3 | +BASEDIR = $(shell pwd) |
| 4 | + |
| 5 | +LDFLAGS := $(LDFLAGS) -L$(BASEDIR)/system/lib |
| 6 | +LD_LIBRARY_PATH := $(BASEDIR)/system/lib:$(LD_LIBRARY_PATH) |
| 7 | +CFLAGS := $(CFLAGS) -I $(BASEDIR)/system/include -I. -I $(BASEDIR)/leveldb/include -fPIC |
| 8 | +CXXFLAGS := $(CXXFLAGS) -I $(BASEDIR)/system/include -I. -I $(BASEDIR)/leveldb/include -fPIC |
| 9 | + |
| 10 | +get-deps: |
| 11 | + if [ ! -r snappy-$(SNAPPY_VSN).tar.gz ]; then \ |
| 12 | + wget -O snappy-$(SNAPPY_VSN).tar.gz https://github.com/google/snappy/archive/refs/tags/$(SNAPPY_VSN).tar.gz; \ |
| 13 | + fi |
| 14 | + if [ ! -d leveldb ]; then \ |
| 15 | + git clone https://github.com/basho/leveldb && \ |
| 16 | + (cd leveldb && git checkout $(LEVELDB_VSN)) && \ |
| 17 | + (cd leveldb && git submodule update --init); \ |
| 18 | + fi |
| 19 | + |
| 20 | +compile: get-deps snappy ldb |
| 21 | + cp leveldb/perf_dump leveldb/sst_rewrite leveldb/sst_scan leveldb/leveldb_repair ../priv |
| 22 | + |
| 23 | +ldb: |
| 24 | + $(MAKE) LDFLAGS="$(LDFLAGS) -lsnappy" LD_LIBRARY_PATH="$(LD_LIBRARY_PATH)" -C leveldb all |
| 25 | + $(MAKE) LDFLAGS="$(LDFLAGS) -lsnappy" LD_LIBRARY_PATH="$(LD_LIBRARY_PATH)" -C leveldb tools |
| 26 | + |
| 27 | +snappy: system/lib/libsnappy.a |
| 28 | + |
| 29 | +system/lib/libsnappy.a: |
| 30 | + tar -xzf snappy-$(SNAPPY_VSN).tar.gz && \ |
| 31 | + (cd snappy-$(SNAPPY_VSN) && \ |
| 32 | + git submodule update --init && \ |
| 33 | + if [ -r autogen.sh ]; then \ |
| 34 | + ./autogen.sh && ./configure --prefix=$(BASEDIR)/system && make && make install; \ |
| 35 | + else \ |
| 36 | + mkdir build && cd build && \ |
| 37 | + mkdir -p $(BASEDIR)/system && \ |
| 38 | + cmake -D SNAPPY_BUILD_TESTS=0 -D SNAPPY_BUILD_BENCHMARKS=0 \ |
| 39 | + -D CMAKE_INSTALL_PREFIX=$(BASEDIR)/system \ |
| 40 | + ..; \ |
| 41 | + fi && \ |
| 42 | + make && make install) |
| 43 | + mv system/lib64 system/lib || true |
| 44 | + |
| 45 | +clean: |
| 46 | + $(MAKE) -C leveldb clean |
| 47 | + rm -rf system snappy-$(SNAPPY_VSN)/build |
| 48 | + |
| 49 | +test: compile |
| 50 | + $(MAKE) CXXFLAGS="$(CXXFLAGS) -Wno-narrowing" LDFLAGS="$(LDFLAGS) -lsnappy -lpthread" LD_LIBRARY_PATH="$(LD_LIBRARY_PATH)" -C leveldb test |
0 commit comments