makefile.NT_i386 an. Das ist - leicht erraten - Windows. Für Windows ist allerdings kein Abschnitt in der make-Datein enthalten. Für TDM-minGW ist der aber schnell ge-copied-und-pasted:Windows64:
$(MAKE) target=NT_i386 \
CC=gcc.exe CXX=g++.exe \
CFLAGS='-w -pipe -m64 -O2 -march=corei7 -msse4.2 -fno-exceptions' \
CXFLAGS='-w -pipe -m64 -O2 -march=corei7 -msse4.2 -fno-exceptions -fno-rtti' \
LDFLAGS='$(LDFLAGS) -s -lpthread -static-libgcc' \
opt='$(opt) -DINLINE64 -DHAS_64BITS -DCPUS=16 -DPOPCNT' \
crafty-makeCPUS gibt man an, mit bis zu wie vielen threads Crafty maximal laufen können soll. (Der Parameter mt in crafty.rc steuert, wie viele von den mit CPUS 'vorbereiteten' threads Crafty nutzen soll.) Um bis zu 16 threads zu ermöglichen schreibt man CPUS=16.POPCNT für Prozessoren mit SSE 4.2 oder besser sowie INLINE64 und HAS_64BITS für 64-Bit-compiles.makefile.xp ist für Microsoft C++.chess.h, glaube ich. - Es gibt aber ein ziemliches Geraffel, wenn man da was falsch macht!

inline32.h wurde die inline-Assembler-Funktion PopCnt(uint64_t word) nicht beanstandet, wenn die Variablen dummy1 - dummy4 als unsigned int deklariert wurden.unsigned int dummy1, dummy2, dummy3, dummy4;uint64_t dummy1, dummy2, dummy3, dummy4;PATH anpassen. Danach noch über ein paar Eigenheiten des 32-Bit-Compilers wundern und fertig war die 32-Bit-Fassung von Crafty 23.8
# The makefile is set up for Microsoft Visual C++ 6.0 Intel.#if defined(UNIX). Das passt nicht zu Visual C++, denke ich.makefile.xp benutzen. Für Windows sollte target=NT_i386 gesetzt sein, sodass die Abschnitte nach #if defined(UNIX) grundsätzlich nicht compiliert werden. Damit erübrigen sich die Fehlermeldungen.makefile.xp benutzen. Das Projekt so einzurichten, dass eine lauffähige Crafty 23.8.exe entsteht, ist schnell gemacht. Es sind eigentlich die gleichen Präprozessordefinitionen zu setzen. Man muss nur darauf achten (ist mir erst beim Erstellen der 64-Bit-Version aufgefallen
), dass die Abschnitte mit dem Inline-Assembler (Dateien inline32.h und inline64.h) nicht MS-kompatibel sind (die intrinsics _BitScanReverse64, _BitScanForward64 und __popcnt64 kann man statt dessen einsetzen).-march=native
Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill