summaryrefslogtreecommitdiff
path: root/apps/plugins/lib
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2004-05-18 15:01:39 +0000
committerDaniel Stenberg <daniel@haxx.se>2004-05-18 15:01:39 +0000
commit243b122ce927ae14084ebde4935d183b31bfd484 (patch)
treea932cae4e2c687257dcfe2a70a109ed7bf318f7c /apps/plugins/lib
parent74d74170bf726616c229b048eb5081a2a48c8df8 (diff)
downloadrockbox-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/Makefile83
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
+