aboutsummaryrefslogtreecommitdiff
path: root/OSX.diff
diff options
context:
space:
mode:
authorratalaika <ratalaika@gmail.com>2014-11-22 00:13:09 +0100
committerratalaika <ratalaika@gmail.com>2014-11-22 00:13:09 +0100
commitab05ace3ce8b999ab665194e63b8b5d03a7787ac (patch)
treeb7657d2b85f38f53d03368fe88ef54420e83bad2 /OSX.diff
parent05ccc4fd42a9ff2dfd33f13be29734bb7531d65a (diff)
downloadraylib-ab05ace3ce8b999ab665194e63b8b5d03a7787ac.tar.gz
raylib-ab05ace3ce8b999ab665194e63b8b5d03a7787ac.zip
Added first version of OS X compilation support
Diffstat (limited to 'OSX.diff')
-rw-r--r--OSX.diff167
1 files changed, 167 insertions, 0 deletions
diff --git a/OSX.diff b/OSX.diff
new file mode 100644
index 00000000..59b6fa6a
--- /dev/null
+++ b/OSX.diff
@@ -0,0 +1,167 @@
+diff --git a/examples/makefile b/examples/makefile
+index 076c959..f445321 100644
+--- a/examples/makefile
++++ b/examples/makefile
+@@ -24,8 +24,8 @@
+ #**************************************************************************************************
+
+ # define raylib platform (by default, compile for RPI)
+-# Other possible platforms: PLATFORM_DESKTOP PLATFORM_DESKTOP_LINUX
+-PLATFORM ?= PLATFORM_RPI
++# Other possible platforms: PLATFORM_DESKTOP PLATFORM_DESKTOP_LINUX PLATFORM_DESKTOP_OSX
++PLATFORM ?= PLATFORM_DESKTOP_OSX
+
+ # define compiler: gcc for C program, define as g++ for C++
+ CC = gcc
+@@ -55,6 +55,14 @@ else
+ LFLAGS = -L. -L../src -L/opt/vc/lib
+ endif
+
++# define library paths containing required libs
++ifeq ($(PLATFORM),PLATFORM_DESKTOP_OSX)
++ LFLAGS = -L. -L../src -L../external/glfw3/lib/ -I../external/openal_soft/lib/
++else
++ LFLAGS = -L. -L../src
++endif
++
++
+ # define any libraries to link into executable
+ # if you want to link libraries (libname.so or libname.a), use the -lname
+ ifeq ($(PLATFORM),PLATFORM_RPI)
+@@ -68,11 +76,18 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP_LINUX)
+ # libglfw3-dev libopenal-dev libglew-dev libegl1-mesa-dev
+ LIBS = -lraylib -lglfw -lGLEW -lGL -lopenal
+ else
++ifeq ($(PLATFORM),PLATFORM_DESKTOP_OSX)
++ # libraries for OS X 10.9 desktop compiling
++ # requires the following packages:
++ # libglfw3-dev libopenal-dev libglew-dev libegl1-mesa-dev
++ LIBS = -lraylib -lglfw -framework OpenGL -framework OpenAl -framework Cocoa
++else
+ # libraries for Windows desktop compiling
+ # NOTE: GLFW3 and OpenAL Soft libraries should be installed
+ LIBS = -lraylib -lglfw3 -lglew32 -lopengl32 -lopenal32 -lgdi32
+ endif
+ endif
++endif
+
+ # define additional parameters and flags for windows
+ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
+@@ -254,9 +269,13 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP_LINUX)
+ find . -type f -executable -delete
+ rm -f *.o
+ else
++ifeq ($(PLATFORM),PLATFORM_DESKTOP_OSX)
++ rm -f *.o
++else
+ del *.o *.exe
+ endif
+ endif
++endif
+ @echo Cleaning done
+
+ # instead of defining every module one by one, we can define a pattern
+diff --git a/examples/textures_logo_raylib.c b/examples/textures_logo_raylib.c
+index f4aeb73..b56f5f0 100644
+--- a/examples/textures_logo_raylib.c
++++ b/examples/textures_logo_raylib.c
+@@ -21,7 +21,7 @@ int main()
+ InitWindow(screenWidth, screenHeight, "raylib [textures] example - texture loading and drawing");
+
+ // NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
+- Texture2D texture = LoadTexture("resources/raylib_logo.png"); // Texture loading
++ Texture2D texture = LoadTexture("./resources/raylib_logo.png"); // Texture loading
+ //---------------------------------------------------------------------------------------
+
+ // Main game loop
+diff --git a/src/makefile b/src/makefile
+index 0c078e8..780aa16 100644
+--- a/src/makefile
++++ b/src/makefile
+@@ -24,8 +24,8 @@
+ #**************************************************************************************************
+
+ # define raylib platform (by default, compile for RPI)
+-# Other possible platforms: PLATFORM_DESKTOP PLATFORM_DESKTOP_LINUX
+-PLATFORM ?= PLATFORM_RPI
++# Other possible platforms: PLATFORM_DESKTOP PLATFORM_DESKTOP_LINUX PLATFORM_DESKTOP_OSX
++PLATFORM ?= PLATFORM_DESKTOP_OSX
+
+ # define raylib graphics api depending on selected platform
+ ifeq ($(PLATFORM),PLATFORM_RPI)
+@@ -57,7 +57,7 @@ endif
+ ifeq ($(PLATFORM),PLATFORM_RPI)
+ INCLUDES = -I. -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads
+ else
+- INCLUDES = -I.
++ INCLUDES = -I. -I../external/glfw3/include/ -I../external/openal_soft/include/
+ endif
+
+ # define all object files required
+@@ -124,9 +124,13 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP_LINUX)
+ find . -type f -executable -delete
+ rm -f *.o libraylib.a
+ else
++ifeq ($(PLATFORM),PLATFORM_DESKTOP_OSX)
++ rm -f *.o libraylib.a
++else
+ del *.o libraylib.a
+ endif
+ endif
++endif
+ @echo Cleaning done
+
+ # instead of defining every module one by one, we can define a pattern
+diff --git a/src/rlgl.c b/src/rlgl.c
+index 8f1a66a..865281a 100644
+--- a/src/rlgl.c
++++ b/src/rlgl.c
+@@ -32,13 +32,23 @@
+ #include <stdlib.h> // Declares malloc() and free() for memory management, rand()
+
+ #if defined(GRAPHICS_API_OPENGL_11)
+- #include <GL/gl.h> // Basic OpenGL include
++ #ifdef __APPLE__
++ #include <OpenGL/gl.h>
++ #include <OpenGL/glu.h>
++ #include <GLUT/glut.h>
++ #else
++ #include <GL/gl.h> // Basic OpenGL include
++ #endif
+ #endif
+
+ #if defined(GRAPHICS_API_OPENGL_33)
+ #define GLEW_STATIC
+- #include <GL/glew.h> // Extensions loading lib
+- //#include "glad.h" // TODO: Other extensions loading lib? --> REVIEW
++ #ifdef __APPLE__
++ #include <OpenGL/gl3.h>
++ #else
++ #include <GL/glew.h> // Extensions loading lib
++ //#include "glad.h" // TODO: Other extensions loading lib? --> REVIEW
++ #endif
+ #endif
+
+ #if defined(GRAPHICS_API_OPENGL_ES2)
+diff --git a/src/utils.c b/src/utils.c
+index b511211..26a4406 100644
+--- a/src/utils.c
++++ b/src/utils.c
+@@ -40,7 +40,7 @@
+ #include <stdarg.h> // Used for functions with variable number of parameters (TraceLog())
+ //#include <string.h> // String management functions: strlen(), strrchr(), strcmp()
+
+-#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI)
++#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI) || defined(PLATFORM_DESKTOP_OSX)
+ #define STB_IMAGE_WRITE_IMPLEMENTATION
+ #include "stb_image_write.h" // Create PNG file
+ #endif
+@@ -107,7 +107,7 @@ unsigned char *DecompressData(const unsigned char *data, unsigned long compSize,
+ return pUncomp;
+ }
+
+-#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI)
++#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_RPI) || defined(PLATFORM_DESKTOP_OSX)
+ // Creates a bitmap (BMP) file from an array of pixel data
+ // NOTE: This function is not explicitly available to raylib users
+ void WriteBitmap(const char *fileName, unsigned char *imgData, int width, int height)