source: opengl-game/makefile@ 785333b

feature/imgui-sdl points-test
Last change on this file since 785333b was 683dd55, checked in by Dmitry Portnoy <dmp1488@…>, 5 years ago

Add a getObjects() method to the GraphicsPipeline_Vulkan class that returns a reference to the list of objects added to the pipeline, and use that method instead of the numPlanes variable to keep track of the number of textured planes. Also, update the shader compilation batch file and add header files as dependencies to the vulkangame target in the makefile.

  • Property mode set to 100644
File size: 2.8 KB
RevLine 
[71876b9]1# CFLAGS are compiler flags and LIBFLAGS could be renamed LINKER_FLAGS
[5a643d3]2OS = $(shell uname)
[15c7ed9]3CC = g++
[ab65f84]4CFLAGS = -std=c++17 -Wall -pedantic -rdynamic
[17f28a1]5# -rdynamic is to generate debug info for dynamic symbols on debian-based
6# systems (tested on Linux Mint)
7# for OSX, using -g generates a newgame.dSYS directory which has debug symbols.
8# However, this has no effect on the stack trace, so there must be a way to specify a *.dSYS directory when running ./newgame
9# or to instead put thos symbols directly into the executable, like -rdynamic does for Linux
[4762301]10#-Wextra -fno-inline
[5a643d3]11
12ifeq ($(OS),Darwin)
[e6bc0f4]13 DEP = -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo -lglfw -lglew
[5a643d3]14endif
[15c7ed9]15ifeq ($(OS),Linux)
[c6fec84]16 DEP = -lglfw3 -lGLEW -lGL -ldl -lX11 -lXrandr -lXxf86vm -lXinerama -lXcursor -pthread
[5a643d3]17endif
18
[1a616e6]19IMGUI_FILES = IMGUI/imgui_demo.cpp IMGUI/imgui_draw.cpp IMGUI/imgui.cpp
20
[fc424f6]21# If I were generating .o files as well, I should use $? instead of $^
[8e232ce]22# as this well prevent regenerating .o files for unchanged .cpp files
23
[d2f607c]24openglref: new-game.cpp logger.cpp utils.cpp crash-logger.cpp imgui_impl_glfw_gl3.cpp $(IMGUI_FILES)
[8e232ce]25 $(CC) $^ $(DEP) $(CFLAGS) -o $@
[5272b6b]26
[5b02676]27openglgame: main-opengl.cpp opengl-game.cpp crash-logger.cpp logger.cpp game-gui-glfw.cpp imgui_impl_glfw_gl3.cpp graphics-pipeline_opengl.cpp $(IMGUI_FILES)
[c6fec84]28 $(CC) $^ $(DEP) $(CFLAGS) -o $@ -DGLEW_STATIC
[d02c25f]29
[a8f0577]30CXX_FLAGS = -std=c++17 -Wall -pedantic# -O3 -rdynamic
[826df16]31
[ab65f84]32ifeq ($(OS),Darwin)
33 VULKAN_SDK_PATH = /Users/dportnoy15/Development/vulkan-sdk-macos-1.1.108.0/macOS
34endif
35ifeq ($(OS),Linux)
36 VULKAN_SDK_PATH = /home/dportnoy/Desktop/VulkanSDK/1.1.106.0/x86_64
37endif
[826df16]38
[ab65f84]39LIB_PATHS = -I$(VULKAN_SDK_PATH)/include
40ifeq ($(OS),Darwin)
41 LIB_PATHS := -Wl,-rpath,$(VULKAN_SDK_PATH)/lib $(LIB_PATHS)
42endif
43ifeq ($(OS),Linux)
44 LIB_PATHS := -L$(VULKAN_SDK_PATH)/lib $(LIB_PATHS)
45endif
[03f4c64]46
[eba8c0c]47LIBS = `pkg-config --static --libs sdl2 sdl2_image sdl2_ttf`
[ab65f84]48ifeq ($(OS),Darwin)
49 LIBS := $(VULKAN_SDK_PATH)/lib/libvulkan.dylib $(LIBS)
50endif
51ifeq ($(OS),Linux)
[eba8c0c]52 LIBS = `pkg-config --static --libs sdl2`
[17714b8]53 LIBS := -lvulkan $(LIBS) -lSDL2_image -lSDL2_ttf # TODO: figure out how to statically link these, ideally using pkg-config
[ab65f84]54endif
[826df16]55
56LIB_FLAGS = $(LIB_PATHS) $(LIBS)
57
[4eb4d0a]58vulkanref: vulkan-ref.cpp game-gui-sdl.cpp
59 $(CC) $(CXX_FLAGS) -o $@ $^ $(LIB_FLAGS) -DGAMEGUI_INCLUDE_VULKAN
[17714b8]60
[683dd55]61SRC_FILES = main-vulkan.cpp vulkan-game.cpp crash-logger.cpp logger.cpp vulkan-utils.cpp game-gui-sdl.cpp
62HEADER_FILES = vulkan-game.hpp crash-logger.hpp logger.hpp vulkan-utils.hpp game-gui-sdl.hpp game-gui.hpp graphics-pipeline_vulkan.hpp
63
64vulkangame: $(SRC_FILES) $(HEADER_FILES)
65 $(CC) $(CXX_FLAGS) -o $@ $(SRC_FILES) $(LIB_FLAGS) -DGAMEGUI_INCLUDE_VULKAN
[03f4c64]66
[88ebdc8]67.PHONY: shaders
[c8c6da8]68shaders:
[88ebdc8]69 cd shaders && ../compile.sh && cd ..
70
[cfda3b2]71clean:
[d2f607c]72 rm -f openglref
[4eb4d0a]73 rm -f vulkanref
[d02c25f]74 rm -f openglgame
[99d44b2]75 rm -f vulkangame
[88ebdc8]76 rm -f shaders/*.spv
Note: See TracBrowser for help on using the repository browser.