From c6b3d38a156dd624760a8eb1bb374affd43b4f2a Mon Sep 17 00:00:00 2001 From: Björn Stenberg Date: Thu, 20 Nov 2008 11:27:31 +0000 Subject: New makefile solution: A single invocation of 'make' to build the entire tree. Fully controlled dependencies give faster and more correct recompiles. Many #include lines adjusted to conform to the new standards. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19146 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/lib/Makefile | 50 ------------------------------------------- apps/codecs/lib/codeclib.c | 4 ++-- apps/codecs/lib/codeclib.h | 13 +++++++++-- apps/codecs/lib/libcodec.make | 23 ++++++++++++++++++++ 4 files changed, 36 insertions(+), 54 deletions(-) delete mode 100644 apps/codecs/lib/Makefile create mode 100644 apps/codecs/lib/libcodec.make (limited to 'apps/codecs/lib') diff --git a/apps/codecs/lib/Makefile b/apps/codecs/lib/Makefile deleted file mode 100644 index 4a33a58f27..0000000000 --- a/apps/codecs/lib/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -# __________ __ ___. -# Open \______ \ ____ ____ | | _\_ |__ _______ ___ -# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / -# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < -# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ -# \/ \/ \/ \/ \/ -# $Id$ -# - -# ../.. for the codec.h in the apps dir -# .. for stuff in the codecs dir -# . for stuff in the codeclib dir -INCLUDES=-I$(APPSDIR) -I.. -I. $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ - -I$(FIRMDIR)/common -I$(BUILDDIR) - -ifdef APPEXTRA - INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA))) -endif - -CFLAGS = $(INCLUDES) $(GCCOPTS) \ -$(TARGET) $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE} -DCODEC - -# Sectioned compilation for target -ifndef SIMVER - CFLAGS += -ffunction-sections -fdata-sections -endif - -# This sets up 'SRC' based on the files mentioned in SOURCES -include $(TOOLSDIR)/makesrc.inc - -SOURCES = $(SRC) -OBJS2 := $(SRC:%.c=$(OBJDIR)/%.o) -OBJS = $(patsubst %.S, $(OBJDIR)/%.o, $(OBJS2)) -DEPFILE = $(OBJDIR)/dep-codeclib -DIRS = . - -OUTPUT = $(BUILDDIR)/libcodec.a - -all: $(OUTPUT) - -$(OUTPUT): $(OBJS) - $(call PRINTS,AR+RANLIB $(@F))$(AR) ruv $@ $+ >/dev/null 2>&1 - $(SILENT)$(RANLIB) $@ - -include $(TOOLSDIR)/make.inc - -clean: - $(call PRINTS,cleaning codecs/lib)rm -f $(OBJS) $(OUTPUT) $(DEPFILE) - --include $(DEPFILE) diff --git a/apps/codecs/lib/codeclib.c b/apps/codecs/lib/codeclib.c index 6e11eb1aa1..8cc40894e3 100644 --- a/apps/codecs/lib/codeclib.c +++ b/apps/codecs/lib/codeclib.c @@ -27,8 +27,8 @@ #include "codeclib.h" #include "metadata.h" -long mem_ptr; -long bufsize; +size_t mem_ptr; +size_t bufsize; unsigned char* mp3buf; // The actual MP3 buffer from Rockbox unsigned char* mallocbuf; // 512K from the start of MP3 buffer unsigned char* filebuf; // The rest of the MP3 buffer diff --git a/apps/codecs/lib/codeclib.h b/apps/codecs/lib/codeclib.h index 6e92e29417..1df85d6bee 100644 --- a/apps/codecs/lib/codeclib.h +++ b/apps/codecs/lib/codeclib.h @@ -25,14 +25,23 @@ #include extern struct codec_api *ci; -extern long mem_ptr; -extern long bufsize; +extern size_t mem_ptr; +extern size_t bufsize; extern unsigned char* mp3buf; /* The actual MP3 buffer from Rockbox */ extern unsigned char* mallocbuf; /* The free space after the codec in the codec buffer */ extern unsigned char* filebuf; /* The rest of the MP3 buffer */ /* Standard library functions that are used by the codecs follow here */ +/* Get these functions 'out of the way' of the standard functions. Not doing + * so confuses the cygwin linker, and maybe others. These functions need to + * be implemented elsewhere */ +#define malloc(x) codec_malloc(x) +#define calloc(x,y) codec_calloc(x,y) +#define realloc(x,y) codec_realloc(x,y) +#define free(x) codec_free(x) +#define alloca(x) __builtin_alloca(x) + void* codec_malloc(size_t size); void* codec_calloc(size_t nmemb, size_t size); void* codec_realloc(void* ptr, size_t size); diff --git a/apps/codecs/lib/libcodec.make b/apps/codecs/lib/libcodec.make new file mode 100644 index 0000000000..5e96f75794 --- /dev/null +++ b/apps/codecs/lib/libcodec.make @@ -0,0 +1,23 @@ +# __________ __ ___. +# Open \______ \ ____ ____ | | _\_ |__ _______ ___ +# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +# \/ \/ \/ \/ \/ +# $Id: Makefile 19082 2008-11-10 23:54:24Z zagor $ +# + +CODECLIB := $(CODECDIR)/libcodec.a +CODECLIB_SRC := $(call preprocess, $(APPSDIR)/codecs/lib/SOURCES) +CODECLIB_OBJ := $(call c2obj, $(CODECLIB_SRC)) +OTHER_SRC += $(CODECLIB_SRC) + +$(CODECLIB): $(CODECLIB_OBJ) + $(call PRINTS,AR $(@F))$(AR) rs $@ $^ >/dev/null 2>&1 + +CODECLIBFLAGS = $(CODECFLAGS) -ffunction-sections + +$(CODECDIR)/lib/%.o: $(ROOTDIR)/apps/codecs/lib/%.c + $(SILENT)mkdir -p $(dir $@) + $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) \ + -I$(dir $<) $(CODECLIBFLAGS) -c $< -o $@ -- cgit v1.2.3