$(java) $(cp) $(interpreter_class)
fleet.jar: $(shell find src -name \*.java) src/edu/berkeley/fleet/assembler/fleet.g
- mkdir -p bin/edu/berkeley/fleet/assembler/
- cp src/edu/berkeley/fleet/assembler/fleet.g bin/edu/berkeley/fleet/assembler/
- javac -cp lib/edu.berkeley.sbp.jar -d bin $(shell find src -name \*.java)
- cd bin; jar xvf ../lib/edu.berkeley.sbp.jar
- echo 'Main-Class: $(interpreter_class)' > bin/manifest
- cd bin; jar cvmf manifest ../$@ .
+ mkdir -p build/class/edu/berkeley/fleet/assembler/
+ cp src/edu/berkeley/fleet/assembler/fleet.g build/class/edu/berkeley/fleet/assembler/
+ javac -cp lib/edu.berkeley.sbp.jar -d build/class/ $(shell find src -name \*.java)
+ cd build/class/; jar xvf ../../lib/edu.berkeley.sbp.jar
+ echo 'Main-Class: $(interpreter_class)' > build/class/manifest
+ cd build/class/; jar cvmf manifest ../../$@ .
## Slipway ####################################################################################
remote_run += echo running;
remote_run += ./a.out /dev/selectmap1 fleet.bin
-runfpga: build/main.bit
+runfpga: fleet.jar build/main.bit
$(java) $(cp) $(interpreter_class) --dump-code < contrib/demo.fleet
- mv fleet.bin build
rsync -zare ssh --progress --verbose build/fleet.bin build/main.bit src/edu/berkeley/fleet/slipway/test.c root@bee441.cs.berkeley.edu:
ssh root@bee441.cs.berkeley.edu '$(remote_run)'
-build/main.bit: fleet.jar contrib/demo.ships $(shell find src -name \*.v)
+build/main.bit: contrib/demo.ships $(shell find src -name \*.v)
+ make fleet.jar
mkdir -p build
$(java) $(cp) $(interpreter_class) --dump-fabric < contrib/demo.ships | tee build/fabric.v
rsync -zare ssh --progress --delete --verbose ./ ${host}:${remote_dir}
## Misc ####################################################################################
clean:
- rm -rf bin fleet.jar build
+ rm -rf fleet.jar build
## Dist ####################################################################################
dist:
darcs record
+ darcs push /afs/research.cs.berkeley.edu/class/fleet/website/repos/fleet/
darcs get . --repo-name=fleet-`date +%d.%h.%y`
make -C fleet-`date +%d.%h.%y` fleet.jar
- rm -rf fleet-`date +%d.%h.%y`/bin
rm -rf fleet-`date +%d.%h.%y`/build
tar cvzf fleet-`date +%d.%h.%y`.tgz fleet-`date +%d.%h.%y`
rm -rf fleet-`date +%d.%h.%y`
-#import edu.berkeley.fleet.ships
-#ship alu : Alu2
-#ship debug : Debug
-#ship command : Command
+#include "contrib/demo.ships"
+
+
+0: sendto alu2.op;
+10: sendto alu2.a;
+2: sendto alu2.b;
+
+alu2.a: take, deliver;
+alu2.b: take, deliver;
+alu2.op: take, deliver;
+alu2.out: take, sendto debug.data;
+
-0: sendto alu.a;
-0: sendto alu.op;
-42: sendto alu.b;
-1: sendto alu.b;
-5: sendto alu.b;
-alu.a: [*] take, deliver;
-alu.b: [*] take, deliver;
-alu.op: take; [*] deliver;
-debug.data: [*] take, deliver;
-alu.out:
- [*] nop;
- [*r] take, sendto alu.a;
- [*r] sendto debug.data;
- kill;
public InterpreterBenkoBox resolve(edu.berkeley.fleet.api.BenkoBox bb) { return (InterpreterBenkoBox)bb; }
- public void dumpCode() {
- throw new RuntimeException("not implemented");
+ public void dumpCode(Instruction[] instructions) throws IOException {
+ DataOutputStream dos = new DataOutputStream(new FileOutputStream("build/fleet.bin"));
+ for(int i=1; i<instructions.length; i++) {
+ Instruction inst = instructions[i];
+ writeInstruction(dos, inst);
+ }
+ dos.flush();
+ dos.close();
}
public void dispatch(Instruction i, long address) {