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 < prev    next >
Makefile  |  1998-09-30  |  6KB  |  203 lines

  1.  
  2. # To build crafty:
  3. #
  4. #         Uncomment the sections relevant to your architecture.
  5. #      You may need to tune the two gcc lines below to match your compiler.
  6. #      You want to set up for maximum optimization, but typically you will
  7. #      need to experiment to see which options provide the fastest code.
  8. #      This is optimized for pgcc, which is a fairly current compiler.
  9. #   
  10. #   The currently available targets:
  11. #
  12. #     AIX      {IBM machines running AIX}
  13. #     ALPHA    {DEC Alpha running OSF/1-Digital Unix}
  14. #     CRAY1    {any Cray-1 compatible architecture including XMP, YMP, 
  15. #               C90, etc.}
  16. #     HP       {HP workstation running HP_UX operating system (unix)}
  17. #     LINUX    {80X86 architecture running LINUX (unix)}
  18. #     NT_i386  {80X86 architecture running Windows 95 or NT}
  19. #     NT_AXP   {DEC Alpha running Windows NT}
  20. #     DOS      {PC running dos/windows, using DJGPP port of gcc to compile}
  21. #     NEXT     {NextStep}
  22. #     OS/2     {IBM OS/2 warp}
  23. #     SGI      {SGI Workstation running Irix (SYSV/R4) Unix}
  24. #     SUN      {Sun SparcStation running Solaris (SYSV/R4) Unix}
  25. #     SUN_BSD  {Sun SparcStation running SunOS (BSD) Unix}
  26. #     FreeBSD  {80X86 architecture running FreeBSD (unix)}
  27. #   
  28. #   The next options are optimizations inside Crafty that you will have
  29. #   test to see if they help.  on some machines, these will slow things
  30. #   by up to 10%, while on other machines these options will result in
  31. #   improving search speed up to 20%.  NOTE:  if you are running Linux
  32. #   or have a SUN Sparc-20 machine, the default configurations below
  33. #   will use the hand-written assembly modules.  Typical performance
  34. #   improvement is 33%, but this only applies to X86 machines and the
  35. #   Sun Sparc-20.
  36. #   
  37. #   1.  opt = -DCOMPACT_ATTACKS
  38. #   2.  opt = -DCOMPACT_ATTACKS -DUSE_SPLIT_SHIFTS
  39. #   3.  opt = -DCOMPACT_ATTACKS -DUSE_SPLIT_SHIFTS -DUSE_ATTACK_FUNCTIONS
  40. #   
  41. #   Finally, if you have a Symmetric MultiProcessor machine, you should
  42. #   add -DSMP to the opt definition for your make configuration, and then
  43. #   add -DCPUS=N where N is the number of processors (max) you will use.
  44. #   
  45. # AIX
  46. #target  = AIX
  47. #CC      = cc
  48. #CFLAGS  = -O2
  49. #LDFLAGS =
  50. #opt     = -DCOMPACT_ATTACKS -DUSE_SPLIT_SHIFTS -DUSE_ATTACK_FUNCTIONS
  51.  
  52. #opt     = -DCOMPACT_ATTACKS
  53. # ALPHA
  54. #target  = ALPHA
  55. #CC      = cc
  56. #CFLAGS  = -O0 -pthread -newc -tune host
  57. #LDFLAGS = $(CFLAGS)
  58. #LIBS    = -lpthread -lexc
  59. ##opt    = -DSMP -DCPUS=8 -DMUTEX -DFAST -DPOSIX
  60. #opt     = -DSMP -DCPUS=8 -DFAST -DPOSIX
  61.  
  62.  
  63. # DOS
  64. # target  = DOS
  65. # CC      = gcc
  66. # CFLAGS  = -fomit-frame-pointer -m486 -O3
  67. # LDFLAGS =
  68. # opt     = -DCOMPACT_ATTACKS -DUSE_SPLIT_SHIFTS -DUSE_ATTACK_FUNCTIONS \
  69. #           -DUSE_ASSEMBLY_A -DUSE_ASSEMBLY_B
  70. # asm     = X86.o
  71.  
  72. # FreeBSD (gcc 2.6.3)
  73. #target  = FreeBSD
  74. #CC      = gcc
  75. #CFLAGS  = -fomit-frame-pointer -m486 -O3 -Wall
  76. #LDFLAGS = 
  77. #opt     = -DCOMPACT_ATTACKS -DUSE_SPLIT_SHIFTS -DUSE_ATTACK_FUNCTIONS \
  78. #          -DUSE_ASSEMBLY_A -DUSE_ASSEMBLY_B -DFAST
  79.  
  80. # FreeBSD (pgcc)
  81. #target  = FreeBSD
  82. #CC      = gcc
  83. #CFLAGS  = -pipe -D_REENTRANT -mpentium -O -Wall
  84. #LDFLAGS = 
  85. #opt     = -DCOMPACT_ATTACKS -DUSE_SPLIT_SHIFTS -DUSE_ATTACK_FUNCTIONS \
  86. #          -DUSE_ASSEMBLY_A -DUSE_ASSEMBLY_B -DFAST
  87.  
  88. # HP
  89. #target  = HP
  90. #CC      = cc
  91. #OPT     = +O3 +Onolimit
  92. #CFLAGS  = +ESlit -Ae +w1
  93. #LDFLAGS = $(OPT) $(CFLAGS)
  94. #opt     = 
  95.  
  96. # LINUX
  97. # Note: You have to uncomment exactly ONE of the `asm' lines below.
  98. #target  = LINUX
  99. #CC      = gcc
  100. #CFLAGS  = -pipe -D_REENTRANT -m486 -O -Wall
  101. #LDFLAGS = -lpthread
  102. #opt     = -DCOMPACT_ATTACKS -DUSE_SPLIT_SHIFTS -DUSE_ATTACK_FUNCTIONS \
  103. #          -DUSE_ASSEMBLY_A -DUSE_ASSEMBLY_B -DFAST -DSMP -DCPUS=4
  104.  
  105. # Uncomment the FIRST `asm' line for a.out systems.
  106. # Uncomment the SECOND `asm' line for ELF systems.
  107. #
  108. #asm     = X86-aout.o
  109. #asm     = X86-elf.o
  110.  
  111. # NEXT
  112. #target  = NEXT
  113. #CC      = /bin/cc
  114. #CFLAGS  = -O2
  115. #LDFLAGS = $(CFLAGS)
  116. #opt     = -DCOMPACT_ATTACKS
  117.  
  118. # OS2 (emx09c)
  119. #  target  = OS2
  120. #  CC      = gcc
  121. #  CFLAGS  = -fomit-frame-pointer -m486 -O3 -Wall
  122. #  LDFLAGS = -Zexe -Zcrtdll -s
  123. #  opt = -DCOMPACT_ATTACKS -DUSE_SPLIT_SHIFTS -DUSE_ATTACK_FUNCTIONS \
  124. #        -DUSE_ASSEMBLY_A -DUSE_ASSEMBLY_B -DFAST -DOS2
  125. #  asm     = X86.o
  126.  
  127. # SGI
  128. #target  = SGI
  129. #AS      = /bin/as
  130. #CC      = cc
  131. #AFLAGS  = -P
  132. #CFLAGS  = -g -32 -mips2 -cckr
  133. #LDFLAGS = 
  134. #opt     = -DCOMPACT_ATTACKS -DUSE_SPLIT_SHIFTS -DUSE_ATTACK_FUNCTIONS
  135. #opt     = 
  136.  
  137. # SUN
  138. #target  = SUN
  139. #AS      = /usr/ccs/bin/as
  140. #CC      = cc
  141. #AFLAGS  = -P
  142. #CFLAGS  = -fast -xO5 -xunroll=20
  143. #LDFLAGS = -lpthread
  144. #opt     = -DCOMPACT_ATTACKS -DUSE_SPLIT_SHIFTS -DUSE_ATTACK_FUNCTIONS \
  145. #          -DUSE_ASSEMBLY_A -DSMP -DCPUS=4 -DMUTEX -DPOSIX
  146. #asm     = Sparc.o
  147.  
  148. # AMIGA
  149. target    = AMIGA
  150. CC    = gcc
  151. CFLAGS    = -O3 -Wall -mc68020
  152. LDFLAGS    = $(CFLAGS) -s
  153. opt    = -DCOMPACT_ATTACKS -DUSE_SPLIT_SHIFTS
  154. # Do not change anything below this line!
  155.  
  156. opts = $(opt) -D$(target)
  157.  
  158. objects = searchr.o search.o thread.o searchmp.o repeat.o next.o nexte.o      \
  159.         nextr.o history.o quiesce.o evaluate.o movgen.o make.o unmake.o       \
  160.         lookup.o store.o attacks.o swap.o boolean.o draw.o utility.o valid.o  \
  161.         book.o data.o drawn.o edit.o enprise.o epd.o epdglue.o init.o input.o \
  162.         interupt.o iterate.o main.o option.o output.o phase.o ponder.o        \
  163.         preeval.o resign.o root.o learn.o setboard.o test.o time.o validate.o \
  164.         annotate.o analyze.o evtest.o bench.o $(asm)
  165.  
  166. includes = data.h chess.h
  167.  
  168. epdincludes = epd.h epddefs.h epdglue.h
  169.  
  170. eval_users = data.o evaluate.o preeval.o 
  171.  
  172. crafty:    $(objects) 
  173.     @echo $(CC) $(LDFLAGS) -o crafty {object files} -lm
  174.     @$(CC) $(LDFLAGS) -o crafty $(objects) -lm  $(LIBS)
  175.     @rm -f X86-elf.S
  176.     @rm -f X86-aout.S
  177.  
  178. clean:
  179.     -rm -f *.o crafty X86-elf.X X86-aout.S
  180.  
  181. $(objects): $(includes)
  182.  
  183. $(eval_users): evaluate.h
  184.  
  185. epd.o epdglue.o option.o init.o : $(epdincludes)
  186.  
  187. .c.o:
  188.     @echo $(CC) $(CFLAGS) -c $*.c
  189.     @$(CC) $(CFLAGS) $(opts) -c $*.c
  190.  
  191. .s.o:
  192.     $(AS) $(AFLAGS) -o $*.o $*.s
  193.  
  194. X86-aout.o:
  195.     @cp X86.s X86-aout.S
  196.     @$(CC) -c X86-aout.S
  197.     @rm X86-aout.S
  198.  
  199. X86-elf.o:
  200.     @sed -e '/ _/s// /' -e '/^_/s///' X86.s > X86-elf.S
  201.     @$(CC) -c X86-elf.S
  202.     @rm X86-elf.S
  203.