summaryrefslogtreecommitdiff
path: root/apps/codecs/lib
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2008-11-20 11:27:31 +0000
committerBjörn Stenberg <bjorn@haxx.se>2008-11-20 11:27:31 +0000
commitc6b3d38a156dd624760a8eb1bb374affd43b4f2a (patch)
tree493eba929e2396d86cf4f077709aa09fe172cd35 /apps/codecs/lib
parentf66c30346783a400a029bedcd60ab67c81c34a07 (diff)
downloadrockbox-c6b3d38a156dd624760a8eb1bb374affd43b4f2a.tar.gz
rockbox-c6b3d38a156dd624760a8eb1bb374affd43b4f2a.zip
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
Diffstat (limited to 'apps/codecs/lib')
-rw-r--r--apps/codecs/lib/Makefile50
-rw-r--r--apps/codecs/lib/codeclib.c4
-rw-r--r--apps/codecs/lib/codeclib.h13
-rw-r--r--apps/codecs/lib/libcodec.make23
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
13INCLUDES=-I$(APPSDIR) -I.. -I. $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
14 -I$(FIRMDIR)/common -I$(BUILDDIR)
15
16ifdef APPEXTRA
17 INCLUDES += $(patsubst %,-I$(APPSDIR)/%,$(subst :, ,$(APPEXTRA)))
18endif
19
20CFLAGS = $(INCLUDES) $(GCCOPTS) \
21$(TARGET) $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE} -DCODEC
22
23# Sectioned compilation for target
24ifndef SIMVER
25 CFLAGS += -ffunction-sections -fdata-sections
26endif
27
28# This sets up 'SRC' based on the files mentioned in SOURCES
29include $(TOOLSDIR)/makesrc.inc
30
31SOURCES = $(SRC)
32OBJS2 := $(SRC:%.c=$(OBJDIR)/%.o)
33OBJS = $(patsubst %.S, $(OBJDIR)/%.o, $(OBJS2))
34DEPFILE = $(OBJDIR)/dep-codeclib
35DIRS = .
36
37OUTPUT = $(BUILDDIR)/libcodec.a
38
39all: $(OUTPUT)
40
41$(OUTPUT): $(OBJS)
42 $(call PRINTS,AR+RANLIB $(@F))$(AR) ruv $@ $+ >/dev/null 2>&1
43 $(SILENT)$(RANLIB) $@
44
45include $(TOOLSDIR)/make.inc
46
47clean:
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
30long mem_ptr; 30size_t mem_ptr;
31long bufsize; 31size_t bufsize;
32unsigned char* mp3buf; // The actual MP3 buffer from Rockbox 32unsigned char* mp3buf; // The actual MP3 buffer from Rockbox
33unsigned char* mallocbuf; // 512K from the start of MP3 buffer 33unsigned char* mallocbuf; // 512K from the start of MP3 buffer
34unsigned char* filebuf; // The rest of the MP3 buffer 34unsigned 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
27extern struct codec_api *ci; 27extern struct codec_api *ci;
28extern long mem_ptr; 28extern size_t mem_ptr;
29extern long bufsize; 29extern size_t bufsize;
30extern unsigned char* mp3buf; /* The actual MP3 buffer from Rockbox */ 30extern unsigned char* mp3buf; /* The actual MP3 buffer from Rockbox */
31extern unsigned char* mallocbuf; /* The free space after the codec in the codec buffer */ 31extern unsigned char* mallocbuf; /* The free space after the codec in the codec buffer */
32extern unsigned char* filebuf; /* The rest of the MP3 buffer */ 32extern 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
36void* codec_malloc(size_t size); 45void* codec_malloc(size_t size);
37void* codec_calloc(size_t nmemb, size_t size); 46void* codec_calloc(size_t nmemb, size_t size);
38void* codec_realloc(void* ptr, size_t size); 47void* 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
10CODECLIB := $(CODECDIR)/libcodec.a
11CODECLIB_SRC := $(call preprocess, $(APPSDIR)/codecs/lib/SOURCES)
12CODECLIB_OBJ := $(call c2obj, $(CODECLIB_SRC))
13OTHER_SRC += $(CODECLIB_SRC)
14
15$(CODECLIB): $(CODECLIB_OBJ)
16 $(call PRINTS,AR $(@F))$(AR) rs $@ $^ >/dev/null 2>&1
17
18CODECLIBFLAGS = $(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 $@