OpenCores
URL https://opencores.org/ocsvn/leros/leros/trunk

Subversion Repositories leros

[/] [leros/] [trunk/] [Makefile] - Blame information for rev 9

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 martin
#
2
# Makefile for Leros build
3
#
4
 
5
# cleanup
6
EXTENSIONS=class rbf rpt sof pin summary ttf qdf dat wlf done qws
7
 
8
#
9
#       Set USB to true for an FTDI chip based board (dspio, usbmin, lego)
10
#
11 4 martin
USB=true
12 9 martin
USB=false
13 3 martin
 
14
 
15
# Assembler files
16
APP=test
17
APP=muvium
18 4 martin
 
19
# Java application
20
JAPP=Blink
21
JAPP_PKG=.
22
 
23 7 martin
# Target Java compiler
24
# muvium has issues with the current Oracle javac,
25
# so we use jikes
26
JAVAC_TARG=jikes/jikes
27
# JAVAC_TARG=javac
28
 
29 3 martin
# Altera FPGA configuration cable
30
#BLASTER_TYPE=ByteBlasterMV
31
BLASTER_TYPE=USB-Blaster
32
 
33
ifeq ($(WINDIR),)
34
        USBRUNNER=./USBRunner
35
        S=:
36
else
37
        USBRUNNER=USBRunner.exe
38
        S=\;
39
endif
40
 
41
# The VHDL project for Quartus
42 9 martin
QPROJ=dspio
43 4 martin
QPROJ=altde2-70
44 3 martin
 
45 4 martin
# Some shortcuts
46
MUVIUM=LerosMuviumSDK
47
MUVIUM_CP=./$(S)./lib/Muvium-Leros.jar$(S)./MUVIUM_CP=./$(S)./lib/jdom.jar$(S)./lib/jaxen.jar$(S).
48 8 martin
# We need paths to the JDK and the main application
49
# Java packages are at the moment ignored, maybe do it JOP like
50
# Redefine TARGET_SRC to put your sources somewhere else
51
JDK_SRC=java/target/src
52 4 martin
TARGET_SRC=java/target/src
53 8 martin
SOURCE_PATH=$(JDK_SRC)$(S)$(TARGET_SRC)
54 4 martin
 
55 3 martin
all: directories tools rom
56
        make lerosusb
57
        make config
58
 
59
directories:
60
        -mkdir rbf
61
 
62
tools:
63 4 martin
        -rm -rf rbf
64
        -rm -rf java/tools/classes
65
        -rm -rf java/tools/lib
66
        -rm -rf java/tools/src/leros/asm/generated
67
        mkdir rbf
68
        mkdir java/tools/classes
69
        mkdir java/tools/lib
70
        mkdir java/tools/src/leros/asm/generated
71 3 martin
        java -classpath lib/antlr-3.3-complete.jar org.antlr.Tool \
72 4 martin
                -fo java/tools/src/leros/asm/generated \
73
                java/tools/src/grammar/Leros.g
74 3 martin
        javac -classpath lib/antlr-3.3-complete.jar \
75 4 martin
                -d java/tools/classes java/tools/src/leros/asm/generated/*.java \
76
                java/tools/src/leros/asm/*.java
77
        javac -d java/tools/classes -sourcepath \
78
                java/tools/src java/tools/src/leros/sim/*.java
79
        cd java/tools/classes && jar cf ../lib/leros-tools.jar *
80 3 martin
 
81 4 martin
java_app:
82
        -rm -rf java/target/classes
83
        mkdir java/target/classes
84 7 martin
        $(JAVAC_TARG) -target 1.5 -g -d java/target/classes \
85 8 martin
                -sourcepath  $(SOURCE_PATH) $(TARGET_SRC)/$(JAPP).java
86 4 martin
        cd $(MUVIUM); java -cp $(MUVIUM_CP)$(S)../java/target/classes \
87
                MuviumMetal $(JAPP) config.xml ../asm/muvium.asm
88
 
89
japp:
90
        make java_app
91
        make rom -e APP=muvium
92
        make lerosusb
93
        make config
94
 
95 3 martin
rom:
96
        -rm -rf vhdl/generated
97
        mkdir vhdl/generated
98 4 martin
        java -cp java/tools/lib/leros-tools.jar$(S)lib/antlr-3.3-complete.jar \
99 3 martin
                leros.asm.LerosAsm -s asm -d vhdl/generated $(APP).asm
100 4 martin
 
101 3 martin
jsim: rom
102 8 martin
        java -cp java/tools/lib/leros-tools.jar -Dlog=false \
103 3 martin
                leros.sim.LerosSim rom.txt
104
sim: rom
105
        cd modelsim; make
106
 
107
 
108
# configure the FPGA
109
config:
110
ifeq ($(USB),true)
111
        make config_usb
112
else
113
ifeq ($(XFPGA),true)
114
        make config_xilinx
115
else
116
        make config_byteblaster
117
endif
118
endif
119
 
120
lerosusb:
121
        @echo $(QPROJ)
122
        for target in $(QPROJ); do \
123
                make qsyn -e QBT=$$target || exit; \
124
                cd quartus/$$target && quartus_cpf -c leros.sof ../../rbf/$$target.rbf; \
125
        done
126
 
127
#
128
#       Quartus build process
129
#               called by jopser, jopusb,...
130
#
131
qsyn:
132
        echo $(QBT)
133
        echo "building $(QBT)"
134
        -rm -rf quartus/$(QBT)/db
135
        -rm -f quartus/$(QBT)/leros.sof
136
        -rm -f jbc/$(QBT).jbc
137
        -rm -f rbf/$(QBT).rbf
138
        quartus_map quartus/$(QBT)/leros
139
        quartus_fit quartus/$(QBT)/leros
140
        quartus_asm quartus/$(QBT)/leros
141
        quartus_sta quartus/$(QBT)/leros
142
 
143
config_byteblaster:
144
        cd quartus/$(QPROJ) && quartus_pgm -c $(BLASTER_TYPE) -m JTAG leros.cdf
145
 
146
config_usb:
147
        cd rbf && ../$(USBRUNNER) $(QPROJ).rbf
148
 
149
# TODO: no Xilinx Makefiles available yet
150
config_xilinx:
151
        cd xilinx/$(XPROJ) && make config
152
 
153
clean:
154
        for ext in $(EXTENSIONS); do \
155
                find `ls` -name \*.$$ext -print -exec rm -r -f {} \; ; \
156
        done
157
        -find `ls` -name leros.pof -print -exec rm -r -f {} \;
158
        -find `ls` -name db -print -exec rm -r -f {} \;
159
        -find `ls` -name incremental_db -print -exec rm -r -f {} \;
160
        -find `ls` -name leros_description.txt -print -exec rm -r -f {} \;
161
        -rm -rf asm/generated
162
        -rm -f vhdl/*.vhd
163
        -rm -rf $(TOOLS)/dist
164
        -rm -rf $(PCTOOLS)/dist
165
        -rm -rf $(TARGET)/dist
166
        -rm -rf modelsim/work
167
        -rm -rf modelsim/transcript
168
        -rm -rf modelsim/gaisler
169
        -rm -rf modelsim/grlib
170
        -rm -rf modelsim/techmap

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.