1*22028508SToomas Soome# 2*22028508SToomas Soome# This file and its contents are supplied under the terms of the 3*22028508SToomas Soome# Common Development and Distribution License ("CDDL"), version 1.0. 4*22028508SToomas Soome# You may only use this file in accordance with the terms of version 5*22028508SToomas Soome# 1.0 of the CDDL. 6*22028508SToomas Soome# 7*22028508SToomas Soome# A full copy of the text of the CDDL should have accompanied this 8*22028508SToomas Soome# source. A copy of the CDDL is also available via the Internet at 9*22028508SToomas Soome# http://www.illumos.org/license/CDDL. 10*22028508SToomas Soome# 11*22028508SToomas Soome 12*22028508SToomas Soome# 13*22028508SToomas Soome# Copyright 2015 Toomas Soome <tsoome@me.com> 14*22028508SToomas Soome# Copyright 2016 RackTop Systems. 15*22028508SToomas Soome# 16*22028508SToomas Soome 17*22028508SToomas Soome# 18*22028508SToomas Soome 19*22028508SToomas Soomeinclude $(SRC)/Makefile.master 20*22028508SToomas Soomeinclude $(SRC)/boot/Makefile.version 21*22028508SToomas Soomeinclude $(SRC)/boot/Makefile.inc 22*22028508SToomas Soome 23*22028508SToomas SoomePROG= gptzfsboot 24*22028508SToomas SoomeMAN= gptzfsboot.8 25*22028508SToomas SoomeFILEMODE=0444 26*22028508SToomas Soome 27*22028508SToomas SoomeBOOT_COMCONSOLE_PORT= 0x3f8 28*22028508SToomas SoomeBOOT_COMCONSOLE_SPEED= 9600 29*22028508SToomas SoomeB2SIOFMT= 0x3 30*22028508SToomas Soome 31*22028508SToomas SoomeREL1= 0x700 32*22028508SToomas SoomeORG1= 0x7c00 33*22028508SToomas SoomeORG2= 0x0 34*22028508SToomas Soome 35*22028508SToomas SoomeCPPFLAGS += -DBOOTPROG=\"gptzfsboot\" \ 36*22028508SToomas Soome -DGPT -DBOOT2 \ 37*22028508SToomas Soome -DLOADER_MBR_SUPPORT -DLOADER_GPT_SUPPORT \ 38*22028508SToomas Soome -DSIOPRT=$(BOOT_COMCONSOLE_PORT) \ 39*22028508SToomas Soome -DSIOFMT=$(B2SIOFMT) \ 40*22028508SToomas Soome -DSIOSPD=$(BOOT_COMCONSOLE_SPEED) \ 41*22028508SToomas Soome -I../../include \ 42*22028508SToomas Soome -I../../libsa \ 43*22028508SToomas Soome -I../../common \ 44*22028508SToomas Soome -I../common \ 45*22028508SToomas Soome -I$(ZFSSRC) \ 46*22028508SToomas Soome -I../../sys/cddl/boot/zfs \ 47*22028508SToomas Soome -I../btx/lib -I. \ 48*22028508SToomas Soome -I../../sys \ 49*22028508SToomas Soome -I../libi386 50*22028508SToomas Soome 51*22028508SToomas SoomeLDSCRIPT= ../boot.ldscript 52*22028508SToomas SoomeLD_FLAGS= -static -N --gc-sections 53*22028508SToomas SoomeLIBI386= -L ../libi386 -li386 54*22028508SToomas SoomeLIBSTAND= -L ../../libsa/$(MACH) -lsa 55*22028508SToomas SoomeLIBS= $(LIBI386) $(LIBSTAND) 56*22028508SToomas SoomeDPADD= ../libi386/libi386.a ../../libsa/$(MACH)/libsa.a 57*22028508SToomas Soome 58*22028508SToomas Soomeinclude ../Makefile.inc 59*22028508SToomas Soome 60*22028508SToomas Soome.PARALLEL: 61*22028508SToomas Soome 62*22028508SToomas Soomeall: $(PROG) 63*22028508SToomas Soome 64*22028508SToomas Soomeinstall: all $(ROOTBOOTPROG) 65*22028508SToomas Soome 66*22028508SToomas SoomeOBJS = mb_header.o zfsboot.o sio.o cons.o devopen.o \ 67*22028508SToomas Soome part.o disk.o bcache.o zfs_cmd.o 68*22028508SToomas Soome 69*22028508SToomas Soomezfsboot.o := CPPFLAGS += -I$(SRC)/uts/common -I$(SRC)/uts/common/fs/zfs 70*22028508SToomas Soomezfs_cmd.o := CPPFLAGS += -I$(SRC)/uts/common 71*22028508SToomas Soomepart.o := CPPFLAGS += -I$(ZLIB) 72*22028508SToomas Soomesmbios.o := CPPFLAGS += -DSMBIOS_SERIAL_NUMBERS 73*22028508SToomas Soomesmbios.o := CPPFLAGS += -DSMBIOS_LITTLE_ENDIAN_UUID 74*22028508SToomas Soomegptldr.out := LD_FLAGS += -m elf_i386_sol2 75*22028508SToomas Soome 76*22028508SToomas SoomeCLEANFILES= gptzfsboot $(OBJS) 77*22028508SToomas Soome 78*22028508SToomas Soomegptzfsboot: gptldr.bin gptzfsboot.bin $(BTXKERN) 79*22028508SToomas Soome $(BTXLD) -E $(ORG2) -f bin -b $(BTXKERN) -V $(BOOT_VERSION) -l \ 80*22028508SToomas Soome gptldr.bin -o $@ gptzfsboot.bin 81*22028508SToomas Soome 82*22028508SToomas SoomeCLEANFILES += gptldr.bin gptldr.out gptldr.o 83*22028508SToomas Soome 84*22028508SToomas Soomegptldr.bin: gptldr.out 85*22028508SToomas Soome $(OBJCOPY) -S -O binary gptldr.out $@ 86*22028508SToomas Soome 87*22028508SToomas Soomegptldr.out: gptldr.o 88*22028508SToomas Soome $(LD) $(LD_FLAGS) -e start -Ttext $(ORG1) -o $@ gptldr.o 89*22028508SToomas Soome 90*22028508SToomas SoomeCLEANFILES += gptzfsboot.bin gptzfsboot.out 91*22028508SToomas Soome 92*22028508SToomas Soomegptzfsboot.bin: gptzfsboot.out 93*22028508SToomas Soome $(OBJCOPY) -S -O binary gptzfsboot.out $@ 94*22028508SToomas Soome 95*22028508SToomas Soomegptzfsboot.out: $(BTXCRT) $(OBJS) $(DPADD) 96*22028508SToomas Soome $(LD) $(LD_FLAGS) -T $(LDSCRIPT) -o $@ $(BTXCRT) $(OBJS) $(LIBS) 97*22028508SToomas Soome 98*22028508SToomas Soomemachine: 99*22028508SToomas Soome $(RM) machine 100*22028508SToomas Soome $(SYMLINK) ../../sys/i386/include machine 101*22028508SToomas Soome 102*22028508SToomas Soomex86: 103*22028508SToomas Soome $(RM) x86 104*22028508SToomas Soome $(SYMLINK) ../../sys/x86/include x86 105*22028508SToomas Soome 106*22028508SToomas Soome$(OBJS): machine x86 107*22028508SToomas Soome 108*22028508SToomas Soome%.o: ../common/%.c 109*22028508SToomas Soome $(COMPILE.c) $< 110*22028508SToomas Soome 111*22028508SToomas Soome%.o: ../../common/%.c 112*22028508SToomas Soome $(COMPILE.c) $< 113*22028508SToomas Soome 114*22028508SToomas Soome%.o: ../../common/%.S 115*22028508SToomas Soome $(COMPILE.S) $< 116*22028508SToomas Soome 117*22028508SToomas Soomeclobber: clean 118*22028508SToomas Soome 119*22028508SToomas Soomeclean: 120*22028508SToomas Soome $(RM) $(CLEANFILES) machine x86 121