1+ cur_dir = $(dir $(abspath $(firstword $(MAKEFILE_LIST ) ) ) )
2+ TOP := $(cur_dir ) /../../..
13
24# Generate code, user performance analysis
3- CC = clang
4- LLVM_PROFDATA = llvm-profdata
5- LLVM_COV = llvm-cov
5+ CC := clang-18
6+ LLVM_PROFDATA := $( subst clang, llvm-profdata, $( CC ) )
7+ LLVM_COV := $( subst clang, llvm-cov, $( CC ) )
68
79NPROC? =16
810
911PARAMS = sphincs-shake-256f
1012THASH = robust
1113
12- SOURCES_DIR = ref
1314COVERAGE_DIR =coverage
1415CORPUS_DIR =corpus
1516
16- SPHINCS_PLUS_DIR = ../../../deps/sphincsplus/ref/
17-
18- SOURCES = \
19- $(SPHINCS_PLUS_DIR ) address.c \
20- $(SPHINCS_PLUS_DIR ) merkle.c \
21- $(SPHINCS_PLUS_DIR ) wots.c \
22- $(SPHINCS_PLUS_DIR ) wotsx1.c \
23- $(SPHINCS_PLUS_DIR ) utils.c \
24- $(SPHINCS_PLUS_DIR ) utilsx1.c \
25- $(SPHINCS_PLUS_DIR ) fors.c \
26- $(SPHINCS_PLUS_DIR ) sign.c \
27- $(SPHINCS_PLUS_DIR ) randombytes.c \
28- ../../../c/ckb-sphincsplus.c
29-
30- HEADERS = \
31- $(SPHINCS_PLUS_DIR ) params.h \
32- $(SPHINCS_PLUS_DIR ) address.h \
33- $(SPHINCS_PLUS_DIR ) merkle.h \
34- $(SPHINCS_PLUS_DIR ) wots.h \
35- $(SPHINCS_PLUS_DIR ) wotsx1.h \
36- $(SPHINCS_PLUS_DIR ) utils.h \
37- $(SPHINCS_PLUS_DIR ) utilsx1.h \
38- $(SPHINCS_PLUS_DIR ) fors.h \
39- $(SPHINCS_PLUS_DIR ) api.h \
40- $(SPHINCS_PLUS_DIR ) hash.h \
41- $(SPHINCS_PLUS_DIR ) thash.h \
42- $(SPHINCS_PLUS_DIR ) randombytes.h \
43- ../../../c/ckb-sphincsplus.h
44-
45- ifneq (,$(findstring shake,$(PARAMS ) ) )
46- SOURCES += \
47- $(SPHINCS_PLUS_DIR)fips202.c \
48- $(SPHINCS_PLUS_DIR)hash_shake.c \
49- $(SPHINCS_PLUS_DIR)thash_shake_$(THASH).c
50- HEADERS += $(SPHINCS_PLUS_DIR)fips202.h
51- endif
52- ifneq (,$(findstring haraka,$(PARAMS ) ) )
53- SOURCES += \
54- $(SPHINCS_PLUS_DIR)haraka.c \
55- $(SPHINCS_PLUS_DIR)hash_haraka.c \
56- $(SPHINCS_PLUS_DIR)thash_haraka_$(THASH).c
57- HEADERS += $(SPHINCS_PLUS_DIR)haraka.h
58- endif
59- ifneq (,$(findstring sha2,$(PARAMS ) ) )
60- SOURCES += \
61- $(SPHINCS_PLUS_DIR)sha2.c \
62- $(SPHINCS_PLUS_DIR)hash_sha2.c \
63- $(SPHINCS_PLUS_DIR)thash_sha2_$(THASH).c
64- HEADERS += $(SPHINCS_PLUS_DIR)sha2.h
65- endif
17+ LOCK_DIR := $(TOP ) /contracts/c-sphincs-all-in-one-lock
18+ SPHINCS_PLUS_DIR := $(TOP ) /deps/sphincsplus/ref
19+ CKB_STDLIB_DIR := $(TOP ) /deps/ckb-c-stdlib
20+
21+ include $(TOP ) /mk/files.mk
22+
23+ SOURCES = $(COMPILING_SOURCES_BY_PARAMS ) $(SPHINCS_PLUS_DIR ) /randombytes.c
6624
6725FUZZER_FLAGS =-g -O1 -fsanitize=fuzzer,address,undefined -fsanitize-recover=address -DPARAMS=$(PARAMS ) -DTEST_DATA=$(PARAMS ) -$(THASH )
68- FUZZER_FLAGS := $(FUZZER_FLAGS ) -I ../../../c -I ../../../deps/sphincsplus/ref
26+ FUZZER_FLAGS := $(FUZZER_FLAGS ) -I $( LOCK_DIR ) -I $( SPHINCS_PLUS_DIR )
6927
7028COVERAGE_FLAGS =-fprofile-instr-generate -fcoverage-mapping -DPARAMS=$(PARAMS ) -DTEST_DATA=$(PARAMS ) -$(THASH )
71- COVERAGE_FLAGS := $(COVERAGE_FLAGS ) -I ../../../c -I ../../../deps/sphincsplus/ref
29+ COVERAGE_FLAGS := $(COVERAGE_FLAGS ) -I $( LOCK_DIR ) -I $( SPHINCS_PLUS_DIR )
7230
7331ifeq ($(OS ) ,MacOS)
7432 COVERAGE_FLAGS+=-Wl,-U,_LLVMFuzzerCustomMutator -Wl,-U,_LLVMFuzzerInitialize
7533endif
7634
77- EXTERNAL_HEADERS =../../../ deps/ckb-c-stdlib-20210801 /ckb_exec.h
35+ EXTERNAL_HEADERS =$( TOP ) / deps/ckb-c-stdlib/ckb_exec.h
7836
7937all : build/fuzzer build/cover
8038
@@ -94,7 +52,7 @@ show: build/$(COVERAGE_DIR)/fuzzer.profdata
9452 cd build && $(LLVM_COV ) show --instr-profile=$(COVERAGE_DIR ) /fuzzer.profdata cover
9553
9654report : build/$(COVERAGE_DIR ) /fuzzer.profdata build/cover $(EXTERNAL_HEADERS )
97- $(LLVM_COV ) report --show-functions -- instr-profile=$(COVERAGE_DIR ) /fuzzer.profdata build/cover $(EXTERNAL_HEADERS )
55+ $(LLVM_COV ) report --instr-profile=build/ $(COVERAGE_DIR ) /fuzzer.profdata build/cover $(EXTERNAL_HEADERS )
9856
9957% .profraw : build/cover
10058 LLVM_PROFILE_FILE=$@ build/cover build/$(CORPUS_DIR ) /*
@@ -109,4 +67,4 @@ clean:
10967
11068clean-fuzzer :
11169 rm -rf build/corpus
112- rm -rf build/fuzz-* .log
70+ rm -rf build/fuzz-* .log
0 commit comments