1
0
Fork 0
fpga-shells/xilinx/Makefile

43 lines
1.1 KiB
Makefile

VIVADO ?= vivado
VIVADOFLAGS := \
-nojournal -mode batch \
-source $(fpga_board_script_dir)/board.tcl \
-source $(fpga_common_script_dir)/prologue.tcl
# Path to a program in raw binary format to be flashed into the address that the
# bootrom jumps to.
# FIXME: This variable should probably be communicated by a higher-level Makefile
FLASHED_PROGRAM ?=
# Init project
init = $(FPGA_BUILD_DIR)/.init
$(init): $(fpga_common_script_dir)/init.tcl
mkdir -p $(FPGA_BUILD_DIR) && \
cd $(FPGA_BUILD_DIR) && \
VSRCS="$(VSRCS)" $(VIVADO) $(VIVADOFLAGS) -source $<
.PHONY: init
init: $(init)
# Generate bitstream
bit := $(FPGA_BUILD_DIR)/obj/$(FPGA_TOP_SYSTEM).bit
$(bit): $(fpga_common_script_dir)/vivado.tcl $(init)
cd $(FPGA_BUILD_DIR) && \
VSRCS="$(VSRCS)" $(VIVADO) $(VIVADOFLAGS) -source $<
.PHONY: bit
bit: $(bit)
# Generate mcs
mcs := $(FPGA_BUILD_DIR)/obj/system.mcs
$(mcs): $(bit)
cd $(FPGA_BUILD_DIR) && \
$(VIVADO) $(VIVADOFLAGS) $(fpga_common_script_dir)/write_cfgmem.tcl -tclargs $(BOARD) $@ $^ $(FLASHED_PROGRAM)
.PHONY: mcs
mcs: $(mcs)
.PHONY: clean
clean::
rm -rf $(FPGA_BUILD_DIR)