diff --git a/Makefile.common b/Makefile.common
index d914aa6d15..f3fd977c0b 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -756,7 +756,7 @@ endif
ifeq ($(HAVE_AVFOUNDATION), 1)
ifeq ($(HAVE_COCOA), 1)
- DEFINES += -DHAVE_AVFOUNDATION
+ DEFINES += -DHAVE_AVFOUNDATION
LIBS += -framework AVFoundation
LIBS += -framework CoreVideo
LIBS += -framework CoreMedia
@@ -777,6 +777,7 @@ ifeq ($(HAVE_COMPRESSION), 1)
endif
ifeq ($(HAVE_COCOA),1)
+ DEFINES += -DHAVE_MAIN
OBJ += input/drivers/cocoa_input.o \
input/drivers_keyboard/keyboard_event_apple.o \
ui/drivers/ui_cocoa.o \
diff --git a/Makefile.emscripten b/Makefile.emscripten
index e277cb005d..722434c84a 100644
--- a/Makefile.emscripten
+++ b/Makefile.emscripten
@@ -2,7 +2,7 @@ TARGET = retroarch.js
OS = Emscripten
OBJ :=
-DEFINES := -DRARCH_INTERNAL -DHAVE_OVERLAY
+DEFINES := -DRARCH_INTERNAL -DHAVE_OVERLAY -DHAVE_MAIN
DEFINES += -DHAVE_OPENGL -DHAVE_OPENGLES -DHAVE_OPENGLES2 -DHAVE_EGL -DHAVE_OVERLAY -DHAVE_GLSL -DHAVE_FILTERS_BUILTIN
HAVE_OPENGL = 1
diff --git a/apple/OSXPPC/RetroArch_OSX.xcodeproj/project.pbxproj b/apple/OSXPPC/RetroArch_OSX.xcodeproj/project.pbxproj
index a5d901bac6..4dc07124f0 100644
--- a/apple/OSXPPC/RetroArch_OSX.xcodeproj/project.pbxproj
+++ b/apple/OSXPPC/RetroArch_OSX.xcodeproj/project.pbxproj
@@ -300,6 +300,7 @@
"-DHAVE_ZLIB",
"-DHAVE_RPNG",
"-DHAVE_COCOA",
+ "-DHAVE_MAIN",
"-DWANT_ZLIB",
"-DSINC_LOWER_QUALITY",
"-DHAVE_NETPLAY",
@@ -364,6 +365,7 @@
"-DHAVE_ZLIB",
"-DHAVE_RPNG",
"-DHAVE_COCOA",
+ "-DHAVE_MAIN",
"-DWANT_ZLIB",
"-DSINC_LOWER_QUALITY",
"-DHAVE_NETPLAY",
diff --git a/apple/RetroArch_OSX.xcodeproj/project.pbxproj b/apple/RetroArch_OSX.xcodeproj/project.pbxproj
index 2f31769637..81e877c6f0 100644
--- a/apple/RetroArch_OSX.xcodeproj/project.pbxproj
+++ b/apple/RetroArch_OSX.xcodeproj/project.pbxproj
@@ -349,6 +349,7 @@
"-DHAVE_ZLIB",
"-DHAVE_RPNG",
"-DHAVE_COCOA",
+ "-DHAVE_MAIN",
"-DSINC_LOWER_QUALITY",
"-DHAVE_NETPLAY",
"-DHAVE_NETWORKING",
@@ -405,6 +406,7 @@
"-DHAVE_ZLIB",
"-DHAVE_RPNG",
"-DHAVE_COCOA",
+ "-DHAVE_MAIN",
"-DSINC_LOWER_QUALITY",
"-DHAVE_NETPLAY",
"-DHAVE_NETWORKING",
diff --git a/apple/iOS/RetroArch_iOS.xcodeproj/project.pbxproj b/apple/iOS/RetroArch_iOS.xcodeproj/project.pbxproj
index b7402236b0..b75c1d8be2 100644
--- a/apple/iOS/RetroArch_iOS.xcodeproj/project.pbxproj
+++ b/apple/iOS/RetroArch_iOS.xcodeproj/project.pbxproj
@@ -521,6 +521,7 @@
"-DHAVE_ZLIB",
"-DHAVE_RPNG",
"-DHAVE_COCOATOUCH",
+ "-DHAVE_MAIN",
"-DSINC_LOWER_QUALITY",
"-DRARCH_INTERNAL",
"-DHAVE_THREADS",
@@ -585,6 +586,7 @@
"-DHAVE_ZLIB",
"-DHAVE_RPNG",
"-DHAVE_COCOATOUCH",
+ "-DHAVE_MAIN",
"-DSINC_LOWER_QUALITY",
"-DRARCH_INTERNAL",
"-DHAVE_THREADS",
@@ -623,6 +625,7 @@
"-DHAVE_ZLIB",
"-DHAVE_RPNG",
"-DHAVE_COCOATOUCH",
+ "-DHAVE_MAIN",
"-DSINC_LOWER_QUALITY",
"-DHAVE_THREADS",
"-DHAVE_FILTERS_BUILTIN",
@@ -693,6 +696,7 @@
"-DHAVE_ZLIB",
"-DHAVE_RPNG",
"-DHAVE_COCOATOUCH",
+ "-DHAVE_MAIN",
"-DSINC_LOWER_QUALITY",
);
"OTHER_LDFLAGS[arch=*]" = "";
@@ -752,6 +756,7 @@
"-DHAVE_ZLIB",
"-DHAVE_RPNG",
"-DHAVE_COCOATOUCH",
+ "-DHAVE_MAIN",
"-DSINC_LOWER_QUALITY",
);
"OTHER_LDFLAGS[arch=*]" = "";
@@ -810,6 +815,7 @@
"-DHAVE_ZLIB",
"-DHAVE_RPNG",
"-DHAVE_COCOATOUCH",
+ "-DHAVE_MAIN",
"-DSINC_LOWER_QUALITY",
"-DRARCH_INTERNAL",
"-DHAVE_THREADS",
@@ -876,6 +882,7 @@
"-DHAVE_ZLIB",
"-DHAVE_RPNG",
"-DHAVE_COCOATOUCH",
+ "-DHAVE_MAIN",
"-DSINC_LOWER_QUALITY",
"-DRARCH_INTERNAL",
"-DHAVE_THREADS",
@@ -916,6 +923,7 @@
"-DHAVE_ZLIB",
"-DHAVE_RPNG",
"-DHAVE_COCOATOUCH",
+ "-DHAVE_MAIN",
"-DSINC_LOWER_QUALITY",
"-DHAVE_THREADS",
"-DHAVE_FILTERS_BUILTIN",
diff --git a/frontend/frontend.c b/frontend/frontend.c
index 7ab03ecd6f..b73c06b2a3 100644
--- a/frontend/frontend.c
+++ b/frontend/frontend.c
@@ -282,10 +282,8 @@ error:
**/
#if defined(ANDROID)
void android_app_entry(void *data)
-#elif defined(__APPLE__) || defined(HAVE_BB10) || defined(EMSCRIPTEN)
-int rarch_main(int argc, char *argv[])
#else
-int main(int argc, char *argv[])
+int rarch_main(int argc, char *argv[])
#endif
{
#ifdef ANDROID
@@ -354,3 +352,10 @@ int main(int argc, char *argv[])
returnfunc();
}
+
+#ifndef HAVE_MAIN
+int main(int argc, char *argv[])
+{
+ return rarch_main(argc, argv);
+}
+#endif
diff --git a/frontend/frontend.h b/frontend/frontend.h
index 9712d59fdf..bd8d20c63f 100644
--- a/frontend/frontend.h
+++ b/frontend/frontend.h
@@ -61,10 +61,8 @@ void main_exit_save_config(void);
**/
#if defined(ANDROID)
void android_app_entry(void *data);
-#elif defined(__APPLE__) || defined(HAVE_BB10) || defined(EMSCRIPTEN)
-int rarch_main(int argc, char *argv[]);
#else
-int main(int argc, char *argv[]);
+int rarch_main(int argc, char *argv[]);
#endif
/**
diff --git a/qnx/bb10/.cproject b/qnx/bb10/.cproject
index 856fd0f472..9bc8d61944 100644
--- a/qnx/bb10/.cproject
+++ b/qnx/bb10/.cproject
@@ -32,6 +32,7 @@
+
@@ -149,6 +150,7 @@
+
@@ -268,6 +270,7 @@
+
@@ -388,6 +391,7 @@
+
@@ -506,6 +510,7 @@
+
@@ -624,6 +629,7 @@
+
@@ -743,6 +749,7 @@
+