CC=bcc
LD=ld86
NM=nm
NASM=/usr/pkg/bin/nasm
OBJCOPY=/usr/bin/objcopy
SIZE=size
STRIP=strip

INCDIR=-I..
CFLAGS=-0 -O ${INCDIR}
NASMFLAGS=-f as86
LDFLAGS=-0 -T 0x0

VPATH=	.:../common	# for GNU make

SRCS=	main.s exec.s setjmp.s helper.s break.s disasm.s\
	addr.c mach.c interrupt.c scu.c periph.c intel.c \
	../common/monitor.c ../common/breakpoint.c \
	../common/command.c ../common/stdio.c \
	../common/mem.c ../common/string.c

OBJS=	main.o exec.o setjmp.o helper.o break.o disasm.o\
	addr.o mach.o interrupt.o scu.o periph.o intel.o \
	monitor.o breakpoint.o command.o stdio.o mem.o string.o

.s.o:
	${NASM} ${NASMFLAGS} $<

all: monitor.img

monitor.img: monitor.tmp
	dd if=monitor.tmp of=monitor.img bs=131056 count=1
	cat reset >> monitor.img
	rm -f monitor.tmp

monitor.tmp: monitor.bin
	cp monitor.bin monitor.tmp
	dd if=/dev/zero bs=131072 count=1 >> monitor.tmp

monitor.bin: monitor
	${OBJCOPY} -O binary monitor monitor.bin

monitor: ${OBJS}
	${LD} ${LDFLAGS} -o monitor ${OBJS}
	${NM} monitor > monitor.map
	${STRIP} monitor
	${SIZE} monitor

depend:
	mkdep ${INCDIR} ${SRCS}

clean:
	rm -f ${OBJS} monitor monitor.bin monitor.map monitor.img
