Makefile.efiboot revision 1.1
11.1Sjmcneill# $NetBSD: Makefile.efiboot,v 1.1 2018/08/24 02:01:06 jmcneill Exp $ 21.1Sjmcneill 31.1SjmcneillS= ${.CURDIR}/../../.. 41.1Sjmcneill 51.1SjmcneillNOMAN= # defined 61.1SjmcneillNOPIE= # defined 71.1SjmcneillNOLIBCSANITIZER=# defined 81.1SjmcneillNOSANITIZER= # defined 91.1SjmcneillNORELRO= # defined 101.1SjmcneillPROG?= boot.efi 111.1SjmcneillNEWVERSWHAT?= "EFI Boot" 121.1Sjmcneill 131.1SjmcneillEFIDIR= ${S}/external/bsd/gnu-efi/dist 141.1SjmcneillGNUEFIARCH?= ${MACHINE_CPU} 151.1SjmcneillCPPFLAGS+= -I${EFIDIR}/inc -I${EFIDIR}/inc/${GNUEFIARCH} 161.1SjmcneillCPPFLAGS+= -I${EFIDIR}/inc/protocol 171.1Sjmcneill 181.1SjmcneillLDSCRIPT?= ${EFIDIR}/gnuefi/elf_${GNUEFIARCH}_efi.lds 191.1Sjmcneill 201.1SjmcneillAFLAGS.start.S= ${${ACTIVE_CC} == "clang":?-no-integrated-as:} 211.1Sjmcneill 221.1Sjmcneill.PATH: ${EFIDIR}/gnuefi 231.1SjmcneillSOURCES= crt0-efi-${GNUEFIARCH}.S reloc_${GNUEFIARCH}.c 241.1SjmcneillSOURCES+= boot.c conf.c console.c devopen.c exec.c panic.c prompt.c 251.1SjmcneillSOURCES+= efiboot.c efichar.c efifdt.c efifile.c 261.1Sjmcneill 271.1Sjmcneill.PATH: ${S}/external/bsd/libfdt/dist 281.1SjmcneillCPPFLAGS+= -I${S}/external/bsd/libfdt/dist 291.1SjmcneillSOURCES+= fdt.c fdt_addresses.c fdt_empty_tree.c 301.1SjmcneillSOURCES+= fdt_ro.c fdt_rw.c fdt_strerror.c fdt_sw.c fdt_wip.c 311.1Sjmcneill 321.1SjmcneillSRCS= ${SOURCES} ${EXTRA_SOURCES} 331.1Sjmcneill 341.1Sjmcneill.include <bsd.init.mk> 351.1Sjmcneill 361.1SjmcneillSTRIPFLAG= # nothing 371.1Sjmcneill 381.1SjmcneillLIBCRT0= # nothing 391.1SjmcneillLIBCRTI= # nothing 401.1SjmcneillLIBCRTBEGIN= # nothing 411.1SjmcneillLIBCRTEND= # nothing 421.1SjmcneillLIBC= # nothing 431.1Sjmcneill 441.1SjmcneillBINDIR=/usr/mdec 451.1SjmcneillBINMODE=444 461.1Sjmcneill 471.1Sjmcneill.PATH: ${.CURDIR} ${.CURDIR}/.. 481.1Sjmcneill.PATH: ${.CURDIR}/../../lib 491.1Sjmcneill 501.1SjmcneillLDFLAGS+= -nostdlib -T${LDSCRIPT} -Bsymbolic -shared 511.1SjmcneillCPPFLAGS+= -I$S -I${.CURDIR} -I${.CURDIR}/../common -I$S/lib/libsa 521.1SjmcneillCPPFLAGS+= -I${.OBJDIR} 531.1SjmcneillCPPFLAGS+= -I${.CURDIR}/../../lib 541.1Sjmcneill 551.1SjmcneillCOPTS+= -fpic -g -O2 561.1SjmcneillCOPTS+= -fshort-wchar -fno-strict-aliasing 571.1SjmcneillCOPTS+= -ffreestanding -fno-stack-protector 581.1SjmcneillLDFLAGS+= --defsym=EFI_SUBSYSTEM=0xa 591.1Sjmcneill 601.1Sjmcneill 611.1SjmcneillCOPTS+= ${${ACTIVE_CC} == "gcc":? -Wno-error=unused-but-set-variable :} 621.1SjmcneillCPPFLAGS+= -nostdinc -D_STANDALONE 631.1SjmcneillCPPFLAGS+= -DEFIBOOT 641.1Sjmcneill 651.1SjmcneillCPPFLAGS+= -Wall -Wmissing-prototypes 661.1SjmcneillCPPFLAGS+= -Wno-pointer-sign 671.1Sjmcneill 681.1SjmcneillCPPFLAGS+= -DHEAP_VARIABLE 691.1Sjmcneill#CPPFLAGS+= -DSUPPORT_CD9660 701.1SjmcneillCPPFLAGS+= -D"devb2cdb(bno)=(bno)" 711.1Sjmcneill#CPPFLAGS+= -DSUPPORT_DOSFS 721.1Sjmcneill#CPPFLAGS+= -DSUPPORT_EXT2FS 731.1Sjmcneill#CPPFLAGS+= -DSUPPORT_BOOTP 741.1Sjmcneill#CPPFLAGS+= -DSUPPORT_DHCP 751.1Sjmcneill#CPPFLAGS+= -DSUPPORT_NFS 761.1Sjmcneill#CPPFLAGS+= -DSUPPORT_TFTP 771.1Sjmcneill#CPPFLAGS+= -DLIBSA_ENABLE_LS_OP 781.1Sjmcneill 791.1Sjmcneill#CPPFLAGS+= -DARP_DEBUG 801.1Sjmcneill#CPPFLAGS+= -DBOOTP_DEBUG 811.1Sjmcneill#CPPFLAGS+= -DNET_DEBUG 821.1Sjmcneill#CPPFLAGS+= -DNETIF_DEBUG 831.1Sjmcneill#CPPFLAGS+= -DNFS_DEBUG 841.1Sjmcneill#CPPFLAGS+= -DRARP_DEBUG 851.1Sjmcneill#CPPFLAGS+= -DRPC_DEBUG 861.1Sjmcneill 871.1SjmcneillSAMISCCPPFLAGS+= -DLIBSA_PRINTF_LONGLONG_SUPPORT 881.1SjmcneillSAMISCCPPFLAGS+= -DLIBSA_PRINTF_WIDTH_SUPPORT 891.1SjmcneillSAMISCCPPFLAGS+= -D"cdb2devb(bno)=(bno)" 901.1Sjmcneill 911.1Sjmcneill### find out what to use for libsa 921.1SjmcneillSA_AS= library 931.1SjmcneillSAMISCMAKEFLAGS+="SA_USE_LOADFILE=yes" 941.1SjmcneillSAMISCMAKEFLAGS+="SA_USE_CREAD=yes" 951.1Sjmcneill#SAMISCMAKEFLAGS+="SA_INCLUDE_NET=yes" 961.1Sjmcneill#SAMISCMAKEFLAGS+="SA_ENABLE_LS_OP=yes" 971.1Sjmcneill.include "${S}/lib/libsa/Makefile.inc" 981.1SjmcneillLIBSA= ${SALIB} 991.1Sjmcneill 1001.1Sjmcneill### find out what to use for libkern 1011.1SjmcneillKERN_AS= library 1021.1SjmcneillLIBKERN_ARCH?= ${MACHINE_ARCH} 1031.1SjmcneillKERNMISCMAKEFLAGS+="LIBKERN_ARCH=${LIBKERN_ARCH}" 1041.1Sjmcneill.include "${S}/lib/libkern/Makefile.inc" 1051.1SjmcneillLIBKERN= ${KERNLIB} 1061.1Sjmcneill 1071.1Sjmcneill### find out what to use for libz 1081.1SjmcneillZ_AS= library 1091.1Sjmcneill.include "${S}/lib/libz/Makefile.inc" 1101.1SjmcneillLIBZ= ${ZLIB} 1111.1Sjmcneill 1121.1Sjmcneill### find out what to use for libgnuefi 1131.1SjmcneillGNUEFI_AS= library 1141.1SjmcneillLIBGNUEFI_ARCH?= ${MACHINE_ARCH} 1151.1SjmcneillGNUEFIMISCMAKEFLAGS+="LIBGNUEFI_ARCH=${LIBGNUEFI_ARCH}" 1161.1SjmcneillGNUEFIMISCCPPFLAGS+= -I${EFIDIR}/lib 1171.1Sjmcneill.include "${S}/lib/libgnuefi/Makefile.inc" 1181.1SjmcneillLIBGNUEFI= ${GNUEFILIB} 1191.1Sjmcneill 1201.1Sjmcneillcleandir distclean: .WAIT cleanlibdir 1211.1Sjmcneill 1221.1Sjmcneillcleanlibdir: 1231.1Sjmcneill -rm -rf lib 1241.1Sjmcneill 1251.1SjmcneillLIBLIST= ${LIBGNUEFI} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBSA} 1261.1Sjmcneill 1271.1SjmcneillVERSIONMACHINE=evbarm 1281.1Sjmcneill.include "${S}/conf/newvers_stand.mk" 1291.1Sjmcneill 1301.1SjmcneillCLEANFILES+= ${PROG}.so ${PROG}.tmp 1311.1Sjmcneill 1321.1Sjmcneill${PROG}: ${PROG}.so 1331.1Sjmcneill ${OBJCOPY} -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \ 1341.1Sjmcneill -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \ 1351.1Sjmcneill -j .reloc -O binary ${PROG}.so ${.TARGET} 1361.1Sjmcneill 1371.1Sjmcneill.include <bsd.prog.mk> 1381.1Sjmcneill 1391.1Sjmcneill${PROG}.so: ${OBJS} ${LIBLIST} ${LDSCRIPT} ${.CURDIR}/../Makefile.efiboot 1401.1Sjmcneill ${LD} ${LDFLAGS} -o ${.TARGET}.tmp ${OBJS} ${LIBLIST} 1411.1Sjmcneill @if ${OBJDUMP} -t ${.TARGET}.tmp | grep 'UND'; then \ 1421.1Sjmcneill (echo Undefined symbols; false); \ 1431.1Sjmcneill fi 1441.1Sjmcneill rm -f ${.TARGET} 1451.1Sjmcneill mv ${.TARGET}.tmp ${.TARGET} 1461.1Sjmcneill 1471.1SjmcneillKLINK_MACHINE?= ${MACHINE} 1481.1Sjmcneill.include <bsd.klinks.mk> 149