1 ifeq ($(shell uname),Darwin)
2 linkerflags = -Wl,-framework -Wl,IOKit -Wl,-framework -Wl,CoreFoundation
3 jnilib = libFtdiUartNative.jnilib
6 jnilib = libFtdiUartNative.so
9 ## slipway ############################################################################
12 java -cp slipway.jar edu.berkeley.slipway.Demo 30
15 java -cp slipway.jar edu.berkeley.slipway.Demo2 30
17 build/src/com/ftdi/usb/FtdiUart.c: src/com/ftdi/usb/FtdiUart.i
19 mkdir -p src/com/ftdi/usb
20 swig -module FtdiUartNative -noproxy -package com.ftdi.usb -o $@ -outdir `dirname $@` -java $<
22 build/$(jnilib): build/src/com/ftdi/usb/FtdiUart.c upstream/libusb/.built
23 gcc -I. -Iupstream/libftdi -Iupstream/usb \
24 -I$(JAVA_HOME)/include \
26 upstream/libftdi/ftdi.c \
27 upstream/libusb/.libs/libusb.a \
29 -o $@ -dynamiclib -framework JavaVM
31 slipway.jar: build/$(jnilib) $(shell find src build/src -name \*.java) bitstreams/slipway_drone_complete.bst
33 javac -d build $(shell find src build/src -name \*.java)
34 cp bitstreams/slipway_drone_complete.bst build/edu/berkeley/slipway/
35 cd build; jar cvf ../$@ .
39 ## libusb ##############################################################################
43 cd upstream; curl http://umn.dl.sourceforge.net/sourceforge/libusb/libusb-0.1.12.tar.gz | tar -xvzf -
44 cd upstream; mv libusb-0.1.12 libusb
46 upstream/libusb/.built: upstream/libusb
52 #java = java -Djava.library.path=$(shell pwd)/lib/ -cp lib/RXTXcomm.jar:slipway.jar
56 ## for rebuilding usbdrone.hex ###########################################################
58 build/slipway_drone.hex: src/edu/berkeley/slipway/FtdiBoardSlave.c upstream/avr-libc/.built
59 upstream/prefix/bin/avr-gcc -O3 -mmcu=at94k $< -o $@.o
60 upstream/prefix/bin/avr-objcopy -O ihex $@.o $@
62 # this only works on my personal setup [adam]
63 bitstreams/slipway_drone_complete.bst: build/slipway_drone.hex
64 cp $< /afs/research.cs.berkeley.edu/user/megacz/slipway/$<
65 fs flush /afs/research.cs.berkeley.edu/user/megacz/slipway/$<
68 rm /afs/research.cs.berkeley.edu/user/megacz/slipway/$<
69 diff -u /afs/research.cs.berkeley.edu/user/megacz/slipway/$@ $@ && \
71 mv /afs/research.cs.berkeley.edu/user/megacz/slipway/$@ $@
76 ## avr-gcc toolchain and libc ################################################################
79 cd upstream; curl http://ftp.gnu.org/pub/pub/pub/gnu/binutils/binutils-2.16.1.tar.bz2 | tar -xvjf -
80 cd upstream; mv binutils-2.16.1 binutils
82 upstream/binutils/.built: upstream/binutils
83 mkdir -p upstream/prefix
84 cd upstream/binutils; \
85 PATH=$$PATH:$(shell pwd)/upstream/prefix/bin \
86 ./configure --prefix=$(shell pwd)/upstream/prefix --target=avr && \
92 cd upstream; curl http://ftp.gnu.org/pub/gnu/gcc/gcc-4.0.3/gcc-core-4.0.3.tar.bz2 | tar -xvjf -
93 cd upstream; mv gcc-4.0.3 gcc
95 upstream/gcc/.built: upstream/gcc upstream/binutils/.built
96 mkdir -p upstream/prefix
97 mkdir -p upstream/gcc-build
98 cd upstream/gcc-build; \
99 PATH=$$PATH:$(shell pwd)/upstream/prefix/bin \
100 ../gcc/configure --prefix=$(shell pwd)/upstream/prefix --target=avr && \
101 PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make && \
102 PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make install
106 cd upstream; curl http://download.savannah.gnu.org/releases/avr-libc/avr-libc-1.4.3.tar.bz2 | tar -xvjf -
107 cd upstream; mv avr-libc-1.4.3 avr-libc
109 upstream/avr-libc/.built: upstream/avr-libc upstream/gcc/.built
110 cd upstream/avr-libc; \
111 PATH=$$PATH:$(shell pwd)/upstream/prefix/bin \
112 ./configure --prefix=$(shell pwd)/upstream/prefix --host=avr && \
113 PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make && \
114 PATH=$$PATH:$(shell pwd)/upstream/prefix/bin make install