xref: /illumos-gate/usr/src/boot/i386/gptzfsboot/Makefile (revision 22028508fd28d36ff74dc02c5774a8ba1f0db045)
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