From 97054e4e0f2293e1984c923d45fab1d576370549 Mon Sep 17 00:00:00 2001 From: Ray Date: Thu, 6 Feb 2020 18:07:25 +0100 Subject: [PATCH] Review ALL games to raylib 3.0 --- examples/Makefile | 13 +++--- games/Makefile | 50 ++++++++++++--------- games/cat_vs_roomba/Makefile | 60 +++++++++++++++----------- games/cat_vs_roomba/roomba.c | 5 +++ games/cat_vs_roomba/screens/screens.h | 10 ++--- games/drturtle/Makefile | 60 +++++++++++++++----------- games/just_do/Makefile | 60 +++++++++++++++----------- games/koala_seasons/Makefile | 60 +++++++++++++++----------- games/light_my_ritual/Makefile | 60 +++++++++++++++----------- games/repair/Makefile | 16 +++---- games/repair/repair.c | 17 +++----- games/repair/resources/makeup.png | Bin 21801 -> 0 bytes games/repair/resources/qmark.png | Bin 6500 -> 7491 bytes games/repair/screens/screen_ending.c | 2 +- games/repair/screens/screen_logo.c | 8 ++-- games/repair/screens/screen_title.c | 6 +-- games/repair/screens/screens.h | 9 ---- games/skully_escape/Makefile | 60 +++++++++++++++----------- games/transmission/Makefile | 60 +++++++++++++++----------- games/wave_collector/Makefile | 60 +++++++++++++++----------- templates/advance_game/Makefile | 16 +++---- templates/simple_game/Makefile | 13 +++--- templates/standard_game/Makefile | 13 +++--- 23 files changed, 364 insertions(+), 294 deletions(-) delete mode 100644 games/repair/resources/makeup.png diff --git a/examples/Makefile b/examples/Makefile index 536922d0..9be9dd56 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -205,11 +205,6 @@ endif # Additional flags for compiler (if desired) #CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes ifeq ($(PLATFORM),PLATFORM_DESKTOP) - ifeq ($(PLATFORM_OS),WINDOWS) - # resource file contains windows executable icon and properties - # -Wl,--subsystem,windows hides the console window - CFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data -Wl,--subsystem,windows - endif ifeq ($(PLATFORM_OS),LINUX) ifeq ($(RAYLIB_LIBTYPE),STATIC) CFLAGS += -D_DEFAULT_SOURCE @@ -277,6 +272,14 @@ endif LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif ifeq ($(PLATFORM_OS),BSD) # Consider -L$(RAYLIB_INSTALL_PATH) LDFLAGS += -L. -Lsrc -L/usr/local/lib diff --git a/games/Makefile b/games/Makefile index 9b06cc0a..0d44b2dc 100644 --- a/games/Makefile +++ b/games/Makefile @@ -2,7 +2,7 @@ # # raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5 # -# Copyright (c) 2013-2019 Ramon Santamaria (@raysan5) +# Copyright (c) 2013-2020 Ramon Santamaria (@raysan5) # # 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. @@ -25,8 +25,8 @@ # Define required raylib variables PROJECT_NAME ?= raylib_examples -RAYLIB_VERSION ?= 2.5.0 -RAYLIB_API_VERSION ?= 2 +RAYLIB_VERSION ?= 3.0.0 +RAYLIB_API_VERSION ?= 3 RAYLIB_PATH ?= .. # Define default options @@ -115,13 +115,12 @@ endif ifeq ($(PLATFORM),PLATFORM_WEB) # Emscripten required variables - EMSDK_PATH ?= D:/emsdk - EMSCRIPTEN_VERSION ?= 1.38.31 - CLANG_VERSION = e$(EMSCRIPTEN_VERSION)_64bit - PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64 - NODE_VERSION = 8.9.1_64bit - export PATH = $(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH) - EMSCRIPTEN = $(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION) + EMSDK_PATH ?= C:/emsdk + EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/fastcomp/emscripten + CLANG_PATH = $(EMSDK_PATH)/fastcomp/bin + PYTHON_PATH = $(EMSDK_PATH)/python/2.7.13.1_64bit/python-2.7.13.amd64 + NODE_PATH = $(EMSDK_PATH)/node/12.9.1_64bit/bin + export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH);C:\raylib\MinGW\bin:$$(PATH) endif # Define raylib release directory for compiled library. @@ -165,7 +164,7 @@ ifeq ($(PLATFORM),PLATFORM_RPI) endif ifeq ($(PLATFORM),PLATFORM_WEB) # HTML5 emscripten compiler - # WARNING: To compile to HTML5, code must be redesigned + # WARNING: To compile to HTML5, code must be redesigned # to use emscripten.h and emscripten_set_main_loop() CC = emcc endif @@ -188,10 +187,19 @@ endif # -std=gnu99 defines C language mode (GNU C from 1999 revision) # -Wno-missing-braces ignore invalid warning (GCC bug 53119) # -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec -CFLAGS += -O1 -s -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces +CFLAGS += -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces ifeq ($(BUILD_MODE),DEBUG) CFLAGS += -g + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -s ASSERTIONS=1 --profiling + endif +else + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -Os + else + CFLAGS += -s -O1 + endif endif # Additional flags for compiler (if desired) @@ -200,7 +208,10 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),WINDOWS) # resource file contains windows executable icon and properties # -Wl,--subsystem,windows hides the console window - CFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data -Wl,--subsystem,windows + CFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + ifeq ($(BUILD_MODE), RELEASE) + CFLAGS += -Wl,--subsystem,windows + endif endif ifeq ($(PLATFORM_OS),LINUX) ifeq ($(RAYLIB_LIBTYPE),STATIC) @@ -230,10 +241,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB) # --profiling # include information for code profiling # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) # --preload-file resources # specify a resources folder for data compilation - CFLAGS += -Os -s USE_GLFW=3 - ifeq ($(BUILD_MODE), DEBUG) - CFLAGS += -s ASSERTIONS=1 --profiling - endif + CFLAGS += -s USE_GLFW=3 # Define a custom shell .html and output extension CFLAGS += --shell-file $(RAYLIB_PATH)/src/shell.html @@ -296,12 +304,12 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) # Libraries for Debian GNU/Linux desktop compiling # NOTE: Required packages: libegl1-mesa-dev LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt - + # On X11 requires also below libraries LDLIBS += -lX11 # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor - + # On Wayland windowing system, additional libraries requires ifeq ($(USE_WAYLAND_DISPLAY),TRUE) LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon @@ -314,7 +322,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),OSX) # Libraries for OSX 10.9 desktop compiling # NOTE: Required packages: libopenal-dev libegl1-mesa-dev - LDLIBS = -lraylib -framework OpenGL -framework OpenAL -framework Cocoa + LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo endif ifeq ($(PLATFORM_OS),BSD) # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling @@ -372,7 +380,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) del *.o *.exe /s endif 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 -fv + find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable|x-pie-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -fv endif ifeq ($(PLATFORM_OS),OSX) find . -type f -perm +ugo+x -delete diff --git a/games/cat_vs_roomba/Makefile b/games/cat_vs_roomba/Makefile index 00041d1d..03cd56ff 100644 --- a/games/cat_vs_roomba/Makefile +++ b/games/cat_vs_roomba/Makefile @@ -2,7 +2,7 @@ # # raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5 # -# Copyright (c) 2013-2019 Ramon Santamaria (@raysan5) +# Copyright (c) 2013-2020 Ramon Santamaria (@raysan5) # # 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. @@ -25,8 +25,8 @@ # Define required raylib variables PROJECT_NAME ?= roomba -RAYLIB_VERSION ?= 2.5.0 -RAYLIB_API_VERSION ?= 2 +RAYLIB_VERSION ?= 3.0.0 +RAYLIB_API_VERSION ?= 3 RAYLIB_PATH ?= C:\GitHub\raylib # Define default options @@ -115,13 +115,12 @@ endif ifeq ($(PLATFORM),PLATFORM_WEB) # Emscripten required variables - EMSDK_PATH ?= C:/emsdk - EMSCRIPTEN_VERSION ?= 1.38.31 - CLANG_VERSION = e$(EMSCRIPTEN_VERSION)_64bit - PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64 - NODE_VERSION = 8.9.1_64bit - export PATH = $(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH) - EMSCRIPTEN = $(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION) + EMSDK_PATH ?= C:/emsdk + EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/fastcomp/emscripten + CLANG_PATH = $(EMSDK_PATH)/fastcomp/bin + PYTHON_PATH = $(EMSDK_PATH)/python/2.7.13.1_64bit/python-2.7.13.amd64 + NODE_PATH = $(EMSDK_PATH)/node/12.9.1_64bit/bin + export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH);C:\raylib\MinGW\bin:$$(PATH) endif # Define raylib release directory for compiled library. @@ -165,7 +164,7 @@ ifeq ($(PLATFORM),PLATFORM_RPI) endif ifeq ($(PLATFORM),PLATFORM_WEB) # HTML5 emscripten compiler - # WARNING: To compile to HTML5, code must be redesigned + # WARNING: To compile to HTML5, code must be redesigned # to use emscripten.h and emscripten_set_main_loop() CC = emcc endif @@ -188,20 +187,24 @@ endif # -std=gnu99 defines C language mode (GNU C from 1999 revision) # -Wno-missing-braces ignore invalid warning (GCC bug 53119) # -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec -CFLAGS += -O1 -s -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces +CFLAGS += -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces ifeq ($(BUILD_MODE),DEBUG) CFLAGS += -g + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -s ASSERTIONS=1 --profiling + endif +else + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -Os + else + CFLAGS += -s -O1 + endif endif # Additional flags for compiler (if desired) #CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes ifeq ($(PLATFORM),PLATFORM_DESKTOP) - ifeq ($(PLATFORM_OS),WINDOWS) - # resource file contains windows executable icon and properties - # -Wl,--subsystem,windows hides the console window - CFLAGS += $(RAYLIB_PATH)/raylib.rc.data -Wl,--subsystem,windows - endif ifeq ($(PLATFORM_OS),LINUX) ifeq ($(RAYLIB_LIBTYPE),STATIC) CFLAGS += -D_DEFAULT_SOURCE @@ -230,10 +233,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB) # --profiling # include information for code profiling # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) # --preload-file resources # specify a resources folder for data compilation - CFLAGS += -Os -s USE_GLFW=3 -s TOTAL_MEMORY=16777216 --preload-file resources - ifeq ($(BUILD_MODE), DEBUG) - CFLAGS += -s ASSERTIONS=1 --profiling - endif + CFLAGS += -s USE_GLFW=3 -s TOTAL_MEMORY=16777216 --preload-file resources # Define a custom shell .html and output extension CFLAGS += --shell-file $(RAYLIB_PATH)/src/shell.html @@ -267,6 +267,14 @@ endif LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif ifeq ($(PLATFORM_OS),BSD) # Consider -L$(RAYLIB_INSTALL_PATH) LDFLAGS += -L. -Lsrc -L/usr/local/lib @@ -290,18 +298,18 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) # NOTE: WinMM library required to set high-res timer resolution LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm # Required for physac examples - #LDLIBS += -static -lpthread + LDLIBS += -static -lpthread endif ifeq ($(PLATFORM_OS),LINUX) # Libraries for Debian GNU/Linux desktop compiling # NOTE: Required packages: libegl1-mesa-dev LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt - + # On X11 requires also below libraries LDLIBS += -lX11 # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor - + # On Wayland windowing system, additional libraries requires ifeq ($(USE_WAYLAND_DISPLAY),TRUE) LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon @@ -314,7 +322,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),OSX) # Libraries for OSX 10.9 desktop compiling # NOTE: Required packages: libopenal-dev libegl1-mesa-dev - LDLIBS = -lraylib -framework OpenGL -framework OpenAL -framework Cocoa + LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo endif ifeq ($(PLATFORM_OS),BSD) # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling @@ -380,7 +388,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) del *.o *.exe /s endif 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 -fv + find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable|x-pie-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -fv endif ifeq ($(PLATFORM_OS),OSX) find . -type f -perm +ugo+x -delete diff --git a/games/cat_vs_roomba/roomba.c b/games/cat_vs_roomba/roomba.c index 4a27cbcc..303e7127 100644 --- a/games/cat_vs_roomba/roomba.c +++ b/games/cat_vs_roomba/roomba.c @@ -19,6 +19,11 @@ #include #endif +GameScreen currentScreen = 0; +Font font = { 0 }; +Font font2 = { 0 }; +Music music = { 0 }; +Sound fxCoin = { 0 }; //---------------------------------------------------------------------------------- // Global Variables Definition (local to this module) //---------------------------------------------------------------------------------- diff --git a/games/cat_vs_roomba/screens/screens.h b/games/cat_vs_roomba/screens/screens.h index 0ad4f9af..b15c9b54 100644 --- a/games/cat_vs_roomba/screens/screens.h +++ b/games/cat_vs_roomba/screens/screens.h @@ -36,11 +36,11 @@ typedef enum GameScreen { LOGO = 0, TITLE, OPTIONS, GAMEPLAY, ENDING } GameScree //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- -GameScreen currentScreen; -Font font; -Font font2; -Music music; -Sound fxCoin; +extern GameScreen currentScreen; +extern Font font; +extern Font font2; +extern Music music; +extern Sound fxCoin; int score; int result; // 0-Loose, 1-Win diff --git a/games/drturtle/Makefile b/games/drturtle/Makefile index 5368393f..ce272e47 100644 --- a/games/drturtle/Makefile +++ b/games/drturtle/Makefile @@ -2,7 +2,7 @@ # # raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5 # -# Copyright (c) 2013-2019 Ramon Santamaria (@raysan5) +# Copyright (c) 2013-2020 Ramon Santamaria (@raysan5) # # 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. @@ -25,8 +25,8 @@ # Define required raylib variables PROJECT_NAME ?= drturtle -RAYLIB_VERSION ?= 2.5.0 -RAYLIB_API_VERSION ?= 2 +RAYLIB_VERSION ?= 3.0.0 +RAYLIB_API_VERSION ?= 3 RAYLIB_PATH ?= C:\GitHub\raylib # Define default options @@ -115,13 +115,12 @@ endif ifeq ($(PLATFORM),PLATFORM_WEB) # Emscripten required variables - EMSDK_PATH ?= C:/emsdk - EMSCRIPTEN_VERSION ?= 1.38.32 - CLANG_VERSION = e$(EMSCRIPTEN_VERSION)_64bit - PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64 - NODE_VERSION = 8.9.1_64bit - export PATH = $(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH) - EMSCRIPTEN = $(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION) + EMSDK_PATH ?= C:/emsdk + EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/fastcomp/emscripten + CLANG_PATH = $(EMSDK_PATH)/fastcomp/bin + PYTHON_PATH = $(EMSDK_PATH)/python/2.7.13.1_64bit/python-2.7.13.amd64 + NODE_PATH = $(EMSDK_PATH)/node/12.9.1_64bit/bin + export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH);C:\raylib\MinGW\bin:$$(PATH) endif # Define raylib release directory for compiled library. @@ -165,7 +164,7 @@ ifeq ($(PLATFORM),PLATFORM_RPI) endif ifeq ($(PLATFORM),PLATFORM_WEB) # HTML5 emscripten compiler - # WARNING: To compile to HTML5, code must be redesigned + # WARNING: To compile to HTML5, code must be redesigned # to use emscripten.h and emscripten_set_main_loop() CC = emcc endif @@ -188,20 +187,24 @@ endif # -std=gnu99 defines C language mode (GNU C from 1999 revision) # -Wno-missing-braces ignore invalid warning (GCC bug 53119) # -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec -CFLAGS += -O1 -s -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces +CFLAGS += -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces ifeq ($(BUILD_MODE),DEBUG) CFLAGS += -g + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -s ASSERTIONS=1 --profiling + endif +else + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -Os + else + CFLAGS += -s -O1 + endif endif # Additional flags for compiler (if desired) #CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes ifeq ($(PLATFORM),PLATFORM_DESKTOP) - ifeq ($(PLATFORM_OS),WINDOWS) - # resource file contains windows executable icon and properties - # -Wl,--subsystem,windows hides the console window - CFLAGS += $(RAYLIB_PATH)/raylib.rc.data -Wl,--subsystem,windows - endif ifeq ($(PLATFORM_OS),LINUX) ifeq ($(RAYLIB_LIBTYPE),STATIC) CFLAGS += -D_DEFAULT_SOURCE @@ -230,10 +233,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB) # --profiling # include information for code profiling # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) # --preload-file resources # specify a resources folder for data compilation - CFLAGS += -Os -s USE_GLFW=3 -s TOTAL_MEMORY=67108864 --preload-file resources - ifeq ($(BUILD_MODE), DEBUG) - CFLAGS += -s ASSERTIONS=1 --profiling - endif + CFLAGS += -s USE_GLFW=3 -s TOTAL_MEMORY=67108864 --preload-file resources # Define a custom shell .html and output extension CFLAGS += --shell-file $(RAYLIB_PATH)/src/shell.html @@ -267,6 +267,14 @@ endif LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif ifeq ($(PLATFORM_OS),BSD) # Consider -L$(RAYLIB_INSTALL_PATH) LDFLAGS += -L. -Lsrc -L/usr/local/lib @@ -290,18 +298,18 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) # NOTE: WinMM library required to set high-res timer resolution LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm # Required for physac examples - #LDLIBS += -static -lpthread + LDLIBS += -static -lpthread endif ifeq ($(PLATFORM_OS),LINUX) # Libraries for Debian GNU/Linux desktop compiling # NOTE: Required packages: libegl1-mesa-dev LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt - + # On X11 requires also below libraries LDLIBS += -lX11 # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor - + # On Wayland windowing system, additional libraries requires ifeq ($(USE_WAYLAND_DISPLAY),TRUE) LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon @@ -314,7 +322,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),OSX) # Libraries for OSX 10.9 desktop compiling # NOTE: Required packages: libopenal-dev libegl1-mesa-dev - LDLIBS = -lraylib -framework OpenGL -framework OpenAL -framework Cocoa + LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo endif ifeq ($(PLATFORM_OS),BSD) # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling @@ -359,7 +367,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) del *.o *.exe /s endif 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 -fv + find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable|x-pie-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -fv endif ifeq ($(PLATFORM_OS),OSX) find . -type f -perm +ugo+x -delete diff --git a/games/just_do/Makefile b/games/just_do/Makefile index ee4de401..7e463174 100644 --- a/games/just_do/Makefile +++ b/games/just_do/Makefile @@ -2,7 +2,7 @@ # # raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5 # -# Copyright (c) 2013-2019 Ramon Santamaria (@raysan5) +# Copyright (c) 2013-2020 Ramon Santamaria (@raysan5) # # 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. @@ -25,8 +25,8 @@ # Define required raylib variables PROJECT_NAME ?= just_do -RAYLIB_VERSION ?= 2.5.0 -RAYLIB_API_VERSION ?= 2 +RAYLIB_VERSION ?= 3.0.0 +RAYLIB_API_VERSION ?= 3 RAYLIB_PATH ?= C:\GitHub\raylib # Define default options @@ -115,13 +115,12 @@ endif ifeq ($(PLATFORM),PLATFORM_WEB) # Emscripten required variables - EMSDK_PATH ?= C:/emsdk - EMSCRIPTEN_VERSION ?= 1.38.31 - CLANG_VERSION = e$(EMSCRIPTEN_VERSION)_64bit - PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64 - NODE_VERSION = 8.9.1_64bit - export PATH = $(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH) - EMSCRIPTEN = $(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION) + EMSDK_PATH ?= C:/emsdk + EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/fastcomp/emscripten + CLANG_PATH = $(EMSDK_PATH)/fastcomp/bin + PYTHON_PATH = $(EMSDK_PATH)/python/2.7.13.1_64bit/python-2.7.13.amd64 + NODE_PATH = $(EMSDK_PATH)/node/12.9.1_64bit/bin + export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH);C:\raylib\MinGW\bin:$$(PATH) endif # Define raylib release directory for compiled library. @@ -165,7 +164,7 @@ ifeq ($(PLATFORM),PLATFORM_RPI) endif ifeq ($(PLATFORM),PLATFORM_WEB) # HTML5 emscripten compiler - # WARNING: To compile to HTML5, code must be redesigned + # WARNING: To compile to HTML5, code must be redesigned # to use emscripten.h and emscripten_set_main_loop() CC = emcc endif @@ -188,20 +187,24 @@ endif # -std=gnu99 defines C language mode (GNU C from 1999 revision) # -Wno-missing-braces ignore invalid warning (GCC bug 53119) # -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec -CFLAGS += -O1 -s -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces +CFLAGS += -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces ifeq ($(BUILD_MODE),DEBUG) CFLAGS += -g + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -s ASSERTIONS=1 --profiling + endif +else + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -Os + else + CFLAGS += -s -O1 + endif endif # Additional flags for compiler (if desired) #CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes ifeq ($(PLATFORM),PLATFORM_DESKTOP) - ifeq ($(PLATFORM_OS),WINDOWS) - # resource file contains windows executable icon and properties - # -Wl,--subsystem,windows hides the console window - CFLAGS += $(RAYLIB_PATH)/raylib.rc.data -Wl,--subsystem,windows - endif ifeq ($(PLATFORM_OS),LINUX) ifeq ($(RAYLIB_LIBTYPE),STATIC) CFLAGS += -D_DEFAULT_SOURCE @@ -230,10 +233,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB) # --profiling # include information for code profiling # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) # --preload-file resources # specify a resources folder for data compilation - CFLAGS += -Os -s USE_GLFW=3 -s TOTAL_MEMORY=16777216 --preload-file resources - ifeq ($(BUILD_MODE), DEBUG) - CFLAGS += -s ASSERTIONS=1 --profiling - endif + CFLAGS += -s USE_GLFW=3 -s TOTAL_MEMORY=67108864 --preload-file resources # Define a custom shell .html and output extension CFLAGS += --shell-file $(RAYLIB_PATH)/src/shell.html @@ -267,6 +267,14 @@ endif LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif ifeq ($(PLATFORM_OS),BSD) # Consider -L$(RAYLIB_INSTALL_PATH) LDFLAGS += -L. -Lsrc -L/usr/local/lib @@ -290,18 +298,18 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) # NOTE: WinMM library required to set high-res timer resolution LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm # Required for physac examples - #LDLIBS += -static -lpthread + LDLIBS += -static -lpthread endif ifeq ($(PLATFORM_OS),LINUX) # Libraries for Debian GNU/Linux desktop compiling # NOTE: Required packages: libegl1-mesa-dev LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt - + # On X11 requires also below libraries LDLIBS += -lX11 # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor - + # On Wayland windowing system, additional libraries requires ifeq ($(USE_WAYLAND_DISPLAY),TRUE) LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon @@ -314,7 +322,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),OSX) # Libraries for OSX 10.9 desktop compiling # NOTE: Required packages: libopenal-dev libegl1-mesa-dev - LDLIBS = -lraylib -framework OpenGL -framework OpenAL -framework Cocoa + LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo endif ifeq ($(PLATFORM_OS),BSD) # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling @@ -387,7 +395,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) del *.o *.exe /s endif 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 -fv + find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable|x-pie-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -fv endif ifeq ($(PLATFORM_OS),OSX) find . -type f -perm +ugo+x -delete diff --git a/games/koala_seasons/Makefile b/games/koala_seasons/Makefile index fea4437d..18690fe6 100644 --- a/games/koala_seasons/Makefile +++ b/games/koala_seasons/Makefile @@ -2,7 +2,7 @@ # # raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5 # -# Copyright (c) 2013-2019 Ramon Santamaria (@raysan5) +# Copyright (c) 2013-2020 Ramon Santamaria (@raysan5) # # 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. @@ -25,8 +25,8 @@ # Define required raylib variables PROJECT_NAME ?= koala_seasons -RAYLIB_VERSION ?= 2.5.0 -RAYLIB_API_VERSION ?= 2 +RAYLIB_VERSION ?= 3.0.0 +RAYLIB_API_VERSION ?= 3 RAYLIB_PATH ?= C:\GitHub\raylib # Define default options @@ -115,13 +115,12 @@ endif ifeq ($(PLATFORM),PLATFORM_WEB) # Emscripten required variables - EMSDK_PATH ?= C:/emsdk - EMSCRIPTEN_VERSION ?= 1.38.32 - CLANG_VERSION = e$(EMSCRIPTEN_VERSION)_64bit - PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64 - NODE_VERSION = 8.9.1_64bit - export PATH = $(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH) - EMSCRIPTEN = $(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION) + EMSDK_PATH ?= C:/emsdk + EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/fastcomp/emscripten + CLANG_PATH = $(EMSDK_PATH)/fastcomp/bin + PYTHON_PATH = $(EMSDK_PATH)/python/2.7.13.1_64bit/python-2.7.13.amd64 + NODE_PATH = $(EMSDK_PATH)/node/12.9.1_64bit/bin + export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH);C:\raylib\MinGW\bin:$$(PATH) endif # Define raylib release directory for compiled library. @@ -165,7 +164,7 @@ ifeq ($(PLATFORM),PLATFORM_RPI) endif ifeq ($(PLATFORM),PLATFORM_WEB) # HTML5 emscripten compiler - # WARNING: To compile to HTML5, code must be redesigned + # WARNING: To compile to HTML5, code must be redesigned # to use emscripten.h and emscripten_set_main_loop() CC = emcc endif @@ -188,20 +187,24 @@ endif # -std=gnu99 defines C language mode (GNU C from 1999 revision) # -Wno-missing-braces ignore invalid warning (GCC bug 53119) # -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec -CFLAGS += -O1 -s -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces +CFLAGS += -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces ifeq ($(BUILD_MODE),DEBUG) CFLAGS += -g + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -s ASSERTIONS=1 --profiling + endif +else + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -Os + else + CFLAGS += -s -O1 + endif endif # Additional flags for compiler (if desired) #CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes ifeq ($(PLATFORM),PLATFORM_DESKTOP) - ifeq ($(PLATFORM_OS),WINDOWS) - # resource file contains windows executable icon and properties - # -Wl,--subsystem,windows hides the console window - CFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data -Wl,--subsystem,windows - endif ifeq ($(PLATFORM_OS),LINUX) ifeq ($(RAYLIB_LIBTYPE),STATIC) CFLAGS += -D_DEFAULT_SOURCE @@ -230,10 +233,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB) # --profiling # include information for code profiling # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) # --preload-file resources # specify a resources folder for data compilation - CFLAGS += -Os -s USE_GLFW=3 -s TOTAL_MEMORY=67108864 --preload-file resources - ifeq ($(BUILD_MODE), DEBUG) - CFLAGS += -s ASSERTIONS=1 --profiling - endif + CFLAGS += -s USE_GLFW=3 -s TOTAL_MEMORY=67108864 --preload-file resources # Define a custom shell .html and output extension CFLAGS += --shell-file $(RAYLIB_PATH)/src/shell.html @@ -267,6 +267,14 @@ endif LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif ifeq ($(PLATFORM_OS),BSD) # Consider -L$(RAYLIB_INSTALL_PATH) LDFLAGS += -L. -Lsrc -L/usr/local/lib @@ -290,18 +298,18 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) # NOTE: WinMM library required to set high-res timer resolution LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm # Required for physac examples - #LDLIBS += -static -lpthread + LDLIBS += -static -lpthread endif ifeq ($(PLATFORM_OS),LINUX) # Libraries for Debian GNU/Linux desktop compiling # NOTE: Required packages: libegl1-mesa-dev LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt - + # On X11 requires also below libraries LDLIBS += -lX11 # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor - + # On Wayland windowing system, additional libraries requires ifeq ($(USE_WAYLAND_DISPLAY),TRUE) LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon @@ -314,7 +322,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),OSX) # Libraries for OSX 10.9 desktop compiling # NOTE: Required packages: libopenal-dev libegl1-mesa-dev - LDLIBS = -lraylib -framework OpenGL -framework OpenAL -framework Cocoa + LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo endif ifeq ($(PLATFORM_OS),BSD) # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling @@ -380,7 +388,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) del *.o *.exe /s endif 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 -fv + find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable|x-pie-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -fv endif ifeq ($(PLATFORM_OS),OSX) find . -type f -perm +ugo+x -delete diff --git a/games/light_my_ritual/Makefile b/games/light_my_ritual/Makefile index 7c6a1438..5afa857d 100644 --- a/games/light_my_ritual/Makefile +++ b/games/light_my_ritual/Makefile @@ -2,7 +2,7 @@ # # raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5 # -# Copyright (c) 2013-2019 Ramon Santamaria (@raysan5) +# Copyright (c) 2013-2020 Ramon Santamaria (@raysan5) # # 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. @@ -25,8 +25,8 @@ # Define required raylib variables PROJECT_NAME ?= light_my_ritual -RAYLIB_VERSION ?= 2.5.0 -RAYLIB_API_VERSION ?= 2 +RAYLIB_VERSION ?= 3.0.0 +RAYLIB_API_VERSION ?= 3 RAYLIB_PATH ?= C:\GitHub\raylib # Define default options @@ -115,13 +115,12 @@ endif ifeq ($(PLATFORM),PLATFORM_WEB) # Emscripten required variables - EMSDK_PATH ?= C:/emsdk - EMSCRIPTEN_VERSION ?= 1.38.32 - CLANG_VERSION = e$(EMSCRIPTEN_VERSION)_64bit - PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64 - NODE_VERSION = 8.9.1_64bit - export PATH = $(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH) - EMSCRIPTEN = $(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION) + EMSDK_PATH ?= C:/emsdk + EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/fastcomp/emscripten + CLANG_PATH = $(EMSDK_PATH)/fastcomp/bin + PYTHON_PATH = $(EMSDK_PATH)/python/2.7.13.1_64bit/python-2.7.13.amd64 + NODE_PATH = $(EMSDK_PATH)/node/12.9.1_64bit/bin + export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH);C:\raylib\MinGW\bin:$$(PATH) endif # Define raylib release directory for compiled library. @@ -165,7 +164,7 @@ ifeq ($(PLATFORM),PLATFORM_RPI) endif ifeq ($(PLATFORM),PLATFORM_WEB) # HTML5 emscripten compiler - # WARNING: To compile to HTML5, code must be redesigned + # WARNING: To compile to HTML5, code must be redesigned # to use emscripten.h and emscripten_set_main_loop() CC = emcc endif @@ -188,20 +187,24 @@ endif # -std=gnu99 defines C language mode (GNU C from 1999 revision) # -Wno-missing-braces ignore invalid warning (GCC bug 53119) # -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec -CFLAGS += -O1 -s -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces +CFLAGS += -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces ifeq ($(BUILD_MODE),DEBUG) CFLAGS += -g + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -s ASSERTIONS=1 --profiling + endif +else + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -Os + else + CFLAGS += -s -O1 + endif endif # Additional flags for compiler (if desired) #CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes ifeq ($(PLATFORM),PLATFORM_DESKTOP) - ifeq ($(PLATFORM_OS),WINDOWS) - # resource file contains windows executable icon and properties - # -Wl,--subsystem,windows hides the console window - CFLAGS += $(RAYLIB_PATH)/raylib.rc.data -Wl,--subsystem,windows - endif ifeq ($(PLATFORM_OS),LINUX) ifeq ($(RAYLIB_LIBTYPE),STATIC) CFLAGS += -D_DEFAULT_SOURCE @@ -230,10 +233,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB) # --profiling # include information for code profiling # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) # --preload-file resources # specify a resources folder for data compilation - CFLAGS += -Os -s USE_GLFW=3 -s TOTAL_MEMORY=67108864 --preload-file resources - ifeq ($(BUILD_MODE), DEBUG) - CFLAGS += -s ASSERTIONS=1 --profiling - endif + CFLAGS += -s USE_GLFW=3 -s TOTAL_MEMORY=67108864 --preload-file resources # Define a custom shell .html and output extension CFLAGS += --shell-file $(RAYLIB_PATH)/src/shell.html @@ -267,6 +267,14 @@ endif LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif ifeq ($(PLATFORM_OS),BSD) # Consider -L$(RAYLIB_INSTALL_PATH) LDFLAGS += -L. -Lsrc -L/usr/local/lib @@ -290,18 +298,18 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) # NOTE: WinMM library required to set high-res timer resolution LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm # Required for physac examples - #LDLIBS += -static -lpthread + LDLIBS += -static -lpthread endif ifeq ($(PLATFORM_OS),LINUX) # Libraries for Debian GNU/Linux desktop compiling # NOTE: Required packages: libegl1-mesa-dev LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt - + # On X11 requires also below libraries LDLIBS += -lX11 # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor - + # On Wayland windowing system, additional libraries requires ifeq ($(USE_WAYLAND_DISPLAY),TRUE) LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon @@ -314,7 +322,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),OSX) # Libraries for OSX 10.9 desktop compiling # NOTE: Required packages: libopenal-dev libegl1-mesa-dev - LDLIBS = -lraylib -framework OpenGL -framework OpenAL -framework Cocoa + LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo endif ifeq ($(PLATFORM_OS),BSD) # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling @@ -379,7 +387,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) del *.o *.exe /s endif 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 -fv + find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable|x-pie-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -fv endif ifeq ($(PLATFORM_OS),OSX) find . -type f -perm +ugo+x -delete diff --git a/games/repair/Makefile b/games/repair/Makefile index 2b7065e3..63cb45c3 100644 --- a/games/repair/Makefile +++ b/games/repair/Makefile @@ -205,14 +205,6 @@ endif # Additional flags for compiler (if desired) #CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes ifeq ($(PLATFORM),PLATFORM_DESKTOP) - ifeq ($(PLATFORM_OS),WINDOWS) - # resource file contains windows executable icon and properties - # -Wl,--subsystem,windows hides the console window - CFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data - ifeq ($(BUILD_MODE), RELEASE) - CFLAGS += -Wl,--subsystem,windows - endif - endif ifeq ($(PLATFORM_OS),LINUX) ifeq ($(RAYLIB_LIBTYPE),STATIC) CFLAGS += -D_DEFAULT_SOURCE @@ -275,6 +267,14 @@ endif LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif ifeq ($(PLATFORM_OS),BSD) # Consider -L$(RAYLIB_INSTALL_PATH) LDFLAGS += -L. -Lsrc -L/usr/local/lib diff --git a/games/repair/repair.c b/games/repair/repair.c index df541e34..437f94f6 100644 --- a/games/repair/repair.c +++ b/games/repair/repair.c @@ -1,14 +1,14 @@ /******************************************************************************************* * -* raylib - Advance Game template +* RE_PAIR [GLOBAL GAME JAM 2020] * -* -* +* Let's find your perfect match! +* Ready for dating? Do you need some face tweaks? Choose wisely! * -* This game has been created using raylib (www.raylib.com) +* This game has been created using raylib 3.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * -* Copyright (c) 2014-2020 Ramon Santamaria (@raysan5) +* Copyright (c) 2020 Ramon Santamaria (@raysan5) * ********************************************************************************************/ @@ -28,7 +28,6 @@ Texture2D texNPatch = { 0 }; NPatchInfo npInfo = { 0 }; Texture2D texHead, texHair, texNose, texMouth, texEyes, texComp; -Texture2D texMakeup = { 0 }; Character playerBase = { 0 }; Character datingBase = { 0 }; @@ -70,7 +69,7 @@ int main(void) { // Initialization (Note windowTitle is unused on Android) //--------------------------------------------------------- - InitWindow(screenWidth, screenHeight, "raylib template - advance game"); + InitWindow(screenWidth, screenHeight, "RE-PAIR [GGJ2020]"); // Global data loading (assets that must be available in all screens, i.e. fonts) InitAudioDevice(); @@ -97,7 +96,6 @@ int main(void) texMouth = LoadTexture("resources/mouth_models.png"); texEyes = LoadTexture("resources/eyes_models.png"); //texComp = LoadTexture("resources/comp_models.png"); - texMakeup = LoadTexture("resources/makeup.png"); SetMusicVolume(music, 0.5f); //PlayMusicStream(music); @@ -145,7 +143,6 @@ int main(void) UnloadTexture(texMouth); UnloadTexture(texEyes); //UnloadTexture(texComp); - UnloadTexture(texMakeup); CloseAudioDevice(); // Close audio context @@ -217,7 +214,7 @@ bool GuiButton(Rectangle bounds, const char *text, int forcedState) if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) state = 2; // PRESSED else state = 1; // FOCUSED - if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) + if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON) || IsGestureDetected(GESTURE_TAP)) { pressed = true; PlaySound(fxCoin); diff --git a/games/repair/resources/makeup.png b/games/repair/resources/makeup.png deleted file mode 100644 index 0b8f606929188a45392150cc33e8d580e389060b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21801 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 diff --git a/games/repair/resources/qmark.png b/games/repair/resources/qmark.png index c782062d9dee260197a780c6b5a61f9793227796..6d5e7869e5d31e64b5a559ffab98595cd5b15c95 100644 GIT binary patch literal 7491 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 180) { - if (GuiButton((Rectangle){ GetScreenWidth()/2 - 440/2, 580, 440, 80 }, "START DATE!", -1)) - { - finishScreen = 1; // GAMEPLAY - PlaySound(fxCoin); - } + if (GuiButton((Rectangle){ GetScreenWidth()/2 - 440/2, 580, 440, 80 }, "START DATE!", -1)) finishScreen = 1; // GAMEPLAY } DrawText("powered by", 20, GetScreenHeight() - texLogo.height - 35, 10, BLACK); diff --git a/games/repair/screens/screens.h b/games/repair/screens/screens.h index 362a15c9..a9756bb8 100644 --- a/games/repair/screens/screens.h +++ b/games/repair/screens/screens.h @@ -100,15 +100,6 @@ void DrawTitleScreen(void); void UnloadTitleScreen(void); int FinishTitleScreen(void); -//---------------------------------------------------------------------------------- -// Options Screen Functions Declaration -//---------------------------------------------------------------------------------- -void InitOptionsScreen(void); -void UpdateOptionsScreen(void); -void DrawOptionsScreen(void); -void UnloadOptionsScreen(void); -int FinishOptionsScreen(void); - //---------------------------------------------------------------------------------- // Gameplay Screen Functions Declaration //---------------------------------------------------------------------------------- diff --git a/games/skully_escape/Makefile b/games/skully_escape/Makefile index c785eb28..fa45e2a4 100644 --- a/games/skully_escape/Makefile +++ b/games/skully_escape/Makefile @@ -2,7 +2,7 @@ # # raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5 # -# Copyright (c) 2013-2019 Ramon Santamaria (@raysan5) +# Copyright (c) 2013-2020 Ramon Santamaria (@raysan5) # # 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. @@ -25,8 +25,8 @@ # Define required raylib variables PROJECT_NAME ?= skully_escape -RAYLIB_VERSION ?= 2.5.0 -RAYLIB_API_VERSION ?= 2 +RAYLIB_VERSION ?= 3.0.0 +RAYLIB_API_VERSION ?= 3 RAYLIB_PATH ?= C:\GitHub\raylib # Define default options @@ -115,13 +115,12 @@ endif ifeq ($(PLATFORM),PLATFORM_WEB) # Emscripten required variables - EMSDK_PATH ?= C:/emsdk - EMSCRIPTEN_VERSION ?= 1.38.32 - CLANG_VERSION = e$(EMSCRIPTEN_VERSION)_64bit - PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64 - NODE_VERSION = 8.9.1_64bit - export PATH = $(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH) - EMSCRIPTEN = $(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION) + EMSDK_PATH ?= C:/emsdk + EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/fastcomp/emscripten + CLANG_PATH = $(EMSDK_PATH)/fastcomp/bin + PYTHON_PATH = $(EMSDK_PATH)/python/2.7.13.1_64bit/python-2.7.13.amd64 + NODE_PATH = $(EMSDK_PATH)/node/12.9.1_64bit/bin + export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH);C:\raylib\MinGW\bin:$$(PATH) endif # Define raylib release directory for compiled library. @@ -165,7 +164,7 @@ ifeq ($(PLATFORM),PLATFORM_RPI) endif ifeq ($(PLATFORM),PLATFORM_WEB) # HTML5 emscripten compiler - # WARNING: To compile to HTML5, code must be redesigned + # WARNING: To compile to HTML5, code must be redesigned # to use emscripten.h and emscripten_set_main_loop() CC = emcc endif @@ -188,20 +187,24 @@ endif # -std=gnu99 defines C language mode (GNU C from 1999 revision) # -Wno-missing-braces ignore invalid warning (GCC bug 53119) # -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec -CFLAGS += -O1 -s -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces +CFLAGS += -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces ifeq ($(BUILD_MODE),DEBUG) CFLAGS += -g + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -s ASSERTIONS=1 --profiling + endif +else + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -Os + else + CFLAGS += -s -O1 + endif endif # Additional flags for compiler (if desired) #CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes ifeq ($(PLATFORM),PLATFORM_DESKTOP) - ifeq ($(PLATFORM_OS),WINDOWS) - # resource file contains windows executable icon and properties - # -Wl,--subsystem,windows hides the console window - CFLAGS += $(RAYLIB_PATH)/raylib.rc.data -Wl,--subsystem,windows - endif ifeq ($(PLATFORM_OS),LINUX) ifeq ($(RAYLIB_LIBTYPE),STATIC) CFLAGS += -D_DEFAULT_SOURCE @@ -230,10 +233,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB) # --profiling # include information for code profiling # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) # --preload-file resources # specify a resources folder for data compilation - CFLAGS += -Os -s USE_GLFW=3 -s TOTAL_MEMORY=67108864 --preload-file resources - ifeq ($(BUILD_MODE), DEBUG) - CFLAGS += -s ASSERTIONS=1 --profiling - endif + CFLAGS += -s USE_GLFW=3 -s TOTAL_MEMORY=67108864 --preload-file resources # Define a custom shell .html and output extension CFLAGS += --shell-file $(RAYLIB_PATH)/src/shell.html @@ -267,6 +267,14 @@ endif LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif ifeq ($(PLATFORM_OS),BSD) # Consider -L$(RAYLIB_INSTALL_PATH) LDFLAGS += -L. -Lsrc -L/usr/local/lib @@ -290,18 +298,18 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) # NOTE: WinMM library required to set high-res timer resolution LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm # Required for physac examples - #LDLIBS += -static -lpthread + LDLIBS += -static -lpthread endif ifeq ($(PLATFORM_OS),LINUX) # Libraries for Debian GNU/Linux desktop compiling # NOTE: Required packages: libegl1-mesa-dev LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt - + # On X11 requires also below libraries LDLIBS += -lX11 # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor - + # On Wayland windowing system, additional libraries requires ifeq ($(USE_WAYLAND_DISPLAY),TRUE) LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon @@ -314,7 +322,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),OSX) # Libraries for OSX 10.9 desktop compiling # NOTE: Required packages: libopenal-dev libegl1-mesa-dev - LDLIBS = -lraylib -framework OpenGL -framework OpenAL -framework Cocoa + LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo endif ifeq ($(PLATFORM_OS),BSD) # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling @@ -389,7 +397,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) del *.o *.exe /s endif 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 -fv + find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable|x-pie-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -fv endif ifeq ($(PLATFORM_OS),OSX) find . -type f -perm +ugo+x -delete diff --git a/games/transmission/Makefile b/games/transmission/Makefile index 6df64277..d84993fd 100644 --- a/games/transmission/Makefile +++ b/games/transmission/Makefile @@ -2,7 +2,7 @@ # # raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5 # -# Copyright (c) 2013-2019 Ramon Santamaria (@raysan5) +# Copyright (c) 2013-2020 Ramon Santamaria (@raysan5) # # 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. @@ -25,8 +25,8 @@ # Define required raylib variables PROJECT_NAME ?= transmission -RAYLIB_VERSION ?= 2.5.0 -RAYLIB_API_VERSION ?= 2 +RAYLIB_VERSION ?= 3.0.0 +RAYLIB_API_VERSION ?= 3 RAYLIB_PATH ?= C:\GitHub\raylib # Define default options @@ -115,13 +115,12 @@ endif ifeq ($(PLATFORM),PLATFORM_WEB) # Emscripten required variables - EMSDK_PATH ?= C:/emsdk - EMSCRIPTEN_VERSION ?= 1.38.32 - CLANG_VERSION = e$(EMSCRIPTEN_VERSION)_64bit - PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64 - NODE_VERSION = 8.9.1_64bit - export PATH = $(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH) - EMSCRIPTEN = $(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION) + EMSDK_PATH ?= C:/emsdk + EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/fastcomp/emscripten + CLANG_PATH = $(EMSDK_PATH)/fastcomp/bin + PYTHON_PATH = $(EMSDK_PATH)/python/2.7.13.1_64bit/python-2.7.13.amd64 + NODE_PATH = $(EMSDK_PATH)/node/12.9.1_64bit/bin + export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH);C:\raylib\MinGW\bin:$$(PATH) endif # Define raylib release directory for compiled library. @@ -165,7 +164,7 @@ ifeq ($(PLATFORM),PLATFORM_RPI) endif ifeq ($(PLATFORM),PLATFORM_WEB) # HTML5 emscripten compiler - # WARNING: To compile to HTML5, code must be redesigned + # WARNING: To compile to HTML5, code must be redesigned # to use emscripten.h and emscripten_set_main_loop() CC = emcc endif @@ -188,20 +187,24 @@ endif # -std=gnu99 defines C language mode (GNU C from 1999 revision) # -Wno-missing-braces ignore invalid warning (GCC bug 53119) # -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec -CFLAGS += -O1 -s -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces +CFLAGS += -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces ifeq ($(BUILD_MODE),DEBUG) CFLAGS += -g + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -s ASSERTIONS=1 --profiling + endif +else + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -Os + else + CFLAGS += -s -O1 + endif endif # Additional flags for compiler (if desired) #CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes ifeq ($(PLATFORM),PLATFORM_DESKTOP) - ifeq ($(PLATFORM_OS),WINDOWS) - # resource file contains windows executable icon and properties - # -Wl,--subsystem,windows hides the console window - CFLAGS += $(RAYLIB_PATH)/raylib.rc.data -Wl,--subsystem,windows - endif ifeq ($(PLATFORM_OS),LINUX) ifeq ($(RAYLIB_LIBTYPE),STATIC) CFLAGS += -D_DEFAULT_SOURCE @@ -230,10 +233,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB) # --profiling # include information for code profiling # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) # --preload-file resources # specify a resources folder for data compilation - CFLAGS += -Os -s USE_GLFW=3 -s TOTAL_MEMORY=67108864 --preload-file resources - ifeq ($(BUILD_MODE), DEBUG) - CFLAGS += -s ASSERTIONS=1 --profiling - endif + CFLAGS += -s USE_GLFW=3 -s TOTAL_MEMORY=67108864 --preload-file resources # Define a custom shell .html and output extension CFLAGS += --shell-file $(RAYLIB_PATH)/src/shell.html @@ -267,6 +267,14 @@ endif LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif ifeq ($(PLATFORM_OS),BSD) # Consider -L$(RAYLIB_INSTALL_PATH) LDFLAGS += -L. -Lsrc -L/usr/local/lib @@ -290,18 +298,18 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) # NOTE: WinMM library required to set high-res timer resolution LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm # Required for physac examples - #LDLIBS += -static -lpthread + LDLIBS += -static -lpthread endif ifeq ($(PLATFORM_OS),LINUX) # Libraries for Debian GNU/Linux desktop compiling # NOTE: Required packages: libegl1-mesa-dev LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt - + # On X11 requires also below libraries LDLIBS += -lX11 # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor - + # On Wayland windowing system, additional libraries requires ifeq ($(USE_WAYLAND_DISPLAY),TRUE) LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon @@ -314,7 +322,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),OSX) # Libraries for OSX 10.9 desktop compiling # NOTE: Required packages: libopenal-dev libegl1-mesa-dev - LDLIBS = -lraylib -framework OpenGL -framework OpenAL -framework Cocoa + LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo endif ifeq ($(PLATFORM_OS),BSD) # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling @@ -381,7 +389,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) del *.o *.exe /s endif 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 -fv + find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable|x-pie-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -fv endif ifeq ($(PLATFORM_OS),OSX) find . -type f -perm +ugo+x -delete diff --git a/games/wave_collector/Makefile b/games/wave_collector/Makefile index 894cc7e7..092d37d9 100644 --- a/games/wave_collector/Makefile +++ b/games/wave_collector/Makefile @@ -2,7 +2,7 @@ # # raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5 # -# Copyright (c) 2013-2019 Ramon Santamaria (@raysan5) +# Copyright (c) 2013-2020 Ramon Santamaria (@raysan5) # # 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. @@ -25,8 +25,8 @@ # Define required raylib variables PROJECT_NAME ?= wave_collector -RAYLIB_VERSION ?= 2.5.0 -RAYLIB_API_VERSION ?= 2 +RAYLIB_VERSION ?= 3.0.0 +RAYLIB_API_VERSION ?= 3 RAYLIB_PATH ?= C:\GitHub\raylib # Define default options @@ -115,13 +115,12 @@ endif ifeq ($(PLATFORM),PLATFORM_WEB) # Emscripten required variables - EMSDK_PATH ?= C:/emsdk - EMSCRIPTEN_VERSION ?= 1.38.32 - CLANG_VERSION = e$(EMSCRIPTEN_VERSION)_64bit - PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64 - NODE_VERSION = 8.9.1_64bit - export PATH = $(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH) - EMSCRIPTEN = $(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION) + EMSDK_PATH ?= C:/emsdk + EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/fastcomp/emscripten + CLANG_PATH = $(EMSDK_PATH)/fastcomp/bin + PYTHON_PATH = $(EMSDK_PATH)/python/2.7.13.1_64bit/python-2.7.13.amd64 + NODE_PATH = $(EMSDK_PATH)/node/12.9.1_64bit/bin + export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH);C:\raylib\MinGW\bin:$$(PATH) endif # Define raylib release directory for compiled library. @@ -165,7 +164,7 @@ ifeq ($(PLATFORM),PLATFORM_RPI) endif ifeq ($(PLATFORM),PLATFORM_WEB) # HTML5 emscripten compiler - # WARNING: To compile to HTML5, code must be redesigned + # WARNING: To compile to HTML5, code must be redesigned # to use emscripten.h and emscripten_set_main_loop() CC = emcc endif @@ -188,20 +187,24 @@ endif # -std=gnu99 defines C language mode (GNU C from 1999 revision) # -Wno-missing-braces ignore invalid warning (GCC bug 53119) # -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec -CFLAGS += -O1 -s -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces +CFLAGS += -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces ifeq ($(BUILD_MODE),DEBUG) CFLAGS += -g + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -s ASSERTIONS=1 --profiling + endif +else + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -Os + else + CFLAGS += -s -O1 + endif endif # Additional flags for compiler (if desired) #CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes ifeq ($(PLATFORM),PLATFORM_DESKTOP) - ifeq ($(PLATFORM_OS),WINDOWS) - # resource file contains windows executable icon and properties - # -Wl,--subsystem,windows hides the console window - CFLAGS += $(RAYLIB_PATH)/raylib.rc.data -Wl,--subsystem,windows - endif ifeq ($(PLATFORM_OS),LINUX) ifeq ($(RAYLIB_LIBTYPE),STATIC) CFLAGS += -D_DEFAULT_SOURCE @@ -230,10 +233,7 @@ ifeq ($(PLATFORM),PLATFORM_WEB) # --profiling # include information for code profiling # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) # --preload-file resources # specify a resources folder for data compilation - CFLAGS += -Os -s USE_GLFW=3 -s TOTAL_MEMORY=67108864 --preload-file resources - ifeq ($(BUILD_MODE), DEBUG) - CFLAGS += -s ASSERTIONS=1 --profiling - endif + CFLAGS += -s USE_GLFW=3 -s TOTAL_MEMORY=67108864 --preload-file resources # Define a custom shell .html and output extension CFLAGS += --shell-file $(RAYLIB_PATH)/src/shell.html @@ -267,6 +267,14 @@ endif LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif ifeq ($(PLATFORM_OS),BSD) # Consider -L$(RAYLIB_INSTALL_PATH) LDFLAGS += -L. -Lsrc -L/usr/local/lib @@ -290,18 +298,18 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) # NOTE: WinMM library required to set high-res timer resolution LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm # Required for physac examples - #LDLIBS += -static -lpthread + LDLIBS += -static -lpthread endif ifeq ($(PLATFORM_OS),LINUX) # Libraries for Debian GNU/Linux desktop compiling # NOTE: Required packages: libegl1-mesa-dev LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt - + # On X11 requires also below libraries LDLIBS += -lX11 # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor - + # On Wayland windowing system, additional libraries requires ifeq ($(USE_WAYLAND_DISPLAY),TRUE) LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon @@ -314,7 +322,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) ifeq ($(PLATFORM_OS),OSX) # Libraries for OSX 10.9 desktop compiling # NOTE: Required packages: libopenal-dev libegl1-mesa-dev - LDLIBS = -lraylib -framework OpenGL -framework OpenAL -framework Cocoa + LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo endif ifeq ($(PLATFORM_OS),BSD) # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling @@ -380,7 +388,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP) del *.o *.exe /s endif 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 -fv + find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable|x-pie-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -fv endif ifeq ($(PLATFORM_OS),OSX) find . -type f -perm +ugo+x -delete diff --git a/templates/advance_game/Makefile b/templates/advance_game/Makefile index 0be208f8..440258a4 100644 --- a/templates/advance_game/Makefile +++ b/templates/advance_game/Makefile @@ -205,14 +205,6 @@ endif # Additional flags for compiler (if desired) #CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes ifeq ($(PLATFORM),PLATFORM_DESKTOP) - ifeq ($(PLATFORM_OS),WINDOWS) - # resource file contains windows executable icon and properties - # -Wl,--subsystem,windows hides the console window - CFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data - ifeq ($(BUILD_MODE), RELEASE) - CFLAGS += -Wl,--subsystem,windows - endif - endif ifeq ($(PLATFORM_OS),LINUX) ifeq ($(RAYLIB_LIBTYPE),STATIC) CFLAGS += -D_DEFAULT_SOURCE @@ -275,6 +267,14 @@ endif LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif ifeq ($(PLATFORM_OS),BSD) # Consider -L$(RAYLIB_INSTALL_PATH) LDFLAGS += -L. -Lsrc -L/usr/local/lib diff --git a/templates/simple_game/Makefile b/templates/simple_game/Makefile index 04345a99..a3fe7eb2 100644 --- a/templates/simple_game/Makefile +++ b/templates/simple_game/Makefile @@ -205,11 +205,6 @@ endif # Additional flags for compiler (if desired) #CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes ifeq ($(PLATFORM),PLATFORM_DESKTOP) - ifeq ($(PLATFORM_OS),WINDOWS) - # resource file contains windows executable icon and properties - # -Wl,--subsystem,windows hides the console window - CFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data -Wl,--subsystem,windows - endif ifeq ($(PLATFORM_OS),LINUX) ifeq ($(RAYLIB_LIBTYPE),STATIC) CFLAGS += -D_DEFAULT_SOURCE @@ -277,6 +272,14 @@ endif LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif ifeq ($(PLATFORM_OS),BSD) # Consider -L$(RAYLIB_INSTALL_PATH) LDFLAGS += -L. -Lsrc -L/usr/local/lib diff --git a/templates/standard_game/Makefile b/templates/standard_game/Makefile index d2f03ce8..1855ce8d 100644 --- a/templates/standard_game/Makefile +++ b/templates/standard_game/Makefile @@ -205,11 +205,6 @@ endif # Additional flags for compiler (if desired) #CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes ifeq ($(PLATFORM),PLATFORM_DESKTOP) - ifeq ($(PLATFORM_OS),WINDOWS) - # resource file contains windows executable icon and properties - # -Wl,--subsystem,windows hides the console window - CFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data -Wl,--subsystem,windows - endif ifeq ($(PLATFORM_OS),LINUX) ifeq ($(RAYLIB_LIBTYPE),STATIC) CFLAGS += -D_DEFAULT_SOURCE @@ -277,6 +272,14 @@ endif LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif ifeq ($(PLATFORM_OS),BSD) # Consider -L$(RAYLIB_INSTALL_PATH) LDFLAGS += -L. -Lsrc -L/usr/local/lib