@@ -4,63 +4,46 @@ FIPS202_SOURCES = $(wildcard fips202/*.c)
44
55OBJS = $(call objs,$(addprefix $(1 ) /,$(notdir $(basename $(MLKEM_SOURCES ) ) ) ) $(basename $(FIPS202_SOURCES ) ) )
66
7- define scheme-test
8- $(1 ) -test: CPPFLAGS += -DMLKEM_K=$(2 ) -DNTESTS=$$(NTESTS )
9- $(1 ) -test: bin/$(1 ) -test.hex $(CONFIG )
7+ # all tests x all schemes
8+ SCHEMES_TESTS = $(foreach t,$(TESTS ) ,$(KEM_SCHEMES:%=%-$(t ) ) )
109
11- $(1 ) -speed: CPPFLAGS += -DMLKEM_K=$(2 ) -DNTESTS=$$(NTESTS )
12- $(1 ) -speed: bin/$(1 ) -speed.hex $(CONFIG )
13-
14- $(1 ) -stack: CPPFLAGS += -DMLKEM_K=$(2 )
15- $(1 ) -stack: bin/$(1 ) -stack.hex $(CONFIG )
16-
17- $(1 ) -nistkat: CPPFLAGS += -DMLKEM_K=$(2 )
18- $(1 ) -nistkat: bin/$(1 ) -nistkat.hex $(CONFIG )
10+ # set up tests dependencies for each scheme
11+ define SCHEME_DEPS
12+ $(TESTS:%=$(1 ) -% ) : CPPFLAGS += -DMLKEM_K=$(2 ) -DNTESTS=$(NTESTS )
1913endef
2014
21- define scheme-elf
22- elf/$(1 ) -test.elf: obj/test/$(1 ) -test.o $(call OBJS,$(1 ) ) $(LINKDEPS ) $(CONFIG )
23- elf/$(1 ) -speed.elf: obj/test/$(1 ) -speed.o $(call OBJS,$(1 ) ) $(LINKDEPS ) $(CONFIG )
24- elf/$(1 ) -stack.elf: obj/test/$(1 ) -stack.o $(call OBJS,$(1 ) ) $(LINKDEPS ) $(CONFIG )
25- elf/$(1 ) -nistkat.elf: obj/test/$(1 ) -nistkat.o $(call OBJS,$(1 ) ) $(LINKDEPS ) $(CONFIG )
15+ define SCHEME_ELF_DEPS
16+ $(TESTS:%=$(BIN_DIR ) /$(1 ) -%.elf ) : $(BIN_DIR ) /%.elf: $(OBJ_DIR ) /test/%.o $(call OBJS,$(1 ) ) $(LINKDEPS )
2617endef
2718
28- define compile-obj
19+ define COMPILE_OBJ
2920 @echo " CC $@ "
3021 $(Q ) [ -d $(@D ) ] || mkdir -p $(@D )
3122 $(Q )$(CC ) -c -o $@ $(CFLAGS ) $<
3223endef
3324
34- define scheme-obj
35- obj/$(1 ) /%.o: mlkem/%.c $(CONFIG )
36- $$(compile-obj )
25+ # compile object file for each scheme
26+ define SCHEME_OBJ
27+ $(OBJ_DIR ) /$(1 ) /%.o: mlkem/%.c $(CONFIG )
28+ $$(COMPILE_OBJ )
3729endef
3830
39- define scheme-test-obj
40- obj/test/$(1 ) -test.o: test/test.c $(CONFIG )
41- $$(compile-obj )
42-
43- obj/test/$(1 ) -speed.o: test/speed.c $(CONFIG )
44- $$(compile-obj )
45-
46- obj/test/$(1 ) -stack.o: test/stack.c $(CONFIG )
47- $$(compile-obj )
48-
49- obj/test/$(1 ) -nistkat.o: test/nistkat.c $(CONFIG )
50- $$(compile-obj )
31+ define SCHEME_TEST_OBJS
32+ $(OBJ_DIR ) /test/$(1 ) -%.o: test/%.c $(CONFIG )
33+ $$(COMPILE_OBJ )
5134endef
5235
53- # iterate over schemes and params to generate targets for functional test and speed benchmark
54- iter = $( let scheme k rest, $( 1 ) , \
55- $(eval $(call scheme-test, $( scheme ) , $( k ) ) ) \
56- $( if $(rest ) , $( call iter, $( rest ) ) ) )
57- $(call iter,$(subst -, ,$(join $(addsuffix -,$(KEM_SCHEMES)),$(KEM_PARAMS)) ))
36+ $( SCHEMES_TESTS ) : % : $( BIN_DIR ) / % .bin $( BIN_DIR ) / % .hex
37+
38+ $(eval $(call SCHEME_DEPS,mlkem512,2))
39+ $(eval $(call SCHEME_DEPS,mlkem768,3 ))
40+ $(eval $(call SCHEME_DEPS,mlkem1024,4 ))
5841
5942$(foreach scheme,$(KEM_SCHEMES), \
60- $(eval $(call scheme-elf ,$(scheme))))
43+ $(eval $(call SCHEME_ELF_DEPS ,$(scheme))))
6144
6245$(foreach scheme,$(KEM_SCHEMES), \
63- $(eval $(call scheme-obj ,$(scheme))))
46+ $(eval $(call SCHEME_TEST_OBJS ,$(scheme))))
6447
6548$(foreach scheme,$(KEM_SCHEMES), \
66- $(eval $(call scheme-test-obj ,$(scheme))))
49+ $(eval $(call SCHEME_OBJ ,$(scheme))))
0 commit comments