laitimes

Win10+VS2019 is missing the contents of the win32.mak file when compiling the Jpeg source code

author:Alexabc

In Win10, the win32.mak file is missing when compiling Jpeg source code using nmake of VS2019.

The contents of the win32.mak file are as follows:

# Win32.Mak - Win32 application master NMAKE definitions file for the

# Microsoft Windows SDK programming samples

# Copyright (C) Microsoft Corporation

# -------------------------------------------------------------------------

# This files should be included at the top of all MAKEFILEs as follows:

# !include <Win32.Mak>

#

# Define APPVER = [ 4.0 | 5.0 | 5.01 | 5.02 | 6.0 | 6.1] prior to including win32.mak to get

# build time checking for version dependencies and to mark the executable

# with version information.

# Define TARGETOS = [ WIN95 | WINNT | BOTH ] prior to including win32.mak

# to get some build time checking for platform dependencies.

# Define TARGETLANG = [ LANG_JAPANESE | LANG_CHINESE | LANG_KOREAN ] prior

# to including win32.mak to getcompile & link flags for building

# applications to run on Far-East Windows. (This is an optional parameter.

# The system locale is the default.)

# Define _WIN32_IE = [ 0x0300 | 0x0400 | 0x0500 | 0x0600 | 0x0700 | 0x0800] prior to including win32.mak to

# get compile and link flags for building applications and components to

# run on Internet Explorer. (This is an optional parameter. IE 4.0 is

# the default.)

# NMAKE Options

# Use the table below to determine the additional options for NMAKE to

# generate various application debugging, profiling and performance tuning

# information.

# Application Information Type Invoke NMAKE

# ---------------------------- ------------

# For No Debugging Info nmake nodebug=1

# For Working Set Tuner Info nmake tune=1

# For Call Attributed Profiling Info nmake profile=1

# Note: The three options above are mutually exclusive (you may use only

# one to compile/link the application).

# Note: creating the environment variables NODEBUG, TUNE, and PROFILE is an

# alternate method to setting these options via the nmake command line.

# Note: TUNE and PROFILE do nothing for 64bit compilation

# Additional NMAKE Options Invoke NMAKE

# For No ANSI NULL Compliance nmake no_ansi=1

# (ANSI NULL is defined as PVOID 0)

# =========================================================================

# Build Rules Quick Start

# To build one of the following types of executables, use the specified

# compiler and linker command-line options.

# ---------------------------------------------------------------------------

# To build: | Compiler Options | Linker options (pick one

# | | line. with = console,

# | | gui = GUI, ole = GUI OLE)

# Single threaded | cdebug cflags cvars | ldebug guilflags guilibs

# app with static | | ldebug conlflags conlibs

# CRT | | ldebug guilflags olelibs

# Multithreaded app | cdebug cflags cvarsmt | ldebug guilflags guilibsmt

# with static CRT | | ldebug conlflags conlibsmt

# | | ldebug guilflags olelibsmt

# Single or multi- | cdebug cflags cvarsdll | ldebug guilflags guilibsdll

# threaded app with | | ldebug conlflags conlibsdll

# DLL version of CRT | | ldebug guilflags olelibsdll

# (MSVCRT. DLL) | |

# DLL with static | cdebug cflags cvarsmt | ldebug dlllflags guilibsmt

# CRT* | | ldebug dlllflags conlibsmt

# | | ldebug dlllflags olelibsmt

# DLL with DLL | cdebug cflags cvarsdll | ldebug dlllflags guilibsdll

# version of CRT | | ldebug dlllflags conlibsdll

# (MSVCRT. DLL) | | ldebug dlllflags olelibsdll

# * Always make DLLs multithreaded because a DLL has no way to know whether

# the calling application has multiple threads, and has no way to prevent

# multithreaded apps from loading it.

# To specify an Intel x86 build that defaults to stdcall, add scall to the

# list of compiler options.

! IFNDEF _WIN32_MAK_

_WIN32_MAK_ = 1

# Get CPU Type - exit if CPU environment variable is not defined

# Win95 does not define PROCESSOR_ARCHITECTURE - default to i386

! IF "$(PROCESSOR_ARCHITECTURE)" == ""

CPU=i386

PROCESSOR_ARCHITECTURE=x86

!endif

! IF ! DEFINED(CPU) || "$(CPU)" == ""

CPU = $(PROCESSOR_ARCHITECTURE)

! ENDIF # CPU

# if PROCESSOR_ARCHITECTURE was x86 or X86 change CPU to i386

! IF ( "$(CPU)" == "X86" ) || ( "$(CPU)" == "x86" )

CPU = i386

! ENDIF # CPU == X86

! IF "$(CPU)" != "i386"

! IF "$(CPU)" != "IA64"

! IF "$(CPU)" != "AMD64"

! ERROR Must specify CPU environment variable ( CPU=i386, CPU=IA64, CPU=AMD64)

! ENDIF

# Get Target Operating System - Default to WINNT

! IFNDEF TARGETOS

TARGETOS = WINNT

! IF "$(TARGETOS)" != "WINNT"

! IF "$(TARGETOS)" != "WIN95"

! IF "$(TARGETOS)" != "BOTH"

! ERROR Must specify TARGETOS environment variable (BOTH, WIN95, WINNT)

# default to APPVER of 5.0

! IFNDEF APPVER

APPVER = 5.0

! IF "$(APPVER)" != "6.1"

! IF "$(APPVER)" != "6.0"

! IF "$(APPVER)" != "5.02"

! IF "$(APPVER)" != "5.01"

! IF "$(APPVER)" != "5.0"

! IF "$(APPVER)" != "4.0"

! ERROR Must specify APPVER environment variable (4.0, 5.0, 5.01, 5.02, 6.0, 6.1)

! IF "$(APPVER)" =="6.1"

! IFNDEF _WIN32_IE

_WIN32_IE = 0x0800

! ENDIF # _WIN32_IE

! ENDIF # APPVER == 6.1

! IF "$(APPVER)" =="6.0"

_WIN32_IE = 0x0700

! ENDIF # APPVER == 6.0

! IF "$(APPVER)" =="5.0"

_WIN32_IE = 0x0500

! ENDIF # APPVER == 5.0

! IF "$(APPVER)" =="5.01"

_WIN32_IE = 0x0600

! ENDIF # APPVER == 5.01

! IF "$(APPVER)" =="5.02"

! ENDIF # APPVER == 5.02

_WIN32_IE = 0x0400

# Build tool declarations common to all platforms

# Check to see if Cole Porter is used, otherwise use C/C++ compiler

cc = cl

link = link

implib = lib

midl = midl

rc = Rc

hc = Start /Wait Hcrtf

mc = Mc

hcvars = -xn

# Platform Dependent Compile Flags - must be specified after $(cc)

# Note: Debug switches are on by default for current release

# These switches set code generation and debugging options for the compiler.

# They also set macros used for conditional compilation.

# The debugging switches allow for source level debugging with WinDebug or

# Microsoft Visual C++.

# Common compiler flags:

# -c - compile without linking

# -W3 - Set warning level to level 3 (-W4 for 64-bit compilations)

# -Zi - generate debugging information

# -Od - disable all optimizations

# -Ox - use maximum optimizations

# -Zd - generate only public symbols and line numbers for debugging

# -GS - enable security checks

# i386 specific compiler flags:

# -Gz - stdcall (only if scall is added to makefile's compiler build rules)

# declarations common to all compiler options

ccommon = -c -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -GS

# for compatibility with old source code, map {try, except, leave, finally}

# to their proper names (i.e. prefaced by "__")

! IFDEF SEHMAP

ccommon = $(ccommon) -FIsehmap.h

! IF "$(TARGETLANG)" == "LANG_JAPANESE"

ccommon = $(ccommon) -DJAPAN -DDBCS -DFE_IME

! IF "$(TARGETLANG)" == "LANG_CHINESE"

ccommon = $(ccommon) -DDBCS -DFE_IME

! IF "$(TARGETLANG)" == "LANG_KOREAN"

! IF "$(CPU)" == "i386"

cflags = $(ccommon) -D_X86_=1 -DWIN32 -D_WIN32 -W3

scall = -Gz

! ELSEIF "$(CPU)" == "IA64"

cflags = $(ccommon) -D_IA64_=1 -DWIN64 -D_WIN64 -DWIN32 -D_WIN32

cflags = $(cflags) -W4

scall =

! ELSEIF "$(CPU)" == "AMD64"

cflags = $(ccommon) -D_AMD64_=1 -DWIN64 -D_WIN64 -DWIN32 -D_WIN32

! IF "$(APPVER)" == "4.0"

NMAKE_WINVER = 0x0400

! ELSEIF "$(APPVER)" == "5.0"

NMAKE_WINVER = 0x0500

! ELSEIF "$(APPVER)" == "5.01"

NMAKE_WINVER = 0x0501

! ELSEIF "$(APPVER)" == "5.02"

NMAKE_WINVER = 0x0502

! ELSEIF "$(APPVER)" == "6.0"

NMAKE_WINVER = 0x0600

! ELSEIF "$(APPVER)" == "6.1"

NMAKE_WINVER = 0x0601

! IF "$(TARGETOS)" == "WINNT"

cflags = $(cflags) -D_WINNT -D_WIN32_WINNT=$(NMAKE_WINVER) -DNTDDI_VERSION=$(NMAKE_WINVER)0000

! IF "$(TARGETOS)" == "WIN95"

cflags = $(cflags) -D_WIN95 -D_WIN32_WINDOWS=$(NMAKE_WINVER) /D_WIN32_DCOM

# regardless of the TARGET OS, define compile time WINVER to match APPVER macro

cflags = $(cflags) -D_WIN32_IE=$(_WIN32_IE) -DWINVER=$(NMAKE_WINVER)

# Set debugging options

! IFDEF NODEBUG

cdebug = -Ox -DNDEBUG

! ELSE IFDEF PROFILE

cdebug = -Gh -Ox -DNDEBUG

! ELSE IFDEF TUNE

! ELSE

cdebug = -Zi -Od -DDEBUG

cdebug = -Ox -DNDEBUG

# Target Module & Subsystem Dependent Compile Defined Variables - must be

# specified after $(cc)

# The following table indicates the various acceptable combinations of

# the C Run-Time libraries LIBC, LIBCMT, and MSVCRT respect to the creation

# of a EXE and/or DLL target object. The appropriate compiler flag macros

# that should be used for each combination are also listed.

# Executable Type C Runtime Lib Compiler switch

# -------------------------------------------------------------

# Single threaded app static CRT CVARS *

# Single-threaded app DLL CRT CVARSDLL

# Multi-threaded app static CRT CVARSMT *

# Multi-threaded app DLL CRT CVARSDLL *

# Single threaded DLL static CRT CVARS

# Single-threaded DLL DLL CRT CVARSDLL

# Multi-threaded DLL static CRT CVARSMT *

# Multi-threaded DLL DLL CRT CVARSDLL *

# * - Denotes the Recommended Configuration

# When building single-threaded applications you can link your executable

# with either LIBC, LIBCMT, or MSVCRT, although LIBC will provide the best

# performance.

# When building multi-threaded applications, either LIBCMT or MSVCRT can

# be used as the C-Runtime library, as both are multi-thread safe.

# Note: Any executable which accesses a DLL linked with MSVCRT. LIB must

# also link with MSVCRT. LIB instead of LIBC. LIB or LIBCMT. LIB.

# When using DLLs, it is recommended that all of the modules be

# linked with MSVCRT. LIB.

# Note: The macros of the form xDLL are used when linking the object with

# the DLL version of the C Run-Time (that is, MSVCRT. LIB). They are

# not used when the target object is itself a DLL.

! IFDEF NO_ANSI

noansi = -DNULL=0

# for Windows applications that use the C Run-Time libraries

cvarsmt = $(noansi) -D_MT -MT

cvars = $(cvarsmt)

cvarsdll = $(noansi) -D_MT -D_DLL -MD

cvarsmt = $(noansi) -D_MT -MTd

cvarsdll = $(noansi) -D_MT -D_DLL -MDd

# for compatibility with older-style makefiles

cvarsmtdll = $(cvarsdll)

# for POSIX applications

psxvars = -D_POSIX_

# resource compiler

rcflags = /r

!ifdef NODEBUG

rcvars = -DWIN32 -D_WIN32 -DWINVER=$(NMAKE_WINVER) $(noansi)

!else

rcvars = -DWIN32 -D_WIN32 -DWINVER=$(NMAKE_WINVER) -DDEBUG -D_DEBUG $(noansi)

rcflags = $(rcflags) /c932

rcvars = $(rcvars) -DJAPAN -DDBCS -DFE_IME

rcvars = $(rcvars) -DDBCS -DFE_IME

# Platform Dependent MIDL Flags - must be specified after midl

MIDL_OPTIMIZATION=-target NT40

! ELSEIF "$(TARGETOS)" == "WINNT"

! IF "$(APPVER)" == "5.0"

MIDL_OPTIMIZATION=-target NT50

MIDL_OPTIMIZATION=-target NT60

MIDL_OPTIMIZATION=-target NT61

MIDL_OPTIMIZATION=-target NT51

! ELSEIF "$(APPVER)" == "4.0"

! IF "$(CPU)" == "IA64"

MIDL_OPTIMIZATION = $(MIDL_OPTIMIZATION) /ia64

MIDL_OPTIMIZATION = $(MIDL_OPTIMIZATION) /x64

MIDL_OPTIMIZATION = $(MIDL_OPTIMIZATION) /win32

! IF ("$(TARGETOS)" == "WINNT" ) && ("$(APPVER)" != "4.0")

MIDL_OPTIMIZATION = $(MIDL_OPTIMIZATION) /robust

# Platform Dependent Link Flags - must be specified after $(link)

# Note: $(DLLENTRY) should be appended to each -entry: flag on the link

# line.

# Note: When creating a DLL that uses C Run-Time functions it is

# recommended to include the entry point function of the name DllMain

# in the DLL's source code. Also, the MAKEFILE should include the

# -entry:_DllMainCRTStartup$(DLLENTRY) option for the creation of

# this DLL. (The C Run-Time entry point _DllMainCRTStartup in turn

# calls the DLL defined DllMain entry point.)

# declarations common to all linker options

lflags = $(lflags) /INCREMENTAL:NO /NOLOGO

# declarations for use on Intel x86 systems

DLLENTRY = @12

# declarations for use on Intel Architecture 64-bit systems

DLLENTRY =

# declarations for use on AMD64 systems

! IF "$(CPU)" == "AMD64"

# Target Module Dependent Link Debug Flags - must be specified after $(link)

# These switches allow the inclusion of the necessary symbolic information

# for source level debugging with WinDebug, profiling and/or performance

# tuning.

# Note: Debug switches are on by default.

ldebug = /RELEASE

ldebug = /DEBUG /DEBUGTYPE:cv

ldebug = /DEBUG:mapped,partial /DEBUGTYPE:coff

linkdebug = $(ldebug)

# Subsystem Dependent Link Flags - must be specified after $(link)

# These switches allow for source level debugging with WinDebug for local

# and global variables. They also provide the standard application type and

# entry point declarations.

# Note that on x86 screensavers have a WinMain entrypoint, but on RISC

# platforms it is main. This is a Win95 compatibility issue.

# Windows 98 needs subsystem version set to 4.10 for version 5.0 features.

! IF ("$(APPVER)" == "5.0") && (("$(TARGETOS)" == "BOTH") || ("$(TARGETOS)" == "WIN95"))

EXEVER = 4.10

EXEVER = $(APPVER)

# ---------------------------------------------

# for Windows applications

conlflags = $(lflags) -subsystem:console,$(EXEVER)

guilflags = $(lflags) -subsystem:windows,$(EXEVER)

dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll

# For screen savers

savlflags = $(lflags) -subsystem:windows,$(EXEVER) -entry:WinMainCRTStartup

savlflags = $(lflags) -subsystem:windows,$(EXEVER) -entry:mainCRTStartup

psxlflags = $(lflags) -subsystem:posix -entry:__PosixProcessStartup

conflags = $(conlflags)

guiflags = $(guilflags)

psxflags = $(psxlflags)

# C Run-Time Target Module Dependent Link Libraries

# Note: For POSIX applications, link with $(psxlibs).

psxlibs = libcpsx.lib psxdll.lib psxrtl.lib oldnames.lib

# optional profiling and tuning libraries

! IFDEF PROFILE

optlibs = cap.lib

optlibs = wst.lib

optlibs =

# if building for basic Windows 95, use WinSock1, else use WinSock2

winsocklibs = wsock32.lib

winsocklibs = ws2_32.lib mswsock.lib

# basic subsystem specific libraries, less the C Run-Time

baselibs = kernel32.lib $(optlibs) $(winsocklibs) advapi32.lib

winlibs = $(baselibs) user32.lib gdi32.lib comdlg32.lib winspool.lib

conlibs = $(baselibs)

guilibs = $(winlibs)

# for OLE applications

olelibs = ole32.lib uuid.lib oleaut32.lib $(guilibs)

#for backwards compatibility

conlibsmt = $(conlibs)

conlibsdll = $(conlibs)

guilibsmt = $(guilibs)

guilibsdll = $(guilibs)

olelibsmt = $(olelibs)

olelibsdll = $(olelibs)

# for backward compatibility

ole2libs = $(olelibs)

ole2libsmt = $(olelibsmt)

ole2libsdll = $(olelibsdll)

# Visual Basic

bc = vb6

bc_exe = /Make

bc_dll = /Makedll

# Set the Output Directory

! IF ("$(APPVER)" == "6.1")

OUTDIR=WIN7

! ELSEIF ("$(APPVER)" == "6.0")

OUTDIR=View

OUTDIR=WIN2000

! ELSEIF "$(APPVER)" == "5.01"

OUTDIR=XP32

OUTDIR=SRV2003

OUTDIR=NT4

OUTDIR=$(OUTDIR)_X64

OUTDIR=$(OUTDIR)_64

#set Prerelease Out directories

! IF "$(SDKPRERELEASE)" == "1"

OUTDIR=PRE_$(OUTDIR)

#Set DEBUG

! IF "$(NODEBUG)" == ""

OUTDIR=$(OUTDIR)_DEBUG

OUTDIR=$(OUTDIR)_RETAIL

! IF "$(OS)" == "Windows_NT"

CLEANUP=if exist $(OUTDIR)/$(NULL) rd /s /q $(OUTDIR)

CLEANUP=deltree /y $(OUTDIR)

VC6MSG=This sample only compiles with Microsoft Visual C++ 6.0. \

To compile this run vcvars32.bat for Visual C++ 6.0, and setenv.bat in $(MSSDK).

WIN64MSG=This sample is currently not supported on the 64 bit platform.

#ENDIF _WIN32_MAK_