From 7dc1418e2b1826a7859393d4c0f08d2ece7808d5 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 26 Apr 2016 19:42:42 +0200 Subject: [PATCH] viewer: Cleaned up Makefile and added a semblance of a Mingw64-target for Windows. --- examples/viewer/Makefile | 66 ++++++++++++++++++++++++++++++++++------ 1 file changed, 57 insertions(+), 9 deletions(-) diff --git a/examples/viewer/Makefile b/examples/viewer/Makefile index f06e3d0..d42278c 100644 --- a/examples/viewer/Makefile +++ b/examples/viewer/Makefile @@ -1,18 +1,66 @@ -GLFW_INC=-I/usr/local/include +CXX_FLAGS=-O0 -g -Wno-deprecated-declarations +ifndef PLATFORM UNAME=$(shell uname -s) +# OSX TEST ifeq ($(UNAME),Darwin) -# OSX -GLFW_LIBS=-L/usr/local/lib -lglfw3 -lGLEW -GL_LIBS=-framework OpenGL +PLATFORM=OSX else -# Assume Linux -GLFW_LIBS=-L/usr/local/lib -lglfw3 -lGLEW -GL_LIBS=-lGL -lGLU -lX11 -lXrandr -lXi -lXxf86vm -lXcursor -lXinerama -ldl -pthread +# WINDOWS MINGW TEST +ifeq ($(findstring MINGW, $(UNAME)), MINGW) + PLATFORM=WINDOWS_MINGW +else +# ASSUME LINUX + PLATFORM=LINUX +endif endif -CXX_FLAGS=-Wno-deprecated-declarations +endif +$(info PLATFORM SELECTED: $(PLATFORM)) + +ifeq ($(PLATFORM),OSX) +# OSX CONFIGURATION------------------------------------------------------------- +CXX_FLAGS+= -fsanitize=address +GLFW_INC=-I/usr/local/include +GLFW_LIB_DIR=/usr/local/lib +GLFW_LIBS=-L$(GLFW_LIB_DIR) -lglfw3 -lGLEW +GL_LIBS=-framework OpenGL +# /OSX CONFIGURATION------------------------------------------------------------ +else +ifeq ($(PLATFORM),LINUX) +# LINUX CONFIGURATION----------------------------------------------------------- +CXX_FLAGS+= -fsanitize=address +GLFW_INC=-I/usr/local/include +GLFW_LIB_DIR=/usr/local/lib +GLFW_LIBS=-L$(GLFW_LIB_DIR) -lglfw3 -lGLEW +GL_LIBS=-lGL -lGLU -lX11 -lXrandr -lXi -lXxf86vm -lXcursor -lXinerama -ldl -pthread +# /LINUX CONFIGURATION---------------------------------------------------------- +else +ifeq ($(PLATFORM),WINDOWS_MINGW) +# WINDOWS MINGW CONFIGURATION--------------------------------------------------- +# Since Windows unfortunately doesn't have any defacto directories for third +# party libraries, we'll have to force the user to give us them. So we check +# that the user passed in GLFW-dirs in some way, via flag or environ. +ifndef GLFW_DIR +$(error NO GLFW_DIR SPECIFIED. PASS GLFW_DIR= TO MAKE) +endif +ifndef GLEW_DIR +$(error NO GLEW_DIR SPECIFIED. PASS GLEW_DIR= TO MAKE) +endif +GLFW_INC=-I$(GLFW_DIR)/include +GLFW_LIB_DIR=$(GLFW_DIR)/lib-mingw-w64 +GLFW_LIBS= -lglfw3 -L$(GLFW_LIB_DIR) +GL_LIBS= -lglew32 -lopengl32 -lglu32 -lgdi32 -I$(GLEW_DIR)/include -L$(GLEW_DIR)/bin/Release/x64 +# /WINDOWS CONFIGURATION-------------------------------------------------------- +else +$(error UNKNOWN PLATFORM "$(PLATFORM)") +endif #ifeq ($(PLATFORM),WINDOWS_MINGW) +endif #ifeq ($(PLATFORM),LINUX) +endif #ifeq ($(PLATFORM),OSX) all: - g++ -fsanitize=address -O0 -g -o objviewer $(CXX_FLAGS) viewer.cc ../../tiny_obj_loader.cc trackball.cc $(GLFW_INC) $(GL_LIBS) $(GLFW_LIBS) + g++ -o objviewer $(CXX_FLAGS) viewer.cc ../../tiny_obj_loader.cc trackball.cc $(GLFW_INC) $(GLFW_LIBS) $(GL_LIBS) +ifeq ($(PLATFORM), WINDOWS_MINGW) + cp $(GLEW_DIR)/bin/Release/x64/glew32.dll . +endif