Fixed red build
[kugel-rb.git] / firmware / Makefile
blob73bb8e98196cd76284771d15c74999800b52893b
1 # __________ __ ___.
2 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
3 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
6 # \/ \/ \/ \/ \/
7 # $Id$
10 CC = sh-elf-gcc
11 LD = sh-elf-ld
12 AR = sh-elf-ar
13 AS = sh-elf-as
14 OC = sh-elf-objcopy
16 INCLUDES=-Iinclude -I. -Icommon -Idrivers
18 TOOLSDIR = ../tools
20 CFLAGS = -W -Wall -O -m1 -nostdlib -ffreestanding -Wstrict-prototypes $(INCLUDES) $(TARGET) $(EXTRA_DEFINES)
22 ifdef DEBUG
23 CFLAGS += -g -DDEBUG
24 else
25 CFLAGS += -fomit-frame-pointer -fschedule-insns
26 endif
28 SRC := $(wildcard drivers/*.c common/*.c *.c)
30 OBJS := $(SRC:%.c=$(OBJDIR)/%.o) $(OBJDIR)/crt0.o $(OBJDIR)/bitswap.o
31 DEPS:=.deps
32 DEPDIRS:=$(DEPS) $(DEPS)/drivers $(DEPS)/common $(DEPS)/malloc
34 DIRS = $(subst $(DEPS),".",$(DEPDIRS))
36 OUTPUT = $(OBJDIR)/librockbox.a
38 ifeq (RECORDER,$(findstring RECORDER, $(CFLAGS)))
39 OBJS += $(OBJDIR)/sysfont.o
40 endif
42 ifndef OBJDIR
43 no_configure:
44 @echo "Don't run make here. Run the tools/configure script from your own build"
45 @echo "directory, then run make there."
46 @echo
47 @echo "More help on how to build rockbox can be found here:"
48 @echo "http://rockbox.haxx.se/docs/how_to_compile.html"
49 endif
51 all: $(OUTPUT) $(EXTRA_TARGETS)
53 $(OUTPUT): $(OBJS)
54 $(AR) ruv $@ $+
56 $(OBJDIR)/%.o: %.c
57 @mkdir -p `dirname $@`
58 $(CC) $(CFLAGS) -c $< -o $@
60 $(OBJDIR)/%.o: %.S
61 @mkdir -p `dirname $@`
62 $(CC) $(CFLAGS) -c $< -o $@
64 tags:
65 @$(SHELL) -c 'for d in $(DIRS); do { etags -o $(OBJDIR)/TAGS -a $$d/*.[ch]; }; done'
67 clean:
68 rm -f $(OBJS) $(OUTPUT) $(OBJDIR)/sysfont.c
69 rm -rf $(OBJDIR)/$(DEPS)
71 # Special targets
72 $(OBJDIR)/thread.o: thread.c thread.h
73 $(CC) -c -O -fomit-frame-pointer $(CFLAGS) $< -o $@
75 $(OBJDIR)/sysfont.o: fonts/clR6x8.bdf
76 $(TOOLSDIR)/convbdf -c -o $(OBJDIR)/sysfont.c $<
77 $(CC) $(CFLAGS) -c $(OBJDIR)/sysfont.c -o $@
79 $(OBJDIR)/$(DEPS)/%.d: %.c
80 @$(SHELL) -c 'for d in $(DEPDIRS); do { if [ ! -d $(OBJDIR)/$$d ]; then mkdir $(OBJDIR)/$$d; fi; }; done'
81 @echo "Updating dependencies for $<"
82 @$(SHELL) -ec '$(CC) -MM $(CFLAGS) $< \
83 |sed '\''s|\($*\)\.o[ :]*|$(OBJDIR)/\1.o $(<:%.c=%.d) : |g'\'' > $@; \
84 [ -s $@ ] || rm -f $@'
86 ifdef OBJDIR
87 -include $(SRC:%.c=$(OBJDIR)/$(DEPS)/%.d)
88 endif