Skip to content

Commit

Permalink
Common Makefile rules (#451)
Browse files Browse the repository at this point in the history
* Common Makefile rules: object files

Currently we use a bit different build paths for object files:

  - src -> build/obj
  - jni -> build/obj/jni
  - tests -> build/tests/obj

This is one of the reasons that build rules for C/C++ code are
duplicated across Soter, Themis, ThemisPP, Themis-JNI, and tests.

Use a more consistent approach for placing object files: all of them
go into $(OBJ_PATH) and get suffixed by ".o". This way allows us
to have a single common rule for building all C/C++ code:

  - src -> build/obj/src
  - jni -> build/obj/jni
  - tests -> build/obj/tests

Note however that in some cases we have to use different compiler
flags, mostly to setup proper header search paths. Use per-target
CFLAGS variable settings for that.

* Common Makefile rules: code formatting

Using consistent object file placement allows us to simplify formatting
build rules in the same way. All marker files will not be placed in the
same place as object files.

This allows us to remove a lot of special cases and use common
formatting rules for all C/C++ code.

clang-format and clang-tidy require correct compilation flags.
Thankfully, CFLAGS values are already correctly set everywhere so we do
not need to do anything special for that. Though, JsThemis is a bit
special, because we do not compile it normally.
  • Loading branch information
ilammy authored Apr 10, 2019
1 parent b30cb34 commit de3cbb7
Show file tree
Hide file tree
Showing 9 changed files with 48 additions and 105 deletions.
31 changes: 14 additions & 17 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ OBJ_PATH = $(BIN_PATH)/obj
AUD_PATH = $(BIN_PATH)/for_audit
TEST_SRC_PATH = tests
TEST_BIN_PATH = $(BIN_PATH)/tests
TEST_OBJ_PATH = $(TEST_BIN_PATH)/obj

CFLAGS += -I$(SRC_PATH) -I$(SRC_PATH)/wrappers/themis/ -I/usr/local/include -fPIC $(CRYPTO_ENGINE_CFLAGS)
LDFLAGS += -L/usr/local/lib
Expand Down Expand Up @@ -307,42 +306,40 @@ themis_jni: $(BIN_PATH)/$(LIBTHEMISJNI_SO)
# Common build rules
#

$(OBJ_PATH)/%.o: CMD = $(CC) $(CFLAGS) -c $< -o $@
$(OBJ_PATH)/%.c.o: CMD = $(CC) -c -o $@ $< $(CFLAGS)

$(OBJ_PATH)/%.o: $(SRC_PATH)/%.c
$(OBJ_PATH)/%.c.o: %.c
@mkdir -p $(@D)
@echo -n "compile "
@$(BUILD_CMD)

FMT_FIXUP += $(THEMIS_FMT_FIXUP) $(SOTER_FMT_FIXUP)
FMT_CHECK += $(THEMIS_FMT_CHECK) $(SOTER_FMT_CHECK)
$(OBJ_PATH)/%.cpp.o: CMD = $(CXX) -c -o $@ $< $(CFLAGS)

$(OBJ_PATH)/%.c.fmt_fixup $(OBJ_PATH)/%.h.fmt_fixup: \
$(OBJ_PATH)/%.cpp.o: %.cpp
@mkdir -p $(@D)
@echo -n "compile "
@$(BUILD_CMD)

$(OBJ_PATH)/%.c.fmt_fixup $(OBJ_PATH)/%.h.fmt_fixup $(OBJ_PATH)/%.cpp.fmt_fixup $(OBJ_PATH)/%.hpp.fmt_fixup: \
CMD = $(CLANG_TIDY) -fix $< -- $(CFLAGS) 2>/dev/null && $(CLANG_FORMAT) -i $< && touch $@

$(OBJ_PATH)/%.c.fmt_check $(OBJ_PATH)/%.h.fmt_check: \
$(OBJ_PATH)/%.c.fmt_check $(OBJ_PATH)/%.h.fmt_check $(OBJ_PATH)/%.cpp.fmt_check $(OBJ_PATH)/%.hpp.fmt_check: \
CMD = $(CLANG_FORMAT) $< | diff -u $< - && $(CLANG_TIDY) $< -- $(CFLAGS) 2>/dev/null && touch $@

$(OBJ_PATH)/%.fmt_fixup: $(SRC_PATH)/%
$(OBJ_PATH)/%.fmt_fixup: %
@mkdir -p $(@D)
@echo -n "fixup $< "
@$(BUILD_CMD_)

$(OBJ_PATH)/%.fmt_check: $(SRC_PATH)/%
$(OBJ_PATH)/%.fmt_check: %
@mkdir -p $(@D)
@echo -n "check $< "
@$(BUILD_CMD_)

THEMISPP_HEADERS = $(wildcard $(SRC_PATH)/wrappers/themis/themispp/*.hpp)

FMT_FIXUP += $(patsubst $(SRC_PATH)/%,$(OBJ_PATH)/%.fmt_fixup,$(THEMISPP_HEADERS))
FMT_CHECK += $(patsubst $(SRC_PATH)/%,$(OBJ_PATH)/%.fmt_check,$(THEMISPP_HEADERS))

$(OBJ_PATH)/%.hpp.fmt_fixup: \
CMD = $(CLANG_TIDY) -fix $< -- $(CFLAGS) 2>/dev/null && $(CLANG_FORMAT) -i $< && touch $@

$(OBJ_PATH)/%.hpp.fmt_check: \
CMD = $(CLANG_FORMAT) $< | diff -u $< - && $(CLANG_TIDY) $< -- $(CFLAGS) 2>/dev/null && touch $@
FMT_FIXUP += $(patsubst %,$(OBJ_PATH)/%.fmt_fixup, $(THEMISPP_HEADERS))
FMT_CHECK += $(patsubst %,$(OBJ_PATH)/%.fmt_check, $(THEMISPP_HEADERS))

#$(AUD_PATH)/%: CMD = $(CC) $(CFLAGS) -E -dI -dD $< -o $@
$(AUD_PATH)/%: CMD = ./scripts/pp.sh $< $@
Expand Down
28 changes: 5 additions & 23 deletions jni/themis_jni.mk
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ LIBTHEMISJNI_SO = libthemis_jni.$(SHARED_EXT)

THEMIS_JNI_SRC = $(wildcard jni/*.c)

THEMIS_JNI_OBJ = $(patsubst jni/%.c,$(OBJ_PATH)/jni/%.o, $(THEMIS_JNI_SRC))
THEMIS_JNI_OBJ = $(patsubst %,$(OBJ_PATH)/%.o, $(THEMIS_JNI_SRC))

FMT_FIXUP += $(patsubst jni/%,$(OBJ_PATH)/jni/%.fmt_fixup,$(THEMIS_JNI_SRC))
FMT_CHECK += $(patsubst jni/%,$(OBJ_PATH)/jni/%.fmt_check,$(THEMIS_JNI_SRC))
FMT_FIXUP += $(patsubst %,$(OBJ_PATH)/%.fmt_fixup, $(THEMIS_JNI_SRC))
FMT_CHECK += $(patsubst %,$(OBJ_PATH)/%.fmt_check, $(THEMIS_JNI_SRC))

JAVA_DEFAULTS=/usr/share/java/java_defaults.mk

Expand All @@ -33,6 +33,8 @@ else
jvm_includes=$(JAVA_HOME)/include
endif

$(OBJ_PATH)/jni/%: CFLAGS += $(jvm_includes)

$(BIN_PATH)/$(LIBTHEMISJNI_SO): CMD = $(CC) -shared -o $@ $(filter %.o %.a, $^) $(LDFLAGS) $(CRYPTO_ENGINE_LDFLAGS)

$(BIN_PATH)/$(LIBTHEMISJNI_SO): $(THEMIS_JNI_OBJ) $(THEMIS_STATIC)
Expand All @@ -43,23 +45,3 @@ ifdef IS_MACOS
@install_name_tool -id "$(PREFIX)/lib/$(notdir $@)" $(BIN_PATH)/$(notdir $@)
@install_name_tool -change "$(BIN_PATH)/$(notdir $@)" "$(PREFIX)/lib/$(notdir $@)" $(BIN_PATH)/$(notdir $@)
endif

$(OBJ_PATH)/jni/%.o: jni/%.c
@mkdir -p $(@D)
@$(CC) $(CFLAGS) $(jvm_includes) -c $< -o $@

$(OBJ_PATH)/jni/%.c.fmt_fixup: \
CMD = $(CLANG_TIDY) -fix $< -- $(CFLAGS) $(jvm_includes) 2>/dev/null && $(CLANG_FORMAT) -i $< && touch $@

$(OBJ_PATH)/jni/%.c.fmt_check: \
CMD = $(CLANG_FORMAT) $< | diff -u $< - && $(CLANG_TIDY) $< -- $(CFLAGS) $(jvm_includes) 2>/dev/null && touch $@

$(OBJ_PATH)/jni/%.fmt_fixup: jni/%
@mkdir -p $(@D)
@echo -n "fixup $< "
@$(BUILD_CMD_)

$(OBJ_PATH)/jni/%.fmt_check: jni/%
@mkdir -p $(@D)
@echo -n "check $< "
@$(BUILD_CMD_)
6 changes: 3 additions & 3 deletions src/soter/soter.mk
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,12 @@ SOTER_FMT_SRC += $(SOTER_HEADERS) $(CRYPTO_ENGINE_HEADERS)

include $(CRYPTO_ENGINE)/soter.mk

SOTER_OBJ = $(patsubst $(SRC_PATH)/%.c,$(OBJ_PATH)/%.o, $(SOTER_SRC))
SOTER_OBJ = $(patsubst %,$(OBJ_PATH)/%.o, $(SOTER_SRC))

SOTER_AUD = $(patsubst $(SRC_PATH)/%,$(AUD_PATH)/%, $(SOTER_AUD_SRC))

SOTER_FMT_FIXUP = $(patsubst $(SRC_PATH)/%,$(OBJ_PATH)/%.fmt_fixup,$(SOTER_FMT_SRC))
SOTER_FMT_CHECK = $(patsubst $(SRC_PATH)/%,$(OBJ_PATH)/%.fmt_check,$(SOTER_FMT_SRC))
FMT_FIXUP += $(patsubst %,$(OBJ_PATH)/%.fmt_fixup, $(SOTER_FMT_SRC))
FMT_CHECK += $(patsubst %,$(OBJ_PATH)/%.fmt_check, $(SOTER_FMT_SRC))

SOTER_STATIC = $(BIN_PATH)/$(LIBSOTER_A) $(SOTER_ENGINE_DEPS)

Expand Down
6 changes: 3 additions & 3 deletions src/themis/themis.mk
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ THEMIS_SRC = $(THEMIS_SOURCES)
THEMIS_AUD_SRC = $(THEMIS_SOURCES) $(THEMIS_HEADERS)
THEMIS_FMT_SRC = $(THEMIS_SOURCES) $(THEMIS_HEADERS)

THEMIS_OBJ = $(patsubst $(SRC_PATH)/%.c,$(OBJ_PATH)/%.o, $(THEMIS_SRC))
THEMIS_OBJ = $(patsubst %,$(OBJ_PATH)/%.o, $(THEMIS_SRC))

THEMIS_AUD = $(patsubst $(SRC_PATH)/%,$(AUD_PATH)/%, $(THEMIS_AUD_SRC))

THEMIS_FMT_FIXUP = $(patsubst $(SRC_PATH)/%,$(OBJ_PATH)/%.fmt_fixup,$(THEMIS_FMT_SRC))
THEMIS_FMT_CHECK = $(patsubst $(SRC_PATH)/%,$(OBJ_PATH)/%.fmt_check,$(THEMIS_FMT_SRC))
FMT_FIXUP += $(patsubst %,$(OBJ_PATH)/%.fmt_fixup, $(THEMIS_FMT_SRC))
FMT_CHECK += $(patsubst %,$(OBJ_PATH)/%.fmt_check, $(THEMIS_FMT_SRC))

THEMIS_STATIC = $(BIN_PATH)/$(LIBTHEMIS_A) $(SOTER_STATIC)

Expand Down
15 changes: 5 additions & 10 deletions src/wrappers/themis/jsthemis/jsthemis.mk
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
#

JSTHEMIS_SRC = $(SRC_PATH)/wrappers/themis/jsthemis
JSTHEMIS_OBJ = $(OBJ_PATH)/wrappers/themis/jsthemis
JSTHEMIS_OBJ = $(OBJ_PATH)/$(JSTHEMIS_SRC)

JSTHEMIS_SOURCES = $(wildcard $(JSTHEMIS_SRC)/*.cpp)
JSTHEMIS_HEADERS = $(wildcard $(JSTHEMIS_SRC)/*.hpp)
Expand All @@ -34,23 +34,18 @@ FMT_CHECK += $(JSTHEMIS_OBJ)/node_modules/nan
$(JSTHEMIS_OBJ)/node_modules/nan:
@mkdir -p $(JSTHEMIS_OBJ) && cd $(JSTHEMIS_OBJ) && npm install nan && cd -

FMT_FIXUP += $(patsubst $(SRC_PATH)/%,$(OBJ_PATH)/%.fmt_fixup,$(JSTHEMIS_SOURCES) $(JSTHEMIS_HEADERS))
FMT_CHECK += $(patsubst $(SRC_PATH)/%,$(OBJ_PATH)/%.fmt_check,$(JSTHEMIS_SOURCES) $(JSTHEMIS_HEADERS))
FMT_FIXUP += $(patsubst %,$(OBJ_PATH)/%.fmt_fixup, $(JSTHEMIS_SOURCES) $(JSTHEMIS_HEADERS))
FMT_CHECK += $(patsubst %,$(OBJ_PATH)/%.fmt_check, $(JSTHEMIS_SOURCES) $(JSTHEMIS_HEADERS))

$(JSTHEMIS_OBJ)/%: CFLAGS += $(JSTHEMIS_CFLAGS)

JSTHEMIS_CFLAGS += $(CFLAGS)
JSTHEMIS_CFLAGS += -I$(JSTHEMIS_OBJ)/node_modules/nan

ifdef IS_LINUX
JSTHEMIS_CFLAGS += -I/usr/include/nodejs/src
JSTHEMIS_CFLAGS += -I/usr/include/nodejs/deps/v8/include
endif

$(JSTHEMIS_OBJ)/%.hpp.fmt_fixup $(JSTHEMIS_OBJ)/%.cpp.fmt_fixup: \
CMD = $(CLANG_TIDY) -fix $< -- $(JSTHEMIS_CFLAGS) 2>/dev/null && $(CLANG_FORMAT) -i $< && touch $@

$(JSTHEMIS_OBJ)/%.hpp.fmt_check $(JSTHEMIS_OBJ)/%.cpp.fmt_check: \
CMD = $(CLANG_FORMAT) $< | diff -u $< - && $(CLANG_TIDY) $< -- $(JSTHEMIS_CFLAGS) 2>/dev/null && touch $@

else # ifdef NPM_VERSION

FMT_FIXUP += $(JSTHEMIS_OBJ)/warning_fixup
Expand Down
11 changes: 6 additions & 5 deletions tests/soter/soter.mk
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,17 @@
SOTER_TEST_SOURCES = $(wildcard tests/soter/*.c)
SOTER_TEST_HEADERS = $(wildcard tests/soter/*.h)

SOTER_TEST_SRC = $(wildcard tests/soter/*.c)
SOTER_TEST_OBJ = $(patsubst $(TEST_SRC_PATH)/%.c,$(TEST_OBJ_PATH)/%.o, $(SOTER_TEST_SRC))
SOTER_TEST_OBJ = $(patsubst %,$(OBJ_PATH)/%.o, $(SOTER_TEST_SOURCES))

SOTER_TEST_FMT_SRC = $(SOTER_TEST_SOURCES) $(SOTER_TEST_HEADERS)
SOTER_TEST_FMT_FIXUP = $(patsubst $(TEST_SRC_PATH)/%,$(TEST_OBJ_PATH)/%.fmt_fixup, $(SOTER_TEST_FMT_SRC))
SOTER_TEST_FMT_CHECK = $(patsubst $(TEST_SRC_PATH)/%,$(TEST_OBJ_PATH)/%.fmt_check, $(SOTER_TEST_FMT_SRC))
SOTER_TEST_FMT = $(SOTER_TEST_SOURCES) $(SOTER_TEST_HEADERS)

FMT_FIXUP += $(patsubst %,$(OBJ_PATH)/%.fmt_fixup, $(SOTER_TEST_FMT))
FMT_CHECK += $(patsubst %,$(OBJ_PATH)/%.fmt_check, $(SOTER_TEST_FMT))

$(TEST_BIN_PATH)/soter_test: CMD = $(CC) -o $@ $(filter %.o %.a, $^) $(LDFLAGS) $(CRYPTO_ENGINE_LDFLAGS)

$(TEST_BIN_PATH)/soter_test: nist_rng_test_suite $(SOTER_TEST_OBJ) $(COMMON_TEST_OBJ) $(SOTER_STATIC)
@mkdir -p $(@D)
@echo -n "link "
@$(BUILD_CMD)

Expand Down
37 changes: 2 additions & 35 deletions tests/test.mk
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
#

COMMON_TEST_SRC = $(wildcard tests/common/*.c)
COMMON_TEST_OBJ = $(patsubst $(TEST_SRC_PATH)/%.c,$(TEST_OBJ_PATH)/%.o, $(COMMON_TEST_SRC))
COMMON_TEST_OBJ = $(patsubst %,$(OBJ_PATH)/%.o, $(COMMON_TEST_SRC))

NIST_STS_DIR = tests/soter/nist-sts

Expand All @@ -30,40 +30,7 @@ soter_test: $(TEST_BIN_PATH)/soter_test
themis_test: $(TEST_BIN_PATH)/themis_test
themispp_test: $(TEST_BIN_PATH)/themispp_test

$(TEST_OBJ_PATH)/%.o: CMD = $(CC) $(CFLAGS) -DNIST_STS_EXE_PATH=$(realpath $(NIST_STS_DIR)) -I$(TEST_SRC_PATH) -c $< -o $@

$(TEST_OBJ_PATH)/%.o: $(TEST_SRC_PATH)/%.c
@mkdir -p $(@D)
@echo -n "compile "
@$(BUILD_CMD)

$(TEST_OBJ_PATH)/%.opp: CMD = $(CXX) $(CFLAGS) -I$(TEST_SRC_PATH) -c $< -o $@

$(TEST_OBJ_PATH)/%.opp: $(TEST_SRC_PATH)/%.cpp
@mkdir -p $(@D)
@echo -n "compile "
@$(BUILD_CMD)

FMT_FIXUP += $(THEMIS_TEST_FMT_FIXUP) $(SOTER_TEST_FMT_FIXUP)
FMT_CHECK += $(THEMIS_TEST_FMT_CHECK) $(SOTER_TEST_FMT_CHECK)

$(TEST_OBJ_PATH)/%.c.fmt_fixup $(TEST_OBJ_PATH)/%.h.fmt_fixup \
$(TEST_OBJ_PATH)/%.cpp.fmt_fixup $(TEST_OBJ_PATH)/%.hpp.fmt_fixup: \
CMD = $(CLANG_TIDY) -fix $< -- $(CFLAGS) -I$(TEST_SRC_PATH) 2>/dev/null && $(CLANG_FORMAT) -i $< && touch $@

$(TEST_OBJ_PATH)/%.c.fmt_check $(TEST_OBJ_PATH)/%.h.fmt_check \
$(TEST_OBJ_PATH)/%.cpp.fmt_check $(TEST_OBJ_PATH)/%.hpp.fmt_check: \
CMD = $(CLANG_FORMAT) $< | diff -u $< - && $(CLANG_TIDY) $< -- $(CFLAGS) -I$(TEST_SRC_PATH) 2>/dev/null && touch $@

$(TEST_OBJ_PATH)/%.fmt_fixup: $(TEST_SRC_PATH)/%
@mkdir -p $(@D)
@echo -n "fixup $< "
@$(BUILD_CMD_)

$(TEST_OBJ_PATH)/%.fmt_check: $(TEST_SRC_PATH)/%
@mkdir -p $(@D)
@echo -n "check $< "
@$(BUILD_CMD_)
$(OBJ_PATH)/tests/%: CFLAGS += -I$(TEST_SRC_PATH) -DNIST_STS_EXE_PATH=$(realpath $(NIST_STS_DIR))

PYTHON2_TEST_SCRIPT=$(BIN_PATH)/tests/pythemis2_test.sh
PYTHON3_TEST_SCRIPT=$(BIN_PATH)/tests/pythemis3_test.sh
Expand Down
11 changes: 6 additions & 5 deletions tests/themis/themis.mk
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,16 @@
THEMIS_TEST_SOURCES = $(wildcard tests/themis/*.c)
THEMIS_TEST_HEADERS = $(wildcard tests/themis/*.h)

THEMIS_TEST_SRC = $(THEMIS_TEST_SOURCES)
THEMIS_TEST_OBJ = $(patsubst $(TEST_SRC_PATH)/%.c,$(TEST_OBJ_PATH)/%.o, $(THEMIS_TEST_SRC))
THEMIS_TEST_OBJ = $(patsubst %,$(OBJ_PATH)/%.o, $(THEMIS_TEST_SOURCES))

THEMIS_TEST_FMT_SRC = $(THEMIS_TEST_SOURCES) $(THEMIS_TEST_HEADERS)
THEMIS_TEST_FMT_FIXUP = $(patsubst $(TEST_SRC_PATH)/%,$(TEST_OBJ_PATH)/%.fmt_fixup, $(THEMIS_TEST_FMT_SRC))
THEMIS_TEST_FMT_CHECK = $(patsubst $(TEST_SRC_PATH)/%,$(TEST_OBJ_PATH)/%.fmt_check, $(THEMIS_TEST_FMT_SRC))
THEMIS_TEST_FMT = $(THEMIS_TEST_SOURCES) $(THEMIS_TEST_HEADERS)

FMT_FIXUP += $(patsubst %,$(OBJ_PATH)/%.fmt_fixup, $(THEMIS_TEST_FMT))
FMT_CHECK += $(patsubst %,$(OBJ_PATH)/%.fmt_check, $(THEMIS_TEST_FMT))

$(TEST_BIN_PATH)/themis_test: CMD = $(CC) -o $@ $(filter %.o %.a, $^) $(LDFLAGS) $(CRYPTO_ENGINE_LDFLAGS)

$(TEST_BIN_PATH)/themis_test: $(THEMIS_TEST_OBJ) $(COMMON_TEST_OBJ) $(THEMIS_STATIC)
@mkdir -p $(@D)
@echo -n "link "
@$(BUILD_CMD)
8 changes: 4 additions & 4 deletions tests/themispp/themispp.mk
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@
THEMISPP_TEST_SOURCES = $(wildcard $(TEST_SRC_PATH)/themispp/*.cpp)
THEMISPP_TEST_HEADERS = $(wildcard $(TEST_SRC_PATH)/themispp/*.hpp)

THEMISPP_TEST_OBJ = $(patsubst $(TEST_SRC_PATH)/%.cpp,$(TEST_OBJ_PATH)/%.opp,$(THEMISPP_TEST_SOURCES))
THEMISPP_TEST_OBJ = $(patsubst %,$(OBJ_PATH)/%.o, $(THEMISPP_TEST_SOURCES))

THEMISPP_TEST_FMT = $(THEMISPP_TEST_SOURCES) $(THEMISPP_TEST_HEADERS)

FMT_FIXUP += $(patsubst $(TEST_SRC_PATH)/%,$(TEST_OBJ_PATH)/%.fmt_fixup,$(THEMISPP_TEST_FMT))
FMT_CHECK += $(patsubst $(TEST_SRC_PATH)/%,$(TEST_OBJ_PATH)/%.fmt_check,$(THEMISPP_TEST_FMT))
FMT_FIXUP += $(patsubst %,$(OBJ_PATH)/%.fmt_fixup, $(THEMISPP_TEST_FMT))
FMT_CHECK += $(patsubst %,$(OBJ_PATH)/%.fmt_check, $(THEMISPP_TEST_FMT))

$(TEST_BIN_PATH)/themispp_test: CMD = $(CXX) -o $@ $(filter %.o %.opp %.a, $^) $(LDFLAGS) $(CRYPTO_ENGINE_LDFLAGS)
$(TEST_BIN_PATH)/themispp_test: CMD = $(CXX) -o $@ $(filter %.o %.a, $^) $(LDFLAGS) $(CRYPTO_ENGINE_LDFLAGS)

$(TEST_BIN_PATH)/themispp_test: $(THEMISPP_TEST_OBJ) $(COMMON_TEST_OBJ) $(THEMIS_STATIC)
@echo -n "link "
Expand Down

0 comments on commit de3cbb7

Please sign in to comment.