home *** CD-ROM | disk | FTP | other *** search
/ Big Green CD 8 / BGCD_8_Dev.iso / OPENSTEP / Languages / Python / python-14-src / PC / make_nt.in < prev    next >
Encoding:
Text File  |  1997-01-17  |  2.7 KB  |  94 lines

  1.  
  2. !include <ntwin32.mak>    # bring in platform specific stuff.
  3.  
  4. #Fix a problem with ntwin32.mak and Visual C++
  5. # problem is .mak defines "link=link32" and "lib=lib32"
  6. # Problem is MSVC linker/library manager use these environment
  7. # variables as additional flags to link/lib
  8. # Consequently, link warns "link32.obj not found" and similarly lib.
  9. #   This has really p___ed me of.  It has been very hard to get right.
  10. #   The LIB variable is used by MSVC to locate system library files, and
  11. #    damn ntwin32.mak sets lib.  Now although NMAKE is case sensitive, the OS'
  12. #   environment vars arent.  Therefore /E option _must_ be specified for MSVC
  13. # nmake itself is also very average :-(
  14. #
  15.  
  16. # Damn it.  Even with .pyd in the suffixes, nmake wont infer a line
  17. # mymodule.dll:
  18. # and run up the .c->.obj, .obj->.pyd.  And with all debug turned on, all
  19. # it says is "dont know how to make .."  Damn it (probably me, but I gave up:)
  20. #.SUFFIXES :
  21. #.SUFFIXES : .exe .dll .obj .asm .c .cpp .cxx .bas .cbl .for .pas .res .rc
  22.  
  23. # Version information.
  24. pyversion=140
  25. pypatchlevel=b1
  26.  
  27. pythondllext=pyd
  28. linker=$(link)
  29. libmgr=$(implib)
  30. LINK=
  31.  
  32. #cdebug = -Z7 -Od    # Z7 for win32s debugging
  33.  
  34. #
  35. # Additional common definitions
  36. #
  37. cinclude=/I$(pythondir)\Include
  38. python_dll=Py$(pyversion)-$(pypatchlevel).dll
  39. python_defs_lib=$(pythondir)\Modules\Python.lib
  40. python_defs_exp=$(pythondir)\Modules\Python.exp
  41. pythonopts=/DHAVE_CONFIG_H /nologo /MD /G3
  42.  
  43. #!IFDEF MSVC
  44. # Although this is handled, it generates warning.  This is to avoid them
  45. #cc=cl
  46. #linker=link
  47. #libmgr=lib
  48. #!ENDIF
  49.  
  50. !IFNDEF NODEBUG
  51. ldebug = -debug:full -debugtype:both
  52. !ENDIF
  53.  
  54. !ifndef BUILD_DL
  55. cdl=/DUSE_DL_EXPORT /DWIN32_PATCH_LEVEL=\"$(pyversion)-$(pypatchlevel)\"
  56.  
  57. .c.obj:
  58.     @$(cc) $(cflags) $(ccustom) $(cdebug) $(cinclude) $(pythonopts) $(cdl) $*.c
  59. !else
  60. #
  61. # Useful stuff for building DL modules under NT.
  62. #
  63.  
  64. cdl=/DUSE_DL_IMPORT
  65.  
  66. #if you have a .DEF file, define HAVE_DEF
  67. # if you dont want precompiled headers, define PCH=0 (in your makefile, not here!)
  68. !ifndef PCH
  69. PCH=1
  70. !endif
  71. !if "$(PCH)"=="1"
  72. cpch=/YX
  73. !else
  74. cpch=
  75. !endif
  76.  
  77. !ifdef HAVE_DEF
  78. export_statements=/DEF:$*.def 
  79. !else
  80. export_statements=/EXPORT:init$(*:module=) 
  81. !endif
  82. # Note for 'C', I use /Tp, to force as CPP - this will allow .C to define types.
  83. .c.obj:
  84.     @echo Warning - compiling as C++ file
  85.     @$(cc) $(cdl) $(cflags) $(ccustom) $(cdebug) $(cinclude) $(cpch) $(pythonopts) /DUSE_DL_IMPORT /Tp $*.c
  86.  
  87. .cpp.obj:
  88.     @$(cc) $(cdl) $(cflags) $(ccustom) $(cdebug) $(cinclude) $(cpch) $(pythonopts) /DUSE_DL_IMPORT $*.cpp
  89.  
  90. .obj.$(pythondllext):
  91.     @link -dll -out:$*.$(pythondllext) $*.obj $(ldebug) $(export_statements) $(guilibsdll) $(lcustom) $(python_defs_lib)
  92.  
  93. !endif # !BUILD_DL
  94.