Makedefs.win32
上传用户:kellyonhid
上传日期:2013-10-12
资源大小:932k
文件大小:3k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. #!gmake
  2. # try to use sh instead of command.com, if it can be found
  3. # (make will determine this for itself; just put sh.exe on your path)
  4. # This makefile currently won't work unless you do have sh.
  5. SHELL = sh
  6. #
  7. # Versions
  8. #
  9. ALLVERSIONS = debug32 opt32
  10. DEFAULTVERSION = debug32
  11. #
  12. # Compiler choice and options
  13. #
  14. # /Zi is debug, /O2 is optimize, /Gi is incremental compiler,
  15. OPTIMIZER = /Gi
  16. ifneq (,$(findstring opt,$(BUILD)))
  17. OPTIMIZER += /O2
  18. else
  19. OPTIMIZER += /Zi
  20. endif
  21. TARGET = -DWIN32 -nologo
  22. LINKOPT = /INCREMENTAL:YES /DEBUG
  23. # The console situation here is kind of a mess; Tk doesn't seem to get its
  24. # message pump/event loop working correctly with a real Windows console,
  25. # so it has a way to provide one, but then some output goes to one and
  26. # some to the other.  Plus if we link with /SUBSYS:WINDOWS, it allocates a
  27. # new console even if you run it from a console window; if you link with
  28. # /SUBSYS:CONSOLE, you don't have this problem but the message loop is
  29. # hosed. Solution: link as console app but with WinMain as entry point,
  30. # which contains important init code for the GUI console. We still have
  31. # two separate consoles for output, I don't know a way around this, but at
  32. # least it doesn't create a 3rd console if it can reuse the current one!
  33. LINKOPT += /SUBSYSTEM:CONSOLE /ENTRY:WinMainCRTStartup
  34. CC = cl
  35. CXX = cl
  36. LINK = link $(LINKOPT)
  37. #
  38. # Paths (include, library paths) and libraries
  39. #
  40. EXTRA_INCLUDE = auxlibs/include
  41. ifdef SYSTEMDRIVE
  42. SystemDrive := $(SYSTEMDRIVE)
  43. endif
  44. PROGFILES = $(SystemDrive)/Program Files
  45. TCL = $(PROGFILES)/Tcl/
  46. IFL = $(PROGFILES)/Silicon Graphics/IFL 1.3.1/
  47. INCLUDES += -I$(IFL)/include 
  48.     -I$(TCL)/include
  49. # STL: included copy on VC6; downloaded SGI version, because a lot of
  50. # the code includes <vector.h>, etc. and the new version
  51. # with MSVC6 only includes <vector>, not <vector.h>.
  52. # We could probably change all the code to the new style,
  53. # but it compiles and runs the way it is if you include
  54. # both stl's on the include search path (Microsoft's first
  55. # so in case of collision, it chooses its own -- some of
  56. # the SGI version fails to compile on VC).
  57. # Also, the SGI implementation includes hash classes which are not part of 
  58. # the STL proper and are not included by Microsoft.
  59. INCLUDES += -I$(PROGFILES)/Microsoft Visual Studio/VC98/include
  60. INCLUDES +=  -I. 
  61. -I$(EXTRA_INCLUDE)/stl 
  62.         -I$(EXTRA_INCLUDE)/tnt
  63. LIBPATHS = -LIBPATH:$(TCL)/lib -LIBPATH:$(IFL)/lib
  64. LIBS = kernel32.lib user32.lib gdi32.lib 
  65. tcl80vc.lib tk80vc.lib opengl32.lib glu32.lib ifl0.lib
  66. #
  67. # Final compiler options
  68. #
  69. # /FI flag forces winGLdecs.h and noDumbWinWarnings.h into every source file
  70. ALLFLAGS = $(OPTIMIZER) $(INCLUDES) $(TARGET) /FIwinGLdecs.h /FInoDumbWinWarnings.h
  71. CFLAGS = $(ALLFLAGS) -D_BOOL
  72. # /TP is treat as C++ regardless of extension (otherwise doesn't know .cc)
  73. # /GX is enable exception handling (STL needs it)
  74. # /GR is enable RTTI (dynamic_cast<>)
  75. CXXFLAGS = $(ALLFLAGS) /TP /GX /GR