forked from len0rd/rockbox
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
This commit is contained in:
parent
f66c303467
commit
c6b3d38a15
221 changed files with 2081 additions and 3657 deletions
|
|
@ -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)
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -25,14 +25,23 @@
|
|||
#include <sys/types.h>
|
||||
|
||||
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);
|
||||
|
|
|
|||
23
apps/codecs/lib/libcodec.make
Normal file
23
apps/codecs/lib/libcodec.make
Normal file
|
|
@ -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 $@
|
||||
Loading…
Add table
Add a link
Reference in a new issue