CC = arm-cegcc-g++

CFLAGS = -O2 -funroll-loops -fomit-frame-pointer -fstrict-aliasing -Wall -Wcast-align

DEFINES = -DWIN32
LDFLAGS = 

OBJ = .o/data.o .o/endgame.o .o/eval.o \
	.o/init.o .o/io.o .o/main.o \
	.o/mersenne.o .o/move.o \
	.o/movegen.o 	.o/order.o \
	.o/position.o .o/psq.o \
	.o/pstruct.o .o/root.o \
	.o/search.o .o/see.o \
	.o/think.o \
	.o/tt.o .o/uci.o \
	.o/ucioption.o .o/zobrist.o \
	.o/ipc.o

viper: .o $(OBJ)
	$(CC) $(CFLAGS) $(DEFINES) $(LDFLAGS) $(OBJ) -o viper01.exe -lm
	arm-cegcc-strip viper01.exe

.o/%.o: Makefile %.cpp
	$(CC) $(CFLAGS) $(DEFINES) -c $*.cpp -o .o/$*.o

.o/ipc.o: ipc.h ipc.c
	arm-cegcc-gcc $(CFLAGS) $(DEFINES) -c ipc.c -o .o/ipc.o

.o:
	mkdir .o

clean:
	rm -rf .o viper01 viper01.exe
