ifeq ($(OS),Windows_NT)
    BIN = GreKo.exe
    PLATFORM_OBJ = win32.o
    EXTRA_FLAGS =
else
    BIN = GreKo
    PLATFORM_OBJ = unix.o
    EXTRA_FLAGS = -std=c++11 -pthread
endif

CPP = g++
CPPFLAGS = -Wall -O3 -DFAST_BITBOARDS $(EXTRA_FLAGS)

OBJ = bitboards.o   \
      eval.o        \
      eval_params.o \
      learn.o       \
      main.o        \
      moves.o       \
      notation.o    \
      position.o    \
      search.o      \
      utils.o       \
      $(PLATFORM_OBJ)

.PHONY: all clean

all: $(BIN)

clean:
	rm -rf $(BIN) $(OBJ)

$(BIN): $(OBJ)
	$(CPP) $(CPPFLAGS) $(OBJ) -o $(BIN)
ifeq ($(OS),Windows_NT)
else
	strip $(BIN)
endif

.o: .cpp
	$(CPP) $(CPPFLAGS) -c $< -o $@

eval.o: eval_params.h
eval_params.o: eval_params.h
