# -*- makefile -*-
#
# mv.nmk: NMAKE FRAGMENT FOR MICROSOFT VISUAL C/C++
#
# $Id: //info.ravenbrook.com/project/mps/version/1.116/code/mv.nmk#1 $
# Copyright (c) 2014 Ravenbrook Limited.  See end of file for license.
#
# This file is included by platform nmake files that use the Microsoft
# Visual C/C+ compiler. It defines the compiler-specific variables
# that the common nmake file fragment (<code/commpost.nmk>) requires.

CC = cl
LIBMAN = lib
LINKER = link

# /D_CRT_SECURE_NO_WARNINGS suppresses "This function or variable may
# be unsafe" warnings for standard C library functions fopen, getenv,
# snprintf, sscanf, strcpy, and so on.
#
# /Gs appears to be necessary to suppress stack checks.  Stack checks
# (if not suppressed) generate a dependency on the C library, __chkesp,
# which causes the linker step to fail when building the DLL, mpsdy.dll.
CFLAGSCOMMONPRE = $(CFLAGSCOMMONPRE) /D_CRT_SECURE_NO_WARNINGS /W4 /WX /Gs /Fd$(PFM)\$(VARIETY)
LIBFLAGSCOMMON = $(LIBFLAGSCOMMON) /nologo

# /MD means compile for multi-threaded environment with separate C library DLL.
# /MT means compile for multi-threaded environment.
# /ML means compile for single-threaded environment.
# A 'd' at the end means compile for debugging.
CRTFLAGSHOT = $(CRTFLAGSHOT) /MT
CRTFLAGSCOOL = $(CRTFLAGSCOOL) /MTd

CFLAGSCOOL = $(CFLAGSCOOL) /Od

LINKFLAGSCOMMON = $(LINKFLAGSCOMMON) /PDB:$*.pdb
LINKFLAGSHOT = $(LINKFLAGSHOT) libcmt.lib
LINKFLAGSCOOL = $(LINKFLAGSCOOL) libcmtd.lib


# C. COPYRIGHT AND LICENSE
#
# Copyright (C) 2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
# All rights reserved.  This is an open source license.  Contact
# Ravenbrook for commercial licensing options.
# 
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
# 
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 
# 3. Redistributions in any form must be accompanied by information on how
# to obtain complete source code for this software and any accompanying
# software that uses this software.  The source code must either be
# included in the distribution or be available for no more than the cost
# of distribution plus a nominal fee, and must be freely redistributable
# under reasonable conditions.  For an executable file, complete source
# code means the source code for all modules it contains. It does not
# include source code for modules or files that typically accompany the
# major components of the operating system on which the executable file
# runs.
# 
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
# PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.