+# chicken and egg problem: we can't use cygpath until PATH & SHELL are set,
+# but we have to convert VS100VCTOOLS_PATH in order to set PATH. So instead we
+# convert using subst.
+ifeq "$(WINDOWS)" "YES"
+ ifneq "$(VS100VCTOOLS_PATH)" ""
+ VS100VCTOOLS_CYGPATH:= /cygdrive/$(subst :/,/,$(subst \,/,$(VS100VCTOOLS_PATH)))
+ PATH:=$(VS100VCTOOLS_CYGPATH):/usr/local/bin/:/usr/bin/:$(PATH)
+ endif
+endif
+$(info # PATH=$(PATH))
+
+# For some reason, cygwin bash (at least when run non-login) needs to use
+# bash for pwd, echo etc. (but uname does not work, see below)
+ifeq "$(WINDOWS)" "YES"
+ SHELL := /bin/bash
+else
+ SHELL := /bin/sh
+endif
+
+# if building for windows from batch script, convert Win-style paths
+# for SRCROOT etc. to cygwin-style paths. Don't define them if not
+# already defined.
+ifeq "$(WINDOWS)" "YES"
+ ifneq "$(VS100VCTOOLS_PATH)" ""
+ ifdef SRCROOT
+ SRCROOT:=$(shell /bin/cygpath -ua $(subst \,/,$(SRCROOT)))
+ endif
+ ifdef OBJROOT
+ OBJROOT:=$(shell /bin/cygpath -ua $(subst \,/,$(OBJROOT)))
+ endif
+ ifdef DSTROOT
+ DSTROOT:=$(shell /bin/cygpath -ua $(subst \,/,$(DSTROOT)))
+ endif
+ ifdef SYMROOT
+ SYMROOT:=$(shell /bin/cygpath -ua $(subst \,/,$(SYMROOT)))
+ endif
+ endif
+endif
+
+ifndef SRCROOT
+ SRCROOT:=$(shell pwd)
+endif
+ifndef OBJROOT
+ OBJROOT:=$(SRCROOT)/build
+endif
+ifndef DSTROOT
+ DSTROOT:=$(OBJROOT)
+endif
+ifndef SYMROOT
+ SYMROOT:=$(OBJROOT)
+endif
+
+ifeq "$(WINDOWS)" "YES"
+ ifeq "$(ARCH64)" "YES"
+ OBJROOT_CURRENT=$(OBJROOT)/obj64
+ SYMROOT_CURRENT=$(SYMROOT)/obj64
+ else
+ OBJROOT_CURRENT=$(OBJROOT)/obj32
+ SYMROOT_CURRENT=$(SYMROOT)/obj32
+ endif
+else ifeq "$(LINUX)" "YES"
+ ifeq "$(ARCH64)" "YES"
+ OBJROOT_CURRENT=$(OBJROOT)/obj64
+ SYMROOT_CURRENT=$(SYMROOT)/obj64
+ else
+ OBJROOT_CURRENT=$(OBJROOT)/obj32
+ SYMROOT_CURRENT=$(SYMROOT)/obj32
+ endif
+else
+ OBJROOT_CURRENT=$(OBJROOT)
+ SYMROOT_CURRENT=$(SYMROOT)
+endif