2018-11-08 02:36:37 +01:00
|
|
|
N ?= 1
|
|
|
|
|
SPECIMENS := $(addprefix build/specimen_,$(shell seq -f '%03.0f' $(N)))
|
|
|
|
|
SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS))
|
2019-01-17 15:35:29 +01:00
|
|
|
ENV_VAR ?=
|
|
|
|
|
VAR ?=
|
|
|
|
|
ITER ?= 0
|
|
|
|
|
MAX_ITER ?= 10
|
2018-11-08 02:36:37 +01:00
|
|
|
|
|
|
|
|
all: database
|
|
|
|
|
|
2018-11-08 03:51:54 +01:00
|
|
|
$(SPECIMENS_OK):
|
|
|
|
|
mkdir -p build
|
2019-01-17 15:35:29 +01:00
|
|
|
if [ -f `pwd`/generate.sh ]; then export $(ENV_VAR); bash `pwd`/generate.sh $(subst /OK,,$@); else bash ${XRAY_DIR}/utils/top_generate.sh $(subst /OK,,$@); fi
|
2018-11-08 02:36:37 +01:00
|
|
|
|
|
|
|
|
run:
|
2019-01-17 15:35:29 +01:00
|
|
|
# If the database presents errors or is incomplete, the fuzzer is rerun.
|
|
|
|
|
# When it reaches the maximum number of iterations it fails.
|
|
|
|
|
@if [ $(ITER) -gt $(MAX_ITER) ]; then \
|
|
|
|
|
echo "Max Iterations reached. Fuzzer unsolvable."; \
|
|
|
|
|
exit 1; \
|
|
|
|
|
fi
|
2018-11-08 02:36:37 +01:00
|
|
|
$(MAKE) clean
|
|
|
|
|
$(MAKE) database
|
2019-01-17 15:35:29 +01:00
|
|
|
$(MAKE) pushdb || $(MAKE) $(VAR) ITER=$$(($(ITER) + 1)) run
|
2018-11-08 02:36:37 +01:00
|
|
|
touch run.ok
|
|
|
|
|
|
|
|
|
|
clean:
|
2018-11-14 04:11:18 +01:00
|
|
|
rm -rf build run.ok
|
2018-11-08 02:36:37 +01:00
|
|
|
|
|
|
|
|
.PHONY: all run clean
|
|
|
|
|
|