mirror of https://github.com/python/cpython
94 lines
2.6 KiB
Plaintext
94 lines
2.6 KiB
Plaintext
|
|
||
|
!include <ntwin32.mak> # bring in platform specific stuff.
|
||
|
|
||
|
#Fix a problem with ntwin32.mak and Visual C++
|
||
|
# problem is .mak defines "link=link32" and "lib=lib32"
|
||
|
# Problem is MSVC linker/library manager use these environment
|
||
|
# variables as additional flags to link/lib
|
||
|
# Consequently, link warns "link32.obj not found" and similarly lib.
|
||
|
# This has really p___ed me of. It has been very hard to get right.
|
||
|
# The LIB variable is used by MSVC to locate system library files, and
|
||
|
# damn ntwin32.mak sets lib. Now although NMAKE is case sensitive, the OS'
|
||
|
# environment vars arent. Therefore /E option _must_ be specified for MSVC
|
||
|
# nmake itself is also very average :-(
|
||
|
#
|
||
|
|
||
|
# Damn it. Even with .pyd in the suffixes, nmake wont infer a line
|
||
|
# mymodule.dll:
|
||
|
# and run up the .c->.obj, .obj->.pyd. And with all debug turned on, all
|
||
|
# it says is "dont know how to make .." Damn it (probably me, but I gave up:)
|
||
|
#.SUFFIXES :
|
||
|
#.SUFFIXES : .exe .dll .obj .asm .c .cpp .cxx .bas .cbl .for .pas .res .rc
|
||
|
|
||
|
# Version information.
|
||
|
pyversion=140
|
||
|
pypatchlevel=b1
|
||
|
|
||
|
pythondllext=pyd
|
||
|
linker=$(link)
|
||
|
libmgr=$(implib)
|
||
|
LINK=
|
||
|
|
||
|
#cdebug = -Z7 -Od # Z7 for win32s debugging
|
||
|
|
||
|
#
|
||
|
# Additional common definitions
|
||
|
#
|
||
|
cinclude=/I$(pythondir)\Include
|
||
|
python_dll=Py$(pyversion)-$(pypatchlevel).dll
|
||
|
python_defs_lib=$(pythondir)\Modules\Python.lib
|
||
|
python_defs_exp=$(pythondir)\Modules\Python.exp
|
||
|
pythonopts=/DHAVE_CONFIG_H /nologo /MD /G3
|
||
|
|
||
|
#!IFDEF MSVC
|
||
|
# Although this is handled, it generates warning. This is to avoid them
|
||
|
#cc=cl
|
||
|
#linker=link
|
||
|
#libmgr=lib
|
||
|
#!ENDIF
|
||
|
|
||
|
!IFNDEF NODEBUG
|
||
|
ldebug = -debug:full -debugtype:both
|
||
|
!ENDIF
|
||
|
|
||
|
!ifndef BUILD_DL
|
||
|
cdl=/DUSE_DL_EXPORT /DWIN32_PATCH_LEVEL=\"$(pyversion)-$(pypatchlevel)\"
|
||
|
|
||
|
.c.obj:
|
||
|
@$(cc) $(cflags) $(ccustom) $(cdebug) $(cinclude) $(pythonopts) $(cdl) $*.c
|
||
|
!else
|
||
|
#
|
||
|
# Useful stuff for building DL modules under NT.
|
||
|
#
|
||
|
|
||
|
cdl=/DUSE_DL_IMPORT
|
||
|
|
||
|
#if you have a .DEF file, define HAVE_DEF
|
||
|
# if you dont want precompiled headers, define PCH=0 (in your makefile, not here!)
|
||
|
!ifndef PCH
|
||
|
PCH=1
|
||
|
!endif
|
||
|
!if "$(PCH)"=="1"
|
||
|
cpch=/YX
|
||
|
!else
|
||
|
cpch=
|
||
|
!endif
|
||
|
|
||
|
!ifdef HAVE_DEF
|
||
|
export_statements=/DEF:$*.def
|
||
|
!else
|
||
|
export_statements=/EXPORT:init$(*:module=)
|
||
|
!endif
|
||
|
# Note for 'C', I use /Tp, to force as CPP - this will allow .C to define types.
|
||
|
.c.obj:
|
||
|
@echo Warning - compiling as C++ file
|
||
|
@$(cc) $(cdl) $(cflags) $(ccustom) $(cdebug) $(cinclude) $(cpch) $(pythonopts) /DUSE_DL_IMPORT /Tp $*.c
|
||
|
|
||
|
.cpp.obj:
|
||
|
@$(cc) $(cdl) $(cflags) $(ccustom) $(cdebug) $(cinclude) $(cpch) $(pythonopts) /DUSE_DL_IMPORT $*.cpp
|
||
|
|
||
|
.obj.$(pythondllext):
|
||
|
@link -dll -out:$*.$(pythondllext) $*.obj $(ldebug) $(export_statements) $(guilibsdll) $(lcustom) $(python_defs_lib)
|
||
|
|
||
|
!endif # !BUILD_DL
|