|
|
|
# Copyright © 2015 Intel Corporation
|
|
|
|
#
|
|
|
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
|
|
|
# copy of this software and associated documentation files (the "Software"),
|
|
|
|
# to deal in the Software without restriction, including without limitation
|
|
|
|
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
|
|
# and/or sell copies of the Software, and to permit persons to whom the
|
|
|
|
# Software is furnished to do so, subject to the following conditions:
|
|
|
|
#
|
|
|
|
# The above copyright notice and this permission notice (including the next
|
|
|
|
# paragraph) shall be included in all copies or substantial portions of the
|
|
|
|
# Software.
|
|
|
|
#
|
|
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
|
|
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
|
|
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
|
|
# IN THE SOFTWARE.
|
|
|
|
|
|
|
|
# Check to see we are configured to build with MSVC (MSDEVDIR, MSVCDIR or
|
|
|
|
# VCINSTALLDIR) or with the MS Platform SDK (MSSDK or WindowsSDKDir)
|
|
|
|
!if !defined(VCINSTALLDIR) && !defined(WINDOWSSDKDIR)
|
|
|
|
MSG = ^
|
|
|
|
This Makefile is only for Visual Studio 2008 and later.^
|
|
|
|
You need to ensure that the Visual Studio Environment is properly set up^
|
|
|
|
before running this Makefile.
|
|
|
|
!error $(MSG)
|
|
|
|
!endif
|
|
|
|
|
|
|
|
ERRNUL = 2>NUL
|
|
|
|
_HASH=^#
|
|
|
|
|
|
|
|
!if ![echo VCVERSION=_MSC_VER > vercl.x] \
|
|
|
|
&& ![echo $(_HASH)if defined(_M_IX86) >> vercl.x] \
|
|
|
|
&& ![echo PLAT=Win32 >> vercl.x] \
|
|
|
|
&& ![echo $(_HASH)elif defined(_M_AMD64) >> vercl.x] \
|
|
|
|
&& ![echo PLAT=x64 >> vercl.x] \
|
|
|
|
&& ![echo $(_HASH)endif >> vercl.x] \
|
|
|
|
&& ![cl -nologo -TC -P vercl.x $(ERRNUL)]
|
|
|
|
!include vercl.i
|
|
|
|
!if ![echo VCVER= ^\> vercl.vc] \
|
|
|
|
&& ![set /a $(VCVERSION) / 100 - 6 >> vercl.vc]
|
|
|
|
!include vercl.vc
|
|
|
|
!endif
|
|
|
|
!endif
|
|
|
|
!if ![del $(ERRNUL) /q/f vercl.x vercl.i vercl.vc]
|
|
|
|
!endif
|
|
|
|
|
|
|
|
!if $(VCVERSION) > 1499 && $(VCVERSION) < 1600
|
|
|
|
VSVER = 9
|
|
|
|
C99_COMPAT_NEEDED = 1
|
|
|
|
!elseif $(VCVERSION) > 1599 && $(VCVERSION) < 1700
|
|
|
|
VSVER = 10
|
|
|
|
C99_COMPAT_NEEDED = 1
|
|
|
|
!elseif $(VCVERSION) > 1699 && $(VCVERSION) < 1800
|
|
|
|
VSVER = 11
|
|
|
|
C99_COMPAT_NEEDED = 1
|
|
|
|
!elseif $(VCVERSION) > 1799 && $(VCVERSION) < 1900
|
|
|
|
VSVER = 12
|
|
|
|
C99_COMPAT_NEEDED = 0!
|
|
|
|
!elseif $(VCVERSION) > 1899 && $(VCVERSION) < 2000
|
|
|
|
VSVER = 14
|
|
|
|
C99_COMPAT_NEEDED = 0
|
|
|
|
!else
|
|
|
|
VSVER = 0
|
|
|
|
!endif
|
|
|
|
|
|
|
|
!if "$(VSVER)" == "0"
|
|
|
|
MSG = ^
|
|
|
|
This NMake Makefile set supports Visual Studio^
|
|
|
|
9 (2008) through 12 (2013). Your Visual Studio^
|
|
|
|
version is not supported.
|
|
|
|
!error $(MSG)
|
|
|
|
!endif
|
|
|
|
|
|
|
|
VALID_CFGSET = FALSE
|
|
|
|
!if "$(CFG)" == "release" || "$(CFG)" == "debug"
|
|
|
|
VALID_CFGSET = TRUE
|
|
|
|
!endif
|
|
|
|
|
|
|
|
!if "$(VALID_CFGSET)" == "FALSE"
|
|
|
|
MSG = ^
|
|
|
|
You need to specify CFG=release or CFG=debug.
|
|
|
|
!error $(MSG)
|
|
|
|
!endif
|
|
|
|
|
|
|
|
!if "$(CFG)" == "release"
|
|
|
|
CFLAGS_ADD = /MD /O2 /Zi /I..\include /I..\..\vs$(VSVER)\$(PLAT)\include
|
|
|
|
EXTRA_LDFLAGS = /opt:ref
|
|
|
|
!else
|
|
|
|
CFLAGS_ADD = /MDd /Od /Zi /I..\include /I..\..\vs$(VSVER)\$(PLAT)\include
|
|
|
|
EXTRA_LDFLAGS =
|
|
|
|
!endif
|
|
|
|
|
|
|
|
!if "$(PLAT)" == "x64"
|
|
|
|
LDFLAGS_ARCH = /machine:x64
|
|
|
|
!else
|
|
|
|
LDFLAGS_ARCH = /machine:x86
|
|
|
|
!endif
|
|
|
|
|
|
|
|
CFLAGS_C99_COMPAT = /Dinline=__inline
|