From 243b122ce927ae14084ebde4935d183b31bfd484 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 18 May 2004 15:01:39 +0000 Subject: 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 --- apps/plugins/lib/Makefile | 83 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 apps/plugins/lib/Makefile (limited to 'apps') diff --git a/apps/plugins/lib/Makefile b/apps/plugins/lib/Makefile new file mode 100644 index 0000000000..3fbd812c23 --- /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 + -- cgit v1.2.3