#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"), version 1.0.
# You may only use this file in accordance with the terms of version
# 1.0 of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source.  A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#

#
# Copyright 2015 Toomas Soome <tsoome@me.com>
#

include $(SRC)/Makefile.master

ROOT_BOOT = $(ROOT)/boot

CC=	$(GCC_ROOT)/bin/gcc
LD=	$(GNU_ROOT)/bin/gld
DD=	/usr/bin/dd
CFLAGS= -O2 -I../../..
CCASFLAGS= -Wa,--divide

include ../Makefile.inc

BTXDIR=../btx

PROG=	${LDR}
INTERNALPROG=
FILES=	${BOOT}
MAN=	${BOOT}.8
SRCS=	${LDR}.S
OBJS=	${LDR}.o
CLEANFILES= ${BOOT} ${OBJS}

BOOT=	pxeboot
LDR=	pxeldr
ORG=	0x7c00
LOADER=	loader
FILEMODE=0444

#CFLAGS +=	-DPROBE_KEYBOARD

#.if defined(BOOT_PXELDR_ALWAYS_SERIAL)
#CFLAGS+=-DALWAYS_SERIAL
#.endif

CFLAGS +=-I../common

LOADERBIN= ../loader/zfsloader.bin

CLEANFILES += ${BOOT}.tmp

${BOOT}: ${LDR} ${LOADER}
	$(CAT) ${LDR} ${LOADER} > $@.tmp
	$(DD) if=$@.tmp of=$@ obs=2k conv=sync
	$(RM) $@.tmp

LDFLAGS +=-e start -Ttext ${ORG} -N -S --oformat binary

CLEANFILES += ${LOADER} ${LDR}

${LDR}: ${OBJS}
	${LD} ${LDFLAGS} -o $@ $^

${LOADER}: ${LOADERBIN} ${BTXLDR} ${BTXKERN}
	$(BTXLD) -v -f aout -e ${LOADER_ADDRESS} -o $@ -l ${BTXLDR} \
	    -b ${BTXKERN} ${LOADERBIN}

all: ${BOOT}

install: $(BOOT:%=$(ROOT_BOOT)/%)

clobber: clean
clean:
	$(RM) $(CLEANFILES)

.S.o:
	$(CC) $(CFLAGS) $(CCASFLAGS) -c -o $@ $<

$(ROOT_BOOT)/%: %
	$(INS.file)
