update makefile to automate importing of git submodule based dependencies

Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
This commit is contained in:
Anjan Roy
2023-11-24 10:34:51 +05:30
parent 6f8dc9070a
commit 60010d7db6

View File

@@ -3,8 +3,11 @@ CXX_FLAGS = -std=c++20
WARN_FLAGS = -Wall -Wextra -pedantic
OPT_FLAGS = -O3 -march=native
LINK_FLAGS = -flto
SHA3_INC_DIR = ./sha3/include
SUBTLE_INC_DIR = ./subtle/include
I_FLAGS = -I ./include
DEP_IFLAGS = -I ./sha3/include -I ./subtle/include
DEP_IFLAGS = -I $(SHA3_INC_DIR) -I $(SUBTLE_INC_DIR)
SRC_DIR = include
KYBER_SOURCES := $(wildcard $(SRC_DIR)/*.hpp)
@@ -29,7 +32,13 @@ all: test
$(BUILD_DIR):
mkdir -p $@
$(BUILD_DIR)/%.o: $(TEST_DIR)/%.cpp $(BUILD_DIR)
$(SHA3_INC_DIR):
git submodule update --init
$(SUBTLE_INC_DIR):
git submodule update --init
$(BUILD_DIR)/%.o: $(TEST_DIR)/%.cpp $(BUILD_DIR) $(SHA3_INC_DIR) $(SUBTLE_INC_DIR)
$(CXX) $(CXX_FLAGS) $(WARN_FLAGS) $(OPT_FLAGS) $(I_FLAGS) $(DEP_IFLAGS) -c $< -o $@
$(TEST_BINARY): $(TEST_OBJECTS)
@@ -38,7 +47,7 @@ $(TEST_BINARY): $(TEST_OBJECTS)
test: $(TEST_BINARY)
./$<
$(BUILD_DIR)/%.o: $(BENCHMARK_DIR)/%.cpp $(BUILD_DIR)
$(BUILD_DIR)/%.o: $(BENCHMARK_DIR)/%.cpp $(BUILD_DIR) $(SHA3_INC_DIR) $(SUBTLE_INC_DIR)
$(CXX) $(CXX_FLAGS) $(WARN_FLAGS) $(OPT_FLAGS) $(I_FLAGS) $(DEP_IFLAGS) -c $< -o $@
$(BENCHMARK_BINARY): $(BENCHMARK_OBJECTS)