1 # Makefile - Build the Pololu IMU software 2 # 3 # Copyright (C) 2013 Paul Boddie 4 # 5 # This program is free software; you can redistribute it and/or modify 6 # it under the terms of the GNU General Public License as published by 7 # the Free Software Foundation; either version 2 of the License, or 8 # (at your option) any later version. 9 10 LIBUBB = ../ben-blinkenlights/libubb 11 SYSROOT = ../openwrt-xburst/staging_dir/target-mipsel_eglibc-2.15 12 TOOLBIN = ../openwrt-xburst/staging_dir/toolchain-mipsel_gcc-4.6-linaro_eglibc-2.15/bin 13 14 ARCH = mipsel-openwrt-linux 15 CC = $(TOOLBIN)/$(ARCH)-gcc 16 17 CFLAGS = -g -Wall -fPIC -march=mips32 -I$(LIBUBB)/include $(shell $(SYSROOT)/usr/bin/sdl-config --cflags) # -DDEBUG=1 18 LDFLAGS = -lm -lubb -L$(LIBUBB) $(shell $(SYSROOT)/usr/bin/sdl-config --libs) -Wl,-rpath-link,$(SYSROOT)/usr/lib -lSDL_gfx 19 20 IMU = imu 21 ITEST = itest 22 MTEST = mtest 23 CALIBRATE = calibrate 24 TARGETS = $(IMU) $(ITEST) $(MTEST) $(CALIBRATE) 25 26 BASICSRC = imu.c i2c.c shutdown.c geo.c 27 UISRC = measure.c ui.c gui.c 28 29 IMUSRC = $(BASICSRC) $(UISRC) main.c 30 IMUOBJ = $(IMUSRC:.c=.o) 31 32 ITESTSRC = $(BASICSRC) $(UISRC) itest.c 33 ITESTOBJ = $(ITESTSRC:.c=.o) 34 35 MTESTSRC = $(BASICSRC) $(UISRC) mtest.c 36 MTESTOBJ = $(MTESTSRC:.c=.o) 37 38 CALIBRATESRC = $(BASICSRC) calibrate.c 39 CALIBRATEOBJ = $(CALIBRATESRC:.c=.o) 40 41 ALLSRC = $(BASICSRC) $(UISRC) main.c itest.c mtest.c calibrate.c 42 ALLOBJ = $(ALLSRC:.c=.o) 43 44 .PHONY: all clean distclean 45 46 all: $(TARGETS) 47 48 clean: 49 rm -f $(ALLOBJ) $(TARGETS) 50 51 distclean: clean 52 echo "Nothing else to clean." 53 54 $(IMU): $(IMUOBJ) 55 $(CC) $(LDFLAGS) $(IMUOBJ) -o $@ 56 57 $(ITEST): $(ITESTOBJ) 58 $(CC) $(LDFLAGS) $(ITESTOBJ) -o $@ 59 60 $(MTEST): $(MTESTOBJ) 61 $(CC) $(LDFLAGS) $(MTESTOBJ) -o $@ 62 63 $(CALIBRATE): $(CALIBRATEOBJ) 64 $(CC) $(LDFLAGS) $(CALIBRATEOBJ) -o $@ 65 66 .c.o: 67 $(CC) -c $(CFLAGS) $< -o $@