Mercurial > unleashed > prev-conversion
view usr/src/boot/sys/boot/efi/boot1/Makefile @ 18843:2f1019fa0103
loader: add skein/edonr support
illumos issue #8905
author | Toomas Soome <tsoome@me.com> |
---|---|
date | Mon, 04 Dec 2017 12:26:50 +0200 |
parents | ca9ed1863811 |
children |
line wrap: on
line source
# # This file and its contents are supplied under the terms of the # Common Development and Distribution License ("CDDL"), version 1.0. # You may only use this file in accordance with the terms of version # 1.0 of the CDDL. # # A full copy of the text of the CDDL should have accompanied this # source. A copy of the CDDL is also available via the Internet at # http://www.illumos.org/license/CDDL. # # # Copyright 2016 Toomas Soome <tsoome@me.com> # Copyright 2016 RackTop Systems. # include $(SRC)/Makefile.master include $(SRC)/boot/Makefile.version CC= $(GCC_ROOT)/bin/gcc LD= $(GNU_ROOT)/bin/gld OBJCOPY= $(GNU_ROOT)/bin/gobjcopy OBJDUMP= $(GNU_ROOT)/bin/gobjdump PROG= boot1.sym MACHINE=$(MACH64) # architecture-specific loader code SRCS= multiboot.S boot1.c self_reloc.c start.S ufs_module.c zfs_module.c \ devopen.c OBJS= multiboot.o boot1.o self_reloc.o start.o ufs_module.o zfs_module.o \ devopen.o ASFLAGS=-m64 -fPIC CFLAGS= -O2 CPPFLAGS= -nostdinc -D_STANDALONE CPPFLAGS += -I. CPPFLAGS += -I./../include CPPFLAGS += -I./../include/${MACHINE} CPPFLAGS += -I$(SRCTOP)/arch/x86/include/sys/acpi CPPFLAGS += -I./../../../../include CPPFLAGS += -I./../../../sys CPPFLAGS += -I./../../.. CPPFLAGS += -I../../../../lib/libstand CPPFLAGS += -DUFS1_ONLY # CPPFLAGS += -DEFI_DEBUG CPPFLAGS += -I./../../zfs/ CPPFLAGS += -I./../../../cddl/boot/zfs/ # Always add MI sources and REGULAR efi loader bits CPPFLAGS += -I./../../common # For sys/skein.h CPPFLAGS += -I$(SRCTOP)/include include ../Makefile.inc FILES= boot1.efi FILEMODE= 0555 ROOT_BOOT= $(ROOT)/boot ROOTBOOTFILES=$(FILES:%=$(ROOT_BOOT)/%) LDSCRIPT= ./../loader/arch/${MACHINE}/ldscript.${MACHINE} LDFLAGS= -nostdlib --eh-frame-hdr -znocombreloc LDFLAGS += -shared --hash-style=both --enable-new-dtags LDFLAGS += -T${LDSCRIPT} -Bsymbolic all: boot1.efi install: all $(ROOTBOOTFILES) LIBEFI= ../libefi/libefi.a # # Add libstand for the runtime functions used by the compiler - for example # __aeabi_* (arm) or __divdi3 (i386). # as well as required string and memory functions for all platforms. # LIBSTAND= ../../libstand/$(MACH64)/libstand.a LIBZFSBOOT= ../../zfs/$(MACH64)/libzfsboot.a DPADD= $(LIBEFI) $(LIBZFSBOOT) $(LIBSTAND) LDADD= -L../libefi -lefi LDADD += -L../../zfs/$(MACH64) -lzfsboot LDADD += -L../../libstand/$(MACH64) -lstand DPADD += ${LDSCRIPT} EFI_TARGET= pei-x86-64 boot1.efi: ${PROG} if [ `${OBJDUMP} -t ${PROG} | fgrep '*UND*' | wc -l` != 0 ]; then \ ${OBJDUMP} -t ${PROG} | fgrep '*UND*'; \ exit 1; \ fi ${OBJCOPY} --readonly-text -j .peheader -j .text -j .sdata -j .data \ -j .dynamic -j .dynsym -j .rel.dyn \ -j .rela.dyn -j .reloc -j .eh_frame \ --output-target=${EFI_TARGET} --subsystem efi-app ${PROG} $@ $(BTXLD) -V ${BOOT_VERSION} -o $@ $@ boot1.o: ./../../common/ufsread.c CLEANFILES= boot1.efi ${PROG} ${PROG}: $(OBJS) $(DPADD) $(LD) $(LDFLAGS) -o $@ $(OBJS) $(LDADD) CLEANFILES += machine x86 machine: $(RM) machine $(SYMLINK) ./../../../${MACHINE}/include machine x86: $(RM) x86 $(SYMLINK) ./../../../x86/include x86 $(OBJS): machine x86 clean clobber: $(RM) $(CLEANFILES) $(OBJS) %.o: ../loader/arch/${MACHINE}/%.S $(COMPILE.S) $< %.o: ../loader/%.c $(COMPILE.c) $< %.o: ../../common/%.S $(COMPILE.S) $< %.o: ../../common/%.c $(COMPILE.c) $< $(ROOT_BOOT)/%: % $(INS.file)