diff options
Diffstat (limited to 'apps/codecs/lib')
-rw-r--r-- | apps/codecs/lib/Makefile | 50 | ||||
-rw-r--r-- | apps/codecs/lib/codeclib.c | 4 | ||||
-rw-r--r-- | apps/codecs/lib/codeclib.h | 13 | ||||
-rw-r--r-- | apps/codecs/lib/libcodec.make | 23 |
4 files changed, 36 insertions, 54 deletions
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 @@ | |||
1 | # __________ __ ___. | ||
2 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
3 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
6 | # \/ \/ \/ \/ \/ | ||
7 | # $Id$ | ||
8 | # | ||
9 | |||
10 | # ../.. for the codec.h in the apps dir | ||
11 | # .. for stuff in the codecs dir | ||
12 | # . for stuff in the codeclib dir | ||
13 | INCLUDES=-I$(APPSDIR) -I.. -I. $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ | ||
14 | -I$(FIRMDIR)/common -I$(BUILDDIR) | ||
15 | |||
16 | ifdef APPEXTRA | ||
17 | INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA))) | ||
18 | endif | ||
19 | |||
20 | CFLAGS = $(INCLUDES) $(GCCOPTS) \ | ||
21 | $(TARGET) $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE} -DCODEC | ||
22 | |||
23 | # Sectioned compilation for target | ||
24 | ifndef SIMVER | ||
25 | CFLAGS += -ffunction-sections -fdata-sections | ||
26 | endif | ||
27 | |||
28 | # This sets up 'SRC' based on the files mentioned in SOURCES | ||
29 | include $(TOOLSDIR)/makesrc.inc | ||
30 | |||
31 | SOURCES = $(SRC) | ||
32 | OBJS2 := $(SRC:%.c=$(OBJDIR)/%.o) | ||
33 | OBJS = $(patsubst %.S, $(OBJDIR)/%.o, $(OBJS2)) | ||
34 | DEPFILE = $(OBJDIR)/dep-codeclib | ||
35 | DIRS = . | ||
36 | |||
37 | OUTPUT = $(BUILDDIR)/libcodec.a | ||
38 | |||
39 | all: $(OUTPUT) | ||
40 | |||
41 | $(OUTPUT): $(OBJS) | ||
42 | $(call PRINTS,AR+RANLIB $(@F))$(AR) ruv $@ $+ >/dev/null 2>&1 | ||
43 | $(SILENT)$(RANLIB) $@ | ||
44 | |||
45 | include $(TOOLSDIR)/make.inc | ||
46 | |||
47 | clean: | ||
48 | $(call PRINTS,cleaning codecs/lib)rm -f $(OBJS) $(OUTPUT) $(DEPFILE) | ||
49 | |||
50 | -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 @@ | |||
27 | #include "codeclib.h" | 27 | #include "codeclib.h" |
28 | #include "metadata.h" | 28 | #include "metadata.h" |
29 | 29 | ||
30 | long mem_ptr; | 30 | size_t mem_ptr; |
31 | long bufsize; | 31 | size_t bufsize; |
32 | unsigned char* mp3buf; // The actual MP3 buffer from Rockbox | 32 | unsigned char* mp3buf; // The actual MP3 buffer from Rockbox |
33 | unsigned char* mallocbuf; // 512K from the start of MP3 buffer | 33 | unsigned char* mallocbuf; // 512K from the start of MP3 buffer |
34 | unsigned char* filebuf; // The rest of the MP3 buffer | 34 | 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 @@ | |||
25 | #include <sys/types.h> | 25 | #include <sys/types.h> |
26 | 26 | ||
27 | extern struct codec_api *ci; | 27 | extern struct codec_api *ci; |
28 | extern long mem_ptr; | 28 | extern size_t mem_ptr; |
29 | extern long bufsize; | 29 | extern size_t bufsize; |
30 | extern unsigned char* mp3buf; /* The actual MP3 buffer from Rockbox */ | 30 | extern unsigned char* mp3buf; /* The actual MP3 buffer from Rockbox */ |
31 | extern unsigned char* mallocbuf; /* The free space after the codec in the codec buffer */ | 31 | extern unsigned char* mallocbuf; /* The free space after the codec in the codec buffer */ |
32 | extern unsigned char* filebuf; /* The rest of the MP3 buffer */ | 32 | extern unsigned char* filebuf; /* The rest of the MP3 buffer */ |
33 | 33 | ||
34 | /* Standard library functions that are used by the codecs follow here */ | 34 | /* Standard library functions that are used by the codecs follow here */ |
35 | 35 | ||
36 | /* Get these functions 'out of the way' of the standard functions. Not doing | ||
37 | * so confuses the cygwin linker, and maybe others. These functions need to | ||
38 | * be implemented elsewhere */ | ||
39 | #define malloc(x) codec_malloc(x) | ||
40 | #define calloc(x,y) codec_calloc(x,y) | ||
41 | #define realloc(x,y) codec_realloc(x,y) | ||
42 | #define free(x) codec_free(x) | ||
43 | #define alloca(x) __builtin_alloca(x) | ||
44 | |||
36 | void* codec_malloc(size_t size); | 45 | void* codec_malloc(size_t size); |
37 | void* codec_calloc(size_t nmemb, size_t size); | 46 | void* codec_calloc(size_t nmemb, size_t size); |
38 | void* codec_realloc(void* ptr, size_t size); | 47 | 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 @@ | |||
1 | # __________ __ ___. | ||
2 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
3 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
4 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
5 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
6 | # \/ \/ \/ \/ \/ | ||
7 | # $Id: Makefile 19082 2008-11-10 23:54:24Z zagor $ | ||
8 | # | ||
9 | |||
10 | CODECLIB := $(CODECDIR)/libcodec.a | ||
11 | CODECLIB_SRC := $(call preprocess, $(APPSDIR)/codecs/lib/SOURCES) | ||
12 | CODECLIB_OBJ := $(call c2obj, $(CODECLIB_SRC)) | ||
13 | OTHER_SRC += $(CODECLIB_SRC) | ||
14 | |||
15 | $(CODECLIB): $(CODECLIB_OBJ) | ||
16 | $(call PRINTS,AR $(@F))$(AR) rs $@ $^ >/dev/null 2>&1 | ||
17 | |||
18 | CODECLIBFLAGS = $(CODECFLAGS) -ffunction-sections | ||
19 | |||
20 | $(CODECDIR)/lib/%.o: $(ROOTDIR)/apps/codecs/lib/%.c | ||
21 | $(SILENT)mkdir -p $(dir $@) | ||
22 | $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) \ | ||
23 | -I$(dir $<) $(CODECLIBFLAGS) -c $< -o $@ | ||