.PHONY: build run clean
.DEFAULT_GOAL := all
CC ?= gcc
CFLAGS := \
-Wall \
-Wextra \
-Werror=unused-result \
-Wpedantic \
-Werror \
-Wmissing-prototypes \
-Wshadow \
-Wpointer-arith \
-Wredundant-decls \
-Wconversion \
-Wsign-conversion \
-Wno-long-long \
-Wno-unknown-pragmas \
-Wno-unused-command-line-argument \
-O3 \
-fomit-frame-pointer \
-std=c99 \
-pedantic \
-MMD \
$(CFLAGS)
AUTO ?= 1
include auto.mk
ifeq (,$(findstring $(CROSS_PREFIX),$(CC)))
CC := $(CROSS_PREFIX)$(CC)
endif
MLD_SOURCE=$(wildcard \
mldsa_native/src/*.c \
mldsa_native/src/**/*.c \
mldsa_native/src/**/**/*.c \
mldsa_native/src/**/**/**/*.c)
INC=-Imldsa_native
RNG_SOURCE=$(wildcard test_only_rng/*.c)
APP_SOURCE=$(wildcard *.c)
ALL_SOURCE=$(MLD_SOURCE) $(RNG_SOURCE) $(APP_SOURCE)
BUILD_DIR=build
BIN=test_binary
CFLAGS += -DMLD_CONFIG_NAMESPACE_PREFIX=mldsa
BINARY_NAME_FULL_44=$(BUILD_DIR)/$(BIN)44
BINARY_NAME_FULL_65=$(BUILD_DIR)/$(BIN)65
BINARY_NAME_FULL_87=$(BUILD_DIR)/$(BIN)87
BINARIES_FULL=$(BINARY_NAME_FULL_44) $(BINARY_NAME_FULL_65) $(BINARY_NAME_FULL_87)
$(BINARY_NAME_FULL_44): CFLAGS += -DMLD_CONFIG_PARAMETER_SET=44
$(BINARY_NAME_FULL_65): CFLAGS += -DMLD_CONFIG_PARAMETER_SET=65
$(BINARY_NAME_FULL_87): CFLAGS += -DMLD_CONFIG_PARAMETER_SET=87
$(BINARIES_FULL): $(ALL_SOURCE)
echo "$@"
mkdir -p $(BUILD_DIR)
$(CC) $(CFLAGS) $(INC) $^ -o $@
all: build
build: $(BINARIES_FULL)
run: $(BINARIES_FULL)
$(EXEC_WRAPPER) ./$(BINARY_NAME_FULL_44)
$(EXEC_WRAPPER) ./$(BINARY_NAME_FULL_65)
$(EXEC_WRAPPER) ./$(BINARY_NAME_FULL_87)
clean:
rm -rf $(BUILD_DIR)