CC = gcc

CFLAGS += -g -Wall -mpopcnt
CFLAGS += -O3 -flto
CFLAGS += -D_DEBUG
#CFLAGS += -fno-inline
#CFLAGS += -pg
#CFLAGS += -fprofile-arcs -ftest-coverage

VPATH = .:../core

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

# train files:
SRCS = pdnreader.c procweights.c weightstats.c
OBJS = $(SRCS:.c=.o)
HDRS = $(CHDRS) train.h

lin: $(OBJS:.o=)
win: $(OBJS:.o=.exe)

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

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

%: %.o $(COBJS)
	$(CC) $(CFLAGS) -o $@ $+ -lm

%.exe: %.o $(COBJS)
	$(CC) $(CFLAGS) -o $@ $+

clean:
	rm -f $(OBJS:.o=)
	rm -f *.o *.exe *.gcda *.gcno gmon.out
