-////
-//// Functions
-////
-
-/// engine_name() returns the full name of the current Glaurung version.
-/// This will be either "Glaurung YYMMDD" (where YYMMDD is the date when the
-/// program was compiled) or "Glaurung <version number>", depending on whether
-/// the constant EngineVersion (defined in misc.h) is empty.
-
-const std::string engine_name() {
- if(EngineVersion == "") {
- static const char monthNames[12][4] = {
- "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"
- };
- const char *dateString = __DATE__;
- std::stringstream s;
- int month = 0, day = 0;
-
- for(int i = 0; i < 12; i++)
- if(strncmp(dateString, monthNames[i], 3) == 0)
- month = i + 1;
- day = atoi(dateString+4);
-
- s << "Glaurung " << (dateString+9) << std::setfill('0') << std::setw(2)
- << month << std::setfill('0') << std::setw(2) << day;
-
- return s.str();
+static const string Version = "";
+static const string Tag = "";
+
+
+/// engine_info() returns the full name of the current Stockfish version.
+/// This will be either "Stockfish YYMMDD" (where YYMMDD is the date when
+/// the program was compiled) or "Stockfish <version number>", depending
+/// on whether Version is empty.
+
+const string engine_info(bool to_uci) {
+
+ const string months("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec");
+ const string cpu64(Is64Bit ? " 64bit" : "");
+ const string popcnt(HasPopCnt ? " SSE4.2" : "");
+
+ string month, day, year;
+ stringstream s, date(__DATE__); // From compiler, format is "Sep 21 2008"
+
+ if (Version.empty())
+ {
+ date >> month >> day >> year;
+
+ s << "Stockfish " << Tag
+ << setfill('0') << " " << year.substr(2)
+ << setw(2) << (1 + months.find(month) / 4)
+ << setw(2) << day << cpu64 << popcnt;