@@ -391,6 +391,7 @@ build/variables.mk: Makefile build/archive/contents/Makefile $(UI_ROOT)/Makefile
391391# common because both the root Makefile and protobuf.mk have C dependencies.
392392
393393C_DEPS_DIR := $(abspath c-deps)
394+ CRYPTOPP_SRC_DIR := $(C_DEPS_DIR ) /cryptopp
394395JEMALLOC_SRC_DIR := $(C_DEPS_DIR ) /jemalloc
395396PROTOBUF_SRC_DIR := $(C_DEPS_DIR ) /protobuf
396397ROCKSDB_SRC_DIR := $(C_DEPS_DIR ) /rocksdb
@@ -459,6 +460,7 @@ ifdef MINGW
459460BUILD_DIR := $(shell cygpath -m $(BUILD_DIR ) )
460461endif
461462
463+ CRYPTOPP_DIR := $(BUILD_DIR ) /cryptopp
462464JEMALLOC_DIR := $(BUILD_DIR ) /jemalloc
463465PROTOBUF_DIR := $(BUILD_DIR ) /protobuf
464466ROCKSDB_DIR := $(BUILD_DIR ) /rocksdb$(STDMALLOC_SUFFIX )$(if $(ENABLE_ROCKSDB_ASSERTIONS ) ,_assert)
@@ -469,7 +471,7 @@ PROTOC_DIR := $(GOPATH)/native/$(HOST_TRIPLE)/protobuf
469471PROTOC := $(PROTOC_DIR ) /protoc
470472
471473C_LIBS_OSS = $(if $(USE_STDMALLOC ) ,,libjemalloc) libprotobuf libsnappy librocksdb libroach
472- C_LIBS_CCL = $(C_LIBS_OSS ) libroachccl
474+ C_LIBS_CCL = $(C_LIBS_OSS ) libcryptopp libroachccl
473475
474476# Go does not permit dashes in build tags. This is undocumented. Fun!
475477NATIVE_SPECIFIER_TAG := $(subst -,_,$(NATIVE_SPECIFIER ) )$(STDMALLOC_SUFFIX )
@@ -510,7 +512,7 @@ $(CGO_FLAGS_FILES): Makefile
510512 @echo ' package $(notdir $(@D))' >> $@
511513 @echo >> $@
512514 @echo ' // #cgo CPPFLAGS: -I$(JEMALLOC_DIR)/include' >> $@
513- @echo ' // #cgo LDFLAGS: $(addprefix -L,$(PROTOBUF_DIR) $(JEMALLOC_DIR)/lib $(SNAPPY_DIR) $(ROCKSDB_DIR) $(LIBROACH_DIR))' >> $@
515+ @echo ' // #cgo LDFLAGS: $(addprefix -L,$(CRYPTOPP_DIR) $( PROTOBUF_DIR) $(JEMALLOC_DIR)/lib $(SNAPPY_DIR) $(ROCKSDB_DIR) $(LIBROACH_DIR))' >> $@
514516 @echo ' import "C"' >> $@
515517
516518# BUILD ARTIFACT CACHING
@@ -532,6 +534,12 @@ $(CGO_FLAGS_FILES): Makefile
532534# only rebuild the affected objects, but in practice dependencies on configure
533535# flags are not tracked correctly, and these stale artifacts can cause
534536# particularly hard-to-debug errors.
537+ $(CRYPTOPP_DIR ) /Makefile : $(C_DEPS_DIR ) /cryptopp-rebuild $(BOOTSTRAP_TARGET )
538+ rm -rf $(CRYPTOPP_DIR )
539+ mkdir -p $(CRYPTOPP_DIR )
540+ @# NOTE: If you change the CMake flags below, bump the version in
541+ @# $(C_DEPS_DIR)/cryptopp-rebuild. See above for rationale.
542+ cd $(CRYPTOPP_DIR ) && cmake $(CMAKE_FLAGS ) $(CRYPTOPP_SRC_DIR )
535543
536544$(JEMALLOC_SRC_DIR ) /configure.ac : $(BOOTSTRAP_TARGET )
537545
@@ -591,7 +599,8 @@ $(LIBROACH_DIR)/Makefile: $(C_DEPS_DIR)/libroach-rebuild $(BOOTSTRAP_TARGET)
591599 @# $(C_DEPS_DIR)/libroach-rebuild. See above for rationale.
592600 cd $(LIBROACH_DIR ) && cmake $(CMAKE_FLAGS ) $(LIBROACH_SRC_DIR ) -DCMAKE_BUILD_TYPE=Release \
593601 -DPROTOBUF_LIB=$(PROTOBUF_DIR ) /libprotobuf.a -DROCKSDB_LIB=$(ROCKSDB_DIR ) /librocksdb.a \
594- -DJEMALLOC_LIB=$(JEMALLOC_DIR ) /lib/libjemalloc.a -DSNAPPY_LIB=$(SNAPPY_DIR ) /libsnappy.a
602+ -DJEMALLOC_LIB=$(JEMALLOC_DIR ) /lib/libjemalloc.a -DSNAPPY_LIB=$(SNAPPY_DIR ) /libsnappy.a \
603+ -DCRYPTOPP_LIB=$(CRYPTOPP_DIR ) /libcryptopp.a
595604
596605# We mark C and C++ dependencies as .PHONY (or .ALWAYS_REBUILD) to avoid
597606# having to name the artifact (for .PHONY), which can vary by platform, and so
@@ -602,6 +611,10 @@ $(LIBROACH_DIR)/Makefile: $(C_DEPS_DIR)/libroach-rebuild $(BOOTSTRAP_TARGET)
602611$(PROTOC ) : $(PROTOC_DIR ) /Makefile .ALWAYS_REBUILD | libprotobuf
603612 @$(MAKE ) --no-print-directory -C $(PROTOC_DIR ) protoc
604613
614+ .PHONY : libcryptopp
615+ libcryptopp : $(CRYPTOPP_DIR ) /Makefile
616+ @$(MAKE ) --no-print-directory -C $(CRYPTOPP_DIR ) static
617+
605618.PHONY : libjemalloc
606619libjemalloc : $(JEMALLOC_DIR ) /Makefile
607620 @$(MAKE ) --no-print-directory -C $(JEMALLOC_DIR ) build_lib_static
@@ -627,7 +640,7 @@ libroachccl: $(LIBROACH_DIR)/Makefile $(CPP_PROTOS_CCL_TARGET) libroach
627640 @$(MAKE ) --no-print-directory -C $(LIBROACH_DIR ) roachccl
628641
629642PHONY : check-libroach
630- check-libroach : $(LIBROACH_DIR ) /Makefile libjemalloc libprotobuf libsnappy librocksdb
643+ check-libroach : $(LIBROACH_DIR ) /Makefile libjemalloc libprotobuf libsnappy librocksdb libcryptopp
631644 @$(MAKE ) --no-print-directory -C $(LIBROACH_DIR ) check
632645
633646override TAGS += make $(NATIVE_SPECIFIER_TAG )
@@ -1143,13 +1156,15 @@ c-deps-fmt: $(shell find $(LIBROACH_SRC_DIR) \( -name '*.cc' -o -name '*.h' \) -
11431156
11441157.PHONY : clean-c-deps
11451158clean-c-deps :
1159+ rm -rf $(CRYPTOPP_DIR )
11461160 rm -rf $(JEMALLOC_DIR )
11471161 rm -rf $(PROTOBUF_DIR )
11481162 rm -rf $(ROCKSDB_DIR )
11491163 rm -rf $(SNAPPY_DIR )
11501164
11511165.PHONY : unsafe-clean-c-deps
11521166unsafe-clean-c-deps :
1167+ git -C $(CRYPTOPP_SRC_DIR ) clean -dxf
11531168 git -C $(JEMALLOC_SRC_DIR ) clean -dxf
11541169 git -C $(PROTOBUF_SRC_DIR ) clean -dxf
11551170 git -C $(ROCKSDB_SRC_DIR ) clean -dxf
0 commit comments