summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2012-03-03 19:37:40 +0100
committerFrank Gevaerts <frank@gevaerts.be>2012-03-03 20:19:08 +0100
commit466a7c6a405f80cd8e01ebf0a70eb406863a38f1 (patch)
treeacd8dcec239d7407a69df7f20b9ad7f3b10f4200
parent13a7c9ac70bfeed574d38705ab568c2085ca77e7 (diff)
downloadrockbox-466a7c6a405f80cd8e01ebf0a70eb406863a38f1.tar.gz
rockbox-466a7c6a405f80cd8e01ebf0a70eb406863a38f1.tar.bz2
rockbox-466a7c6a405f80cd8e01ebf0a70eb406863a38f1.zip
Integrate the warble tool in the regular build system.
Only sdl app builds work properly for now. Change-Id: I7807d42f69b8577b401e48cdc63de71e54f49217
-rw-r--r--firmware/core_alloc.c2
-rw-r--r--firmware/export/system.h1
-rw-r--r--lib/rbcodec/test/SOURCES49
-rw-r--r--lib/rbcodec/test/warble.c4
-rw-r--r--lib/rbcodec/test/warble.make37
-rw-r--r--tools/checkwps/checkwps.make2
-rwxr-xr-xtools/configure13
-rw-r--r--tools/root.make6
8 files changed, 110 insertions, 4 deletions
diff --git a/firmware/core_alloc.c b/firmware/core_alloc.c
index 34ed48b39f..47faed6e95 100644
--- a/firmware/core_alloc.c
+++ b/firmware/core_alloc.c
@@ -9,7 +9,7 @@
struct buflib_context core_ctx;
/* defined in linker script */
-#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
+#if (CONFIG_PLATFORM & PLATFORM_NATIVE) && !defined(__PCTOOL__)
#if defined(IPOD_VIDEO) && !defined(BOOTLOADER)
extern unsigned char *audiobufend_lds[];
unsigned char *audiobufend;
diff --git a/firmware/export/system.h b/firmware/export/system.h
index b33edc6d3e..d93d10c9e2 100644
--- a/firmware/export/system.h
+++ b/firmware/export/system.h
@@ -192,6 +192,7 @@ enum {
#include "system-sdl.h"
#define NEED_GENERIC_BYTESWAPS
#elif defined(__PCTOOL__)
+#include "system-sdl.h"
#define NEED_GENERIC_BYTESWAPS
#endif
#include "bitswap.h"
diff --git a/lib/rbcodec/test/SOURCES b/lib/rbcodec/test/SOURCES
new file mode 100644
index 0000000000..467115e0d6
--- /dev/null
+++ b/lib/rbcodec/test/SOURCES
@@ -0,0 +1,49 @@
+warble.c
+../../../apps/metadata.c
+../../../apps/replaygain.c
+../../../firmware/buflib.c
+../../../firmware/core_alloc.c
+../../../firmware/common/strlcpy.c
+../../../firmware/common/unicode.c
+../../../firmware/common/structec.c
+../../../apps/mp3data.c
+../../../apps/fixedpoint.c
+../../../uisimulator/common/io.c
+../../../apps/compressor.c
+../../../apps/dsp.c
+../../../apps/eq.c
+../../../apps/tdspeed.c
+../../../apps/metadata/a52.c
+../../../apps/metadata/adx.c
+../../../apps/metadata/aiff.c
+../../../apps/metadata/ape.c
+../../../apps/metadata/asap.c
+../../../apps/metadata/asf.c
+../../../apps/metadata/au.c
+../../../apps/metadata/ay.c
+../../../apps/metadata/flac.c
+../../../apps/metadata/gbs.c
+../../../apps/metadata/hes.c
+../../../apps/metadata/id3tags.c
+../../../apps/metadata/kss.c
+../../../apps/metadata/metadata_common.c
+../../../apps/metadata/mod.c
+../../../apps/metadata/monkeys.c
+../../../apps/metadata/mp3.c
+../../../apps/metadata/mp4.c
+../../../apps/metadata/mpc.c
+../../../apps/metadata/nsf.c
+../../../apps/metadata/ogg.c
+../../../apps/metadata/oma.c
+../../../apps/metadata/rm.c
+../../../apps/metadata/sgc.c
+../../../apps/metadata/sid.c
+../../../apps/metadata/smaf.c
+../../../apps/metadata/spc.c
+../../../apps/metadata/tta.c
+../../../apps/metadata/vgm.c
+../../../apps/metadata/vorbis.c
+../../../apps/metadata/vox.c
+../../../apps/metadata/wave.c
+../../../apps/metadata/wavpack.c
+
diff --git a/lib/rbcodec/test/warble.c b/lib/rbcodec/test/warble.c
index 2cba6c0d59..e3d9456f4d 100644
--- a/lib/rbcodec/test/warble.c
+++ b/lib/rbcodec/test/warble.c
@@ -358,9 +358,11 @@ static void perform_config(void)
codec_action_param = atoi(val);
} else if (!strncmp(name, "tempo=", 6)) {
dsp_set_timestretch(atof(val) * PITCH_SPEED_100);
+#ifdef HAVE_SW_VOLUME_CONTROL
} else if (!strncmp(name, "vol=", 4)) {
global_settings.volume = atoi(val);
dsp_callback(DSP_CALLBACK_SET_SW_VOLUME, 0);
+#endif
} else {
fprintf(stderr, "error: unrecognized config \"%.*s\"\n",
(int)(eq - name), name);
@@ -775,7 +777,9 @@ static void print_help(const char *progname)
" rate=<n> Multiply rate by <n> [1.0]\n"
" seek=<n> Seek <n> ms into the file\n"
" tempo=<n> Timestretch by <n> [1.0]\n"
+#ifdef HAVE_SW_VOLUME_CONTROL
" vol=<n> Set volume to <n> dB [0]\n"
+#endif
" wait=<n> Don't apply remaining configuration until\n"
" <n> total samples have output\n"
"\n"
diff --git a/lib/rbcodec/test/warble.make b/lib/rbcodec/test/warble.make
new file mode 100644
index 0000000000..0687e05620
--- /dev/null
+++ b/lib/rbcodec/test/warble.make
@@ -0,0 +1,37 @@
+# __________ __ ___.
+# Open \______ \ ____ ____ | | _\_ |__ _______ ___
+# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+# \/ \/ \/ \/ \/
+# $Id$
+#
+
+
+include $(ROOTDIR)/tools/functions.make
+include $(ROOTDIR)/apps/codecs/codecs.make
+
+FLAGS=-g -D__PCTOOL__ $(TARGET) -Wall
+
+SRC= $(call preprocess, $(ROOTDIR)/lib/rbcodec/test/SOURCES)
+
+INCLUDES += -I$(ROOTDIR)/apps -I$(ROOTDIR)/apps/codecs -I$(ROOTDIR)/apps/codecs/lib \
+ -I$(ROOTDIR)/apps/gui -I$(ROOTDIR)/apps/metadata
+INCLUDES += -I$(ROOTDIR)/firmware/export -I$(ROOTDIR)/firmware/include \
+ -I$(ROOTDIR)/firmware/target/hosted \
+ -I$(ROOTDIR)/firmware/target/hosted/sdl
+
+GCCOPTS+=-D__PCTOOL__ -g -std=gnu99 `$(SDLCONFIG) --cflags` -DCODECDIR="\"$(CODECDIR)\""
+
+LIBS=`$(SDLCONFIG) --libs` -lc
+ifneq ($(findstring MINGW,$(shell uname)),MINGW)
+LIBS += -ldl
+endif
+
+.SECONDEXPANSION: # $$(OBJ) is not populated until after this
+
+$(BUILDDIR)/$(BINARY): $(CODECS)
+
+$(BUILDDIR)/$(BINARY): $$(OBJ)
+ @echo LD $(BINARY)
+ $(SILENT)$(HOSTCC) $(SIMFLAGS) $(LIBS) -o $@ $+
diff --git a/tools/checkwps/checkwps.make b/tools/checkwps/checkwps.make
index e021024901..1e92e3d63e 100644
--- a/tools/checkwps/checkwps.make
+++ b/tools/checkwps/checkwps.make
@@ -15,6 +15,8 @@ INCLUDES = -I$(ROOTDIR)/apps/gui \
-I$(ROOTDIR)/apps/gui/skin_engine \
-I$(ROOTDIR)/firmware/export \
-I$(ROOTDIR)/firmware/include \
+ -I$(ROOTDIR)/firmware/target/hosted \
+ -I$(ROOTDIR)/firmware/target/hosted/sdl \
-I$(ROOTDIR)/apps \
-I$(ROOTDIR)/apps/recorder \
-I$(ROOTDIR)/apps/radio \
diff --git a/tools/configure b/tools/configure
index 87dc78f27d..84e87c9fdf 100755
--- a/tools/configure
+++ b/tools/configure
@@ -3383,7 +3383,7 @@ esac
if [ "$ARG_TYPE" ]; then
btype=$ARG_TYPE
else
- echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool$gdbstub: (Defaults to N)"
+ echo "Build (N)ormal, (A)dvanced, (S)imulator, (B)ootloader, (C)heckWPS, (D)atabase tool, (W)arble codec tool$gdbstub: (Defaults to N)"
btype=`input`;
fi
@@ -3484,6 +3484,17 @@ fi
echo "Database tool build selected"
;;
+ [Ww])
+ uname=`uname`
+ simcc "warble"
+ toolset='';
+ t_cpu='';
+ GCCOPTS='';
+ extradefines="$extradefines -DDEBUG"
+ output='warble.'${modelname};
+ archosrom='';
+ echo "Warble build selected"
+ ;;
*)
if [ "$modelname" = "sansae200r" ]; then
echo "Do not use the e200R target for regular builds. Use e200 instead."
diff --git a/tools/root.make b/tools/root.make
index 74279064bf..3231b73053 100644
--- a/tools/root.make
+++ b/tools/root.make
@@ -87,11 +87,13 @@ ifneq (,$(findstring bootloader,$(APPSDIR)))
else ifneq (,$(findstring bootbox,$(APPSDIR)))
BOOTBOXLDOPTS = -Wl,--gc-sections
include $(APPSDIR)/bootbox.make
-else ifneq (,$(findstring checkwps,$(APPSDIR)))
+else ifneq (,$(findstring checkwps,$(APP_TYPE)))
include $(APPSDIR)/checkwps.make
include $(ROOTDIR)/lib/skin_parser/skin_parser.make
-else ifneq (,$(findstring database,$(APPSDIR)))
+else ifneq (,$(findstring database,$(APP_TYPE)))
include $(APPSDIR)/database.make
+else ifneq (,$(findstring warble,$(APP_TYPE)))
+ include $(ROOTDIR)/lib/rbcodec/test/warble.make
else
include $(APPSDIR)/apps.make
include $(APPSDIR)/lang/lang.make