summaryrefslogtreecommitdiff
path: root/apps/codecs/codecs.make
diff options
context:
space:
mode:
authorNils Wallménius <nils@rockbox.org>2011-08-18 16:33:41 +0000
committerNils Wallménius <nils@rockbox.org>2011-08-18 16:33:41 +0000
commitb086458e4e1908878161ab5b84f287d5d726497b (patch)
treee4ff33e7ef1f6c5cd1b956ec69881c554f74307f /apps/codecs/codecs.make
parent46d7fb9b4a59dcebf9b68c38bc77b2c0f0761d33 (diff)
downloadrockbox-b086458e4e1908878161ab5b84f287d5d726497b.zip
rockbox-b086458e4e1908878161ab5b84f287d5d726497b.tar.gz
rockbox-b086458e4e1908878161ab5b84f287d5d726497b.tar.bz2
rockbox-b086458e4e1908878161ab5b84f287d5d726497b.tar.xz
FS#12231
Centralize the selection of codec compilation flags to codec.make to avoid having to duplicate the per cpu selection logic and the build rule in the individual codec lib make files and make tweaking easier. The two special cases, libmad and libspeex were left alone. I plan to introduce a var for arm generation so that appropriate flags can be selected per generation as benchmarking results have shown that different arm arches might have different optimal flags. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30330 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/codecs.make')
-rw-r--r--apps/codecs/codecs.make58
1 files changed, 58 insertions, 0 deletions
diff --git a/apps/codecs/codecs.make b/apps/codecs/codecs.make
index 19ff60b..1644ff0 100644
--- a/apps/codecs/codecs.make
+++ b/apps/codecs/codecs.make
@@ -55,6 +55,64 @@ include $(APPSDIR)/codecs/libgme/libkss.make
CODECFLAGS = $(CFLAGS) -fstrict-aliasing -I$(APPSDIR)/codecs \
-I$(APPSDIR)/codecs/lib -DCODEC
+# set CODECFLAGS per codec lib, since gcc takes the last -Ox and the last
+# in a -ffoo -fno-foo pair, there is no need to filter them out
+$(A52LIB) : CODECFLAGS += -O1
+$(ALACLIB) : CODECFLAGS += -O1
+$(ASAPLIB) : CODECFLAGS += -O1
+$(ASFLIB) : CODECFLAGS += -O2
+$(ATRACLIB) : CODECFLAGS += -O1
+$(AYLIB) : CODECFLAGS += -fno-strict-aliasing -O2
+$(COOKLIB): CODECFLAGS += -O1
+$(DEMACLIB) : CODECFLAGS += -O3
+$(FAADLIB) : CODECFLAGS += -O2
+$(FFMPEGFLACLIB) : CODECFLAGS += -O2
+$(GBSLIB) : CODECFLAGS += -fno-strict-aliasing -O2
+$(HESLIB) : CODECFLAGS += -fno-strict-aliasing -O2
+$(KSSLIB) : CODECFLAGS += -fno-strict-aliasing -O2
+$(M4ALIB) : CODECFLAGS += -O3
+$(MUSEPACKLIB) : CODECFLAGS += -O1
+$(NSFLIB) : CODECFLAGS += -fno-strict-aliasing -O2
+$(PCMSLIB) : CODECFLAGS += -O1
+$(RMLIB) : CODECFLAGS += -O3
+$(SGCLIB) : CODECFLAGS += -fno-strict-aliasing -O2
+$(SPCLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+$(TREMORLIB) : CODECFLAGS += -O2
+$(TTALIB) : CODECFLAGS += -O2
+$(VGMLIB) : CODECFLAGS += -fno-strict-aliasing -O2
+$(WAVPACKLIB) : CODECFLAGS += -O1
+$(WMALIB) : CODECFLAGS += -O2
+$(WMAPROLIB) : CODECFLAGS += -O1
+$(WMAVOICELIB) : CODECFLAGS += -O1
+
+# fine-tuning of CODECFLAGS per cpu arch
+ifeq ($(CPU),arm)
+ # redo per arm generation
+ $(ALACLIB) : CODECFLAGS += -O2
+ $(AYLIB) : CODECFLAGS += -fno-strict-aliasing -O3
+ $(GBSLIB) : CODECFLAGS += -fno-strict-aliasing -O3
+ $(HESLIB) : CODECFLAGS += -fno-strict-aliasing -O3
+ $(KSSLIB) : CODECFLAGS += -fno-strict-aliasing -O3
+ $(NSFLIB) : CODECFLAGS += -fno-strict-aliasing -O3
+ $(SGCLIB) : CODECFLAGS += -fno-strict-aliasing -O3
+ $(VGMLIB) : CODECFLAGS += -fno-strict-aliasing -O3
+ $(WAVPACKLIB) : CODECFLAGS += -O3
+else ifeq ($(CPU),coldfire)
+ $(A52LIB) : CODECFLAGS += -O2
+ $(ASFLIB) : CODECFLAGS += -O3
+ $(ATRACLIB) : CODECFLAGS += -O2
+ $(COOKLIB): CODECFLAGS += -O2
+ $(DEMACLIB) : CODECFLAGS += -O2
+ $(TREMORLIB) : CODECFLAGS += -O3
+ $(WMAPROLIB) : CODECFLAGS += -O3
+ $(WMAVOICELIB) : CODECFLAGS += -O2
+endif
+
+ifeq ($(MEMORYSIZE),2)
+ $(ASFLIB) : CODECFLAGS += -Os
+ $(WMALIB) : CODECFLAGS += -Os
+endif
+
ifndef APP_TYPE
CONFIGFILE := $(FIRMDIR)/export/config/$(MODELNAME).h
CODEC_LDS := $(APPSDIR)/plugins/plugin.lds # codecs and plugins use same file