diff options
| author | Daniel Stenberg <daniel@haxx.se> | 2004-05-18 15:01:39 +0000 |
|---|---|---|
| committer | Daniel Stenberg <daniel@haxx.se> | 2004-05-18 15:01:39 +0000 |
| commit | 243b122ce927ae14084ebde4935d183b31bfd484 (patch) | |
| tree | a932cae4e2c687257dcfe2a70a109ed7bf318f7c /apps/plugins/lib | |
| parent | 74d74170bf726616c229b048eb5081a2a48c8df8 (diff) | |
| download | rockbox-243b122ce927ae14084ebde4935d183b31bfd484.zip rockbox-243b122ce927ae14084ebde4935d183b31bfd484.tar.gz rockbox-243b122ce927ae14084ebde4935d183b31bfd484.tar.bz2 rockbox-243b122ce927ae14084ebde4935d183b31bfd484.tar.xz | |
This makefile builds one single libplugin.a library by linking together
all C source files that are put in this dir and built. This lib will soon
be used for linking with when creating each plugin output file.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4632 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/lib')
| -rw-r--r-- | apps/plugins/lib/Makefile | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/apps/plugins/lib/Makefile b/apps/plugins/lib/Makefile new file mode 100644 index 0000000..3fbd812 --- /dev/null +++ b/apps/plugins/lib/Makefile @@ -0,0 +1,83 @@ +# __________ __ ___. +# Open \______ \ ____ ____ | | _\_ |__ _______ ___ +# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +# \/ \/ \/ \/ \/ +# $Id$ +# + +CC = sh-elf-gcc +LD = sh-elf-ld +AR = sh-elf-ar +AS = sh-elf-as +OC = sh-elf-objcopy + +FIRMWARE = ../../../firmware + +# ../.. for the plugin.h in the apps dir +# .. for stuff in the plugins dir +# . for stuff in the pluginlib dir +INCLUDES=-I../.. -I.. -I. -I$(FIRMWARE)/include -I$(FIRMWARE)/export \ + -I$(FIRMWARE)/common -I$(FIRMWARE)/drivers + +CFLAGS = -W -Wall -O -m1 -nostdlib -ffreestanding -Wstrict-prototypes \ +$(INCLUDES) $(TARGET) $(EXTRA_DEFINES) -DMEM=${MEM} + +ifndef MEM + # if MEM is not set, assume 2MB + MEM=2 +endif + +ifdef DEBUG +CFLAGS += -g -DDEBUG +else +CFLAGS += -fomit-frame-pointer -fschedule-insns +endif + +SRC := $(wildcard *.c) + +OBJS := $(SRC:%.c=$(OBJDIR)/%.o) +DEPS:=.deps +DEPDIRS:=$(DEPS) + +DIRS = $(subst $(DEPS),".",$(DEPDIRS)) + +OUTPUT = $(OBJDIR)/libplugin.a + +ifndef OBJDIR +no_configure: + @echo "Don't run make here. Run the tools/configure script from your own build" + @echo "directory, then run make there." + @echo + @echo "More help on how to build rockbox can be found here:" + @echo "http://rockbox.haxx.se/docs/how_to_compile.html" +endif + +all: $(OUTPUT) + +$(OUTPUT): $(OBJS) + $(AR) ruv $@ $+ + +$(OBJDIR)/%.o: %.c + @mkdir -p `dirname $@` + $(CC) $(CFLAGS) -c $< -o $@ + +tags: + @$(SHELL) -c 'for d in $(DIRS); do { etags -o $(OBJDIR)/TAGS -a $$d/*.[ch]; }; done' + +clean: + rm -f $(OBJS) $(OUTPUT) + rm -rf $(OBJDIR)/$(DEPS) + +$(OBJDIR)/$(DEPS)/%.d: %.c + @$(SHELL) -c 'for d in $(DEPDIRS); do { if [ ! -d $(OBJDIR)/$$d ]; then mkdir $(OBJDIR)/$$d; fi; }; done' + @echo "Updating dependencies for $<" + $(SHELL) -ec '$(CC) -MM $(CFLAGS) $< \ + |sed '\''s|\($*\)\.o[ :]*|$(OBJDIR)/\1.o $(<:%.c=%.d) : |g'\'' > $@; \ + [ -s $@ ] || rm -f $@' + +ifdef OBJDIR + -include $(SRC:%.c=$(OBJDIR)/$(DEPS)/%.d) +endif + |