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

Subversion Repositories leros

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

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

powered by: WebSVN 2.1.0

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