]> Pileus Git - ~andy/csm213a-hw/blobdiff - hw2/makefile
Add serial transmit call
[~andy/csm213a-hw] / hw2 / makefile
index b32f808bd8aab647de4043adab4be95f2f069788..54e987246accffe2a32c74d17a2d972e60f49192 100644 (file)
@@ -1,25 +1,41 @@
-PROG = mbed
-UART = /dev/ttyACM0
-OBJS = main.o test.o serial_irq.o serial_dma.o timer_dma.o
+-include config.mk
+
+# Common settings
+UART0    = /dev/ttyACM0
+UART1    = /dev/ttyACM1
+CLEAN    = control tags
 
 CPPFLAGS =
 LDFLAGS  = -lm
 
-default: info run
-
-control: control.c
-       gcc -Wall -o control control.c
-
-run: all control install.sh
-       @./install.sh $(PROG).bin
-       @./control $(UART)
+# Common rules
+all: mbed.elf tester.elf control
 
 terms:
-       term /dev/ttyACM0 &
-       term /dev/ttyACM1 &
+       test -c $(UART0) && term $(UART0) &
+       test -c $(UART1) && term $(UART1) &
 
 dist:
        zip mbed.zip makefile ../common.mk *.{c,cpp,h} */*.{cpp,.h}
 
+# Primary mbed (mbed1/mbed2)
+mbed.elf: main.o main_time.o main_emit.o main_comm.o \
+       serial_irq.o serial_dma.o timer_dma.o messages.o
+
+mbed-run: mbed.bin control install.sh
+       @./install.sh $<
+       @./control $(UART0) 1
+       @./control $(UART1) 2 sync
+
+# Testing mbed (mbed3)
+tester.elf: tester.o serial_irq.o timer_dma.o messages.o
+
+tester-run: tester.bin install.sh
+       @./install.sh $< /dev/sdb /mnt/usb
+
+# Controls programs
+control: control.c messages.h
+       gcc -Wall -o $@ $<
+
 -include ../config.mk
 -include ../common.mk