xref: /illumos-gate/usr/src/boot/i386/isoboot/Makefile (revision 5d9d9091f564c198a760790b0bfa72c44e17912b)
122028508SToomas Soome#
222028508SToomas Soome# This file and its contents are supplied under the terms of the
322028508SToomas Soome# Common Development and Distribution License ("CDDL"), version 1.0.
422028508SToomas Soome# You may only use this file in accordance with the terms of version
522028508SToomas Soome# 1.0 of the CDDL.
622028508SToomas Soome#
722028508SToomas Soome# A full copy of the text of the CDDL should have accompanied this
822028508SToomas Soome# source.  A copy of the CDDL is also available via the Internet at
922028508SToomas Soome# http://www.illumos.org/license/CDDL.
1022028508SToomas Soome#
1122028508SToomas Soome
1222028508SToomas Soome#
1322028508SToomas Soome# Copyright 2015 Toomas Soome <tsoome@me.com>
1422028508SToomas Soome#
1522028508SToomas Soome
1622028508SToomas Soomeinclude $(SRC)/Makefile.master
1722028508SToomas Soomeinclude $(SRC)/boot/Makefile.version
1822028508SToomas Soomeinclude $(SRC)/boot/Makefile.inc
1922028508SToomas Soome
2022028508SToomas SoomePROG= isoboot
2122028508SToomas SoomeFILEMODE=0444
2222028508SToomas Soome
2322028508SToomas SoomeBOOT_COMCONSOLE_PORT= 0x3f8
2422028508SToomas SoomeBOOT_COMCONSOLE_SPEED= 9600
2522028508SToomas SoomeB2SIOFMT= 0x3
2622028508SToomas Soome
2722028508SToomas SoomeORG1= 0x7c00
2822028508SToomas SoomeORG2= 0x0
2922028508SToomas Soome
3022028508SToomas SoomeISOBOOTSIZE= 30720
3122028508SToomas Soome
3222028508SToomas SoomeCPPFLAGS += -DBOOTPROG=\"isoboot\" \
3322028508SToomas Soome	-DSIOPRT=$(BOOT_COMCONSOLE_PORT) \
3422028508SToomas Soome	-DSIOFMT=$(B2SIOFMT) \
3522028508SToomas Soome	-DSIOSPD=$(BOOT_COMCONSOLE_SPEED) \
3622028508SToomas Soome	-I../../include \
3722028508SToomas Soome	-I../../libsa \
3822028508SToomas Soome	-I. \
3922028508SToomas Soome	-I../../sys \
4022028508SToomas Soome	-I../common \
4122028508SToomas Soome	-I../btx/lib \
4222028508SToomas Soome	-I../../common \
4322028508SToomas Soome	-I../gptzfsboot
44*5d9d9091SRichard LoweAS_CPPFLAGS += $(CPPFLAGS)
4522028508SToomas Soome
4622028508SToomas SoomeLDSCRIPT=	../boot.ldscript
4722028508SToomas SoomeLD_FLAGS=	-static -N --gc-sections
4822028508SToomas SoomeLIBSTAND=	../../libsa/$(MACH)/libsa.a
4922028508SToomas Soome
50db1a8debSToomas Soomegptldr.out := LD_FLAGS += $(GLDTARGET)
5122028508SToomas Soome
5222028508SToomas Soomeisoboot.o := SMOFF += unreachable
5322028508SToomas Soome
5422028508SToomas Soomeinclude ../Makefile.inc
5522028508SToomas Soome
5622028508SToomas Soomeall: $(PROG)
5722028508SToomas Soome
5822028508SToomas Soomeinstall: all $(ROOTBOOTPROG)
5922028508SToomas Soome
6022028508SToomas SoomeOBJS= mb_header.o isoboot.o sio.o drv.o cons.o gptldr.o
6122028508SToomas Soome
6222028508SToomas SoomeCLEANFILES += isoboot
6322028508SToomas Soome
6422028508SToomas Soomeisoboot: gptldr.bin isoboot.bin $(BTXKERN)
65db1a8debSToomas Soome	$(BTXLD) -v -E $(ORG2) -f bin -b $(BTXKERN) -V $(BOOT_VERSION) -l \
6622028508SToomas Soome		gptldr.bin -o $@ isoboot.bin
6722028508SToomas Soome	@set -- `ls -l $@`; x=$$(($(ISOBOOTSIZE)-$$5)); \
6822028508SToomas Soome	    echo "$$x bytes available"; test $$x -ge 0
6922028508SToomas Soome
7022028508SToomas SoomeCLEANFILES += gptldr.bin gptldr.out gptldr.o
7122028508SToomas Soome
7222028508SToomas Soomegptldr.bin: gptldr.out
7322028508SToomas Soome	$(OBJCOPY) -S -O binary gptldr.out $@
7422028508SToomas Soome
7522028508SToomas Soomegptldr.out:	gptldr.o
76db1a8debSToomas Soome	$(GLD) $(LD_FLAGS) -e start -Ttext $(ORG1) -o $@ gptldr.o
7722028508SToomas Soome
7822028508SToomas SoomeCLEANFILES += isoboot.bin isoboot.out $(OBJS)
7922028508SToomas Soome
8022028508SToomas Soomeisoboot.bin: isoboot.out
8122028508SToomas Soome	$(OBJCOPY) -S -O binary isoboot.out $@
8222028508SToomas Soome
8322028508SToomas Soomeisoboot.out: $(BTXCRT) $(OBJS)
84db1a8debSToomas Soome	$(GLD) $(LD_FLAGS) -T $(LDSCRIPT) -o $@ $(BTXCRT) $(OBJS) $(LIBSTAND)
8522028508SToomas Soome
8622028508SToomas Soomemachine:
8722028508SToomas Soome	$(RM) machine
8822028508SToomas Soome	$(SYMLINK) ../../sys/i386/include machine
8922028508SToomas Soome
9022028508SToomas Soomex86:
9122028508SToomas Soome	$(RM) x86
9222028508SToomas Soome	$(SYMLINK) ../../sys/x86/include x86
9322028508SToomas Soome
9422028508SToomas Soome$(OBJS): machine x86
9522028508SToomas Soome
9622028508SToomas Soome%.o:	../gptzfsboot/%.S
9722028508SToomas Soome	$(COMPILE.S) $<
9822028508SToomas Soome
9922028508SToomas Soome%.o:	../../common/%.S
10022028508SToomas Soome	$(COMPILE.S) $<
10122028508SToomas Soome
10222028508SToomas Soome%.o:	../common/%.c
10322028508SToomas Soome	$(COMPILE.c) $<
10422028508SToomas Soome
10522028508SToomas Soome%.o:	../../common/%.c
10622028508SToomas Soome	$(COMPILE.c) $<
10722028508SToomas Soome
10822028508SToomas Soomeclobber: clean
10922028508SToomas Soome
11022028508SToomas Soomeclean:
11122028508SToomas Soome	$(RM) $(CLEANFILES) machine x86
112