CXX      = g++
CXXFLAGS = -O2 -DNDEBUG -Wall -std=gnu++17 -fno-strict-aliasing -Wno-write-strings -Wno-parentheses -Wno-char-subscripts -Wno-sign-compare -Wno-misleading-indentation
LDFLAGS  = -lpthread -lm

SRCS_CPP = board_util.cpp \
           engine.cpp \
           eval.cpp \
           game_util.cpp \
           hash.cpp \
           magic_bb.cpp \
           nn.cpp \
           pawn.cpp \
           piece_square.cpp \
           search.cpp \
           tbprobe.cpp \
           threads.cpp

OBJS     = $(SRCS_CPP:.cpp=.o)

TARGET   = fizbo

all: $(TARGET)

$(TARGET): $(OBJS)
	$(CXX) $(CXXFLAGS) -o $@ $(OBJS) $(LDFLAGS)

%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

clean:
	rm -f $(OBJS)

distclean: clean
	rm -f $(TARGET)

.PHONY: all clean
