diff --git a/CMakeLists.txt b/CMakeLists.txt index 5cdfb6ccd..528460e65 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -215,6 +215,8 @@ if(NOT GL_LIBRARY) set(GL_LIBRARY opengl32) elseif(NINTENDO_SWITCH) set(GL_LIBRARY EGL glapi drm_nouveau) + elseif(APPLE) + set(GL_LIBRARY "-framework OpenGL") else() set(GL_LIBRARY GL) endif() diff --git a/include/PR/os_libc.h b/include/PR/os_libc.h index 6ec0f4db8..79497b143 100644 --- a/include/PR/os_libc.h +++ b/include/PR/os_libc.h @@ -31,10 +31,14 @@ #define _OS_LIBC_H_ #include "os_pfs.h" +#include "platform.h" #ifndef PLATFORM_N64 #include #endif +#ifdef PLATFORM_OSX +#include +#endif #ifdef _LANGUAGE_C_PLUS_PLUS extern "C" { @@ -84,9 +88,13 @@ extern "C" { /* byte string operations */ +#ifndef PLATFORM_OSX extern void bcopy(const void *, void *, size_t); +#endif extern int bcmp(const void *, const void *, size_t); +#ifndef PLATFORM_OSX extern void bzero(void *, size_t); +#endif /* Printf */ diff --git a/port/src/libultra.c b/port/src/libultra.c index 465a1e62c..c2e22cdb8 100644 --- a/port/src/libultra.c +++ b/port/src/libultra.c @@ -6,6 +6,7 @@ #include #include #include +#include "platform.h" #include "system.h" #include "input.h" #include "video.h" @@ -466,6 +467,7 @@ OSIntMask osSetIntMask(OSIntMask mask) /* libc compatibility wrappers */ +#ifndef PLATFORM_OSX #ifndef HAVE_BZERO void bzero(void *ptr, size_t size) { @@ -479,6 +481,7 @@ void bcopy(const void *src, void *dst, size_t n) memcpy(dst, src, n); } #endif +#endif #ifndef HAVE_BCMP s32 bcmp(const void *s1, const void *s2, size_t n) diff --git a/src/include/platform.h b/src/include/platform.h index 176fd83db..dfa62eb0f 100644 --- a/src/include/platform.h +++ b/src/include/platform.h @@ -10,6 +10,10 @@ #elif defined(__linux__) #define PLATFORM_POSIX 1 #define PLATFORM_LINUX 1 +// add osx +#elif defined(__APPLE__) + #define PLATFORM_POSIX 1 + #define PLATFORM_OSX 1 #else // assume POSIX-compatible #define PLATFORM_POSIX 1