# Cfish (Stockfish in C) - MorphOS (PPC) build

EXE = CFish_MorphOS

CC = gcc

OBJS = benchmark.o bitbase.o bitboard.o endgame.o evaluate.o main.o \
	material.o misc.o movegen.o movepick.o pawns.o position.o psqt.o \
	search.o tbprobe.o thread.o timeman.o tt.o uci.o ucioption.o \
	settings.o polybook.o

# -noixemul: MorphOS has no newlib and no ixemul; this is its own native
# C library. (Do NOT use -mnewlib - it doesn't exist on this platform,
# see https://morph.zone/modules/newbb_plus/viewtopic.php?topic_id=13826)
#
# GCC 9.5.0 has full native C11 support, so no pre-C11 workaround is
# needed here.
CFLAGS = -noixemul -Wall -std=c11 -Wextra -Wshadow -DNDEBUG -O3 -DNO_PREFETCH \
	-Wno-missing-field-initializers
LDFLAGS = -noixemul -lm -lpthread

.PHONY: help build tbdebug clean

default: build

help:
	@echo ""
	@echo "Cfish for MorphOS (PPC). Just run:"
	@echo ""
	@echo "  make build"
	@echo "  make tbdebug   (extra 'info string TB_DEBUG ...' diagnostic output)"
	@echo "  make clean"
	@echo ""

build: $(EXE)

tbdebug:
	$(MAKE) clean
	$(MAKE) CFLAGS="$(CFLAGS) -DTB_DEBUG_RANKS" build

$(EXE): $(OBJS)
	$(CC) -o $@ $(OBJS) $(LDFLAGS)

clean:
	rm -f $(EXE) *.o
