diff --git a/Makefile.libretro b/Makefile.libretro
index 036c608..4c1cc87 100644
--- a/Makefile.libretro
+++ b/Makefile.libretro
@@ -461,6 +461,22 @@ else ifeq ($(platform), miyoo)
 	PLATFORM_DEFINES += -fomit-frame-pointer -ffast-math -mcpu=arm926ej-s
 	EXTERNAL_ZLIB = 1
 
+# TRIMUI
+else ifeq ($(platform), trimui)
+	TARGET := $(TARGET_NAME)_libretro.so
+	CC = $(CROSS_COMPILE)gcc
+	CXX = $(CROSS_COMPILE)g++
+	AR = $(CROSS_COMPILE)ar
+	SHARED := -shared -Wl,--version-script=src/drivers/libretro/link.T -Wl,-no-undefined
+	LDFLAGS += -fno-PIC -flto
+	CFLAGS += -fomit-frame-pointer -ffast-math -mcpu=arm926ej-s -mtune=arm926ej-s -fno-PIC -flto
+	OPTIMIZE := -Ofast -DNDEBUG
+	EXTERNAL_ZLIB = 1
+	HAVE_NTSC = 0
+	ifeq (,$(DEBUG))
+		LDFLAGS += -s
+	endif
+
 # Windows MSVC 2017 all architectures
 else ifneq (,$(findstring windows_msvc2017,$(platform)))
 	CC  = cl.exe
@@ -715,8 +731,20 @@ else
       CFLAGS     += -MT
       CXXFLAGS   += -MT
 	endif
+	ifneq (,$(OPTIMIZE))
+      CFLAGS     += $(OPTIMIZE)
+      CXXFLAGS   += $(OPTIMIZE)
+	else
       CFLAGS     += -O2 -DNDEBUG
       CXXFLAGS   += -O2 -DNDEBUG
+	endif
+endif
+
+ifeq ($(PROFILE), GENERATE)
+	CFLAGS	+= -fprofile-generate=./profile/fceumm
+	LDFLAGS	+= -lgcov
+else ifeq ($(PROFILE), APPLY)
+	CFLAGS	+= -fprofile-use -fprofile-dir=../profile/fceumm -fbranch-probabilities
 endif
 
 ifneq ($(SANITIZER),)
