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