Index: apps/codecs/libfaad/libfaad.make
===================================================================
--- apps/codecs/libfaad/libfaad.make	(revision 30297)
+++ apps/codecs/libfaad/libfaad.make	(arbetskopia)
@@ -17,11 +17,3 @@
 $(FAADLIB): $(FAADLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-# libfaad is faster on ARM with -O2, use -O1 for other CPUs
-FAADFLAGS = -I$(APPSDIR)/codecs/libfaad $(filter-out -O%,$(CODECFLAGS)) 
-FAADFLAGS += -O2
-
-$(CODECDIR)/libfaad/%.o: $(ROOTDIR)/apps/codecs/libfaad/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(FAADFLAGS) -c $< -o $@
Index: apps/codecs/libgme/libhes.make
===================================================================
--- apps/codecs/libgme/libhes.make	(revision 30297)
+++ apps/codecs/libgme/libhes.make	(arbetskopia)
@@ -8,14 +8,3 @@
 $(HESLIB): $(HESLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-HESFLAGS = $(filter-out -O%,$(CODECFLAGS)) -fno-strict-aliasing -DGME_HES_TYPE
-ifeq ($(CPU),arm)
-   HESFLAGS += -O3
-else
-   HESFLAGS += -O2
-endif
-
-$(CODECDIR)/libgme/%.o: $(ROOTDIR)/apps/codecs/libgme/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(HESFLAGS) -c $< -o $@
Index: apps/codecs/libgme/libvgm.make
===================================================================
--- apps/codecs/libgme/libvgm.make	(revision 30297)
+++ apps/codecs/libgme/libvgm.make	(arbetskopia)
@@ -8,14 +8,3 @@
 $(VGMLIB): $(VGMLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-VGMFLAGS = $(filter-out -O%,$(CODECFLAGS)) -fno-strict-aliasing -DGME_VGM_TYPE
-ifeq ($(CPU),arm)
-   VGMFLAGS += -O3
-else
-   VGMFLAGS += -O2
-endif
-
-$(CODECDIR)/libgme/%.o: $(ROOTDIR)/apps/codecs/libgme/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(VGMFLAGS) -c $< -o $@
Index: apps/codecs/libgme/libsgc.make
===================================================================
--- apps/codecs/libgme/libsgc.make	(revision 30297)
+++ apps/codecs/libgme/libsgc.make	(arbetskopia)
@@ -8,14 +8,3 @@
 $(SGCLIB): $(SGCLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-SGCFLAGS = $(filter-out -O%,$(CODECFLAGS)) -fno-strict-aliasing -DGME_SGC_TYPE
-ifeq ($(CPU),arm)
-   SGCFLAGS += -O3
-else
-   SGCFLAGS += -O2
-endif
-
-$(CODECDIR)/libgme/%.o: $(ROOTDIR)/apps/codecs/libgme/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(SGCFLAGS) -c $< -o $@
Index: apps/codecs/libgme/libnsf.make
===================================================================
--- apps/codecs/libgme/libnsf.make	(revision 30297)
+++ apps/codecs/libgme/libnsf.make	(arbetskopia)
@@ -8,14 +8,3 @@
 $(NSFLIB): $(NSFLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-NSFFLAGS = $(filter-out -O%,$(CODECFLAGS)) -fno-strict-aliasing -DGME_NSF_TYPE
-ifeq ($(CPU),arm)
-   NSFFLAGS += -O3
-else
-   NSFFLAGS += -O2
-endif
-
-$(CODECDIR)/libgme/%.o: $(ROOTDIR)/apps/codecs/libgme/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(NSFFLAGS) -c $< -o $@
Index: apps/codecs/libgme/libkss.make
===================================================================
--- apps/codecs/libgme/libkss.make	(revision 30297)
+++ apps/codecs/libgme/libkss.make	(arbetskopia)
@@ -8,14 +8,3 @@
 $(KSSLIB): $(KSSLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-KSSFLAGS = $(filter-out -O%,$(CODECFLAGS)) -fno-strict-aliasing -DGME_KSS_TYPE
-ifeq ($(CPU),arm)
-   KSSFLAGS += -O3
-else
-   KSSFLAGS += -O2
-endif
-
-$(CODECDIR)/libgme/%.o: $(ROOTDIR)/apps/codecs/libgme/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(KSSFLAGS) -c $< -o $@
Index: apps/codecs/libgme/libgbs.make
===================================================================
--- apps/codecs/libgme/libgbs.make	(revision 30297)
+++ apps/codecs/libgme/libgbs.make	(arbetskopia)
@@ -8,14 +8,3 @@
 $(GBSLIB): $(GBSLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-GBSFLAGS = $(filter-out -O%,$(CODECFLAGS)) -fno-strict-aliasing -DGME_GBS_TYPE
-ifeq ($(CPU),arm)
-   GBSFLAGS += -O3
-else
-   GBSFLAGS += -O2
-endif
-
-$(CODECDIR)/libgme/%.o: $(ROOTDIR)/apps/codecs/libgme/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(GBSFLAGS) -c $< -o $@
Index: apps/codecs/libgme/libay.make
===================================================================
--- apps/codecs/libgme/libay.make	(revision 30297)
+++ apps/codecs/libgme/libay.make	(arbetskopia)
@@ -8,14 +8,3 @@
 $(AYLIB): $(AYLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-AYFLAGS = $(filter-out -O%,$(CODECFLAGS)) -fno-strict-aliasing -DGME_AY_TYPE
-ifeq ($(CPU),arm)
-   AYFLAGS += -O3
-else
-   AYFLAGS += -O2
-endif
-
-$(CODECDIR)/libgme/%.o: $(ROOTDIR)/apps/codecs/libgme/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(AYFLAGS) -c $< -o $@
Index: apps/codecs/libpcm/libpcm.make
===================================================================
--- apps/codecs/libpcm/libpcm.make	(revision 30297)
+++ apps/codecs/libpcm/libpcm.make	(arbetskopia)
@@ -16,10 +16,3 @@
 $(PCMSLIB): $(PCMSLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-PCMSFLAGS = $(filter-out -O%,$(CODECFLAGS))
-PCMSFLAGS += -O1
-
-$(CODECDIR)/libpcm/%.o: $(ROOTDIR)/apps/codecs/libpcm/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(PCMSFLAGS) -c $< -o $@
Index: apps/codecs/libwma/libwma.make
===================================================================
--- apps/codecs/libwma/libwma.make	(revision 30297)
+++ apps/codecs/libwma/libwma.make	(arbetskopia)
@@ -16,16 +16,3 @@
 $(WMALIB): $(WMALIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-WMAFLAGS = -I$(APPSDIR)/codecs/libwma $(filter-out -O%,$(CODECFLAGS))
-
-ifeq ($(MEMORYSIZE),2)
-    WMAFLAGS += -Os
-else
-    WMAFLAGS += -O2
-endif
-
-$(CODECDIR)/libwma/%.o: $(ROOTDIR)/apps/codecs/libwma/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(WMAFLAGS) -c $< -o $@
-
Index: apps/codecs/liba52/liba52.make
===================================================================
--- apps/codecs/liba52/liba52.make	(revision 30297)
+++ apps/codecs/liba52/liba52.make	(arbetskopia)
@@ -16,16 +16,3 @@
 $(A52LIB): $(A52LIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-A52FLAGS = -I$(APPSDIR)/codecs/liba52 $(filter-out -O%,$(CODECFLAGS))
-
-ifeq ($(CPU),coldfire)
-    A52FLAGS += -O2
-else
-    A52FLAGS += -O1
-endif
-
-$(CODECDIR)/liba52/%.o: $(ROOTDIR)/apps/codecs/liba52/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(A52FLAGS) -c $< -o $@
-
Index: apps/codecs/libwmapro/libwmapro.make
===================================================================
--- apps/codecs/libwmapro/libwmapro.make	(revision 30297)
+++ apps/codecs/libwmapro/libwmapro.make	(arbetskopia)
@@ -16,15 +16,3 @@
 $(WMAPROLIB): $(WMAPROLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-WMAPROFLAGS = -I$(APPSDIR)/codecs/libwmapro $(filter-out -O%,$(CODECFLAGS))
-
-ifeq ($(CPU),coldfire)
-	WMAPROFLAGS += -O3
-else
-	WMAPROFLAGS += -O1
-endif
-
-$(CODECDIR)/libwmapro/%.o: $(ROOTDIR)/apps/codecs/libwmapro/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(WMAPROFLAGS) -c $< -o $@
Index: apps/codecs/libtremor/libtremor.make
===================================================================
--- apps/codecs/libtremor/libtremor.make	(revision 30297)
+++ apps/codecs/libtremor/libtremor.make	(arbetskopia)
@@ -16,16 +16,3 @@
 $(TREMORLIB): $(TREMORLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-TREMORFLAGS = -I$(APPSDIR)/codecs/libtremor $(filter-out -O%,$(CODECFLAGS)) 
-
-# Tremor is slightly faster on coldfire with -O3
-ifeq ($(CPU),coldfire)
-    TREMORFLAGS += -O3
-else
-    TREMORFLAGS += -O2
-endif
-
-$(CODECDIR)/libtremor/%.o: $(ROOTDIR)/apps/codecs/libtremor/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(TREMORFLAGS) -c $< -o $@
Index: apps/codecs/librm/librm.make
===================================================================
--- apps/codecs/librm/librm.make	(revision 30297)
+++ apps/codecs/librm/librm.make	(arbetskopia)
@@ -16,10 +16,3 @@
 $(RMLIB): $(RMLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-RMFLAGS = $(filter-out -O%,$(CODECFLAGS))
-RMFLAGS += -O3
-
-$(CODECDIR)/librm/%.o: $(ROOTDIR)/apps/codecs/librm/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(RMFLAGS) -c $< -o $@
Index: apps/codecs/libm4a/libm4a.make
===================================================================
--- apps/codecs/libm4a/libm4a.make	(revision 30297)
+++ apps/codecs/libm4a/libm4a.make	(arbetskopia)
@@ -16,10 +16,3 @@
 $(M4ALIB): $(M4ALIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-M4AFLAGS = $(filter-out -O%,$(CODECFLAGS))
-M4AFLAGS += -O3
-
-$(CODECDIR)/libm4a/%.o: $(ROOTDIR)/apps/codecs/libm4a/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(M4AFLAGS) -c $< -o $@
Index: apps/codecs/demac/libdemac.make
===================================================================
--- apps/codecs/demac/libdemac.make	(revision 30297)
+++ apps/codecs/demac/libdemac.make	(arbetskopia)
@@ -26,14 +26,6 @@
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
 
-DEMACFLAGS = $(filter-out -O%,$(CODECFLAGS))
-
-ifeq ($(CPU),coldfire)
-    DEMACFLAGS += -O2
-else
-    DEMACFLAGS += -O3
-endif
-
 $(CODECDIR)/ape_free_iram.h: $(CODECDIR)/ape-pre.map
 	$(call PRINTS,GEN $(@F))perl -an \
 		-e 'if(/^PLUGIN_IRAM/){$$istart=hex($$F[1]);$$ilen=hex($$F[2])}' \
@@ -41,7 +33,3 @@
 		-e '}{if($$ilen){print"#define FREE_IRAM ".($$ilen+$$istart-$$iend)."\n";}' \
 		$(CODECDIR)/ape-pre.map \
 		> $@
-
-$(CODECDIR)/demac/%.o: $(ROOTDIR)/apps/codecs/demac/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(DEMACFLAGS) -c $< -o $@
Index: apps/codecs/libasap/libasap.make
===================================================================
--- apps/codecs/libasap/libasap.make	(revision 30297)
+++ apps/codecs/libasap/libasap.make	(arbetskopia)
@@ -16,10 +16,3 @@
 $(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
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(ASAPFLAGS) -c $< -o $@
Index: apps/codecs/libtta/libtta.make
===================================================================
--- apps/codecs/libtta/libtta.make	(revision 30297)
+++ apps/codecs/libtta/libtta.make	(arbetskopia)
@@ -16,14 +16,3 @@
 $(TTALIB): $(TTALIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-TTAFLAGS = $(filter-out -O%,$(CODECFLAGS))
-TTAFLAGS += -O2
-
-$(CODECDIR)/libtta/%.o: $(ROOTDIR)/apps/codecs/libtta/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(TTAFLAGS) -c $< -o $@
-
-$(CODECDIR)/libtta/%.o: $(ROOTDIR)/apps/codecs/libtta/%.S
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(TTAFLAGS) $(ASMFLAGS) -c $< -o $@
Index: apps/codecs/libffmpegFLAC/libffmpegFLAC.make
===================================================================
--- apps/codecs/libffmpegFLAC/libffmpegFLAC.make	(revision 30297)
+++ apps/codecs/libffmpegFLAC/libffmpegFLAC.make	(arbetskopia)
@@ -13,14 +13,6 @@
 FFMPEGFLACLIB_OBJ := $(call c2obj, $(FFMPEGFLACLIB_SRC))
 OTHER_SRC += $(FFMPEGFLACLIB_SRC)
 
-# libffmpegFLAC is faster on ARM-targets with -O2 than -O1
-FFMPEGFLACFLAGS = -I$(APPSDIR)/codecs/libffmpegFLAC $(filter-out -O%,$(CODECFLAGS))
-FFMPEGFLACFLAGS += -O2
-
 $(FFMPEGFLACLIB): $(FFMPEGFLACLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-$(CODECDIR)/libffmpegFLAC/%.o: $(ROOTDIR)/apps/codecs/libffmpegFLAC/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(FFMPEGFLACFLAGS) -c $< -o $@
Index: apps/codecs/libcook/libcook.make
===================================================================
--- apps/codecs/libcook/libcook.make	(revision 30297)
+++ apps/codecs/libcook/libcook.make	(arbetskopia)
@@ -16,16 +16,3 @@
 $(COOKLIB): $(COOKLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-COOKFLAGS = -I$(APPSDIR)/codecs/libcook $(filter-out -O%,$(CODECFLAGS))
-
-ifeq ($(CPU),coldfire)
-	COOKFLAGS += -O2
-else
-	COOKFLAGS += -O1
-endif
-
-$(CODECDIR)/libcook/%.o: $(ROOTDIR)/apps/codecs/libcook/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(COOKFLAGS) -c $< -o $@
-
Index: apps/codecs/libmusepack/libmusepack.make
===================================================================
--- apps/codecs/libmusepack/libmusepack.make	(revision 30297)
+++ apps/codecs/libmusepack/libmusepack.make	(arbetskopia)
@@ -16,11 +16,3 @@
 $(MUSEPACKLIB): $(MUSEPACKLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-# libmusepack is faster on ARM-targets with -O1 than -O2
-MUSEPACKFLAGS = $(filter-out -O%,$(CODECFLAGS)) -I$(APPSDIR)/codecs/libmusepack
-MUSEPACKFLAGS += -O1
-
-$(CODECDIR)/libmusepack/%.o: $(ROOTDIR)/apps/codecs/libmusepack/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(MUSEPACKFLAGS) -c $< -o $@
Index: apps/codecs/libasf/libasf.make
===================================================================
--- apps/codecs/libasf/libasf.make	(revision 30297)
+++ apps/codecs/libasf/libasf.make	(arbetskopia)
@@ -16,17 +16,3 @@
 $(ASFLIB): $(ASFLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-ASFFLAGS = $(filter-out -O%,$(CODECFLAGS))
-
-ifeq ($(MEMORYSIZE),2)
-    ASFFLAGS += -Os
-else ifeq ($(CPU),coldfire)
-	ASFFLAGS += -O3
-else
-	ASFFLAGS += -O2
-endif
-
-$(CODECDIR)/libasf/%.o: $(ROOTDIR)/apps/codecs/libasf/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(ASFFLAGS) -c $< -o $@
Index: apps/codecs/codecs.make
===================================================================
--- apps/codecs/codecs.make	(revision 30297)
+++ apps/codecs/codecs.make	(arbetskopia)
@@ -55,6 +55,64 @@
 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
Index: apps/codecs/libatrac/libatrac.make
===================================================================
--- apps/codecs/libatrac/libatrac.make	(revision 30297)
+++ apps/codecs/libatrac/libatrac.make	(arbetskopia)
@@ -16,16 +16,3 @@
 $(ATRACLIB): $(ATRACLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-ATRACFLAGS = -I$(APPSDIR)/codecs/libatrac $(filter-out -O%,$(CODECFLAGS))
-# not tuned for arm
-ifeq ($(CPU),coldfire)
-    ATRACFLAGS += -O2
-else
-    ATRACFLAGS += -O1
-endif
-
-$(CODECDIR)/libatrac/%.o: $(ROOTDIR)/apps/codecs/libatrac/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(ATRACFLAGS) -c $< -o $@
-
Index: apps/codecs/libwavpack/libwavpack.make
===================================================================
--- apps/codecs/libwavpack/libwavpack.make	(revision 30297)
+++ apps/codecs/libwavpack/libwavpack.make	(arbetskopia)
@@ -13,19 +13,6 @@
 WAVPACKLIB_OBJ := $(call c2obj, $(WAVPACKLIB_SRC))
 OTHER_SRC += $(WAVPACKLIB_SRC)
 
-WAVPACKFLAGS = -I$(APPSDIR)/codecs/libwavpack $(filter-out -O%,$(CODECFLAGS))
-
-ifeq ($(CPU),arm)
-    WAVPACKFLAGS += -O3
-else
-    WAVPACKFLAGS += -O1
-endif
-
-
 $(WAVPACKLIB): $(WAVPACKLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-$(CODECDIR)/libwavpack/%.o: $(ROOTDIR)/apps/codecs/libwavpack/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(WAVPACKFLAGS) -c $< -o $@
Index: apps/codecs/libalac/libalac.make
===================================================================
--- apps/codecs/libalac/libalac.make	(revision 30297)
+++ apps/codecs/libalac/libalac.make	(arbetskopia)
@@ -16,15 +16,3 @@
 $(ALACLIB): $(ALACLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-ALACFLAGS = $(filter-out -O%,$(CODECFLAGS))
-
-ifeq ($(CPU),arm)
-    ALACFLAGS += -O2
-else
-    ALACFLAGS += -O1
-endif
-
-$(CODECDIR)/libalac/%.o: $(ROOTDIR)/apps/codecs/libalac/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(ALACFLAGS) -c $< -o $@
Index: apps/codecs/libspc/libspc.make
===================================================================
--- apps/codecs/libspc/libspc.make	(revision 30297)
+++ apps/codecs/libspc/libspc.make	(arbetskopia)
@@ -16,10 +16,3 @@
 $(SPCLIB): $(SPCLIB_OBJ)
 	$(SILENT)$(shell rm -f $@)
 	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null
-
-SPCFLAGS = $(filter-out -O%,$(CODECFLAGS)) -fno-strict-aliasing
-SPCFLAGS += -O1
-
-$(CODECDIR)/libspc/%.o: $(ROOTDIR)/apps/codecs/libspc/%.c
-	$(SILENT)mkdir -p $(dir $@)
-	$(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(SPCFLAGS) -c $< -o $@
