home *** CD-ROM | disk | FTP | other *** search
/ Dream 57 / Amiga_Dream_57.iso / Amiga / Jeux / Reflexion / Crafty-15.19.lha / crafty-15.19 / src / Makefile.nt < prev    next >
Makefile  |  1998-09-16  |  5KB  |  137 lines

  1. # Makefile version 15.2
  2. # Crafty v15.x makefile for Windows 95/98/NT Intel & NT Alpha
  3. # Written by Jason Deines (jdeines@mindspring.com) April 1998
  4. #
  5. # This makefile is designed to be used from the command line with 
  6. # Microsoft's nmake.  Either rename this # file to "makefile" or name it 
  7. # explicitly when invoking nmake:
  8. #     nmake -f Makefile.nt
  9. #
  10. # The makefile is set up for Microsoft Visual C++ 5.0 Intel.  If you are 
  11. # building for NT on the Alpha, see below for the appropriate settings.
  12. #
  13. # The default target produces a file called "wcrafty.exe".  This compiles
  14. # all the .c files separately, producing individual .obj files, which are
  15. # then linked to create the executable.  You can also specify a target 
  16. # called "wcraftyx".  This creates a file called "wcraftyx.exe" by combining 
  17. # all of the .c files into two large .c files before the compile step.  
  18. # The large files generally provides more optimization possibilities for
  19. # the compiler, and usually results in slightly faster code.  To try it, 
  20. # type "nmake wcraftyx" instead of just "nmake".  The .c files x1.c and x2.c
  21. # will be created if needed and built automatically.
  22.  
  23.  
  24. # Build target is defined here. For Alpha compiler flags, see below.
  25. TARGET   = NT_i386
  26. #TARGET   = NT_AXP
  27.  
  28. # Command-line compiler and linker invocation commands:
  29. CC       = cl
  30. LD       = link
  31.  
  32. # Base compiler flags needed for build:
  33. BFLAGS = /D_CONSOLE /DWIN32
  34.  
  35. # Compiler flags:
  36. # /O2    optimize for speed
  37. # /Oa    assume no aliasing
  38. # /Gr    fastcall calling convention
  39. # /G5    target Pentium (but will run on all x86 architectures)
  40. # /G6    target Pentium Pro (but will run on all x86 architectures)
  41. #
  42. # For debugging use these flags instead:
  43. # CFLAGS  = /Od /Zi
  44. # LDFLAGS  = /DEBUG /DEBUGTYPE:CV
  45. #
  46. # For an Alpha build, use the following flags:
  47. # CFLAGS   = /Ox /Gs /QAgq
  48.  
  49. CFLAGS   = /O2 /G5 /Oa /Gr
  50. #CFLAGS   = /O2 /G6 /Oa /Gr
  51. #CFLAGS   = /Od /Zi
  52.  
  53. # Linker flags, normally not needed except for debug builds:
  54. LDFLAGS  =
  55. #LDFLAGS  = /DEBUG /DEBUGTYPE:CV
  56.  
  57. # See the default crafty makefile for a description of the options below.
  58. # With VC++, defines like COMPACT_ATTACKS, etc, makes the code slower, so 
  59. # those # options are disabled by default.  FAST is normally not defined 
  60. # so that hash statistics are reported -- for the fastest possible 
  61. # executable, define FAST below.
  62.  
  63. COPTS    =
  64. #COPTS    = /DFAST
  65. #COPTS    = /DCOMPACT_ATTACKS /DUSE_SPLIT_SHIFTS /DUSE_ATTACK_FUNCTIONS \
  66. #           /DUSE_ASSEMBLY_A /DUSE_ASSEMBLY_B /DTABLEBASES
  67.  
  68. # For an SMP build use/add the following build options.
  69. # NT_INTEREX is defined if you want to use the built-in InterlockedExchange()
  70. # function for thread resource locking, instead of the inline asm routine.
  71. # /MT is a compiler flag needed for multithreaded builds.
  72.  
  73. #COPTS    = /MT /DSMP /DCPUS=4 /DNT_INTEREX
  74. #COPTS    = /MT /DSMP /DCPUS=4
  75.  
  76. # If you are using any external assembler routines, put the name of the 
  77. # object code file(s) here.  Any such files will need to be generated 
  78. # separately -- there is no assembler step defined in the makefile.
  79.  
  80. asmobjs  =
  81. #asmobjs  = x86.obj
  82.  
  83.  
  84. ALLOPTS  = $(COPTS) /D$(TARGET)
  85.  
  86. cobjs    = analyze.obj annotate.obj attacks.obj bench.obj book.obj boolean.obj \
  87.        data.obj draw.obj drawn.obj edit.obj enprise.obj epd.obj epdglue.obj \
  88.        evaluate.obj evtest.obj history.obj init.obj input.obj interupt.obj \
  89.        iterate.obj learn.obj lookup.obj make.obj main.obj movgen.obj next.obj \
  90.        nexte.obj nextr.obj option.obj output.obj phase.obj ponder.obj \
  91.        preeval.obj quiesce.obj repeat.obj resign.obj root.obj search.obj \
  92.        searchmp.obj searchr.obj setboard.obj store.obj swap.obj test.obj \
  93.        thread.obj time.obj unmake.obj utility.obj valid.obj validate.obj
  94.  
  95. xcobjs   = x1.obj x2.obj
  96.  
  97. allobjs  = $(cobjs) $(asmobjs)
  98.  
  99. xallobjs = $(xcobjs) $(asmobjs)
  100.  
  101. includes = chess.h data.h epd.h epddefs.h epdglue.h
  102.  
  103. wcrafty  : $(allobjs)
  104.            $(LD) $(LDFLAGS) $(allobjs) /out:wcrafty.exe
  105.  
  106. wcraftyx : $(xallobjs)
  107.        $(LD) $(LDFLAGS) $(xallobjs) /out:wcraftyx.exe
  108.  
  109. $(cobjs) : $(includes)
  110.  
  111. .c.obj   :
  112.        $(CC) $(BFLAGS) $(CFLAGS) $(ALLOPTS) /c $*.c
  113.  
  114. $(xcobjs): $(includes)
  115.  
  116. x1.c:      searchr.c search.c repeat.c next.c nextr.c history.c nexte.c quiesce.c \
  117.        evaluate.c movgen.c make.c unmake.c lookup.c store.c attacks.c swap.c \
  118.        boolean.c draw.c utility.c valid.c searchmp.c thread.c 
  119.        copy /b searchr.c+search.c+repeat.c+next.c+nextr.c+history.c+nexte.c+ \
  120.        quiesce.c+evaluate.c+movgen.c+make.c+unmake.c+lookup.c+store.c+ \
  121.        attacks.c+swap.c+boolean.c+draw.c+utility.c+valid.c+searchmp.c+thread.c x1.c
  122. x2.c:      book.c data.c drawn.c edit.c enprise.c epd.c epdglue.c init.c \
  123.        input.c interupt.c iterate.c main.c option.c output.c phase.c ponder.c \
  124.        preeval.c resign.c root.c learn.c setboard.c test.c time.c \
  125.        validate.c annotate.c analyze.c evtest.c bench.c
  126.        copy /b book.c+data.c+drawn.c+edit.c+enprise.c+epd.c+epdglue.c+init.c+ \
  127.        input.c+interupt.c+iterate.c+main.c+option.c+output.c+phase.c+ponder.c+ \
  128.        preeval.c+resign.c+root.c+learn.c+setboard.c+test.c+time.c+ \
  129.        validate.c+annotate.c+analyze.c+evtest.c+bench.c x2.c
  130.  
  131. clean:
  132.        del -q $(cobjs)
  133.        del -q $(xcobjs)
  134.        del -q log.*
  135.        del -q game.**
  136.        del -q *.bak
  137.