1 ifeq ($(shell uname),Darwin)
2 linkerflags = -Wl,-framework -Wl,IOKit -Wl,-framework -Wl,CoreFoundation -dynamiclib -framework JavaVM
3 jnilib = libFtdiUartNative.jnilib
6 jnilib = libFtdiUartNative.so
9 ## demos ############################################################################
11 asyncdemo: slipway.jar
12 java -cp slipway.jar edu.berkeley.slipway.demos.FastestMicropipelineFifoDemo misc/data/async/
15 java -cp slipway.jar edu.berkeley.slipway.demos.Demo 30
18 java -cp slipway.jar edu.berkeley.slipway.demos.Demo2 30
20 mpardemo: upstream/jhdl-edifparser.jar slipway.jar
21 iverilog -t fpga -s main -o out.edf misc/mpardemo.v
22 java -cp slipway.jar:upstream/jhdl-edifparser.jar edu.berkeley.slipway.mpar.MPARDemo out.edf
25 ## slipway ############################################################################
27 build/src/com/ftdi/usb/FtdiUart.c: src/com/ftdi/usb/FtdiUart.i
29 mkdir -p src/com/ftdi/usb
30 swig -module FtdiUartNative -noproxy -package com.ftdi.usb -o $@ -outdir `dirname $@` -java $<
32 build/$(jnilib): build/src/com/ftdi/usb/FtdiUart.c upstream/libusb/.built
33 gcc -I. -Iupstream/libftdi -Iupstream/libusb \
34 -I$(JAVA_HOME)/include \
36 upstream/libftdi/ftdi.c \
37 upstream/libusb/.libs/libusb.a \
41 slipway.jar: build/$(jnilib) $(shell find src build/src -name \*.java) misc/slipway_drone.bst upstream/jhdl-edifparser.jar
43 $(javac) -d build $(shell find src build/src -name \*.java)
44 cp misc/slipway_drone.bst build/edu/berkeley/slipway/
45 cd build; jar cvf ../$@ .
49 ## libusb ##############################################################################
53 cd upstream; curl http://voxel.dl.sourceforge.net/sourceforge/libusb/libusb-0.1.12.tar.gz | tar -xvzf -
54 cd upstream; mv libusb-0.1.12 libusb
56 upstream/libusb/.built: upstream/libusb
62 javac = javac -cp upstream/jhdl-edifparser.jar
63 #java = java -Djava.library.path=$(shell pwd)/lib/ -cp lib/RXTXcomm.jar:slipway.jar
67 ## for rebuilding usbdrone.hex ###########################################################
69 build/slipway_drone.hex: src/edu/berkeley/slipway/SlipwaySlave.c upstream/avr-libc/.built
70 upstream/prefix/bin/avr-gcc -O3 -mmcu=at94k $< -o $@.o
71 upstream/prefix/bin/avr-objcopy -O ihex $@.o $@
73 # this only works on my personal setup [adam]
74 #misc/slipway_drone.bst: build/slipway_drone.hex
75 # cp $< /afs/research.cs.berkeley.edu/user/megacz/slipway/$<
76 # fs flush /afs/research.cs.berkeley.edu/user/megacz/slipway/$<
79 # rm /afs/research.cs.berkeley.edu/user/megacz/slipway/$<
80 # diff -u /afs/research.cs.berkeley.edu/user/megacz/slipway/$@ $@ && \
82 # mv /afs/research.cs.berkeley.edu/user/megacz/slipway/$@ $@
87 ## avr-gcc toolchain and libc ################################################################
90 cd upstream; curl http://ftp.gnu.org/pub/pub/pub/gnu/binutils/binutils-2.19.1.tar.bz2 | tar -xvjf -
91 cd upstream; mv binutils-2.19.1 binutils
93 upstream/binutils/.built: upstream/binutils
94 mkdir -p upstream/prefix
95 cd upstream/binutils; \
96 PATH=$$PATH:$(shell pwd)/upstream/prefix/bin \
97 ./configure --prefix=$(shell pwd)/upstream/prefix --target=avr && \
103 cd upstream; curl http://ftp.gnu.org/pub/gnu/gcc/gcc-4.0.3/gcc-core-4.0.3.tar.bz2 | tar -xvjf -
104 cd upstream; mv gcc-4.0.3 gcc
106 upstream/gcc/.built: upstream/gcc upstream/binutils/.built
107 mkdir -p upstream/prefix
108 mkdir -p upstream/gcc-build
109 cd upstream/gcc-build; \
110 PATH=$$PATH:$(shell pwd)/upstream/prefix/bin \
111 ../gcc/configure --prefix=$(shell pwd)/upstream/prefix --target=avr && \
112 PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make && \
113 PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make install
117 cd upstream; curl http://nongnu.askapache.com/avr-libc/avr-libc-1.4.3.tar.bz2 | tar -xvjf -
118 cd upstream; mv avr-libc-1.4.3 avr-libc
120 upstream/avr-libc/.built: upstream/avr-libc upstream/gcc/.built
121 cd upstream/avr-libc; \
122 PATH=$$PATH:$(shell pwd)/upstream/prefix/bin \
123 ./configure --prefix=$(shell pwd)/upstream/prefix --host=avr && \
124 PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make && \
125 PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make install
129 ## edif parser ##########################################################################
131 upstream/jhdl-edifparser.jar:
133 curl -o $@- http://reliability.ee.byu.edu/edif/jars/release_0.3.0/edif-0.3.0.jar
136 ## javadoc ##############################################################################
143 -windowtitle "abits" \
151 `find src -name \*.java`