diff --git a/apps/plugins/mikmod/mikmod.make b/apps/plugins/mikmod/mikmod.make
index 38a95c3695..016b05433e 100644
--- a/apps/plugins/mikmod/mikmod.make
+++ b/apps/plugins/mikmod/mikmod.make
@@ -20,7 +20,7 @@ OTHER_SRC += $(MIKMOD_SRC)
MIKMODCFLAGS = $(PLUGINFLAGS) -I$(MIKMODSRCDIR) -O2
-$(MIKMODBUILDDIR)/mikmod.rock: $(MIKMOD_OBJ)
+$(MIKMODBUILDDIR)/mikmod.rock: $(MIKMOD_OBJ) $(TLSFLIB)
# new rule needed to use extra compile flags
$(MIKMODBUILDDIR)/%.o: $(MIKMODSRCDIR)/%.c
diff --git a/apps/plugins/pdbox/pdbox.make b/apps/plugins/pdbox/pdbox.make
index e0cbaef9ab..e95cdba2b9 100644
--- a/apps/plugins/pdbox/pdbox.make
+++ b/apps/plugins/pdbox/pdbox.make
@@ -26,7 +26,7 @@ ifdef APP_TYPE
PDBOXLDFLAGS += -lm
endif
-$(PDBOXBUILDDIR)/pdbox.rock: $(PDBOX_OBJ)
+$(PDBOXBUILDDIR)/pdbox.rock: $(PDBOX_OBJ) $(TLSFLIB)
# Compile PDBox with extra flags (adapted from ZXBox)
$(PDBOXBUILDDIR)/%.o: $(PDBOXSRCDIR)/%.c $(PDBOXSRCDIR)/pdbox.make
diff --git a/apps/plugins/plugins.make b/apps/plugins/plugins.make
index 12344ae590..0fc8ba7dc1 100644
--- a/apps/plugins/plugins.make
+++ b/apps/plugins/plugins.make
@@ -53,7 +53,7 @@ else
PLUGINSUBDIRS := $(call preprocess, $(APPSDIR)/plugins/SUBDIRS)
endif
-PLUGIN_LIBS := $(EXTRA_LIBS) $(PLUGINLIB) $(PLUGINBITMAPLIB)
+PLUGIN_LIBS := $(PLUGINLIB) $(PLUGINBITMAPLIB) $(SETJMPLIB)
# include
.make from each subdir (yay!)
$(foreach dir,$(PLUGINSUBDIRS),$(eval include $(dir)/$(notdir $(dir)).make))
diff --git a/lib/libsetjmp/libsetjmp.make b/lib/libsetjmp/libsetjmp.make
index f8df7513c9..cf1e4bbdfe 100644
--- a/lib/libsetjmp/libsetjmp.make
+++ b/lib/libsetjmp/libsetjmp.make
@@ -14,7 +14,6 @@ SETJMPLIB = $(BUILDDIR)/lib/libsetjmp.a
INCLUDES += -I$(SETJMPLIB_DIR)
OTHER_SRC += $(SETJMPLIB_SRC)
-EXTRA_LIBS += $(SETJMPLIB)
$(SETJMPLIB): $(SETJMPLIB_OBJ)
$(SILENT)$(shell rm -f $@)
diff --git a/lib/rbcodec/codecs/codecs.make b/lib/rbcodec/codecs/codecs.make
index 844a8f4cee..eea8950d0d 100644
--- a/lib/rbcodec/codecs/codecs.make
+++ b/lib/rbcodec/codecs/codecs.make
@@ -19,7 +19,7 @@ include $(RBCODECLIB_DIR)/codecs/lib/libcodec.make
OTHER_INC += -I$(RBCODECLIB_DIR)/codecs/lib
# extra libraries
-CODEC_LIBS := $(EXTRA_LIBS) $(CODECLIB)
+CODEC_LIBS := $(CODECLIB)
# the codec libraries
include $(RBCODECLIB_DIR)/codecs/demac/libdemac.make
@@ -140,7 +140,7 @@ $(CODECDIR)/spc.codec : $(CODECDIR)/libspc.a
$(CODECDIR)/mpa.codec : $(CODECDIR)/libmad.a
$(CODECDIR)/a52.codec : $(CODECDIR)/liba52.a
$(CODECDIR)/flac.codec : $(CODECDIR)/libffmpegFLAC.a
-$(CODECDIR)/vorbis.codec : $(CODECDIR)/libtremor.a
+$(CODECDIR)/vorbis.codec : $(CODECDIR)/libtremor.a $(TLSFLIB) $(SETJMPLIB)
$(CODECDIR)/speex.codec : $(CODECDIR)/libspeex.a
$(CODECDIR)/mpc.codec : $(CODECDIR)/libmusepack.a
$(CODECDIR)/wavpack.codec : $(CODECDIR)/libwavpack.a
diff --git a/lib/tlsf/libtlsf.make b/lib/tlsf/libtlsf.make
index cb61a5c09e..e36efe5e27 100644
--- a/lib/tlsf/libtlsf.make
+++ b/lib/tlsf/libtlsf.make
@@ -14,7 +14,6 @@ TLSFLIB := $(BUILDDIR)/lib/libtlsf.a
OTHER_SRC += $(TLSFLIB_SRC)
INCLUDES += -I$(TLSFLIB_DIR)/src
-EXTRA_LIBS += $(TLSFLIB)
TLSFLIBFLAGS = $(CFLAGS) -fstrict-aliasing -ffunction-sections $(SHARED_CFLAGS)
diff --git a/tools/root.make b/tools/root.make
index 256d25c1df..c8c4eb4f89 100644
--- a/tools/root.make
+++ b/tools/root.make
@@ -62,8 +62,8 @@ endif
all: $(DEPFILE) build
# Subdir makefiles. their primary purpose is to populate SRC, OTHER_SRC,
-# ASMDEFS_SRC, CORE_LIBS and EXTRA_LIBS. But they also define special
-# dependencies and compile rules
+# ASMDEFS_SRC and CORE_LIBS. But they also define special dependencies and
+# compile rules
include $(TOOLSDIR)/tools.make
ifeq (,$(findstring checkwps,$(APP_TYPE)))
@@ -71,7 +71,7 @@ ifeq (,$(findstring checkwps,$(APP_TYPE)))
ifeq (,$(findstring warble,$(APP_TYPE)))
include $(FIRMDIR)/firmware.make
include $(ROOTDIR)/apps/bitmaps/bitmaps.make
- ifeq (,$(findstring bootloader,$(APPSDIR)))
+ ifeq (,$(findstring bootloader,$(APPSDIR)))
include $(ROOTDIR)/lib/skin_parser/skin_parser.make
include $(ROOTDIR)/lib/tlsf/libtlsf.make
endif