# Copyright (C) 2017-2020  The Project X-Ray Authors.
#
# Use of this source code is governed by a ISC-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/ISC
#
# SPDX-License-Identifier: ISC
SYNTH ?= vivado
YOSYS = $(XRAY_DIR)/third_party/yosys/yosys
PART = xc7a35tcsg324-1

VERILOG_FILES = $(wildcard *.v)
BIT_FILES = $(VERILOG_FILES:.v=.bit)

all: $(BIT_FILES)

clean:
	@find . -name "build-par.*" | xargs rm -rf
	@find . -name "build-syn.*" | xargs rm -rf
	@rm -f *.edif
	@rm -f *.bit
	@rm -f *.bin
	@rm -f *.log
	@rm -f *.dcp

help:
	@echo "Usage: make all [SYNTH=<vivado/yosys>]"

.PHONY: all clean help

$(YOSYS):
	cd $(XRAY_DIR)/third_party/yosys && make config-gcc && make -j$(shell nproc)

ifeq ($(SYNTH), yosys)
%.edif: %.v $(YOSYS)
	$(YOSYS) -p "read_verilog $< ; synth_xilinx -flatten -nosrl; write_edif -pvector bra -attrprop $@"  -l $@.log

else ifeq ($(SYNTH), vivado)
%.edif: %.v tcl/syn.tcl basys3.xdc
	mkdir -p build-syn.$(basename $@)
	cd build-syn.$(basename $@) && env PROJECT_NAME=$(basename $@) $(XRAY_VIVADO) -mode batch -source ../tcl/syn.tcl -nojournal -log ../$@.log
	rm -rf *.backup.log

endif

%.bit: %.edif tcl/par.tcl basys3.xdc
	mkdir -p build-par.$(basename $@)
	cd build-par.$(basename $@) && env PROJECT_NAME=$(basename $@) $(XRAY_VIVADO) -mode batch -source ../tcl/par.tcl -nojournal -log ../$@.log
	rm -rf *.backup.log

