2019-02-01 09:27:56 +01:00
|
|
|
SELF_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
|
|
|
|
|
|
2018-12-06 02:35:36 +01:00
|
|
|
# Developer options for quicker runs
|
|
|
|
|
# Run algorithm, but only a small number of iterations
|
|
|
|
|
QUICK=N
|
|
|
|
|
# Skip metadata steps like tile and part generation
|
|
|
|
|
# Ex: FUZZONLY=N: 30 min, FUZZONLY=Y: 6 min
|
|
|
|
|
FUZZONLY=N
|
2018-12-27 21:24:32 +01:00
|
|
|
# 074 fuzzer isn't changed often and is slow
|
|
|
|
|
# Allow building without it
|
|
|
|
|
BITONLY=N
|
2018-12-06 02:35:36 +01:00
|
|
|
|
2019-01-31 17:20:22 +01:00
|
|
|
all:
|
2019-05-15 12:14:52 +02:00
|
|
|
clean: clean_fuzzers clean_piplists clean_logs clean_locks
|
2019-03-05 16:56:33 +01:00
|
|
|
|
|
|
|
|
clean_locks:
|
|
|
|
|
rm -rf /tmp/segbits_*.db.lock
|
2019-01-31 17:20:22 +01:00
|
|
|
|
2019-05-15 12:14:52 +02:00
|
|
|
clean_piplists:
|
|
|
|
|
rm -rf $(XRAY_FUZZERS_DIR)/piplist/build
|
|
|
|
|
|
2018-01-04 14:02:25 +01:00
|
|
|
define fuzzer
|
2019-02-01 09:27:56 +01:00
|
|
|
|
|
|
|
|
# $(1) - Fuzzer name/directory
|
|
|
|
|
# $(2) - Space seperated list of dependencies for the fuzzer.
|
|
|
|
|
|
|
|
|
|
# Make the all target depend on the run.ok file for the fuzzer.
|
2019-01-29 16:45:07 +01:00
|
|
|
all: $(1)/run.ok
|
2019-02-01 09:27:56 +01:00
|
|
|
|
|
|
|
|
# Make the clean target run `make clean` in the fuzzer's directory.
|
2019-02-20 23:36:17 +01:00
|
|
|
clean_fuzzers::
|
2018-01-05 22:16:12 +01:00
|
|
|
$$(MAKE) -C $(1) clean
|
2019-02-20 23:36:17 +01:00
|
|
|
|
|
|
|
|
clean_logs::
|
2019-02-05 07:25:04 +01:00
|
|
|
rm -rf $(1)/logs
|
2019-02-01 09:27:56 +01:00
|
|
|
|
|
|
|
|
# Describe how to create the fuzzer's run.ok file.
|
|
|
|
|
# This command must start with a + to tell make to pass the jobserver
|
|
|
|
|
# parameters downwards.
|
2019-02-05 07:25:04 +01:00
|
|
|
ifeq ($(VERBOSE),Y)
|
|
|
|
|
|
|
|
|
|
# When verbose we just call make directory
|
|
|
|
|
$(1)/run.ok: $(addsuffix /run.ok,$(2))
|
2019-02-06 01:24:16 +01:00
|
|
|
$$(MAKE) -C $(1) run
|
2019-02-05 07:25:04 +01:00
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
|
|
# When not verbose, we use the run_fuzzer wrapper which will save the results
|
|
|
|
|
# to log files.
|
2018-01-04 14:02:25 +01:00
|
|
|
$(1)/run.ok: $(addsuffix /run.ok,$(2))
|
2019-02-01 09:27:56 +01:00
|
|
|
+@$(SELF_DIR)/run_fuzzer.py $(1)
|
|
|
|
|
|
2019-02-05 07:25:04 +01:00
|
|
|
endif
|
|
|
|
|
|
2018-01-04 14:02:25 +01:00
|
|
|
endef
|
|
|
|
|
|
2019-02-04 06:29:48 +01:00
|
|
|
$(eval $(call fuzzer,000-init-db,))
|
|
|
|
|
|
2018-12-06 02:35:36 +01:00
|
|
|
ifneq ($(FUZZONLY),Y)
|
2019-02-04 06:29:48 +01:00
|
|
|
$(eval $(call fuzzer,001-part-yaml,000-init-db))
|
2018-01-05 22:16:12 +01:00
|
|
|
$(eval $(call fuzzer,005-tilegrid,001-part-yaml))
|
2018-12-06 02:35:36 +01:00
|
|
|
else
|
|
|
|
|
all:: 005-tilegrid/run.ok
|
|
|
|
|
touch 005-tilegrid/run.ok
|
|
|
|
|
endif
|
|
|
|
|
|
2019-04-27 19:05:42 +02:00
|
|
|
ifneq ($(XRAY_DATABASE),kintex7)
|
2019-04-17 17:41:37 +02:00
|
|
|
$(eval $(call fuzzer,007-timing,005-tilegrid))
|
2019-04-27 19:05:42 +02:00
|
|
|
endif
|
2019-01-07 23:08:45 +01:00
|
|
|
$(eval $(call fuzzer,010-clb-lutinit,005-tilegrid))
|
|
|
|
|
$(eval $(call fuzzer,011-clb-ffconfig,005-tilegrid))
|
|
|
|
|
$(eval $(call fuzzer,012-clb-n5ffmux,005-tilegrid))
|
|
|
|
|
$(eval $(call fuzzer,013-clb-ncy0,005-tilegrid))
|
|
|
|
|
$(eval $(call fuzzer,014-clb-ffsrcemux,005-tilegrid))
|
|
|
|
|
$(eval $(call fuzzer,015-clb-nffmux,005-tilegrid))
|
|
|
|
|
$(eval $(call fuzzer,016-clb-noutmux,005-tilegrid))
|
|
|
|
|
$(eval $(call fuzzer,017-clb-precyinit,005-tilegrid))
|
|
|
|
|
$(eval $(call fuzzer,018-clb-ram,005-tilegrid))
|
|
|
|
|
$(eval $(call fuzzer,019-clb-ndi1mux,005-tilegrid))
|
2018-11-01 00:56:06 +01:00
|
|
|
$(eval $(call fuzzer,025-bram-config,005-tilegrid))
|
|
|
|
|
$(eval $(call fuzzer,026-bram-data,005-tilegrid))
|
2019-02-01 22:33:57 +01:00
|
|
|
$(eval $(call fuzzer,027-bram36-config,005-tilegrid))
|
|
|
|
|
$(eval $(call fuzzer,028-fifo-config,005-tilegrid))
|
2019-02-04 23:09:51 +01:00
|
|
|
$(eval $(call fuzzer,029-bram-fifo-config,005-tilegrid))
|
2019-03-01 01:36:02 +01:00
|
|
|
$(eval $(call fuzzer,030-iob,005-tilegrid))
|
2019-06-26 21:39:50 +02:00
|
|
|
$(eval $(call fuzzer,032-cmt-pll,005-tilegrid))
|
2019-10-02 14:16:42 +02:00
|
|
|
$(eval $(call fuzzer,034-cmt-pll-pips,005-tilegrid 071-ppips))
|
2019-03-01 01:36:02 +01:00
|
|
|
$(eval $(call fuzzer,035-iob-ilogic,005-tilegrid))
|
2019-07-16 10:27:40 +02:00
|
|
|
$(eval $(call fuzzer,035a-iob-idelay,005-tilegrid))
|
2019-03-03 19:59:23 +01:00
|
|
|
$(eval $(call fuzzer,036-iob-ologic,005-tilegrid))
|
2019-07-08 17:37:00 +02:00
|
|
|
$(eval $(call fuzzer,037-iob-pips,005-tilegrid))
|
2019-06-25 15:32:14 +02:00
|
|
|
$(eval $(call fuzzer,038-cfg,005-tilegrid))
|
2019-08-08 17:42:02 +02:00
|
|
|
$(eval $(call fuzzer,039-hclk-config,005-tilegrid))
|
2019-02-08 23:29:48 +01:00
|
|
|
$(eval $(call fuzzer,040-clk-hrow-config,005-tilegrid))
|
2019-05-15 12:17:39 +02:00
|
|
|
$(eval $(call fuzzer,041-clk-hrow-pips,005-tilegrid))
|
2019-03-05 08:19:51 +01:00
|
|
|
$(eval $(call fuzzer,042-clk-bufg-config,005-tilegrid))
|
2019-02-12 19:55:41 +01:00
|
|
|
$(eval $(call fuzzer,043-clk-rebuf-pips,005-tilegrid))
|
2019-06-07 10:28:12 +02:00
|
|
|
$(eval $(call fuzzer,044-clk-bufg-pips,046-clk-bufg-muxed-pips))
|
2019-04-25 09:00:29 +02:00
|
|
|
$(eval $(call fuzzer,045-hclk-cmt-pips,005-tilegrid))
|
2019-06-07 10:28:12 +02:00
|
|
|
$(eval $(call fuzzer,046-clk-bufg-muxed-pips,005-tilegrid))
|
2019-06-26 09:41:11 +02:00
|
|
|
$(eval $(call fuzzer,047-hclk-ioi-pips,005-tilegrid))
|
2019-10-31 17:00:33 +01:00
|
|
|
$(eval $(call fuzzer,047a-hclk-idelayctrl-pips,047-hclk-ioi-pips))
|
2019-02-20 02:05:56 +01:00
|
|
|
$(eval $(call fuzzer,048-int-piplist,005-tilegrid))
|
|
|
|
|
$(eval $(call fuzzer,049-int-imux-gfan,048-int-piplist))
|
|
|
|
|
$(eval $(call fuzzer,050-pip-seed,048-int-piplist))
|
|
|
|
|
$(eval $(call fuzzer,051-pip-imuxlout-bypalts,048-int-piplist))
|
2019-04-24 14:13:20 +02:00
|
|
|
$(eval $(call fuzzer,052-pip-clkin,048-int-piplist))
|
2019-02-20 02:05:56 +01:00
|
|
|
$(eval $(call fuzzer,053-pip-ctrlin,048-int-piplist))
|
|
|
|
|
$(eval $(call fuzzer,054-pip-fan-alt,048-int-piplist))
|
|
|
|
|
$(eval $(call fuzzer,055-pip-gnd,048-int-piplist))
|
2019-06-04 08:50:57 +02:00
|
|
|
$(eval $(call fuzzer,056-pip-rem,049-int-imux-gfan 050-pip-seed 051-pip-imuxlout-bypalts 052-pip-clkin 053-pip-ctrlin 054-pip-fan-alt 055-pip-gnd 059-pip-byp-bounce))
|
2019-05-23 11:12:11 +02:00
|
|
|
$(eval $(call fuzzer,057-pip-bi,056-pip-rem))
|
2018-12-17 23:51:10 +01:00
|
|
|
ifneq ($(QUICK),Y)
|
2019-02-20 02:05:56 +01:00
|
|
|
$(eval $(call fuzzer,058-pip-hclk,005-tilegrid))
|
2019-06-04 08:50:57 +02:00
|
|
|
$(eval $(call fuzzer,059-pip-byp-bounce,048-int-piplist))
|
2019-02-01 22:33:57 +01:00
|
|
|
$(eval $(call fuzzer,060-bram-cascades,005-tilegrid))
|
2019-05-23 11:12:11 +02:00
|
|
|
$(eval $(call fuzzer,071-ppips,057-pip-bi 058-pip-hclk 060-bram-cascades))
|
2018-12-27 21:24:32 +01:00
|
|
|
ifneq ($(BITONLY),Y)
|
2018-09-19 23:49:15 +02:00
|
|
|
$(eval $(call fuzzer,072-ordered_wires,))
|
|
|
|
|
$(eval $(call fuzzer,073-get_counts,))
|
2019-02-03 10:48:06 +01:00
|
|
|
$(eval $(call fuzzer,074-dump_all,005-tilegrid 072-ordered_wires))
|
2019-04-09 00:59:51 +02:00
|
|
|
$(eval $(call fuzzer,075-pins,))
|
2018-12-06 02:35:36 +01:00
|
|
|
endif
|
2018-12-27 21:24:32 +01:00
|
|
|
endif
|
2019-03-21 17:32:45 +01:00
|
|
|
$(eval $(call fuzzer,100-dsp-mskpat,005-tilegrid))
|
2018-12-21 19:29:20 +01:00
|
|
|
|
|
|
|
|
quick:
|
|
|
|
|
$(MAKE) QUICK=Y
|
2019-02-20 23:36:17 +01:00
|
|
|
|
2019-04-10 20:55:39 +02:00
|
|
|
# part_only runs the fuzzers required for supporting additional parts.
|
|
|
|
|
# Note: In theory this includes 005-tilegrid, but there isn't support for
|
|
|
|
|
# multiple tilegrid's per family at this time.
|
|
|
|
|
part_only:
|
|
|
|
|
+$(MAKE) -C 001-part-yaml run
|
|
|
|
|
+$(MAKE) -C 075-pins run
|
|
|
|
|
|
|
|
|
|
.PHONY: all clean clean_fuzzers clean_logs quick part_only
|