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