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