makefile fuer behsim
[hwmod.git] / src / Makefile
1 SHELL := bash
2
3 MPWD := $(shell pwd)
4 D_BEHSIM := $(MPWD)/../sim/beh
5
6 WORK := work
7
8 #reihenfolge ist hier wichtig!
9 IFILES = gen_pkg alu alu_tb
10 IFILES := $(strip $(IFILES))
11 #virtuelle targets: weil wir sowas wie ein objectfile von vcom nicht bekommen. bessere ideen sind willkommen
12 VTARGETS := $(foreach n, $(IFILES), $(D_BEHSIM)/$(WORK)/$(n)/_primary.dat)
13
14 all: behsim
15
16 behsim: $(D_BEHSIM)/modelsim.ini $(VTARGETS)
17
18 $(D_BEHSIM)/modelsim.ini:
19         @echo " INIT for behavioural simulation"
20         @mkdir -p $(D_BEHSIM)
21         @#make fuehrt jeden befehl in einer eigenen shell aus, deswegen ein "oneliner"
22         @cd $(D_BEHSIM); \
23         vlib work > /dev/null ; \
24         vmap work work > /dev/null ;
25
26 $(D_BEHSIM)/$(WORK)/%/_primary.dat: %.vhd
27         @echo " CC    $<"
28         @cd $(D_BEHSIM); \
29         vcom -work $(WORK) $(MPWD)/$<
30
31 startms: behsim
32         @cd $(D_BEHSIM); \
33         vsim "work.alu_tb(sim)" -f /dev/null -do $(MPWD)/alu.do
34
35 .PHONY: clean
36 clean:
37         rm -Rf $(D_BEHSIM)
38