1############## 2# Works on hosts Linux 3# apt-get install mingw-w64 4 5########################## 6# Checks the host platform 7 8HOST_PLATFORM = linux 9ifeq ($(shell uname -a),) 10 HOST_PLATFORM = windows 11else ifneq ($(findstring MINGW,$(shell uname -a)),) 12 HOST_PLATFORM = windows 13else ifneq ($(findstring Darwin,$(shell uname -a)),) 14 HOST_PLATFORM = darwin 15else ifneq ($(findstring win,$(shell uname -a)),) 16 HOST_PLATFORM = windows 17endif 18 19 20#################################### 21# Variable setup for Makefile.common 22 23CORE_DIR ?= .. 24BUILD_DIR ?= . 25INCLUDES = 26 27include $(BUILD_DIR)/Makefile.common 28 29################# 30# Toolchain setup 31 32CC = cl.exe 33CXX = cl.exe 34 35PATH := $(shell IFS=$$'\n'; cygpath "$(VS80COMNTOOLS)../../VC/bin"):$(PATH) 36PATH := $(PATH):$(shell IFS=$$'\n'; cygpath "$(VS80COMNTOOLS)../IDE") 37INCLUDE := $(shell IFS=$$'\n'; cygpath "$(VS80COMNTOOLS)../../VC/include") 38LIB := $(shell IFS=$$'\n'; cygpath -w "$(VS80COMNTOOLS)../../VC/lib") 39 40WindowsSdkDir := $(shell reg query "HKLM\SOFTWARE\Microsoft\MicrosoftSDK\InstalledSDKs\8F9E5EF3-A9A5-491B-A889-C58EFFECE8B3" -v "Install Dir" | grep -o '[A-Z]:\\.*') 41 42WindowsSDKIncludeDir := $(shell cygpath -w "$(WindowsSdkDir)\Include") 43WindowsSDKAtlIncludeDir := $(shell cygpath -w "$(WindowsSdkDir)\Include\atl") 44WindowsSDKCrtIncludeDir := $(shell cygpath -w "$(WindowsSdkDir)\Include\crt") 45WindowsSDKGlIncludeDir := $(shell cygpath -w "$(WindowsSdkDir)\Include\gl") 46WindowsSDKMfcIncludeDir := $(shell cygpath -w "$(WindowsSdkDir)\Include\mfc") 47WindowsSDKLibDir := $(shell cygpath -w "$(WindowsSdkDir)\Lib") 48 49export INCLUDE := $(INCLUDE);$(WindowsSDKIncludeDir);$(WindowsSDKAtlIncludeDir);$(WindowsSDKCrtIncludeDir);$(WindowsSDKGlIncludeDir);$(WindowsSDKMfcIncludeDir);libretro-common/include/compat/msvc 50export LIB := $(LIB);$(WindowsSDKLibDir) 51 52############ 53# Extensions 54 55OBJEXT = .obj 56SOEXT = .dll 57 58################ 59# Platform setup 60 61STATIC_LINKING = 0 62PLATDEFS = 63PLATCFLAGS = -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DWIN32 -D_WINDOWS -D_USRDLL -D_CRT_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -DFRONTEND_SUPPORTS_RGB565 -DGIT_VERSION=\"$(GIT_VERSION)\" 64PLATCXXFLAGS = $(PLATCFLAGS) 65#PLATLDFLAGS = -shared -lm 66#PLATLDXFLAGS = -shared -lm 67 68################ 69# libretro setup 70 71RETRODEFS = -D__LIBRETRO__ -DHAVE_NO_LANGEXTRA -wd4710 -wd4711 -wd4127 -wd4204 -wd4242 -wd4244 -wd4820 -wd4214 -wd4100 -wd4738 -wd4706 -wd4668 -wd4245 -wd4255 -wd4389 -wd4305 -wd4113 72RETROCFLAGS = 73RETROCXXFLAGS = 74RETROLDFLAGS = 75RETROLDXFLAGS = 76 77################# 78# Final variables 79 80DEFINES = $(PLATDEFS) $(COREDEFINES) $(RETRODEFS) 81CFLAGS = $(PLATCFLAGS) $(RETROCFLAGS) $(DEFINES) $(INCLUDES) 82CXXFLAGS = $(PLATCXXFLAGS) $(RETROCXXFLAGS) $(DEFINES) $(INCLUDES) 83LDFLAGS = $(PLATLDFLAGS) $(RETROLDFLAGS) 84LDXFLAGS = $(PLATLDXFLAGS) $(RETROLDXFLAGS) 85 86######## 87# Tuning 88 89ifeq ($(DEBUG),1) 90 CFLAGS += -Od -Zi -D_DEBUG 91 CXXFLAGS += -Od -Zi -D_DEBUG 92 CFLAGS += -MTd 93 CXXFLAGS += -MTd 94 LDFLAGS += -DEBUG -DLL 95else 96 CFLAGS += -O2 -DNDEBUG 97 CXXFLAGS += -O2 -DNDEBUG 98 CFLAGS += -MT 99 CXXFLAGS += -MT 100 LDFLAGS += -DLL 101endif 102 103ifneq ($(LOG_PERFORMANCE),) 104 CFLAGS += -DLOG_PERFORMANCE 105 CXXFLAGS += -DLOG_PERFORMANCE 106endif 107 108############### 109# Include rules 110 111include $(BUILD_DIR)/Makefile.rules 112