www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/05/21/14:52:44

Message-ID: <003101bfc355$56967280$fa13ddcc@lhaglund>
From: "Josh Haglund" <lhaglund AT wiktel DOT com>
To: <djgpp AT delorie DOT com>
Subject: windows version of Crafty
Date: Sun, 21 May 2000 13:49:46 -0500
MIME-Version: 1.0
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2314.1300
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
Reply-To: djgpp AT delorie DOT com

I can compile crafty.exe in DOS, but how do I do compile it so it will work
with winboard (NOT DOS) ? I use to be able to compile one with cgywin ....
but I don't have that anymore, so could some help me a bit.

Makefile-

# To build crafty:
#
#         Uncomment the sections relevant to your architecture.
#   You may need to tune the two gcc lines below to match your compiler.
#   You want to set up for maximum optimization, but typically you will
#   need to experiment to see which options provide the fastest code.
#   This is optimized for pgcc, which is a fairly current compiler.
#
#   The currently available targets:
#
#     AIX      {IBM machines running AIX}
#     ALPHA    {DEC Alpha running OSF/1-Digital Unix}
#     CRAY1    {any Cray-1 compatible architecture including XMP, YMP,
#               C90, etc.}
#     HP       {HP workstation running HP_UX operating system (unix)}
#     LINUX    {80X86 architecture running LINUX (unix)}
#     NT_i386  {80X86 architecture running Windows 95 or NT}
#     NT_AXP   {DEC Alpha running Windows NT}
#     DOS      {PC running dos/windows, using DJGPP port of gcc to compile}
#     NEXT     {NextStep}
#     OS/2     {IBM OS/2 warp}
#     SGI      {SGI Workstation running Irix (SYSV/R4) Unix}
#     SUN      {Sun SparcStation running Solaris (SYSV/R4) Unix}
#     SUN_BSD  {Sun SparcStation running SunOS (BSD) Unix}
#     FreeBSD  {80X86 architecture running FreeBSD (unix)}
#
#   The next options are optimizations inside Crafty that you will have
#   test to see if they help.  on some machines, these will slow things
#   by up to 10%, while on other machines these options will result in
#   improving search speed up to 20%.  NOTE:  if you are running Linux
#   or have a SUN Sparc-20 machine, the default configurations below
#   will use the hand-written assembly modules.  Typical performance
#   improvement is 33%, but this only applies to X86 machines and the
#   Sun Sparc-20.
#
#   1.  opt = -DCOMPACT_ATTACKS
#   2.  opt = -DCOMPACT_ATTACKS -DUSE_ATTACK_FUNCTIONS
#
#   Finally, if you have a Symmetric MultiProcessor machine, you should
#   add -DSMP to the opt definition for your make configuration, and then
#   add -DCPUS=N where N is the number of processors (max) you will use.
#
#   if you want 6 man EGTB support, you will need to add -DEGTB6 to the
#   options above.
#
#
# AIX
#target  = AIX
#CC      = cc
#CFLAGS  = -O2
#CPP  = $(CC)
#LDFLAGS =
#opt     = -DCOMPACT_ATTACKS -DUSE_ATTACK_FUNCTIONS
#opt     = -DCOMPACT_ATTACKS

# ALPHA
#target  = ALPHA
#CC      = cc
#Note: "-arch host" assumes you will run the binary on exactly the
# same kind of ALPHA you compiled it on.  Omit it if you want to run
# the same binary on several kinds of Alpha.  If you are on an early
# EV6 that does not have the CIX instruction set extension, a compiler
# bug (?) causes these instructions to be generated anyway.  If this
# happens you'll see a message about "instr emulated" after starting
# crafty; to fix it, change "-arch host" to "-arch ev56 -tune host"
# and recompile.
#CFLAGS  = -std -fast -O4 -pthread -newc -arch host
#CPP  = cxx
#LDFLAGS = $(CFLAGS)
#LIBS    = -lpthread -lexc
#opt     = -DSMP -DCPUS=8 -DFAST -DPOSIX


#DOS
#target  = DOS
#CC      = gcc
#CLAGS   = -fomit-frame-pointer -m486 -O3 -Wall
#CPP   = $(CC)
#LDFLAGS = $(OPT) $(CFLAGS = $(OPT) $(CFLAGS)
#opt    = -DCOMPACT_ATTACKS -DUSE_ATTACK_FUNCTIONS \
#         -DUSE_ASSEMBLY_A -DUSE_ASSEMBLY_B -DFAST -DSMP -DCPUS=4 -DDGT
#asm     = X86.o

# FreeBSD (gcc 2.6.3)
#target  = DOS
#CC      = gcc
#CFLAGS  = -fomit-frame-pointer -m486 -O3 -Wall
#CPP  = $(CC)
#LDFLAGS = -s
#opt    = -DCOMPACT_ATTACKS -DUSE_ATTACK_FUNCTIONS \
#          -DUSE_ASSEMBLY_A -DUSE_ASSEMBLY_B -DFAST

# FreeBSD (pgcc)
#target  = FreeBSD
#CC      = gcc
#CFLAGS  = -pipe -D_REENTRANT -mpentium -O -Wall
#CPP  = $(CC)
#LDFLAGS =
#opt     = -DCOMPACT_ATTACKS -DUSE_ATTACK_FUNCTIONS \
#          -DUSE_ASSEMBLY_A -DUSE_ASSEMBLY_B -DFAST

# HP
#target  = HP
#CC      = cc
#OPT     = +O3 +Onolimit
#CFLAGS  = +ESlit -Ae +w1
#CPP  = $(CC)
#LDFLAGS = $(OPT) $(CFLAGS)
#opt     =

# LINUX (gcc 2.95)
# Note: You have to uncomment exactly ONE of the `asm' lines below.
target  = DOS
CC      = gcc
CPP = $(CC)
#CFLAGS  = -fomit-frame-pointer -m486 -O3 -Wall
#LDFLAGS = -s
#opt    = -DCOMPACT_ATTACKS -DUSE_ATTACK_FUNCTIONS \
#         -DUSE_ASSEMBLY_A -DUSE_ASSEMBLY_B -DFAST -DSMP -DCPUS=4 -DDGT
#
# Uncomment the FIRST `asm' line for a.out systems.
# Uncomment the SECOND `asm' line for ELF systems.
#
#asm     = X86-dos.o
#asm     = X86.o
#asm     = X86-aout.o
#asm     = X86-elf.o

# NEXT
#target  = NEXT
#CC      = /bin/cc
#CFLAGS  = -O2
#CPP  = $(CC)
#LDFLAGS = $(CFLAGS)
#opt     = -DCOMPACT_ATTACKS

# OS2 (emx09c)
#  target  = OS2
#  CC      = gcc
#  CFLAGS  = -fomit-frame-pointer -m486 -O3 -Wall
#  CPP     = $(CC)
#  LDFLAGS = -Zexe -Zcrtdll -s
#  opt = -DCOMPACT_ATTACKS -DUSE_ATTACK_FUNCTIONS \
#        -DUSE_ASSEMBLY_A -DUSE_ASSEMBLY_B -DFAST -DOS2
#  asm     = X86.o

# SGI
#target  = SGI
#AS      = /bin/as
#CC      = cc
#AFLAGS  = -P
#CFLAGS  = -g -32 -mips2 -cckr
#CPP  = $(CC)
#LDFLAGS =
#opt     = -DCOMPACT_ATTACKS -DUSE_ATTACK_FUNCTIONS
#opt     =

# SUN
#target  = SUN
#AS      = /usr/ccs/bin/as
#CC      = cc
#AFLAGS  = -P
#CPP  = $(CC)
#CFLAGS  = -fast -xO5 -xunroll=20
#LDFLAGS = -lpthread
#opt     = -DCOMPACT_ATTACKS -DUSE_ATTACK_FUNCTIONS \
#          -DUSE_ASSEMBLY_A -DSMP -DCPUS=4 -DMUTEX -DPOSIX
#asm     = Sparc.o

# Do not change anything below this line!

opts = $(opt) -D$(target)

objects = searchr.o search.o thread.o searchmp.o repeat.o next.o nexte.o
\
       nextr.o history.o quiesce.o evaluate.o movgen.o make.o unmake.o
hash.o \
       attacks.o swap.o boolean.o utility.o valid.o probe.o book.o data.o
\
       drawn.o edit.o enprise.o epd.o epdglue.o init.o input.o interupt.o
\
       iterate.o main.o option.o output.o phase.o ponder.o preeval.o
resign.o \
       root.o learn.o setboard.o test.o time.o validate.o annotate.o
\
       analyze.o evtest.o bench.o egtb.o dgt.o $(asm)

includes = data.h chess.h

epdincludes = epd.h epddefs.h epdglue.h

eval_users = data.o evaluate.o preeval.o

crafty: $(objects)
 $(CC) $(LDFLAGS) -o crafty $(objects) -lm  $(LIBS)
 @rm -f X86-elf.S
 @rm -f X86-aout.S

dgt:    dgtdrv.o
 @cc -O -o dgt dgtdrv.c

egtb.o: egtb.cpp
 $(CPP) -c $(CFLAGS) $(opts) egtb.cpp
clean:
 -rm -f *.o crafty X86-elf.X X86-aout.S

$(objects): $(includes)

$(eval_users): evaluate.h

epd.o epdglue.o option.o init.o : $(epdincludes)

.s.o:
 $(AS) $(AFLAGS) -o $*.o $*.s$(CC) $(CFLAGS) $(opts) -c $*.c

.c.o:
 $(CC) $(CFLAGS) $(opts) -c $*.c

X86-aout.o:
 sed -e 's/ALIGN/4/' X86.s > X86-aout.S
 $(CC) -c X86-aout.S
 @rm X86-aout.S

X86-elf.o:
 sed -e '/ _/s// /' -e '/^_/s///' -e 's/ALIGN/16/' X86.s > X86-elf.S
 $(CC) -c X86-elf.S
 @rm X86-elf.S

Josh Haglund
lhaglund AT wiktel DOT com


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019