blob: f1698ad1ba0dc5bab9b4c3c2935c5df5705aa7d7 [file] [log] [blame]
lowRISC Contributors802543a2019-08-31 12:12:56 +01001CUR_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
2PRJ_DIR := $(realpath ${CUR_DIR}/../)
3export PRJ_DIR
4
5IPS ?= uart \
6 gpio \
7 rv_plic \
8 flash_ctrl \
9 spi_device \
10 rv_timer \
11 hmac \
12 usbuart
13
Eunchan Kim49634d72019-09-05 14:39:57 -070014TOPS ?= top_earlgrey
15
lowRISC Contributors802543a2019-08-31 12:12:56 +010016ips_reg = $(addsuffix _reg, $(IPS))
17
Eunchan Kim49634d72019-09-05 14:39:57 -070018tops_gen = $(addsuffix _gen,$(TOPS))
lowRISC Contributors802543a2019-08-31 12:12:56 +010019
20all: $(ips_reg)
21
22regs: $(ips_reg)
23
24$(ips_reg):
25 if [ -f ${PRJ_DIR}/hw/ip/$(subst _reg,,$@)/doc/$(subst _reg,,$@).hjson ]; then \
26 ${PRJ_DIR}/util/regtool.py -r ${PRJ_DIR}/hw/ip/$(subst _reg,,$@)/doc/$(subst _reg,,$@).hjson; \
27 ${PRJ_DIR}/util/regtool.py -D -o ${PRJ_DIR}/hw/ip/$(subst _reg,,$@)/sw/$(subst _reg,_regs,$@).h\
28 ${PRJ_DIR}/hw/ip/$(subst _reg,,$@)/doc/$(subst _reg,,$@).hjson; \
29 ${PRJ_DIR}/util/regtool.py -s -t ${PRJ_DIR}/hw/ip/$(subst _reg,,$@)/dv/env \
30 ${PRJ_DIR}/hw/ip/$(subst _reg,,$@)//doc/$(subst _reg,,$@).hjson; \
31 else if [ -f ${PRJ_DIR}/hw/ip/$(subst _reg,,$@)/doc/$@.hjson ]; then \
32 ${PRJ_DIR}/util/regtool.py -r ${PRJ_DIR}/hw/ip/$(subst _reg,,$@)/doc/$@.hjson; \
33 ${PRJ_DIR}/util/regtool.py -D -o ${PRJ_DIR}/hw/ip/$(subst _reg,,$@)/sw/$(subst _reg,_regs,$@).h \
34 ${PRJ_DIR}/hw/ip/$(subst _reg,,$@)/doc/$@.hjson; \
35 ${PRJ_DIR}/util/regtool.py -s -t ${PRJ_DIR}/hw/ip/$(subst _reg,,$@)/dv/env \
36 ${PRJ_DIR}/hw/ip/$(subst _reg,,$@)//doc/$@.hjson; \
37 fi \
38 fi
39
Eunchan Kim49634d72019-09-05 14:39:57 -070040$(tops_gen):
41 $(eval $@_TOP := $(strip $(foreach top,$(TOPS),$(findstring $(top),$@))))
42 ${PRJ_DIR}/util/topgen.py -t ${PRJ_DIR}/hw/$($@_TOP)/doc/$($@_TOP).hjson \
43 --tpl ${PRJ_DIR}/hw/$($@_TOP)/doc/$($@_TOP).tpl.sv \
44 -o ${PRJ_DIR}/hw/$($@_TOP)/ -v
45 ${PRJ_DIR}/util/topgen.py -t ${PRJ_DIR}/hw/$($@_TOP)/doc/$($@_TOP).hjson \
46 -r -o ${PRJ_DIR}/hw/$($@_TOP)/dv/env/ -v
47
48.PHONY: all $(ips_reg) $(tops_gen)