xref: /illumos-gate/usr/src/boot/i386/gptzfsboot/Makefile (revision c2eb74cb09fdf193d963d35bf90bc5d671863177)
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# Copyright 2016 RackTop Systems.
1522028508SToomas Soome#
1622028508SToomas Soome
1722028508SToomas Soome#
1822028508SToomas Soome
1922028508SToomas Soomeinclude $(SRC)/Makefile.master
2022028508SToomas Soomeinclude $(SRC)/boot/Makefile.version
2122028508SToomas Soomeinclude $(SRC)/boot/Makefile.inc
2222028508SToomas Soome
2322028508SToomas SoomePROG=		gptzfsboot
2422028508SToomas SoomeMAN=		gptzfsboot.8
2522028508SToomas SoomeFILEMODE=0444
2622028508SToomas Soome
2722028508SToomas SoomeBOOT_COMCONSOLE_PORT= 0x3f8
2822028508SToomas SoomeBOOT_COMCONSOLE_SPEED= 9600
2922028508SToomas SoomeB2SIOFMT=	0x3
3022028508SToomas Soome
3122028508SToomas SoomeREL1=	0x700
3222028508SToomas SoomeORG1=	0x7c00
3322028508SToomas SoomeORG2=	0x0
3422028508SToomas Soome
3522028508SToomas SoomeCPPFLAGS += -DBOOTPROG=\"gptzfsboot\" \
3622028508SToomas Soome	-DGPT -DBOOT2 \
3722028508SToomas Soome	-DLOADER_MBR_SUPPORT -DLOADER_GPT_SUPPORT \
3822028508SToomas Soome	-DSIOPRT=$(BOOT_COMCONSOLE_PORT) \
3922028508SToomas Soome	-DSIOFMT=$(B2SIOFMT) \
4022028508SToomas Soome	-DSIOSPD=$(BOOT_COMCONSOLE_SPEED) \
4122028508SToomas Soome	-I../../include \
4222028508SToomas Soome	-I../../libsa \
4322028508SToomas Soome	-I../../common \
4422028508SToomas Soome	-I../common \
4522028508SToomas Soome	-I$(ZFSSRC) \
4622028508SToomas Soome	-I../../sys/cddl/boot/zfs \
4722028508SToomas Soome	-I../btx/lib -I. \
4822028508SToomas Soome	-I../../sys \
4922028508SToomas Soome	-I../libi386
505d9d9091SRichard LoweAS_CPPFLAGS += $(CPPFLAGS)
5122028508SToomas Soome
5222028508SToomas SoomeLDSCRIPT=	../boot.ldscript
5322028508SToomas SoomeLD_FLAGS=	-static -N --gc-sections
5422028508SToomas SoomeLIBI386=	-L ../libi386 -li386
5522028508SToomas SoomeLIBSTAND=	-L ../../libsa/$(MACH) -lsa
5622028508SToomas SoomeLIBS=		$(LIBI386) $(LIBSTAND)
5722028508SToomas SoomeDPADD=		../libi386/libi386.a ../../libsa/$(MACH)/libsa.a
5822028508SToomas Soome
5922028508SToomas Soomeinclude ../Makefile.inc
6022028508SToomas Soome
6122028508SToomas Soome.PARALLEL:
6222028508SToomas Soome
6322028508SToomas Soomeall: $(PROG)
6422028508SToomas Soome
6522028508SToomas Soomeinstall: all $(ROOTBOOTPROG)
6622028508SToomas Soome
6722028508SToomas SoomeOBJS =	mb_header.o zfsboot.o sio.o cons.o devopen.o \
6822028508SToomas Soome	part.o disk.o bcache.o zfs_cmd.o
6922028508SToomas Soome
70*c2eb74cbSToomas Soomecons.o := CFLAGS += -_gcc14=--param=min-pagesize=0
71*c2eb74cbSToomas Soomezfsboot.o := CFLAGS += -_gcc14=--param=min-pagesize=0
7222028508SToomas Soomezfsboot.o := CPPFLAGS += -I$(SRC)/uts/common -I$(SRC)/uts/common/fs/zfs
7322028508SToomas Soomezfs_cmd.o := CPPFLAGS += -I$(SRC)/uts/common
7422028508SToomas Soomepart.o := CPPFLAGS += -I$(ZLIB)
7522028508SToomas Soomesmbios.o := CPPFLAGS += -DSMBIOS_SERIAL_NUMBERS
7622028508SToomas Soomesmbios.o := CPPFLAGS += -DSMBIOS_LITTLE_ENDIAN_UUID
77db1a8debSToomas Soomegptldr.out := LD_FLAGS += $(GLDTARGET)
7822028508SToomas Soome
7922028508SToomas SoomeCLEANFILES=	gptzfsboot $(OBJS)
8022028508SToomas Soome
8122028508SToomas Soomegptzfsboot: gptldr.bin gptzfsboot.bin $(BTXKERN)
8222028508SToomas Soome	$(BTXLD) -E $(ORG2) -f bin -b $(BTXKERN) -V $(BOOT_VERSION) -l \
8322028508SToomas Soome		gptldr.bin -o $@ gptzfsboot.bin
8422028508SToomas Soome
8522028508SToomas SoomeCLEANFILES +=	gptldr.bin gptldr.out gptldr.o
8622028508SToomas Soome
8722028508SToomas Soomegptldr.bin: gptldr.out
8822028508SToomas Soome	$(OBJCOPY) -S -O binary gptldr.out $@
8922028508SToomas Soome
9022028508SToomas Soomegptldr.out: gptldr.o
91db1a8debSToomas Soome	$(GLD) $(LD_FLAGS) -e start -Ttext $(ORG1) -o $@ gptldr.o
9222028508SToomas Soome
9322028508SToomas SoomeCLEANFILES +=	gptzfsboot.bin gptzfsboot.out
9422028508SToomas Soome
9522028508SToomas Soomegptzfsboot.bin: gptzfsboot.out
9622028508SToomas Soome	$(OBJCOPY) -S -O binary gptzfsboot.out $@
9722028508SToomas Soome
9822028508SToomas Soomegptzfsboot.out: $(BTXCRT) $(OBJS) $(DPADD)
99db1a8debSToomas Soome	$(GLD) $(LD_FLAGS) -T $(LDSCRIPT) -o $@ $(BTXCRT) $(OBJS) $(LIBS)
10022028508SToomas Soome
10122028508SToomas Soomemachine:
10222028508SToomas Soome	$(RM) machine
10322028508SToomas Soome	$(SYMLINK) ../../sys/i386/include machine
10422028508SToomas Soome
10522028508SToomas Soomex86:
10622028508SToomas Soome	$(RM) x86
10722028508SToomas Soome	$(SYMLINK) ../../sys/x86/include x86
10822028508SToomas Soome
10922028508SToomas Soome$(OBJS): machine x86
11022028508SToomas Soome
11122028508SToomas Soome%.o:	../common/%.c
11222028508SToomas Soome	$(COMPILE.c) $<
11322028508SToomas Soome
11422028508SToomas Soome%.o:	../../common/%.c
11522028508SToomas Soome	$(COMPILE.c) $<
11622028508SToomas Soome
11722028508SToomas Soome%.o: ../../common/%.S
11822028508SToomas Soome	$(COMPILE.S) $<
11922028508SToomas Soome
12022028508SToomas Soomeclobber: clean
12122028508SToomas Soome
12222028508SToomas Soomeclean:
12322028508SToomas Soome	$(RM) $(CLEANFILES) machine x86
124