From 2e3e62a413d35eb8d8a64f6ed68881701bfb9bd9 Mon Sep 17 00:00:00 2001 From: LelixSuper Date: Sat, 12 Mar 2016 20:01:46 +0100 Subject: Raname all makefile files to "Makefile" I've renamed all makefile files to "Makefile" because they appear in the first files. --- templates/basic_test/Makefile | 202 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 templates/basic_test/Makefile (limited to 'templates/basic_test/Makefile') diff --git a/templates/basic_test/Makefile b/templates/basic_test/Makefile new file mode 100644 index 00000000..84fc24cb --- /dev/null +++ b/templates/basic_test/Makefile @@ -0,0 +1,202 @@ +#************************************************************************************************** +# +# raylib - Basic Test +# +# makefile to compile basic test for desktop platforms, Raspberry Pi and HTML5 (emscripten) +# +# Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com) +# +# This software is provided "as-is", without any express or implied warranty. In no event +# will the authors be held liable for any damages arising from the use of this software. +# +# Permission is granted to anyone to use this software for any purpose, including commercial +# applications, and to alter it and redistribute it freely, subject to the following restrictions: +# +# 1. The origin of this software must not be misrepresented; you must not claim that you +# wrote the original software. If you use this software in a product, an acknowledgment +# in the product documentation would be appreciated but is not required. +# +# 2. Altered source versions must be plainly marked as such, and must not be misrepresented +# as being the original software. +# +# 3. This notice may not be removed or altered from any source distribution. +# +#************************************************************************************************** + +# define raylib platform to compile for +# possible platforms: PLATFORM_DESKTOP PLATFORM_RPI PLATFORM_WEB +# WARNING: To compile to HTML5, code must be redesigned to use emscripten.h and emscripten_set_main_loop() +PLATFORM ?= PLATFORM_DESKTOP + +# determine PLATFORM_OS in case PLATFORM_DESKTOP selected +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + # No uname.exe on MinGW!, but OS=Windows_NT on Windows! ifeq ($(UNAME),Msys) -> Windows + ifeq ($(OS),Windows_NT) + PLATFORM_OS=WINDOWS + LIBPATH=win32 + else + UNAMEOS:=$(shell uname) + ifeq ($(UNAMEOS),Linux) + PLATFORM_OS=LINUX + LIBPATH=linux + else + ifeq ($(UNAMEOS),Darwin) + PLATFORM_OS=OSX + LIBPATH=osx + endif + endif + endif +endif + +# define compiler: gcc for C program, define as g++ for C++ +ifeq ($(PLATFORM),PLATFORM_WEB) + # define emscripten compiler + CC = emcc +else +ifeq ($(PLATFORM_OS),OSX) + # define llvm compiler for mac + CC = clang +else + # define default gcc compiler + CC = gcc +endif +endif + +# define compiler flags: +# -O2 defines optimization level +# -Wall turns on most, but not all, compiler warnings +# -std=c99 use standard C from 1999 revision +ifeq ($(PLATFORM),PLATFORM_RPI) + CFLAGS = -O2 -Wall -std=gnu99 -fgnu89-inline +else + CFLAGS = -O2 -Wall -std=c99 +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS = -O1 -Wall -std=c99 -s USE_GLFW=3 -s ASSERTIONS=1 --preload-file resources + #-s ALLOW_MEMORY_GROWTH=1 # to allow memory resizing + #-s TOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) +endif + +#CFLAGSEXTRA = -Wextra -Wmissing-prototypes -Wstrict-prototypes + +# define any directories containing required header files +ifeq ($(PLATFORM),PLATFORM_RPI) + INCLUDES = -I. -I../../src -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads +endif +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + # add standard directories for GNU/Linux + ifeq ($(PLATFORM_OS),LINUX) + INCLUDES = -I. -I../src -I/usr/local/include/raylib/ + else + INCLUDES = -I. -I../../src -IC:/raylib/raylib/src + # external libraries headers + # GLFW3 + INCLUDES += -I../../external/glfw3/include + # GLEW - Not required any more, replaced by GLAD + #INCLUDES += -I../external/glew/include + # OpenAL Soft + INCLUDES += -I../../external/openal_soft/include + endif +endif + +# define library paths containing required libs +ifeq ($(PLATFORM),PLATFORM_RPI) + LFLAGS = -L. -L../../src -L/opt/vc/lib +endif +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + # add standard directories for GNU/Linux + ifeq ($(PLATFORM_OS),LINUX) + LFLAGS = -L. -L../../src + else + LFLAGS = -L. -L../../src -LC:/raylib/raylib/src + # external libraries to link with + # GLFW3 + LFLAGS += -L../../external/glfw3/lib/$(LIBPATH) + ifneq ($(PLATFORM_OS),OSX) + # OpenAL Soft + LFLAGS += -L../../external/openal_soft/lib/$(LIBPATH) + # GLEW: Not used, replaced by GLAD + #LFLAGS += -L../../external/glew/lib/$(LIBPATH) + endif + endif +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_DESKTOP) + ifeq ($(PLATFORM_OS),LINUX) + # libraries for Debian GNU/Linux desktop compiling + # requires the following packages: + # libglfw3-dev libopenal-dev libglew-dev libegl1-mesa-dev + LIBS = -lraylib -lglfw3 -lGLEW -lGL -lopenal -lm -pthread -ldl + # on XWindow could require also below libraries, just uncomment + #LIBS += -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor + else + ifeq ($(PLATFORM_OS),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 +ifeq ($(PLATFORM),PLATFORM_RPI) + # libraries for Raspberry Pi compiling + # NOTE: OpenAL Soft library should be installed (libopenal1 package) + LIBS = -lraylib -lGLESv2 -lEGL -lpthread -lrt -lm -lbcm_host -lopenal +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + # just adjust the correct path to libraylib.bc + LIBS = C:/raylib/raylib/src/libraylib.bc +endif + +# define additional parameters and flags for windows +ifeq ($(PLATFORM_OS),WINDOWS) + # resources file contains windows exe icon + # -Wl,--subsystem,windows hides the console window + WINFLAGS = C:/raylib/raylib/src/resources -Wl,--subsystem,windows +endif + +ifeq ($(PLATFORM),PLATFORM_WEB) + EXT = .html +endif + +# typing 'make' will invoke the default target entry called 'all', +# in this case, the 'default' target entry is basic_test +all: basic_test + +# compile template - basic_test +basic_test: basic_test.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) $(WINFLAGS) + +# clean everything +clean: +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),OSX) + find . -type f -perm +ugo+x -delete + rm -f *.o + else + ifeq ($(PLATFORM_OS),LINUX) + find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -f + else + del *.o *.exe + endif + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + find . -type f -executable -delete + rm -f *.o +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + del *.o *.html *.js +endif + @echo Cleaning done + +# instead of defining every module one by one, we can define a pattern +# this pattern below will automatically compile every module defined on $(OBJS) +#%.exe : %.c +# $(CC) -o $@ $< $(CFLAGS) $(INCLUDES) $(LFLAGS) $(LIBS) -D$(PLATFORM) -- cgit v1.2.3 From 530e520727180d1ded6249ffd8cfac4814eae867 Mon Sep 17 00:00:00 2001 From: LelixSuper Date: Sun, 13 Mar 2016 14:01:12 +0100 Subject: Convert tabs to spaces when it is possible in Makefile files --- templates/basic_test/Makefile | 68 ++++++++++++++++++++++++++++--------------- 1 file changed, 45 insertions(+), 23 deletions(-) (limited to 'templates/basic_test/Makefile') diff --git a/templates/basic_test/Makefile b/templates/basic_test/Makefile index 84fc24cb..1256e170 100644 --- a/templates/basic_test/Makefile +++ b/templates/basic_test/Makefile @@ -84,18 +84,18 @@ ifeq ($(PLATFORM),PLATFORM_RPI) INCLUDES = -I. -I../../src -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads endif ifeq ($(PLATFORM),PLATFORM_DESKTOP) - # add standard directories for GNU/Linux + # add standard directories for GNU/Linux ifeq ($(PLATFORM_OS),LINUX) - INCLUDES = -I. -I../src -I/usr/local/include/raylib/ + INCLUDES = -I. -I../src -I/usr/local/include/raylib/ else - INCLUDES = -I. -I../../src -IC:/raylib/raylib/src - # external libraries headers - # GLFW3 - INCLUDES += -I../../external/glfw3/include - # GLEW - Not required any more, replaced by GLAD - #INCLUDES += -I../external/glew/include - # OpenAL Soft - INCLUDES += -I../../external/openal_soft/include + INCLUDES = -I. -I../../src -IC:/raylib/raylib/src + # external libraries headers + # GLFW3 + INCLUDES += -I../../external/glfw3/include + # GLEW - Not required any more, replaced by GLAD + #INCLUDES += -I../external/glew/include + # OpenAL Soft + INCLUDES += -I../../external/openal_soft/include endif endif @@ -104,20 +104,42 @@ ifeq ($(PLATFORM),PLATFORM_RPI) LFLAGS = -L. -L../../src -L/opt/vc/lib endif ifeq ($(PLATFORM),PLATFORM_DESKTOP) - # add standard directories for GNU/Linux + # add standard directories for GNU/Linux ifeq ($(PLATFORM_OS),LINUX) - LFLAGS = -L. -L../../src - else - LFLAGS = -L. -L../../src -LC:/raylib/raylib/src - # external libraries to link with - # GLFW3 - LFLAGS += -L../../external/glfw3/lib/$(LIBPATH) - ifneq ($(PLATFORM_OS),OSX) - # OpenAL Soft - LFLAGS += -L../../external/openal_soft/lib/$(LIBPATH) - # GLEW: Not used, replaced by GLAD - #LFLAGS += -L../../external/glew/lib/$(LIBPATH) - endif + LFLAGS = -L. -L../../src + else + LFLAGS = -L. -L../../src -LC:/raylib/raylib/src + # external libraries to link with + # GLFW3 + LFLAGS += -L../../external/glfw3/lib/$(LIBPATH) + ifneq ($(PLATFORM_OS),OSX) + # OpenAL Soft + LFLAGS += -L../../external/openal_soft/lib/$(LIBPATH) + # GLEW: Not used, replaced by GLAD + #LFLAGS += -L../../external/glew/lib/$(LIBPATH) + endif + endif +endif + +# define library paths containing required libs +ifeq ($(PLATFORM),PLATFORM_RPI) + LFLAGS = -L. -L../../src -L/opt/vc/lib +endif +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + # add standard directories for GNU/Linux + ifeq ($(PLATFORM_OS),LINUX) + LFLAGS = -L. -L../../src + else + LFLAGS = -L. -L../../src -LC:/raylib/raylib/src + # external libraries to link with + # GLFW3 + LFLAGS += -L../../external/glfw3/lib/$(LIBPATH) + ifneq ($(PLATFORM_OS),OSX) + # OpenAL Soft + LFLAGS += -L../../external/openal_soft/lib/$(LIBPATH) + # GLEW + LFLAGS += -L../../external/glew/lib/$(LIBPATH) + endif endif endif -- cgit v1.2.3 From 9e7a3b7017446c46e8ad128736a5979402cf09d7 Mon Sep 17 00:00:00 2001 From: LelixSuper Date: Sun, 13 Mar 2016 19:26:12 +0100 Subject: Remove GLEW library and uncomment other GNU/Linux dependences --- templates/basic_test/Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'templates/basic_test/Makefile') diff --git a/templates/basic_test/Makefile b/templates/basic_test/Makefile index 1256e170..835484f6 100644 --- a/templates/basic_test/Makefile +++ b/templates/basic_test/Makefile @@ -150,9 +150,8 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) # libraries for Debian GNU/Linux desktop compiling # requires the following packages: # libglfw3-dev libopenal-dev libglew-dev libegl1-mesa-dev - LIBS = -lraylib -lglfw3 -lGLEW -lGL -lopenal -lm -pthread -ldl - # on XWindow could require also below libraries, just uncomment - #LIBS += -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor + LIBS = -lraylib -lglfw3 -lGL -lopenal -lm -pthread -ldl -lX11 \ + -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor else ifeq ($(PLATFORM_OS),OSX) # libraries for OS X 10.9 desktop compiling -- cgit v1.2.3 From 565b1089bd6a4c97957c0c3df1a1ed2b829d2183 Mon Sep 17 00:00:00 2001 From: LelixSuper Date: Sun, 3 Apr 2016 15:58:44 +0200 Subject: Remove duplicate code --- templates/basic_test/Makefile | 22 ---------------------- 1 file changed, 22 deletions(-) (limited to 'templates/basic_test/Makefile') diff --git a/templates/basic_test/Makefile b/templates/basic_test/Makefile index 835484f6..1fda24a2 100644 --- a/templates/basic_test/Makefile +++ b/templates/basic_test/Makefile @@ -121,28 +121,6 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) endif endif -# define library paths containing required libs -ifeq ($(PLATFORM),PLATFORM_RPI) - LFLAGS = -L. -L../../src -L/opt/vc/lib -endif -ifeq ($(PLATFORM),PLATFORM_DESKTOP) - # add standard directories for GNU/Linux - ifeq ($(PLATFORM_OS),LINUX) - LFLAGS = -L. -L../../src - else - LFLAGS = -L. -L../../src -LC:/raylib/raylib/src - # external libraries to link with - # GLFW3 - LFLAGS += -L../../external/glfw3/lib/$(LIBPATH) - ifneq ($(PLATFORM_OS),OSX) - # OpenAL Soft - LFLAGS += -L../../external/openal_soft/lib/$(LIBPATH) - # GLEW - LFLAGS += -L../../external/glew/lib/$(LIBPATH) - endif - endif -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_DESKTOP) -- cgit v1.2.3 From f2f4079411472e835263a7a59ed58dba380ecca6 Mon Sep 17 00:00:00 2001 From: LelixSuper Date: Sun, 3 Apr 2016 16:05:23 +0200 Subject: Remove recipes of GLEW from Makefile (not used any more) --- templates/basic_test/Makefile | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'templates/basic_test/Makefile') diff --git a/templates/basic_test/Makefile b/templates/basic_test/Makefile index 1fda24a2..95b8cd15 100644 --- a/templates/basic_test/Makefile +++ b/templates/basic_test/Makefile @@ -92,8 +92,6 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) # external libraries headers # GLFW3 INCLUDES += -I../../external/glfw3/include - # GLEW - Not required any more, replaced by GLAD - #INCLUDES += -I../external/glew/include # OpenAL Soft INCLUDES += -I../../external/openal_soft/include endif @@ -115,8 +113,6 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifneq ($(PLATFORM_OS),OSX) # OpenAL Soft LFLAGS += -L../../external/openal_soft/lib/$(LIBPATH) - # GLEW: Not used, replaced by GLAD - #LFLAGS += -L../../external/glew/lib/$(LIBPATH) endif endif endif @@ -127,14 +123,14 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),LINUX) # libraries for Debian GNU/Linux desktop compiling # requires the following packages: - # libglfw3-dev libopenal-dev libglew-dev libegl1-mesa-dev + # libglfw3-dev libopenal-dev libegl1-mesa-dev LIBS = -lraylib -lglfw3 -lGL -lopenal -lm -pthread -ldl -lX11 \ -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor else ifeq ($(PLATFORM_OS),OSX) # libraries for OS X 10.9 desktop compiling # requires the following packages: - # libglfw3-dev libopenal-dev libglew-dev libegl1-mesa-dev + # libglfw3-dev libopenal-dev libegl1-mesa-dev LIBS = -lraylib -lglfw -framework OpenGL -framework OpenAl -framework Cocoa else # libraries for Windows desktop compiling -- cgit v1.2.3 From 93616157862ab9557c42494e23fc96d9d4de21d1 Mon Sep 17 00:00:00 2001 From: LelixSuper Date: Wed, 6 Apr 2016 13:21:29 +0200 Subject: Fix Makefile files I've added .PHONY targets and fixed "clean" recipe. --- templates/basic_test/Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'templates/basic_test/Makefile') diff --git a/templates/basic_test/Makefile b/templates/basic_test/Makefile index 95b8cd15..b08aacdf 100644 --- a/templates/basic_test/Makefile +++ b/templates/basic_test/Makefile @@ -23,6 +23,8 @@ # #************************************************************************************************** +.PHONY: all clean + # define raylib platform to compile for # possible platforms: PLATFORM_DESKTOP PLATFORM_RPI PLATFORM_WEB # WARNING: To compile to HTML5, code must be redesigned to use emscripten.h and emscripten_set_main_loop() @@ -176,7 +178,8 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) rm -f *.o else ifeq ($(PLATFORM_OS),LINUX) - find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -f + find . -type f -executable -delete + rm -f *.o else del *.o *.exe endif -- cgit v1.2.3 From f575935ace109149277a57f6216c5df1b94eeac9 Mon Sep 17 00:00:00 2001 From: Chris Hemingway Date: Sat, 14 May 2016 10:45:29 +0100 Subject: Fix glfw name on OSX and remove unused directory warning --- templates/basic_test/Makefile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'templates/basic_test/Makefile') diff --git a/templates/basic_test/Makefile b/templates/basic_test/Makefile index b08aacdf..b6fd44a7 100644 --- a/templates/basic_test/Makefile +++ b/templates/basic_test/Makefile @@ -108,7 +108,10 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),LINUX) LFLAGS = -L. -L../../src else - LFLAGS = -L. -L../../src -LC:/raylib/raylib/src + LFLAGS = -L. -L../../src + ifeq ($(PLATFORM_OS),WINDOWS) + LFLAGS += -LC:/raylib/raylib/src + endif # external libraries to link with # GLFW3 LFLAGS += -L../../external/glfw3/lib/$(LIBPATH) @@ -133,7 +136,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) # libraries for OS X 10.9 desktop compiling # requires the following packages: # libglfw3-dev libopenal-dev libegl1-mesa-dev - LIBS = -lraylib -lglfw -framework OpenGL -framework OpenAl -framework Cocoa + LIBS = -lraylib -lglfw3 -framework OpenGL -framework OpenAl -framework Cocoa else # libraries for Windows desktop compiling # NOTE: GLFW3 and OpenAL Soft libraries should be installed -- cgit v1.2.3