include ../Config

MAKE=${__MAKE}
LD=${__LD} ${__LD_FLAGS}
STRIP=${__STRIP} ${__STRIP_FLAGS}
RM=rm -f

TARGET=../bin/ec64
EC64CORE=core/ec64core.O
EC64IO=io/ec64io.O
EC64ROM=rom/ec64rom.O
EC64SYS=sys/ec64sys.O
EC64UI=ui/ec64ui.O
OBJECTS=${EC64CORE}  ${EC64IO}  ${EC64ROM}  ${EC64SYS}  ${EC64UI}

.PHONY: all  check  clean  Dependencies  Depclean

all: check  ${TARGET}

check:
	@if test -n "$$NASM"; then echo; echo "WARNING: You have set your NASM envorimonment Variable, this may cause problems!"; echo "Try unset NASM"; echo; sleep 3; fi

${TARGET}: ${OBJECTS}
	@echo
	@echo "  ----------------------------"
	@echo "    linking all together ..."
	@echo "  ----------------------------"
	@echo
	${LD} -e ec64sys_start -o ${TARGET} ${OBJECTS}
	${STRIP} ${TARGET}
	@echo -n "FreeBSD" | dd of=${TARGET} bs=1 seek=8 conv=notrunc 2>/dev/null

${EC64CORE}:
	${MAKE} -C core all

${EC64IO}:
	${MAKE} -C io all

${EC64ROM}:
	${MAKE} -C rom all

${EC64SYS}:
	${MAKE} -C sys all

${EC64UI}:
	${MAKE} -C ui all

clean:
	${MAKE} -C core clean
	${MAKE} -C io clean
	${MAKE} -C rom clean
	${MAKE} -C sys clean
	${MAKE} -C ui clean
	${RM} *.bak *~
	${RM} ${TARGET} ${OBJECTS}
	${RM} include/*.bak include/*~
	${RM} include/core/*.bak include/core/*~
	${RM} include/io/*.bak include/io/*~
	${RM} include/sys/*.bak include/sys/*~

Dependencies:
	${MAKE} -C core Dependencies
	${MAKE} -C io Dependencies
	${MAKE} -C rom Dependencies
	${MAKE} -C sys Dependencies

Depclean:
	${MAKE} -C core Depclean
	${MAKE} -C io Depclean
	${MAKE} -C rom Depclean
	${MAKE} -C sys Depclean

