include ../../Config

CC=${__GCC} ${__GCC_FLAGS} ${__IO_FLAGS} -I../include
AS=${__AS} ${__AS_FLAGS}
LD=${__LD} ${__LD_FLAGS} -r
SED=${__SED} ${__SED_FLAGS}
NASM=${__NASM} ${__NASM_FLAGS} -i ../include/
BASH=${__BASH}
MAKEDEP=../../${__MAKEDEP}
RM=rm -f

OBJECTS=ec64io.o  \
        string.o  memory.o  draw.o  \
        error.o  fb.o  video.o  vga.o  audio.o  tty.o  gpm.o  sync.o
TARGET=ec64io.O

.PHONY: all  echo  clean  Depclean

all: echo  ${TARGET}

echo:
	@echo
	@echo "  -------------------------"
	@echo "    creating ec64io.O ..."
	@echo "  -------------------------"
	@echo

${TARGET}: ${OBJECTS}
	${LD} -o ${TARGET} ${OBJECTS}

include Dependencies

ec64io.o: ec64io.c
	${CC} -S -o ec64io.s ec64io.c
	${SED} ec64io.s > ec64io.S
	${AS} -o ec64io.o ec64io.S
	${RM} ec64io.s ec64io.S

string.o: string.n
	${NASM} string.n

memory.o: memory.n
	${NASM} memory.n

draw.o: draw.n
	${NASM} draw.n

error.o: error.h  error.c
	${CC} -S -o error.s error.c
	${SED} error.s > error.S
	${AS} -o error.o error.S
	${RM} error.s error.S

fb.o: fb.h  fb.c
	${CC} -S -o fb.s fb.c
	${SED} fb.s > fb.S
	${AS} -o fb.o fb.S
	${RM} fb.s fb.S

video.o: video.h  video.c
	${CC} -S -o video.s video.c
	${SED} video.s > video.S
	${AS} -o video.o video.S
	${RM} video.s video.S

vga.o: vga.h  vga.c
	${CC} -S -o vga.s vga.c
	${SED} vga.s > vga.S
	${AS} -o vga.o vga.S
	${RM} vga.s vga.S

audio.o: audio.h  audio.c
	${CC} -S -o audio.s audio.c
	${SED} audio.s > audio.S
	${AS} -o audio.o audio.S
	${RM} audio.s audio.S

tty.o: tty.h  tty.c
	${CC} -S -o tty.s tty.c
	${SED} tty.s > tty.S
	${AS} -o tty.o tty.S
	${RM} tty.s tty.S

gpm.o: gpm.h  gpm.c
	${CC} -S -o gpm.s gpm.c
	${SED} gpm.s > gpm.S
	${AS} -o gpm.o gpm.S
	${RM} gpm.s gpm.S

sync.o: sync.h  sync.c
	${CC} -S -o sync.s sync.c
	${SED} sync.s > sync.S
	${AS} -o sync.o sync.S
	${RM} sync.s sync.S

clean:
	${RM} *.bak *~ core
	${RM} ${TARGET} ${OBJECTS}

Dependencies:
	${BASH} ${MAKEDEP} > Dependencies

Depclean:
	${RM} Dependencies

