calc: fake top entity fuer synthese und ACHTUNG:
[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 modelsim: behsim
32         @cd $(D_BEHSIM); \
33         vsim "work.alu_tb(sim)" -f /dev/null -do $(MPWD)/alu.do
34
35 quartus:
36         @echo "Die angebotene (free) Quartus II Version funktioniert leider nicht. (Build endet mit einem Error, auch mit dem debouncing-bsp der LVA)."
37         @echo "Befehl um es trotzdem zu probieren:"
38         @echo "$$ unset LS_COLORS #falls gesetzt..."
39         @echo -n "$$ quartus # bin verzeichnis von quartus muss sich in "; echo -n "$$"; echo "PATH befinden"
40         @echo "in windows: TODO"
41
42 .PHONY: clean
43 clean:
44         rm -Rf $(D_BEHSIM)
45