Optimized compiler settings for libgme. ARM now uses -O1 except for the 2413 emulator. The speed on PP5022 increases by 0-5% (NSF, YM2413-VGM), 5-10% (GBS, VGM) and 10-15% (SGC, KSS, AY).

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30331 a1c6a512-1295-4272-9138-f99709370657
diff --git a/apps/codecs/codecs.make b/apps/codecs/codecs.make
index 1644ff0..5706075 100644
--- a/apps/codecs/codecs.make
+++ b/apps/codecs/codecs.make
@@ -50,6 +50,7 @@
 include $(APPSDIR)/codecs/libgme/libsgc.make
 include $(APPSDIR)/codecs/libgme/libvgm.make
 include $(APPSDIR)/codecs/libgme/libkss.make
+include $(APPSDIR)/codecs/libgme/libemu2413.make
 
 # compile flags for codecs
 CODECFLAGS = $(CFLAGS) -fstrict-aliasing -I$(APPSDIR)/codecs \
@@ -80,6 +81,7 @@
 $(TREMORLIB) : CODECFLAGS += -O2
 $(TTALIB) : CODECFLAGS += -O2
 $(VGMLIB) : CODECFLAGS += -fno-strict-aliasing -O2
+$(EMU2413LIB) : CODECFLAGS += -fno-strict-aliasing -O3
 $(WAVPACKLIB) : CODECFLAGS += -O1
 $(WMALIB) : CODECFLAGS += -O2
 $(WMAPROLIB) : CODECFLAGS += -O1
@@ -89,13 +91,14 @@
 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
+  $(AYLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+  $(GBSLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+  $(HESLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+  $(KSSLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+  $(NSFLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+  $(SGCLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+  $(VGMLIB) : CODECFLAGS += -fno-strict-aliasing -O1
+  $(EMU2413LIB) : CODECFLAGS += -fno-strict-aliasing -O3
   $(WAVPACKLIB) : CODECFLAGS += -O3
 else ifeq ($(CPU),coldfire)
   $(A52LIB) : CODECFLAGS += -O2
@@ -161,10 +164,10 @@
 $(CODECDIR)/ay.codec : $(CODECDIR)/libay.a
 $(CODECDIR)/gbs.codec : $(CODECDIR)/libgbs.a
 $(CODECDIR)/hes.codec : $(CODECDIR)/libhes.a
-$(CODECDIR)/nsf.codec : $(CODECDIR)/libnsf.a
-$(CODECDIR)/sgc.codec : $(CODECDIR)/libsgc.a
-$(CODECDIR)/vgm.codec : $(CODECDIR)/libvgm.a
-$(CODECDIR)/kss.codec : $(CODECDIR)/libkss.a
+$(CODECDIR)/nsf.codec : $(CODECDIR)/libnsf.a $(CODECDIR)/libemu2413.a
+$(CODECDIR)/sgc.codec : $(CODECDIR)/libsgc.a $(CODECDIR)/libemu2413.a
+$(CODECDIR)/vgm.codec : $(CODECDIR)/libvgm.a $(CODECDIR)/libemu2413.a
+$(CODECDIR)/kss.codec : $(CODECDIR)/libkss.a $(CODECDIR)/libemu2413.a
 
 $(CODECS): $(CODECLIB) # this must be last in codec dependency list
 
diff --git a/apps/codecs/libgme/EMU2413SOURCES b/apps/codecs/libgme/EMU2413SOURCES
new file mode 100644
index 0000000..901c49e
--- /dev/null
+++ b/apps/codecs/libgme/EMU2413SOURCES
@@ -0,0 +1,4 @@
+sms_apu.c
+sms_fm_apu.c
+emu2413.c
+ym2413_emu.c
diff --git a/apps/codecs/libgme/KSSSOURCES b/apps/codecs/libgme/KSSSOURCES
index 8e9c660..2607c73 100644
--- a/apps/codecs/libgme/KSSSOURCES
+++ b/apps/codecs/libgme/KSSSOURCES
@@ -3,11 +3,9 @@
 kss_emu.c
 kss_scc_apu.c
 opl_apu.c
-sms_apu.c
 z80_cpu.c
 blip_buffer.c
 multi_buffer.c
 rom_data.c
-emu2413.c
 emu8950.c
 emuadpcm.c
diff --git a/apps/codecs/libgme/NSFSOURCES b/apps/codecs/libgme/NSFSOURCES
index d96e1d3..54b4f82 100644
--- a/apps/codecs/libgme/NSFSOURCES
+++ b/apps/codecs/libgme/NSFSOURCES
@@ -12,4 +12,3 @@
 blip_buffer.c
 multi_buffer.c
 rom_data.c
-emu2413.c
diff --git a/apps/codecs/libgme/SGCSOURCES b/apps/codecs/libgme/SGCSOURCES
index 72b06ef..d91c0e1 100644
--- a/apps/codecs/libgme/SGCSOURCES
+++ b/apps/codecs/libgme/SGCSOURCES
@@ -1,10 +1,6 @@
 sgc_cpu.c
 sgc_emu.c
-sms_apu.c
-sms_fm_apu.c
-ym2413_emu.c
 z80_cpu.c
 blip_buffer.c
 multi_buffer.c
 rom_data.c
-emu2413.c
diff --git a/apps/codecs/libgme/VGMSOURCES b/apps/codecs/libgme/VGMSOURCES
index ed32bac..637f87e 100644
--- a/apps/codecs/libgme/VGMSOURCES
+++ b/apps/codecs/libgme/VGMSOURCES
@@ -1,10 +1,7 @@
 blip_buffer.c
 multi_buffer.c
 resampler.c
-sms_apu.c
 vgm_emu.c
-emu2413.c
-ym2413_emu.c
 ym2612_emu.c
 inflate/bbfuncs.c
 inflate/inflate.c
diff --git a/apps/codecs/libgme/libemu2413.make b/apps/codecs/libgme/libemu2413.make
new file mode 100644
index 0000000..2f489ce
--- /dev/null
+++ b/apps/codecs/libgme/libemu2413.make
@@ -0,0 +1,10 @@
+
+# libemu2413
+EMU2413LIB := $(CODECDIR)/libemu2413.a
+EMU2413LIB_SRC := $(call preprocess, $(APPSDIR)/codecs/libgme/EMU2413SOURCES)
+EMU2413LIB_OBJ := $(call c2obj, $(EMU2413LIB_SRC))
+OTHER_SRC += $(EMU2413LIB_SRC)
+
+$(EMU2413LIB): $(EMU2413LIB_OBJ)
+	$(SILENT)$(shell rm -f $@)
+	$(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null