prjxray/fuzzers/005-tilegrid/Makefile

150 lines
4.7 KiB
Makefile

FUZDIR=$(shell pwd)
BUILD_DIR=$(FUZDIR)/build
TILEGRID_TDB_DEPENDENCIES=
TILEGRID_TDB_DEPENDENCIES += iob/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += iob_int/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += monitor/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += bram/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += bram_block/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += bram_int/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += clb/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += clb_int/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += dsp/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += fifo_int/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += cfg_int/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += monitor_int/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += clk_hrow/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += clk_bufg/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += hclk_cmt/build/segbits_tilegrid.tdb
GENERATE_FULL_ARGS=
ifeq (${XRAY_DATABASE}, zynq7)
# Zynq7 only
TILEGRID_TDB_DEPENDENCIES += ps7_int/build/segbits_tilegrid.tdb
else
# Artix7/Kintex7 only
TILEGRID_TDB_DEPENDENCIES += pll/build/segbits_tilegrid.tdb
TILEGRID_TDB_DEPENDENCIES += mmcm/build/segbits_tilegrid.tdb
endif
ifeq (${XRAY_DATABASE}, kintex7)
TILEGRID_TDB_DEPENDENCIES += orphan_int_column/build/segbits_tilegrid.tdb
else
# Disable DSP INT fuzzer on kintex7. It doesn't work, and isn't required.
TILEGRID_TDB_DEPENDENCIES += dsp_int/build/segbits_tilegrid.tdb
endif
database: build/tilegrid.json
pushdb: build/tilegrid.json
cp build/tilegrid.json ${XRAY_DATABASE_DIR}/$(XRAY_DATABASE)/tilegrid.json
build/tiles/tiles.txt:
bash generate.sh build/tiles tiles
build/basicdb/tilegrid.json: generate.py build/tiles/tiles.txt
mkdir -p build/basicdb
cd build && python3 ${FUZDIR}/generate.py \
--tiles $(FUZDIR)/build/tiles/tiles.txt \
--out ${BUILD_DIR}/basicdb/tilegrid.json
clb/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd clb && $(MAKE)
clb_int/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd clb_int && $(MAKE)
iob/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd iob && $(MAKE)
iob_int/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd iob_int && $(MAKE)
mmcm/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd mmcm && $(MAKE)
pll/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd pll && $(MAKE)
ps7_int/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd ps7_int && $(MAKE)
monitor/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd monitor && $(MAKE)
monitor_int/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd monitor_int && $(MAKE)
bram/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd bram && $(MAKE)
bram_block/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd bram_block && $(MAKE)
bram_int/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd bram_int && $(MAKE)
dsp/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd dsp && $(MAKE)
dsp_int/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd dsp_int && $(MAKE)
fifo_int/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd fifo_int && $(MAKE)
cfg_int/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd cfg_int && $(MAKE)
orphan_int_column/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd orphan_int_column && $(MAKE)
clk_hrow/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd clk_hrow && $(MAKE)
clk_bufg/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd clk_bufg && $(MAKE)
hclk_cmt/build/segbits_tilegrid.tdb: build/basicdb/tilegrid.json
cd hclk_cmt && $(MAKE)
build/tilegrid_tdb.json: add_tdb.py $(TILEGRID_TDB_DEPENDENCIES)
python3 add_tdb.py \
--fn-in build/basicdb/tilegrid.json \
--fn-out build/tilegrid_tdb.json
build/tilegrid.json: generate_full.py build/tilegrid_tdb.json
cd build && python3 ${FUZDIR}/generate_full.py \
--json-in tilegrid_tdb.json --json-out ${BUILD_DIR}/tilegrid.json
run:
$(MAKE) clean
$(MAKE) database
$(MAKE) pushdb
touch run.ok
clean:
rm -rf build run.ok
cd clb && $(MAKE) clean
cd clb_int && $(MAKE) clean
cd iob && $(MAKE) clean
cd iob_int && $(MAKE) clean
cd mmcm && $(MAKE) clean
cd pll && $(MAKE) clean
cd ps7_int && $(MAKE) clean
cd bram && $(MAKE) clean
cd bram_block && $(MAKE) clean
cd bram_int && $(MAKE) clean
cd dsp && $(MAKE) clean
cd dsp_int && $(MAKE) clean
cd fifo_int && $(MAKE) clean
cd monitor && $(MAKE) clean
cd monitor_int && $(MAKE) clean
cd cfg_int && $(MAKE) clean
cd orphan_int_column && $(MAKE) clean
cd clk_hrow && $(MAKE) clean
cd clk_bufg && $(MAKE) clean
cd hclk_cmt && $(MAKE) clean
.PHONY: database pushdb clean run