-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy pathMakefile.env
More file actions
236 lines (216 loc) · 6.67 KB
/
Makefile.env
File metadata and controls
236 lines (216 loc) · 6.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
##########################################################
## user configuration
##########################################################
# boards: ultra96v2, pynqz2, mercuryxu1
# hosts : zynq
# unsupported: vu47p, kr260, bridge
BOARDNAME ?= pynqz2
ifeq ($(BOARDNAME),ultra96v2)
PART ?= xczu3eg-sbva484-1-e
HOST ?= zynq
else ifeq ($(BOARDNAME),pynqz2)
PART ?= xc7z020clg400-1
HOST ?= zynq
else ifeq ($(BOARDNAME), mercuryxu1)
PART ?= xczu15eg-ffvc900-2-i
HOST ?= zynq
$(warning This target is not currently supported!)
else ifeq ($(BOARDNAME),zedboard)
# Digilent ZedBoard (Zynq-7000)
PART ?= xc7z020clg484-1
HOST ?= zynq
$(warning This target is not currently supported!)
#else ifeq ($(BOARDNAME),kr260)
#PART ?= xck26-sfvc784-2LV-c
#HOST ?= zynq
#else ifeq ($(BOARDNAME),vu47p)
#PART ?= xcvu47p-fsvh2892-3-e
#HOST ?= bridge
else
$(error Invalid BOARDNAME)
endif
UART_BAUD ?= 921600
##############################
# Project-specific configuration
##############################
ZP_DIR ?= $(TOP)
ZP_WORK_DIR ?= $(ZP_DIR)/work
ZP_INSTALL_DIR ?= $(ZP_DIR)/install
ZP_RISCV_DIR ?= $(ZP_DIR)/riscv
ZP_BIN_DIR = $(ZP_INSTALL_DIR)/bin
ZP_LIB_DIR = $(ZP_INSTALL_DIR)/lib
ZP_INCLUDE_DIR = $(ZP_INSTALL_DIR)/include
ZP_TOUCH_DIR = $(ZP_INSTALL_DIR)/touchfiles
COSIM_DIR = $(ZP_DIR)/cosim
COSIM_MK_DIR = $(COSIM_DIR)/mk
COSIM_VSRC_DIR = $(COSIM_DIR)/v
COSIM_CSRC_DIR = $(COSIM_DIR)/src
COSIM_INCLUDE_DIR = $(COSIM_DIR)/include
COSIM_PY_DIR = $(COSIM_DIR)/py
COSIM_TCL_DIR = $(COSIM_DIR)/tcl
COSIM_XDC_DIR = $(COSIM_DIR)/xdc
SOFTWARE_DIR = $(ZP_DIR)/software
SOFTWARE_MK_DIR = $(SOFTWARE_DIR)/mk
SOFTWARE_VSRC_DIR = $(SOFTWARE_DIR)/v
SOFTWARE_CSRC_DIR = $(SOFTWARE_DIR)/src
SOFTWARE_INCLUDE_DIR = $(SOFTWARE_DIR)/include
SOFTWARE_PY_DIR = $(SOFTWARE_DIR)/py
SOFTWARE_TCL_DIR = $(SOFTWARE_DIR)/tcl
SOFTWARE_XDC_DIR = $(SOFTWARE_DIR)/xdc
ZP_IMPORT_DIR = $(ZP_DIR)/import
ZP_COSIM_DIR = $(ZP_DIR)/cosim
ZP_SOFTWARE_DIR = $(ZP_DIR)/software
BP_RTL_DIR = $(ZP_IMPORT_DIR)/black-parrot
BP_SDK_DIR = $(ZP_IMPORT_DIR)/black-parrot-sdk
BP_TOOLS_DIR = $(ZP_IMPORT_DIR)/black-parrot-tools
BP_SUB_DIR = $(ZP_IMPORT_DIR)/black-parrot-subsystems
BSG_MANYCORE_DIR = $(ZP_IMPORT_DIR)/bsg_manycore
BSG_REPLICANT_DIR = $(ZP_IMPORT_DIR)/bsg_replicant
BASEJUMP_STL_DIR = $(ZP_IMPORT_DIR)/basejump_stl
ifeq (0,$(IS_TOP))
TOOL = $(shell basename $(CURDIR))
DESIGN_DIR = $(abspath $(CURDIR)/..)
DESIGN_VSRC_DIR = $(DESIGN_DIR)/v
DESIGN_CSRC_DIR = $(DESIGN_DIR)/src
DESIGN_INCLUDE_DIR = $(DESIGN_DIR)/include
DESIGN_TCL_DIR = $(DESIGN_DIR)/tcl
DESIGN_VCS_DIR = $(DESIGN_DIR)/vcs
DESIGN_VERILATOR_DIR = $(DESIGN_DIR)/verilator
DESIGN_VIVADO_DIR = $(DESIGN_DIR)/vivado
DESIGN_XCELIUM_DIR = $(DESIGN_DIR)/xcelium
DESIGN_ZYNQ_DIR = $(DESIGN_DIR)/zynq
ifneq ($(TOOL),zynq)
export PATH := $(ZP_INSTALL_DIR)/bin:$(shell echo $$PATH)
export LD_LIBRARY_PATH := $(ZP_INSTALL_DIR)/lib:$(shell echo $$LD_LIBRARY_PATH)
export LIBRARY_PATH := $(ZP_INSTALL_DIR)/lib:$(shell echo $$LIBRARY_PATH)
export CPATH := $(ZP_INSTALL_DIR)/include:$(shell echo $$CPATH)
endif
endif
# Used in bsg_manycore and black-parrot
export BP_RISCV_DIR ?= $(ZP_RISCV_DIR)
export BP_INSTALL_DIR ?= $(ZP_INSTALL_DIR)
export RISCV_INSTALL_DIR ?= $(ZP_INSTALL_DIR)
export RISCV_BIN_DIR ?= $(RISCV_INSTALL_DIR)/bin
export PLATFORM ?= zynqparrot
#############################
# Executable shortcuts
#############################
AWK ?= awk
AUTORECONF ?= autoreconf
AUTOCONF ?= autoconf
BASE64 ?= base64
CAT ?= cat
CD ?= cd
CMAKE ?= $(if $(shell which cmake3),cmake3,cmake)
CP ?= cp
ECHO ?= echo
EGREP ?= egrep
ENV_SETUP ?= source $(TARGET_ENV)
FIND ?= find
FINDHERE ?= find .
GCC ?= gcc
GXX ?= g++
GIT ?= git
GCLONE ?= git clone --recurse-submodules
GTKWAVE ?= gtkwave
GREP ?= grep
MKDIR ?= mkdir -p
MKEXE ?= chmod +x
MV ?= mv
PETALINUX ?= petalinux
PYTHON ?= $(if $(shell which python3),$(PYTHON3),$(PYTHON2))
PYTHON2 ?= PYTHONPATH=$(COSIM_PY_DIR) python2
PYTHON3 ?= PYTHONPATH=$(COSIM_PY_DIR) python3
RMRF ?= rm -rf
SED ?= sed
SED_I ?= sed -i
SIMVISION ?= simvision
SUDO ?= sudo
SYMLINK ?= ln -nsf
TAR ?= tar
TEE ?= tee
TEE_I ?= tee -i
TOUCH ?= touch
TR ?= tr
VCS ?= vcs
VERDI ?= verdi
VERILATOR ?= verilator
VIVADO ?= vivado
WGET ?= wget
XMSIM ?= xmsim
XRUN ?= xrun
XXD ?= xxd
DVE ?= dve
# TCL to pause between stages, batch to proceed straight through
VIVADO_MODE ?= tcl
# These are set by bsg_cadenv but can be overridden
VIVADO_PATH ?= /tools/Xilinx/Vivado
# Currently supports 2022.1
VIVADO_VERSION ?= 2022.1
# Path to specific Vivado install
XILINX_VIVADO ?= $(VIVADO_PATH)/$(VIVADO_VERSION)
# Update this with a pointer to your vivado install
VIVADO_SETTINGS ?= $(XILINX_VIVADO)/settings64.sh
# Path to specific PetaLinux install
PETALINUX_PATH ?= /tools/Xilinx/PetaLinux
# Currently supports 2022.1
PETALINUX_VERSION ?= 2022.1
# Path to specific PetaLinux install
XILINX_PETALINUX ?= $(PETALINUX_PATH)/$(PETALINUX_VERSION)
# Update this with a pointer to your vivado install
PETALINUX_SETTINGS ?= $(XILINX_PETALINUX)/settings.sh
# Command as variable
VIVADO_RUN ?= source $(VIVADO_SETTINGS) && $(VIVADO) -mode $(VIVADO_MODE)
PETALINUX_RUN ?= source $(PETALINUX_SETTINGS) && $(PETALINUX)
#############################
# Common targets
#############################
clean:: ## cleans the working directory
clean::
@$(RMRF) obj_dir
@$(RMRF) trace.fst
@$(RMRF) *.log
@$(RMRF) *.trace
@$(RMRF) *.riscv
@$(RMRF) *.dump
@$(RMRF) csrc
@$(RMRF) ucli.key
@$(RMRF) vc_hdrs.h
@$(RMRF) simv
@$(RMRF) simv.daidir
@$(RMRF) vcdplus.vpd
@$(RMRF) *.nbf
@$(RMRF) *.elf
@$(RMRF) *.trace
@$(RMRF) *.jou
@$(RMRF) *.b64
@$(RMRF) xsim.dir
@$(RMRF) flist.vcs
@$(RMRF) flist.*.vcs
@$(RMRF) xcelium.d
@$(RMRF) *.history
@$(RMRF) *.trace
@$(RMRF) *_bd_1.bit
@$(RMRF) *_bd_1.hwh
@$(RMRF) *_bd_1.tcl
@$(RMRF) *_bd_1.map
@$(RMRF) ip_repo
@$(RMRF) *_ip_proj.*
@$(RMRF) *_bd_proj.*
@$(RMRF) NA/ .Xil/
@$(RMRF) control-program
@$(RMRF) *.so *.so.daidir
@$(RMRF) $(DESIGN_DIR)/*.o
@$(RMRF) $(COSIM_CSRC_DIR)/*.o
@$(RMRF) vivado.tcl
#############################
# Hooks
#############################
## Probably don't need to change, but here's the hook anyway
HOOK_REPO_NAME = zynq-parrot
## All local directories to create during checkout
HOOK_CHECKOUT_DIRS = \
$(ZP_WORK_DIR) \
$(ZP_INSTALL_DIR)
## Long checkouts to disable
HOOK_DISABLE_SUBMODULES =