summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--PC/make_nt.in93
1 files changed, 93 insertions, 0 deletions
diff --git a/PC/make_nt.in b/PC/make_nt.in
new file mode 100644
index 0000000..7e836b6
--- /dev/null
+++ b/PC/make_nt.in
@@ -0,0 +1,93 @@
+
+!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