From cc55bc2789372bd85e8967274db15d6df5daf87b Mon Sep 17 00:00:00 2001 From: Sean Bartell Date: Fri, 24 Jun 2011 01:25:21 -0400 Subject: [PATCH 1/4] Build librbcodec with DSP. --- apps/SOURCES | 15 ---------- lib/rbcodec/SOURCES | 17 ++++++++++++ {apps => lib/rbcodec/dsp}/dsp.c | 0 {apps => lib/rbcodec/dsp}/dsp.h | 0 {apps => lib/rbcodec/dsp}/dsp_arm.S | 0 {apps => lib/rbcodec/dsp}/dsp_arm_v6.S | 0 {apps => lib/rbcodec/dsp}/dsp_asm.h | 0 {apps => lib/rbcodec/dsp}/dsp_cf.S | 0 {apps => lib/rbcodec/dsp}/eq.c | 0 {apps => lib/rbcodec/dsp}/eq.h | 0 {apps => lib/rbcodec/dsp}/eq_arm.S | 0 {apps => lib/rbcodec/dsp}/eq_cf.S | 0 {apps => lib/rbcodec/dsp}/eqs/Acoustic.cfg | 0 {apps => lib/rbcodec/dsp}/eqs/Bass.cfg | 0 {apps => lib/rbcodec/dsp}/eqs/Classical.cfg | 0 {apps => lib/rbcodec/dsp}/eqs/Default.cfg | 0 {apps => lib/rbcodec/dsp}/eqs/Disco.cfg | 0 {apps => lib/rbcodec/dsp}/eqs/Electronic.cfg | 0 {apps => lib/rbcodec/dsp}/eqs/Hip-Hop.cfg | 0 {apps => lib/rbcodec/dsp}/eqs/Jazz.cfg | 0 {apps => lib/rbcodec/dsp}/eqs/Lounge.cfg | 0 {apps => lib/rbcodec/dsp}/eqs/Pop.cfg | 0 {apps => lib/rbcodec/dsp}/eqs/R&B.cfg | 0 {apps => lib/rbcodec/dsp}/eqs/Rock.cfg | 0 {apps => lib/rbcodec/dsp}/eqs/Vocal.cfg | 0 {apps => lib/rbcodec/dsp}/tdspeed.c | 0 {apps => lib/rbcodec/dsp}/tdspeed.h | 0 .../libasap.make => lib/rbcodec/rbcodec.make | 28 ++++++++----------- lib/rbcodec/test/Makefile | 4 +- tools/root.make | 4 ++- uisimulator/uisimulator.make | 2 +- 31 files changed, 35 insertions(+), 35 deletions(-) create mode 100644 lib/rbcodec/SOURCES rename {apps => lib/rbcodec/dsp}/dsp.c (100%) rename {apps => lib/rbcodec/dsp}/dsp.h (100%) rename {apps => lib/rbcodec/dsp}/dsp_arm.S (100%) rename {apps => lib/rbcodec/dsp}/dsp_arm_v6.S (100%) rename {apps => lib/rbcodec/dsp}/dsp_asm.h (100%) rename {apps => lib/rbcodec/dsp}/dsp_cf.S (100%) rename {apps => lib/rbcodec/dsp}/eq.c (100%) rename {apps => lib/rbcodec/dsp}/eq.h (100%) rename {apps => lib/rbcodec/dsp}/eq_arm.S (100%) rename {apps => lib/rbcodec/dsp}/eq_cf.S (100%) rename {apps => lib/rbcodec/dsp}/eqs/Acoustic.cfg (100%) rename {apps => lib/rbcodec/dsp}/eqs/Bass.cfg (100%) rename {apps => lib/rbcodec/dsp}/eqs/Classical.cfg (100%) rename {apps => lib/rbcodec/dsp}/eqs/Default.cfg (100%) rename {apps => lib/rbcodec/dsp}/eqs/Disco.cfg (100%) rename {apps => lib/rbcodec/dsp}/eqs/Electronic.cfg (100%) rename {apps => lib/rbcodec/dsp}/eqs/Hip-Hop.cfg (100%) rename {apps => lib/rbcodec/dsp}/eqs/Jazz.cfg (100%) rename {apps => lib/rbcodec/dsp}/eqs/Lounge.cfg (100%) rename {apps => lib/rbcodec/dsp}/eqs/Pop.cfg (100%) rename {apps => lib/rbcodec/dsp}/eqs/R&B.cfg (100%) rename {apps => lib/rbcodec/dsp}/eqs/Rock.cfg (100%) rename {apps => lib/rbcodec/dsp}/eqs/Vocal.cfg (100%) rename {apps => lib/rbcodec/dsp}/tdspeed.c (100%) rename {apps => lib/rbcodec/dsp}/tdspeed.h (100%) copy apps/codecs/libasap/libasap.make => lib/rbcodec/rbcodec.make (50%) diff --git a/apps/SOURCES b/apps/SOURCES index 79642e1..8083d05 100644 --- a/apps/SOURCES +++ b/apps/SOURCES @@ -169,28 +169,13 @@ pcmbuf.c codec_thread.c playback.c codecs.c -dsp.c #ifndef HAVE_HARDWARE_BEEP beep.c #endif -#ifdef HAVE_PITCHSCREEN -tdspeed.c -#endif #ifdef HAVE_RECORDING enc_config.c recorder/pcm_record.c #endif -eq.c -#if defined(CPU_COLDFIRE) -dsp_cf.S -eq_cf.S -#elif defined(CPU_ARM) -dsp_arm.S -#if ARM_ARCH >= 6 -dsp_arm_v6.S -#endif -eq_arm.S -#endif #endif #ifdef USB_ENABLE_HID usb_keymaps.c diff --git a/lib/rbcodec/SOURCES b/lib/rbcodec/SOURCES new file mode 100644 index 0000000..c684ab1 --- /dev/null +++ b/lib/rbcodec/SOURCES @@ -0,0 +1,17 @@ +#if CONFIG_CODEC == SWCODEC +dsp/dsp.c +dsp/eq.c +# if defined(CPU_COLDFIRE) +dsp/dsp_cf.S +dsp/eq_cf.S +# elif defined(CPU_ARM) +dsp/dsp_arm.S +dsp/eq_arm.S +# if ARM_ARCH >= 6 +dsp/dsp_arm_v6.S +# endif +# endif +# ifdef HAVE_PITCHSCREEN +dsp/tdspeed.c +# endif +#endif diff --git a/apps/dsp.c b/lib/rbcodec/dsp/dsp.c similarity index 100% rename from apps/dsp.c rename to lib/rbcodec/dsp/dsp.c diff --git a/apps/dsp.h b/lib/rbcodec/dsp/dsp.h similarity index 100% rename from apps/dsp.h rename to lib/rbcodec/dsp/dsp.h diff --git a/apps/dsp_arm.S b/lib/rbcodec/dsp/dsp_arm.S similarity index 100% rename from apps/dsp_arm.S rename to lib/rbcodec/dsp/dsp_arm.S diff --git a/apps/dsp_arm_v6.S b/lib/rbcodec/dsp/dsp_arm_v6.S similarity index 100% rename from apps/dsp_arm_v6.S rename to lib/rbcodec/dsp/dsp_arm_v6.S diff --git a/apps/dsp_asm.h b/lib/rbcodec/dsp/dsp_asm.h similarity index 100% rename from apps/dsp_asm.h rename to lib/rbcodec/dsp/dsp_asm.h diff --git a/apps/dsp_cf.S b/lib/rbcodec/dsp/dsp_cf.S similarity index 100% rename from apps/dsp_cf.S rename to lib/rbcodec/dsp/dsp_cf.S diff --git a/apps/eq.c b/lib/rbcodec/dsp/eq.c similarity index 100% rename from apps/eq.c rename to lib/rbcodec/dsp/eq.c diff --git a/apps/eq.h b/lib/rbcodec/dsp/eq.h similarity index 100% rename from apps/eq.h rename to lib/rbcodec/dsp/eq.h diff --git a/apps/eq_arm.S b/lib/rbcodec/dsp/eq_arm.S similarity index 100% rename from apps/eq_arm.S rename to lib/rbcodec/dsp/eq_arm.S diff --git a/apps/eq_cf.S b/lib/rbcodec/dsp/eq_cf.S similarity index 100% rename from apps/eq_cf.S rename to lib/rbcodec/dsp/eq_cf.S diff --git a/apps/eqs/Acoustic.cfg b/lib/rbcodec/dsp/eqs/Acoustic.cfg similarity index 100% rename from apps/eqs/Acoustic.cfg rename to lib/rbcodec/dsp/eqs/Acoustic.cfg diff --git a/apps/eqs/Bass.cfg b/lib/rbcodec/dsp/eqs/Bass.cfg similarity index 100% rename from apps/eqs/Bass.cfg rename to lib/rbcodec/dsp/eqs/Bass.cfg diff --git a/apps/eqs/Classical.cfg b/lib/rbcodec/dsp/eqs/Classical.cfg similarity index 100% rename from apps/eqs/Classical.cfg rename to lib/rbcodec/dsp/eqs/Classical.cfg diff --git a/apps/eqs/Default.cfg b/lib/rbcodec/dsp/eqs/Default.cfg similarity index 100% rename from apps/eqs/Default.cfg rename to lib/rbcodec/dsp/eqs/Default.cfg diff --git a/apps/eqs/Disco.cfg b/lib/rbcodec/dsp/eqs/Disco.cfg similarity index 100% rename from apps/eqs/Disco.cfg rename to lib/rbcodec/dsp/eqs/Disco.cfg diff --git a/apps/eqs/Electronic.cfg b/lib/rbcodec/dsp/eqs/Electronic.cfg similarity index 100% rename from apps/eqs/Electronic.cfg rename to lib/rbcodec/dsp/eqs/Electronic.cfg diff --git a/apps/eqs/Hip-Hop.cfg b/lib/rbcodec/dsp/eqs/Hip-Hop.cfg similarity index 100% rename from apps/eqs/Hip-Hop.cfg rename to lib/rbcodec/dsp/eqs/Hip-Hop.cfg diff --git a/apps/eqs/Jazz.cfg b/lib/rbcodec/dsp/eqs/Jazz.cfg similarity index 100% rename from apps/eqs/Jazz.cfg rename to lib/rbcodec/dsp/eqs/Jazz.cfg diff --git a/apps/eqs/Lounge.cfg b/lib/rbcodec/dsp/eqs/Lounge.cfg similarity index 100% rename from apps/eqs/Lounge.cfg rename to lib/rbcodec/dsp/eqs/Lounge.cfg diff --git a/apps/eqs/Pop.cfg b/lib/rbcodec/dsp/eqs/Pop.cfg similarity index 100% rename from apps/eqs/Pop.cfg rename to lib/rbcodec/dsp/eqs/Pop.cfg diff --git a/apps/eqs/R&B.cfg b/lib/rbcodec/dsp/eqs/R&B.cfg similarity index 100% rename from apps/eqs/R&B.cfg rename to lib/rbcodec/dsp/eqs/R&B.cfg diff --git a/apps/eqs/Rock.cfg b/lib/rbcodec/dsp/eqs/Rock.cfg similarity index 100% rename from apps/eqs/Rock.cfg rename to lib/rbcodec/dsp/eqs/Rock.cfg diff --git a/apps/eqs/Vocal.cfg b/lib/rbcodec/dsp/eqs/Vocal.cfg similarity index 100% rename from apps/eqs/Vocal.cfg rename to lib/rbcodec/dsp/eqs/Vocal.cfg diff --git a/apps/tdspeed.c b/lib/rbcodec/dsp/tdspeed.c similarity index 100% rename from apps/tdspeed.c rename to lib/rbcodec/dsp/tdspeed.c diff --git a/apps/tdspeed.h b/lib/rbcodec/dsp/tdspeed.h similarity index 100% rename from apps/tdspeed.h rename to lib/rbcodec/dsp/tdspeed.h diff --git a/apps/codecs/libasap/libasap.make b/lib/rbcodec/rbcodec.make similarity index 50% copy from apps/codecs/libasap/libasap.make copy to lib/rbcodec/rbcodec.make index 8054648..012fa3e 100644 --- a/apps/codecs/libasap/libasap.make +++ b/lib/rbcodec/rbcodec.make @@ -4,22 +4,18 @@ # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ # \/ \/ \/ \/ \/ -# $Id$ -# -# libasap -ASAPLIB := $(CODECDIR)/libasap.a -ASAPLIB_SRC := $(call preprocess, $(APPSDIR)/codecs/libasap/SOURCES) -ASAPLIB_OBJ := $(call c2obj, $(ASAPLIB_SRC)) -OTHER_SRC += $(ASAPLIB_SRC) +# TODO: don't assume /lib/rbcodec +RBCODEC_DIR = $(ROOTDIR)/lib/rbcodec +RBCODEC_LIB = $(BUILDDIR)/lib/rbcodec/librbcodec.a +RBCODEC_SRC := $(call preprocess, $(RBCODEC_DIR)/SOURCES) +RBCODEC_OBJ := $(call c2obj, $(RBCODEC_SRC)) +INCLUDES += -I$(RBCODEC_DIR) -I$(RBCODEC_DIR)/dsp +OTHER_SRC += $(RBCODEC_SRC) -$(ASAPLIB): $(ASAPLIB_OBJ) - $(SILENT)$(shell rm -f $@) - $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null - -ASAPFLAGS = $(filter-out -O%,$(CODECFLAGS)) -ASAPFLAGS += -O1 - -$(CODECDIR)/libasap/%.o: $(ROOTDIR)/apps/codecs/libasap/%.c +$(BUILDDIR)/lib/rbcodec/%.o: $(RBCODEC_DIR)/%.c $(SILENT)mkdir -p $(dir $@) - $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(ASAPFLAGS) -c $< -o $@ + $(call PRINTS,CC $<)$(CC) $(CFLAGS) $(RBCODEC_CFLAGS) -c $< -o $@ + +$(RBCODEC_LIB): $(RBCODEC_OBJ) + $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null diff --git a/lib/rbcodec/test/Makefile b/lib/rbcodec/test/Makefile index 057ef9d..b148ef3 100644 --- a/lib/rbcodec/test/Makefile +++ b/lib/rbcodec/test/Makefile @@ -28,13 +28,13 @@ WARBLE_LDFLAGS = -lm -ldl $(shell sdl-config --libs) include $(ROOTDIR)/tools/functions.make include $(APPSDIR)/codecs/codecs.make +include ../rbcodec.make SRC = $(ROOTDIR)/apps/metadata.c $(ROOTDIR)/apps/replaygain.c \ $(ROOTDIR)/firmware/common/strlcpy.c \ $(ROOTDIR)/firmware/common/unicode.c \ $(ROOTDIR)/firmware/common/structec.c $(ROOTDIR)/apps/mp3data.c \ $(ROOTDIR)/apps/fixedpoint.c $(ROOTDIR)/uisimulator/common/io.c -SRC += $(ROOTDIR)/apps/dsp.c $(ROOTDIR)/apps/eq.c $(ROOTDIR)/apps/tdspeed.c SRC += $(wildcard $(ROOTDIR)/apps/metadata/*.c) OBJ := $(SRC:.c=.o) @@ -54,7 +54,7 @@ dep $(DEPFILE): -include $(DEPFILE) -warble: $(WARBLE_OBJS) $(OBJ) +warble: $(WARBLE_OBJS) $(OBJ) $(RBCODEC_LIB) $(call PRINTS,LD $@)$(CC) $(LDFLAGS) $^ -o $@ $(WARBLE_LDFLAGS) $(BUILDDIR)/%.o: %.c diff --git a/tools/root.make b/tools/root.make index f97588f..19e1a4b 100644 --- a/tools/root.make +++ b/tools/root.make @@ -87,6 +87,7 @@ else ifneq (,$(findstring database,$(APPSDIR))) include $(APPSDIR)/database.make else include $(APPSDIR)/apps.make + include $(ROOTDIR)/lib/rbcodec/rbcodec.make include $(APPSDIR)/lang/lang.make ifdef SOFTWARECODECS @@ -181,10 +182,11 @@ $(LINKROM): $(ROMLDS) $(call PRINTS,PP $(@F)) $(call preprocess2file,$<,$@,-DLOADADDRESS=$(LOADADDRESS)) -$(BUILDDIR)/rockbox.elf : $$(OBJ) $$(FIRMLIB) $$(VOICESPEEXLIB) $$(SKINLIB) $$(LINKRAM) +$(BUILDDIR)/rockbox.elf : $$(OBJ) $$(FIRMLIB) $$(VOICESPEEXLIB) $$(SKINLIB) $$(LINKRAM) $$(RBCODEC_LIB) $(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -Os -nostdlib -o $@ $(OBJ) \ -L$(BUILDDIR)/firmware -lfirmware \ -L$(BUILDDIR)/lib -lskin_parser \ + -L$(BUILDDIR)/rbcodec -lrbcodec \ -L$(BUILDDIR)/apps/codecs $(VOICESPEEXLIB:lib%.a=-l%) \ -lgcc $(BOOTBOXLDOPTS) $(GLOBAL_LDOPTS) \ -T$(LINKRAM) -Wl,-Map,$(BUILDDIR)/rockbox.map diff --git a/uisimulator/uisimulator.make b/uisimulator/uisimulator.make index d30a9db..0e43138 100644 --- a/uisimulator/uisimulator.make +++ b/uisimulator/uisimulator.make @@ -30,7 +30,7 @@ $(SIMLIB): $$(SIMOBJ) $(UIBMP) $(SILENT)$(shell rm -f $@) $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null -$(BUILDDIR)/$(BINARY): $$(OBJ) $(SIMLIB) $(VOICESPEEXLIB) $(FIRMLIB) $(SKINLIB) +$(BUILDDIR)/$(BINARY): $$(OBJ) $(SIMLIB) $(VOICESPEEXLIB) $(FIRMLIB) $(SKINLIB) $(RBCODEC_LIB) $(call PRINTS,LD $(BINARY))$(CC) -o $@ $^ $(SIMLIB) $(LDOPTS) $(GLOBAL_LDOPTS) $(BUILDDIR)/uisimulator/%.o: $(ROOTDIR)/uisimulator/%.c -- 1.7.6