Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Mac OSX: fix includes & add missing functionality

  • Loading branch information...
commit 64cfab5b46de082984c2568d8ef834e003ef9275 1 parent f908a3c
kaazoo kaazoo authored
9 Utilities/GNU.cpp
View
@@ -0,0 +1,9 @@
+#include "GNU.h"
+
+#ifdef __APPLE__
+void * _aligned_malloc(size_t size, size_t alignment) {
+ void *buffer;
+ posix_memalign(&buffer, alignment, size);
+ return buffer;
+}
+#endif
26 Utilities/GNU.h
View
@@ -3,7 +3,10 @@
#if defined(__GNUG__)
#include <cmath>
#include <stdlib.h>
+
+#ifndef __APPLE__
#include <malloc.h>
+#endif
#define _fpclass(x) std::fpclassify(x)
#define __forceinline __attribute__((always_inline))
@@ -16,8 +19,31 @@
#define _CRT_ALIGN(x) __attribute__((aligned(x)))
#define InterlockedCompareExchange(ptr,new_val,old_val) __sync_val_compare_and_swap(ptr,old_val,new_val)
#define InterlockedCompareExchange64(ptr,new_val,old_val) __sync_val_compare_and_swap(ptr,old_val,new_val)
+
+#ifndef __APPLE__
#define _aligned_malloc(size,alignment) memalign(alignment,size)
+#else
+void * _aligned_malloc(size_t size, size_t alignment);
+#define wxIsNaN(x) ((x) != (x))
+#endif
+
#define _aligned_free free
+
+#ifndef CLOCK_MONOTONIC
+#define CLOCK_MONOTONIC 0
+#include <time.h>
+#include <sys/time.h>
+
+static int clock_gettime(int foo, struct timespec *ts) {
+ struct timeval tv;
+
+ gettimeofday(&tv, NULL);
+ ts->tv_sec = tv.tv_sec;
+ ts->tv_nsec = tv.tv_usec * 1000;
+ return (0);
+}
+#endif /* !CLOCK_MONOTONIC */
+
#define DWORD int32_t
#endif
13 rpcs3/CMakeLists.txt
View
@@ -42,9 +42,17 @@ find_package(OpenAL REQUIRED)
include("${wxWidgets_USE_FILE}")
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
- set(PLATFORM_ARCH "linux/x86_64")
+ if(LINUX)
+ set(PLATFORM_ARCH "linux/x86_64")
+ elseif(APPLE)
+ set(PLATFORM_ARCH "macosx/x86_64")
+ endif()
else()
- set(PLATFORM_ARCH "linux/x86")
+ if(LINUX)
+ set(PLATFORM_ARCH "linux/x86")
+ elseif(APPLE)
+ set(PLATFORM_ARCH "macosx/x86")
+ endif()
endif()
include_directories(
@@ -72,6 +80,7 @@ GLOB_RECURSE
RPCS3_SRC
"${RPCS3_SRC_DIR}/rpcs3.cpp"
"${RPCS3_SRC_DIR}/Ini.cpp"
+"${RPCS3_SRC_DIR}/../Utilities/GNU.cpp"
"${RPCS3_SRC_DIR}/Emu/*"
"${RPCS3_SRC_DIR}/Gui/*"
"${RPCS3_SRC_DIR}/Loader/*"
7 rpcs3/Emu/GS/GL/OpenGL.h
View
@@ -2,8 +2,6 @@
#ifndef _WIN32
#include <GL/glew.h>
#endif
-#include <GL/gl.h>
-#include "GL/glext.h"
#ifdef _WIN32
typedef BOOL (WINAPI* PFNWGLSWAPINTERVALEXTPROC) (int interval);
@@ -14,7 +12,12 @@ typedef BOOL (WINAPI* PFNWGLSWAPINTERVALEXTPROC) (int interval);
#undef OPENGL_PROC
#undef OPENGL_PROC2
+#elif __APPLE__
+#include <OpenGL/gl.h>
+#include <OpenGL/glu.h>
+
#else
+#include <GL/gl.h>
#include <GL/glx.h>
#include <GL/glxext.h>
#endif
2  rpcs3/rpcs3.cpp
View
@@ -73,8 +73,10 @@ void Rpcs3App::SendDbgCommand(DbgCommand id, CPUThread* thr)
Rpcs3App::Rpcs3App()
{
#ifdef __UNIX__
+ #ifndef __APPLE__
XInitThreads();
#endif
+ #endif
}
/*
CPUThread& GetCPU(const u8 core)
2  stblib/stb_truetype.h
View
@@ -366,7 +366,9 @@ int main(int arg, char **argv)
// #define your own functions "STBTT_malloc" / "STBTT_free" to avoid malloc.h
#ifndef STBTT_malloc
+ #ifndef __APPLE__
#include <malloc.h>
+ #endif
#define STBTT_malloc(x,u) malloc(x)
#define STBTT_free(x,u) free(x)
#endif
Please sign in to comment.
Something went wrong with that request. Please try again.