xref: /titanic_52/usr/src/boot/sys/boot/i386/gptzfsboot/Makefile (revision e95efc899be81443de7bf7ead6ad06dd492549ed)
14a5d661aSToomas Soome#
24a5d661aSToomas Soome# This file and its contents are supplied under the terms of the
34a5d661aSToomas Soome# Common Development and Distribution License ("CDDL"), version 1.0.
44a5d661aSToomas Soome# You may only use this file in accordance with the terms of version
54a5d661aSToomas Soome# 1.0 of the CDDL.
64a5d661aSToomas Soome#
74a5d661aSToomas Soome# A full copy of the text of the CDDL should have accompanied this
84a5d661aSToomas Soome# source.  A copy of the CDDL is also available via the Internet at
94a5d661aSToomas Soome# http://www.illumos.org/license/CDDL.
104a5d661aSToomas Soome#
114a5d661aSToomas Soome
124a5d661aSToomas Soome#
134a5d661aSToomas Soome# Copyright 2015 Toomas Soome <tsoome@me.com>
142fb46810SAndrew Stormont# Copyright 2016 RackTop Systems.
154a5d661aSToomas Soome#
164a5d661aSToomas Soome
174a5d661aSToomas Soome#
184a5d661aSToomas Soome
194a5d661aSToomas Soomeinclude $(SRC)/Makefile.master
20*e95efc89SToomas Soomeinclude $(SRC)/boot/Makefile.version
214a5d661aSToomas Soome
224a5d661aSToomas SoomeAS=	$(GNU_ROOT)/bin/gas
234a5d661aSToomas SoomeLD=	$(GNU_ROOT)/bin/gld
244a5d661aSToomas SoomeCC=	$(GCC_ROOT)/bin/gcc
254a5d661aSToomas SoomeOBJCOPY=	$(GNU_ROOT)/bin/gobjcopy
264a5d661aSToomas Soome
274a5d661aSToomas SoomePROG=		gptzfsboot
284a5d661aSToomas SoomeMAN=		gptzfsboot.8
294a5d661aSToomas SoomeFILEMODE=0444
304a5d661aSToomas Soome
314a5d661aSToomas SoomeBOOT_COMCONSOLE_PORT= 0x3f8
324a5d661aSToomas SoomeBOOT_COMCONSOLE_SPEED= 9600
334a5d661aSToomas SoomeB2SIOFMT=	0x3
344a5d661aSToomas Soome
354a5d661aSToomas SoomeREL1=	0x700
364a5d661aSToomas SoomeORG1=	0x7c00
374a5d661aSToomas SoomeORG2=	0x0
384a5d661aSToomas Soome
394a5d661aSToomas SoomeCPPFLAGS=
404a5d661aSToomas SoomeCFLAGS=	-nostdinc -DBOOTPROG=\"gptzfsboot\" \
414a5d661aSToomas Soome	-O1 \
424a5d661aSToomas Soome	-DGPT -DBOOT2 \
434a5d661aSToomas Soome	-DLOADER_MBR_SUPPORT -DLOADER_GPT_SUPPORT \
444a5d661aSToomas Soome	-DSIOPRT=${BOOT_COMCONSOLE_PORT} \
454a5d661aSToomas Soome	-DSIOFMT=${B2SIOFMT} \
464a5d661aSToomas Soome	-DSIOSPD=${BOOT_COMCONSOLE_SPEED} \
474a5d661aSToomas Soome	-I../../../../include \
484a5d661aSToomas Soome	-I../../../../lib/libstand \
494a5d661aSToomas Soome	-I../../common \
504a5d661aSToomas Soome	-I../common \
514a5d661aSToomas Soome	-I../../zfs \
524a5d661aSToomas Soome	-I../../../cddl/boot/zfs \
534a5d661aSToomas Soome	-I../btx/lib -I. \
544a5d661aSToomas Soome	-I../../.. \
554a5d661aSToomas Soome	-I../../../sys \
564a5d661aSToomas Soome	-I../libi386 \
574a5d661aSToomas Soome	-Wall -Waggregate-return -Wbad-function-cast -Wcast-align \
584a5d661aSToomas Soome	-Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
594a5d661aSToomas Soome	-Wpointer-arith -Wshadow -Wwrite-strings \
604a5d661aSToomas Soome	-Winline -Wno-unknown-pragmas
614a5d661aSToomas Soome
624a5d661aSToomas SoomeCFLAGS +=	--param max-inline-insns-single=100
634a5d661aSToomas SoomeCFLAGS +=	-fno-reorder-functions
644a5d661aSToomas Soome
654a5d661aSToomas SoomeLD_FLAGS=-static -N --gc-sections
664a5d661aSToomas SoomeCCASFLAGS=-Wa,--divide
674a5d661aSToomas SoomeLIBSTAND=	../../libstand/i386/libstand.a
684a5d661aSToomas SoomeLIBZFSBOOT=	../../zfs/i386/libzfsboot.a
694a5d661aSToomas Soome
704a5d661aSToomas Soomeinclude ../Makefile.inc
714a5d661aSToomas Soome
724a5d661aSToomas Soome.PARALLEL:
734a5d661aSToomas Soome
742fb46810SAndrew Stormontall: $(PROG)
754a5d661aSToomas Soome
764a5d661aSToomas Soomeinstall: all $(ROOTBOOTPROG)
774a5d661aSToomas Soome
784a5d661aSToomas SoomeOBJS =	multiboot.o zfsboot.o sio.o cons.o panic.o devopen.o \
794a5d661aSToomas Soome	part.o biosmem.o smbios.o biosdisk.o devicename.o disk.o bcache.o \
804a5d661aSToomas Soome	time.o crc32.o
814a5d661aSToomas Soome
824a5d661aSToomas SoomeCLEANFILES=	gptzfsboot $(OBJS)
834a5d661aSToomas Soome
844a5d661aSToomas Soomegptzfsboot: gptldr.bin gptzfsboot.bin ${BTXKERN}
85*e95efc89SToomas Soome	$(BTXLD) -E ${ORG2} -f bin -b ${BTXKERN} -V ${BOOT_VERSION} -l \
864a5d661aSToomas Soome		gptldr.bin -o $@ gptzfsboot.bin
874a5d661aSToomas Soome
884a5d661aSToomas SoomeCLEANFILES +=	gptldr.bin gptldr.out gptldr.o
894a5d661aSToomas Soome
904a5d661aSToomas Soomegptldr.bin: gptldr.out
914a5d661aSToomas Soome	${OBJCOPY} -S -O binary gptldr.out $@
924a5d661aSToomas Soome
934a5d661aSToomas Soomegptldr.out: gptldr.o
944a5d661aSToomas Soome	${LD} ${LD_FLAGS} -e start -Ttext ${ORG1} -o $@ gptldr.o
954a5d661aSToomas Soome
964a5d661aSToomas SoomeCLEANFILES +=	gptzfsboot.bin gptzfsboot.out
974a5d661aSToomas Soome
984a5d661aSToomas Soomegptzfsboot.bin: gptzfsboot.out
994a5d661aSToomas Soome	${OBJCOPY} -S -O binary gptzfsboot.out $@
1004a5d661aSToomas Soome
1014a5d661aSToomas Soomegptzfsboot.out: ${BTXCRT} ${OBJS} ${LIBZFSBOOT} ${LIBSTAND}
1024a5d661aSToomas Soome	${LD} ${LD_FLAGS} -Ttext ${ORG2} -o $@ ${BTXCRT} ${OBJS} \
1034a5d661aSToomas Soome		${LIBZFSBOOT} ${LIBSTAND}
1044a5d661aSToomas Soome
1054a5d661aSToomas Soomemachine:
1064a5d661aSToomas Soome	$(RM) machine
1074a5d661aSToomas Soome	$(SYMLINK) ../../../i386/include machine
1084a5d661aSToomas Soome
1094a5d661aSToomas Soomex86:
1104a5d661aSToomas Soome	$(RM) x86
1114a5d661aSToomas Soome	$(SYMLINK) ../../../x86/include x86
1124a5d661aSToomas Soome
1132fb46810SAndrew Stormont$(OBJS): machine x86
1142fb46810SAndrew Stormont
1154a5d661aSToomas Soome%.o:	../common/%.c
1164a5d661aSToomas Soome	$(COMPILE.c) -o $@ $<
1174a5d661aSToomas Soome
1184a5d661aSToomas Soome%.o:	../../common/%.c
1194a5d661aSToomas Soome	$(COMPILE.c) -o $@ $<
1204a5d661aSToomas Soome
1214a5d661aSToomas Soomebiosdisk.o: ../libi386/biosdisk.c
1224a5d661aSToomas Soome	$(CC) $(CFLAGS) $(CPPFLAGS) -Dalloca=__builtin_alloca -c -o $@ ../libi386/$*.c
1234a5d661aSToomas Soome
1244a5d661aSToomas Soomebiosmem.o: ../libi386/biosmem.c
1254a5d661aSToomas Soome	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ ../libi386/$*.c
1264a5d661aSToomas Soome
1274a5d661aSToomas Soomesmbios.o: ../libi386/smbios.c
1284a5d661aSToomas Soome	$(CC) $(CFLAGS) $(CPPFLAGS) \
1294a5d661aSToomas Soome		-DSMBIOS_SERIAL_NUMBERS -DSMBIOS_LITTLE_ENDIAN_UUID \
1304a5d661aSToomas Soome		-c -o $@ ../libi386/$*.c
1314a5d661aSToomas Soome
1324a5d661aSToomas Soomedevicename.o: ../libi386/devicename.c
1334a5d661aSToomas Soome	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ ../libi386/$*.c
1344a5d661aSToomas Soome
1354a5d661aSToomas Soometime.o: ../libi386/time.c
1364a5d661aSToomas Soome	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ ../libi386/$*.c
1374a5d661aSToomas Soome
1384a5d661aSToomas Soome.S.o:
1394a5d661aSToomas Soome	$(CC) $(CFLAGS) $(CCASFLAGS) -c -o $@ $<
1404a5d661aSToomas Soome
1414a5d661aSToomas Soomeclobber: clean
1424a5d661aSToomas Soome
1434a5d661aSToomas Soomeclean:
1444a5d661aSToomas Soome	$(RM) $(CLEANFILES) machine x86
145