CC = gcc
#CC = clang
#CC = gcc -std=c2x -fanalyzer
CFLAGS += -DLOGF
CFLAGS += -DETC -DLMR -DKIL -DCUT
CFLAGS += -g -Wall -mpopcnt -pthread
CFLAGS += -O3 -flto
#CFLAGS += -D_DEBUG -mbmi2
#CFLAGS += -fno-inline
#CFLAGS += -pg
#CFLAGS += -fprofile-arcs -ftest-coverage

VPATH = .:../core

# core files:
CSRCS = book.c end.c eval.c move.c tt.c util.c
COBJS = $(CSRCS:.c=.o)
CHDRS = $(CSRCS:.c=.h) core.h

# main files:
SRCS = main.c pdn.c search.c
OBJS = $(SRCS:.c=.o)
HDRS = $(SRCS:.c=.h)

lin: mobydam
win: mobydam.exe

$(COBJS): $(CHDRS) Makefile
$(OBJS): $(HDRS) $(CHDRS) Makefile

%.o: %.c
	$(CC) $(CFLAGS) -c $<

main.o: $(SRCS) $(HDRS) $(CSRCS) $(CHDRS)
	$(CC) $(CFLAGS) -DCFLAGS="$(CFLAGS)" -c $<

mobydam: $(OBJS) $(COBJS)
	$(CC) $(CFLAGS) -o $@ $+ -lm

mobydam.exe: $(OBJS) $(COBJS)
	$(CC) $(CFLAGS) -o $@ $+ -lws2_32 -lwinmm

clean:
	rm -f mobydam mobydam.exe *.o *.gcda *.gcno gmon.out *.dis
