Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 

66 рядки
2.7 KiB

  1. # This Makefile can be used with GNU Make or BSD Make
  2. # override as desired
  3. TYPE=kem
  4. SCHEME=kyber768
  5. IMPLEMENTATION=clean
  6. SCHEME_DIR="../crypto_$(TYPE)/$(SCHEME)/$(IMPLEMENTATION)"
  7. SCHEME_UPPERCASE=$(shell echo $(SCHEME) | tr a-z A-Z | sed 's/-//g')
  8. IMPLEMENTATION_UPPERCASE=$(shell echo $(IMPLEMENTATION) | tr a-z A-Z | sed 's/-//g')
  9. COMMON_DIR=../common
  10. COMMON_FILES=$(COMMON_DIR)/aes.c $(COMMON_DIR)/sha2.c $(COMMON_DIR)/fips202.c
  11. COMMON_HEADERS=$(COMMON_DIR)/*.h
  12. DEST_DIR=../bin
  13. # This -Wall was supported by the European Commission through the ERC Starting Grant 805031 (EPOQUE)
  14. CFLAGS=-Wall -Wextra -Wpedantic -Werror -std=c99 \
  15. -Wundef -Wshadow -Wcast-align -Wpointer-arith \
  16. -fstrict-aliasing -fno-common -pipe \
  17. -I$(COMMON_DIR) $(EXTRAFLAGS)
  18. all: $(DEST_DIR)/functest_$(SCHEME)_$(IMPLEMENTATION) \
  19. $(DEST_DIR)/testvectors_$(SCHEME)_$(IMPLEMENTATION) \
  20. $(DEST_DIR)/printparams_$(SCHEME)_$(IMPLEMENTATION)
  21. .PHONY: build-scheme
  22. build-scheme:
  23. cd $(SCHEME_DIR) && $(MAKE)
  24. .PHONY: clean-scheme
  25. clean-scheme:
  26. cd $(SCHEME_DIR) && $(MAKE) clean
  27. .PHONY: functest
  28. functest: $(DEST_DIR)/functest_$(SCHEME)_$(IMPLEMENTATION)
  29. .PHONY: testvectors
  30. testvectors: $(DEST_DIR)/testvectors_$(SCHEME)_$(IMPLEMENTATION)
  31. .PHONY: printparams
  32. printparams: $(DEST_DIR)/printparams_$(SCHEME)_$(IMPLEMENTATION)
  33. $(DEST_DIR)/test_%: common/%.c $(COMMON_FILES)
  34. mkdir -p $(DEST_DIR)
  35. $(CC) $(CFLAGS) $< $(COMMON_FILES) -o $@
  36. $(DEST_DIR)/functest_$(SCHEME)_$(IMPLEMENTATION): build-scheme crypto_$(TYPE)/functest.c $(COMMON_FILES) $(COMMON_DIR)/randombytes.c $(COMMON_HEADERS)
  37. mkdir -p $(DEST_DIR)
  38. $(CC) $(CFLAGS) -DPQCLEAN_NAMESPACE=PQCLEAN_$(SCHEME_UPPERCASE)_$(IMPLEMENTATION_UPPERCASE) -I$(SCHEME_DIR) crypto_$(TYPE)/functest.c $(COMMON_FILES) $(COMMON_DIR)/notrandombytes.c -o $@ -L$(SCHEME_DIR) -l$(SCHEME)_$(IMPLEMENTATION)
  39. $(DEST_DIR)/testvectors_$(SCHEME)_$(IMPLEMENTATION): build-scheme crypto_$(TYPE)/testvectors.c $(COMMON_FILES) $(COMMON_DIR)/notrandombytes.c $(COMMON_HEADERS)
  40. mkdir -p $(DEST_DIR)
  41. $(CC) $(CFLAGS) -DPQCLEAN_NAMESPACE=PQCLEAN_$(SCHEME_UPPERCASE)_$(IMPLEMENTATION_UPPERCASE) -I$(SCHEME_DIR) crypto_$(TYPE)/testvectors.c $(COMMON_FILES) $(COMMON_DIR)/notrandombytes.c -o $@ -L$(SCHEME_DIR) -l$(SCHEME)_$(IMPLEMENTATION)
  42. $(DEST_DIR)/printparams_$(SCHEME)_$(IMPLEMENTATION): build-scheme crypto_$(TYPE)/printparams.c
  43. mkdir -p $(DEST_DIR)
  44. $(CC) $(CFLAGS) -DPQCLEAN_NAMESPACE=PQCLEAN_$(SCHEME_UPPERCASE)_$(IMPLEMENTATION_UPPERCASE) -I$(SCHEME_DIR) crypto_$(TYPE)/printparams.c -o $@
  45. .PHONY: clean
  46. clean:
  47. $(RM) $(DEST_DIR)/functest_$(SCHEME)_$(IMPLEMENTATION)
  48. $(RM) $(DEST_DIR)/testvectors_$(SCHEME)_$(IMPLEMENTATION)
  49. $(RM) $(DEST_DIR)/test_fips202
  50. $(RM) $(DEST_DIR)/test_sha2