Compiling the latest version of Sunsetter (2004)
Posted: 24 Sep 2013, 21:53
Hi guys,
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:
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
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!
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!