150477Speter# $FreeBSD: stable/11/stand/loader.mk 355345 2019-12-03 18:25:16Z kevans $ 238465Smsmith 3329140Skevans.PATH: ${LDRSRC} ${BOOTSRC}/libsa 4329140Skevans 5329140SkevansCFLAGS+=-I${LDRSRC} 6329140Skevans 7239058SaeSRCS+= boot.c commands.c console.c devopen.c interp.c 8114379SpeterSRCS+= interp_backslash.c interp_parse.c ls.c misc.c 9329135SkevansSRCS+= module.c 1039178Smsmith 11211678Simp.if ${MACHINE} == "i386" || ${MACHINE_CPUARCH} == "amd64" 12136895SruSRCS+= load_elf32.c load_elf32_obj.c reloc_elf32.c 13136895SruSRCS+= load_elf64.c load_elf64_obj.c reloc_elf64.c 14136895Sru.elif ${MACHINE} == "pc98" 15136895SruSRCS+= load_elf32.c load_elf32_obj.c reloc_elf32.c 16281526Sandrew.elif ${MACHINE_CPUARCH} == "aarch64" 17281526SandrewSRCS+= load_elf64.c reloc_elf64.c 18211817Snwhitehorn.elif ${MACHINE_CPUARCH} == "arm" 19134458SiedowseSRCS+= load_elf32.c reloc_elf32.c 20211678Simp.elif ${MACHINE_CPUARCH} == "powerpc" 21209920SnwhitehornSRCS+= load_elf32.c reloc_elf32.c 22209920SnwhitehornSRCS+= load_elf64.c reloc_elf64.c 23332150SkevansSRCS+= metadata.c 24219691Smarcel.elif ${MACHINE_CPUARCH} == "sparc64" 25134458SiedowseSRCS+= load_elf64.c reloc_elf64.c 26332150SkevansSRCS+= metadata.c 27329144Skevans.elif ${MACHINE_ARCH:Mmips64*} != "" 28262403SrwatsonSRCS+= load_elf64.c reloc_elf64.c 29332150SkevansSRCS+= metadata.c 30296378Ssgalabov.elif ${MACHINE} == "mips" 31296182SsgalabovSRCS+= load_elf32.c reloc_elf32.c 32332150SkevansSRCS+= metadata.c 33114379Speter.endif 34114379Speter 35329144Skevans.if ${LOADER_DISK_SUPPORT:Uyes} == "yes" 36329144SkevansSRCS+= disk.c part.c 3768548Sbenno.endif 3868548Sbenno 39329144Skevans.if ${LOADER_NET_SUPPORT:Uno} == "yes" 40329144SkevansSRCS+= dev_net.c 41239058Sae.endif 42239058Sae 43163893Smarcel.if defined(HAVE_BCACHE) 44163893SmarcelSRCS+= bcache.c 45163893Smarcel.endif 46163893Smarcel 47200460Smarcel.if defined(MD_IMAGE_SIZE) 48200460SmarcelCFLAGS+= -DMD_IMAGE_SIZE=${MD_IMAGE_SIZE} 49200460SmarcelSRCS+= md.c 50326431Semaste.else 51326431SemasteCLEANFILES+= md.o 52200460Smarcel.endif 53200460Smarcel 5439178Smsmith# Machine-independant ISA PnP 55125561Sru.if defined(HAVE_ISABUS) 5639178SmsmithSRCS+= isapnp.c 5739178Smsmith.endif 58125561Sru.if defined(HAVE_PNP) 5939178SmsmithSRCS+= pnp.c 6039178Smsmith.endif 6140875Smsmith 62344413Skevans.if ${LOADER_INTERP} == "lua" 63344413SkevansSRCS+= interp_lua.c 64344413Skevans.include "${BOOTSRC}/lua.mk" 65344413SkevansLDR_INTERP= ${LIBLUA} 66344413SkevansLDR_INTERP32= ${LIBLUA32} 67355345SkevansCFLAGS.interp_lua.c= -DLUA_PATH=\"${LUAPATH}\" -I${FLUASRC}/modules 68344413Skevans.elif ${LOADER_INTERP} == "4th" 6940875SmsmithSRCS+= interp_forth.c 70329140Skevans.include "${BOOTSRC}/ficl.mk" 71344220SkevansLDR_INTERP= ${LIBFICL} 72344220SkevansLDR_INTERP32= ${LIBFICL32} 73344413Skevans.elif ${LOADER_INTERP} == "simp" 74344413SkevansSRCS+= interp_simple.c 75329183Skevans.else 76344413Skevans.error Unknown interpreter ${LOADER_INTERP} 7740875Smsmith.endif 7860704Sdcs 79199210Sattilio.if defined(BOOT_PROMPT_123) 80199210SattilioCFLAGS+= -DBOOT_PROMPT_123 81199210Sattilio.endif 82199210Sattilio 83269621Smarcel.if defined(LOADER_INSTALL_SUPPORT) 84269621SmarcelSRCS+= install.c 85269621Smarcel.endif 86312556Semaste 87329175Skevans# Filesystem support 88329175Skevans.if ${LOADER_CD9660_SUPPORT:Uno} == "yes" 89329175SkevansCFLAGS+= -DLOADER_CD9660_SUPPORT 90329175Skevans.endif 91329175Skevans.if ${LOADER_EXT2FS_SUPPORT:Uno} == "yes" 92329175SkevansCFLAGS+= -DLOADER_EXT2FS_SUPPORT 93329175Skevans.endif 94329175Skevans.if ${LOADER_MSDOS_SUPPORT:Uno} == "yes" 95329175SkevansCFLAGS+= -DLOADER_MSDOS_SUPPORT 96329175Skevans.endif 97329175Skevans.if ${LOADER_NANDFS_SUPPORT:U${MK_NAND}} == "yes" 98329175SkevansCFLAGS+= -DLOADER_NANDFS_SUPPORT 99329175Skevans.endif 100329175Skevans.if ${LOADER_UFS_SUPPORT:Uyes} == "yes" 101329175SkevansCFLAGS+= -DLOADER_UFS_SUPPORT 102329175Skevans.endif 103329175Skevans 104329175Skevans# Compression 105329175Skevans.if ${LOADER_GZIP_SUPPORT:Uno} == "yes" 106329175SkevansCFLAGS+= -DLOADER_GZIP_SUPPORT 107329175Skevans.endif 108329175Skevans.if ${LOADER_BZIP2_SUPPORT:Uno} == "yes" 109329175SkevansCFLAGS+= -DLOADER_BZIP2_SUPPORT 110329175Skevans.endif 111329175Skevans 112329175Skevans# Network related things 113329175Skevans.if ${LOADER_NET_SUPPORT:Uno} == "yes" 114329175SkevansCFLAGS+= -DLOADER_NET_SUPPORT 115329175Skevans.endif 116329175Skevans.if ${LOADER_NFS_SUPPORT:Uno} == "yes" 117329175SkevansCFLAGS+= -DLOADER_NFS_SUPPORT 118329175Skevans.endif 119329175Skevans.if ${LOADER_TFTP_SUPPORT:Uno} == "yes" 120329175SkevansCFLAGS+= -DLOADER_TFTP_SUPPORT 121329175Skevans.endif 122329175Skevans 123329175Skevans# Partition support 124329175Skevans.if ${LOADER_GPT_SUPPORT:Uyes} == "yes" 125329175SkevansCFLAGS+= -DLOADER_GPT_SUPPORT 126329175Skevans.endif 127329175Skevans.if ${LOADER_MBR_SUPPORT:Uyes} == "yes" 128329175SkevansCFLAGS+= -DLOADER_MBR_SUPPORT 129329175Skevans.endif 130329175Skevans 131344399Skevans.if ${HAVE_ZFS:Uno} == "yes" 132329140SkevansCFLAGS+= -DLOADER_ZFS_SUPPORT 133329140SkevansCFLAGS+= -I${ZFSSRC} 134329140SkevansCFLAGS+= -I${SYSDIR}/cddl/boot/zfs 135332128SkevansSRCS+= zfs_cmd.c 136329140Skevans.endif 137329140Skevans 138329175SkevansLIBFICL= ${BOOTOBJ}/ficl/libficl.a 139329175Skevans.if ${MACHINE} == "i386" 140329175SkevansLIBFICL32= ${LIBFICL} 141329175Skevans.else 142329175SkevansLIBFICL32= ${BOOTOBJ}/ficl32/libficl.a 143329175Skevans.endif 144344220Skevans 145344220SkevansLIBLUA= ${BOOTOBJ}/liblua/liblua.a 146344220Skevans.if ${MACHINE} == "i386" 147344220SkevansLIBLUA32= ${LIBLUA} 148344220Skevans.else 149344220SkevansLIBLUA32= ${BOOTOBJ}/liblua32/liblua.a 150329175Skevans.endif 151329175Skevans 152312556SemasteCLEANFILES+= vers.c 153312556SemasteVERSION_FILE?= ${.CURDIR}/version 154312730Semaste.if ${MK_REPRODUCIBLE_BUILD} != no 155312730SemasteREPRO_FLAG= -r 156312730Semaste.endif 157329140Skevansvers.c: ${LDRSRC}/newvers.sh ${VERSION_FILE} 158329140Skevans sh ${LDRSRC}/newvers.sh ${REPRO_FLAG} ${VERSION_FILE} \ 159312730Semaste ${NEWVERSWHAT} 160329140Skevans 161346482Skevans.if ${MK_LOADER_VERBOSE} != "no" 162346482SkevansCFLAGS+= -DELF_VERBOSE 163346482Skevans.endif 164346482Skevans 165329140Skevans.if !empty(HELP_FILES) 166329175SkevansHELP_FILES+= ${LDRSRC}/help.common 167329175Skevans 168329140SkevansCLEANFILES+= loader.help 169329140SkevansFILES+= loader.help 170329140Skevans 171329140Skevansloader.help: ${HELP_FILES} 172329140Skevans cat ${HELP_FILES} | awk -f ${LDRSRC}/merge_help.awk > ${.TARGET} 173329140Skevans.endif 174