I'm having troubles in compiling Sunsetter's latest version (the one by Angrim). I have posted the full code in github (https://github.com/arbolis/Sunsetter-crazyhouse) but it won't compile under my computer. I have Ubuntu 12.04 64 bits and my compiler is gcc 4.8.1.
A programmer could compile it on his computer after a small tweak in the Makefile, but he doesn't want to share his code. He said he had to allow the compilation of obsolete construct. As I am no programmer, I have almost no idea what he means.
I've posted this problem on 2 other forums so far but I either get no reply at all, or the suggestions don't work. But at least I think I know what is the problem thanks to some reply I got.
Basically here is the Makefile:
- Code: Select all
# Makefile to build sunsetter for linux.
#
# -Wall turns on full compiler warnings, only of interest to developers
# -O1 turns on optimization at a moderate level.
# -O3 turns on optimization at the highest level. (confuses the debugger though)
# -g turns on debugging data in the executable.
# -DNDEBUG turns off assert() debugging in the code
#
# CFLAGS for a "release" built, no debugging and highly optimized.
# CFLAGS = -O3 -DNDEBUG
#
# uncomment this line to build a debug version.
# need to type "make clean;make" to get the full effect
# CFLAGS = -Wall -g -O1 -DDEBUG
#
# or this one for a "light debug" version which works well with gdb
# but is otherwise like the release version.
CFLAGS = -Wall -g -O1 -DNDEBUG
#
# set of flags that produces the best speed on Angrim's
# Athlon Thunderbird with gcc version egcs-2.91.66
# CFLAGS = -O3 -march=i486 -DNDEBUG
OBJECTS = aimoves.o bitboard.o board.o book.o bughouse.o evaluate.o moves.o search.o capture_moves.o check_moves.o interface.o notation.o order_moves.o partner.o quiescense.o tests.o transposition.o validate.o
# sunsetter is the default target, so either "make" or "make sunsetter" will do
sunsetter: $(OBJECTS) Makefile
g++ $(CFLAGS) $(OBJECTS) -o sunsetter
# so "make clean" will wipe out the files created by a make.
clean:
rm $(OBJECTS)
# a general purpose dependancy for makeing .o files from .cpp files
.cpp.o:
g++ $(CFLAGS) -c $<
# more detailed dependancies below for a few critical files
aimoves.o: aimoves.cpp definitions.h variables.h board.h brain.h interface.h
g++ $(CFLAGS) -c aimoves.cpp -o $@
board.o: board.cpp board.h brain.h interface.h definitions.h bughouse.h \
variables.h notation.h
g++ $(CFLAGS) -c board.cpp -o $@
bitboard.o: bitboard.cpp board.h bughouse.h interface.h brain.h
g++ $(CFLAGS) -c bitboard.cpp -o $@
bughouse.o: bughouse.cpp variables.h definitions.h board.h interface.h bughouse.h brain.h
g++ $(CFLAGS) -c bughouse.cpp -o $@
evaluate.o: evaluate.cpp brain.h board.h evaluate.h interface.h
g++ $(CFLAGS) -c evaluate.cpp -o $@
interface.o: interface.cpp interface.h variables.h notation.h bughouse.h brain.h board.h
g++ $(CFLAGS) -c interface.cpp -o $@
I believe the problems is in the first non commented line. I must modify it to allow obsolete construct... but I don't know what to write exactly. I tried many things, like for example
- Code: Select all
CFLAGS = -fpermissive -O3 -march=x86-64 -DNDEBUG
- Code: Select all
g++ -fpermissive -O3 -march=x86-64 -DNDEBUG -c aimoves.cpp -o aimoves.o
In file included from aimoves.cpp:19:0:
board.h:740:21: warning: extra qualification ‘boardStruct::’ on member ‘getColorOnMove’ [-fpermissive]
board.h:754:21: warning: extra qualification ‘boardStruct::’ on member ‘getColorOffMove’ [-fpermissive]
In file included from brain.h:20:0,
from aimoves.cpp:20:
interface.h:33:14: error: expected initializer before ‘output’
make: *** [aimoves.o] Error 1
If you can compile it, please let me know what you did... I am desperate and my friend suggested me to post it here (as well as talkchess but so far I can't seem to register there).
As soon as I know how to compile it, I'll modify the code in github and explain what people must modify if the compile doesn't work.
Thank you very much for any help!