1# a minimal build of third party libraries for static linking 2 3third_party_dir = $(CURDIR)/thirdparty 4src_dir = $(third_party_dir)/src 5 6glog: build ?= cmake-build 7build ?= build 8 9third_party_libs = capnproto glog gtest leveldb marisa opencc yaml-cpp 10 11.PHONY: all clean-src $(third_party_libs) 12 13all: $(third_party_libs) 14 15# note: this won't clean output files under include/, lib/ and bin/. 16clean-src: 17 rm -r $(src_dir)/capnproto/build || true 18 rm -r $(src_dir)/glog/cmake-build || true 19 rm -r $(src_dir)/googletest/build || true 20 rm -r $(src_dir)/leveldb/build || true 21 rm -r $(src_dir)/marisa-trie/build || true 22 rm -r $(src_dir)/opencc/build || true 23 rm -r $(src_dir)/yaml-cpp/build || true 24 25capnproto: 26 cd $(src_dir)/capnproto; \ 27 cmake . -B$(build) \ 28 -DBUILD_SHARED_LIBS:BOOL=OFF \ 29 -DBUILD_TESTING:BOOL=OFF \ 30 -DCMAKE_BUILD_TYPE:STRING="Release" \ 31 -DCMAKE_INSTALL_PREFIX:PATH="$(third_party_dir)" \ 32 && cmake --build $(build) --target install 33 34glog: 35 cd $(src_dir)/glog; \ 36 cmake . -B$(build) \ 37 -DBUILD_TESTING:BOOL=OFF \ 38 -DWITH_GFLAGS:BOOL=OFF \ 39 -DCMAKE_BUILD_TYPE:STRING="Release" \ 40 -DCMAKE_INSTALL_PREFIX:PATH="$(third_party_dir)" \ 41 && cmake --build $(build) --target install 42 43gtest: 44 cd $(src_dir)/googletest; \ 45 cmake . -B$(build) \ 46 -DBUILD_GMOCK:BOOL=OFF \ 47 -DCMAKE_BUILD_TYPE:STRING="Release" \ 48 -DCMAKE_INSTALL_PREFIX:PATH="$(third_party_dir)" \ 49 && cmake --build $(build) --target install 50 51leveldb: 52 cd $(src_dir)/leveldb; \ 53 cmake . -B$(build) \ 54 -DLEVELDB_BUILD_BENCHMARKS:BOOL=OFF \ 55 -DLEVELDB_BUILD_TESTS:BOOL=OFF \ 56 -DCMAKE_BUILD_TYPE:STRING="Release" \ 57 -DCMAKE_INSTALL_PREFIX:PATH="$(third_party_dir)" \ 58 && cmake --build $(build) --target install 59 60marisa: 61 cd $(src_dir)/marisa-trie; \ 62 cmake $(src_dir) -B$(build) \ 63 -DCMAKE_BUILD_TYPE:STRING="Release" \ 64 -DCMAKE_INSTALL_PREFIX:PATH="$(third_party_dir)" \ 65 && cmake --build $(build) --target install 66 67opencc: 68 cd $(src_dir)/opencc; \ 69 cmake . -B$(build) \ 70 -DBUILD_SHARED_LIBS:BOOL=OFF \ 71 -DCMAKE_BUILD_TYPE:STRING="Release" \ 72 -DCMAKE_INSTALL_PREFIX:PATH="$(third_party_dir)" \ 73 && cmake --build $(build) --target install 74 75yaml-cpp: 76 cd $(src_dir)/yaml-cpp; \ 77 cmake . -B$(build) \ 78 -DYAML_CPP_BUILD_CONTRIB:BOOL=OFF \ 79 -DYAML_CPP_BUILD_TESTS:BOOL=OFF \ 80 -DYAML_CPP_BUILD_TOOLS:BOOL=OFF \ 81 -DCMAKE_BUILD_TYPE:STRING="Release" \ 82 -DCMAKE_INSTALL_PREFIX:PATH="$(third_party_dir)" \ 83 && cmake --build $(build) --target install 84