generic-poky/meta/recipes-devtools/syslinux/syslinux_6.03.bb

91 lines
4.0 KiB
BlitzBasic
Raw Normal View History

SUMMARY = "Multi-purpose linux bootloader"
HOMEPAGE = "http://syslinux.zytor.com/"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
file://README;beginline=35;endline=41;md5=558f2c71cb1fb9ba511ccd4858e48e8a"
# If you really want to run syslinux, you need mtools. We just want the
# ldlinux.* stuff for now, so skip mtools-native
DEPENDS = "nasm-native util-linux e2fsprogs"
SRC_URI = "${KERNELORG_MIRROR}/linux/utils/boot/syslinux/syslinux-${PV}.tar.xz \
file://syslinux-fix-parallel-building-issue.patch \
file://syslinux-libupload-depend-lib.patch \
file://syslinux-remove-clean-script.patch \
file://0001-linux-syslinux-support-ext2-3-4-device.patch \
file://0002-linux-syslinux-implement-open_ext2_fs.patch \
file://0003-linux-syslinux-implement-install_to_ext2.patch \
file://0004-linux-syslinux-add-ext_file_read-and-ext_file_write.patch \
file://0005-linux-syslinux-implement-handle_adv_on_ext.patch \
file://0006-linux-syslinux-implement-write_to_ext-and-add-syslin.patch \
file://0007-linux-syslinux-implement-ext_construct_sectmap_fs.patch \
file://0008-libinstaller-syslinuxext-implement-syslinux_patch_bo.patch \
file://0009-linux-syslinux-implement-install_bootblock.patch \
file://0010-gcc46-compatibility.patch \
file://0011-mk-MMD-does-not-take-any-arguments.patch \
file://syslinux-6.03-sysmacros.patch \
"
SRC_URI[md5sum] = "92a253df9211e9c20172796ecf388f13"
SRC_URI[sha256sum] = "26d3986d2bea109d5dc0e4f8c4822a459276cf021125e8c9f23c3cca5d8c850e"
COMPATIBLE_HOST = '(x86_64|i.86).*-(linux|freebsd.*)'
# Don't let the sanity checker trip on the 32 bit real mode BIOS binaries
INSANE_SKIP_${PN}-misc = "arch"
INSANE_SKIP_${PN}-chain = "arch"
EXTRA_OEMAKE = " \
BINDIR=${bindir} SBINDIR=${sbindir} LIBDIR=${libdir} \
DATADIR=${datadir} MANDIR=${mandir} INCDIR=${includedir} \
"
do_configure() {
# drop win32 targets or build fails
sed -e 's,win32/\S*,,g' -i Makefile
# clean installer executables included in source tarball
oe_runmake clean firmware="efi32" EFIINC="${includedir}"
# NOTE: There is a temporary work around above to specify
# the efi32 as the firmware else the pre-built bios
# files get erased contrary to the doc/distib.txt
# In the future this should be "bios" and not "efi32".
}
do_compile() {
# Make sure the recompile is OK.
# Though the ${B} should always exist, still check it before find and rm.
[ -d "${B}" ] && find ${B} -name '.*.d' -type f -exec rm -f {} \;
# Rebuild only the installer; keep precompiled bootloaders
# as per author's request (doc/distrib.txt)
syslinux: Set LD to avoid using build host ld base ld is used during link phase and since its x86 so it works mostly, however it can cause problems depending upon build host. During cross build we should use cross linker Fixes errors e.g. ld -shared -m elf_i386 --hash-style=gnu -T /home/ubuntu/work/oe/openembedded-core/build/tmp-glibc/work/i586-oe-linux/syslinux/6.03-r0/syslinux-6.03/com32/lib/i386/elf.ld -soname libcom32.c32 -o libcom32.elf zlib/adler32.o zlib/compress. o zlib/crc32.o zlib/uncompr.o zlib/deflate.o zlib/trees.o zlib/zutil.o zlib/inflate.o zlib/infback.o zlib/inftrees.o zlib/inffast.o sys/zfile.o sys/zfopen.o libpng/png.o libpng/pngset.o libpng/pngget.o libpng/pngrutil.o libpng/pngtrans.o libpng/pngwutil.o libpng/pngread.o libpng/pngrio.o libpng/pngwio.o libpng/pngwrite.o libpng/pngrtran.o libpng/pngwtran.o libpng/pngmem.o libpng/pngerror.o libpng/pngpread.o jpeg/tinyjpeg.o jpeg/jidctflt.o jpeg/decode1.o jpeg/decode3.o jpe g/rgb24.o jpeg/bgr24.o jpeg/yuv420p.o jpeg/grey.o jpeg/rgba32.o jpeg/bgra32.o pci/cfgtype.o pci/scan.o pci/bios.o pci/readb.o pci/readw.o pci/readl.o pci/writeb.o pci/writew.o pci/writel.o sys/vesacon_write.o sys/vesaserial_write.o sys/ve sa/initvesa.o sys/vesa/drawtxt.o sys/vesa/background.o sys/vesa/alphatbl.o sys/vesa/screencpy.o sys/vesa/fmtpixel.o sys/vesa/i915resolution.o syslinux/reboot.o syslinux/keyboard.o syslinux/version.o syslinux/pxe_get_cached.o syslinux/pxe_get_nic.o syslinux/pxe_dns.o syslinux/video/fontquery.o syslinux/video/reportmode.o syslinux/addlist.o syslinux/freelist.o syslinux/memmap.o syslinux/movebits.o syslinux/shuffle.o syslinux/shuffle_pm.o syslinux/shuffle_rm.o syslinux/bios$oot.o syslinux/zonelist.o syslinux/dump_mmap.o syslinux/dump_movelist.o syslinux/run_default.o syslinux/run_command.o syslinux/cleanup.o syslinux/localboot.o syslinux/runimage.o syslinux/loadfile.o syslinux/floadfile.o syslinux/zloadfile$o syslinux/load_linux.o syslinux/initramfs.o syslinux/initramfs_file.o syslinux/initramfs_loadfile.o syslinux/initramfs_archive.o sys/libansi.o sys/gpxe.o atexit.o onexit.o abort.o | ld: zlib/deflate.o: unrecognized relocation (0x2b) in section `.text' | ld: final link failed: Bad value | make[4]: *** [libcom32.elf] Error 1 (From OE-Core rev: c4897af85eace49e3c27aebc1448227105286e30) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-15 18:38:52 +00:00
oe_runmake CC="${CC} ${CFLAGS}" LD="${LD}" LDFLAGS="${LDFLAGS}" firmware="bios" installer
}
do_install() {
syslinux: Set LD to avoid using build host ld base ld is used during link phase and since its x86 so it works mostly, however it can cause problems depending upon build host. During cross build we should use cross linker Fixes errors e.g. ld -shared -m elf_i386 --hash-style=gnu -T /home/ubuntu/work/oe/openembedded-core/build/tmp-glibc/work/i586-oe-linux/syslinux/6.03-r0/syslinux-6.03/com32/lib/i386/elf.ld -soname libcom32.c32 -o libcom32.elf zlib/adler32.o zlib/compress. o zlib/crc32.o zlib/uncompr.o zlib/deflate.o zlib/trees.o zlib/zutil.o zlib/inflate.o zlib/infback.o zlib/inftrees.o zlib/inffast.o sys/zfile.o sys/zfopen.o libpng/png.o libpng/pngset.o libpng/pngget.o libpng/pngrutil.o libpng/pngtrans.o libpng/pngwutil.o libpng/pngread.o libpng/pngrio.o libpng/pngwio.o libpng/pngwrite.o libpng/pngrtran.o libpng/pngwtran.o libpng/pngmem.o libpng/pngerror.o libpng/pngpread.o jpeg/tinyjpeg.o jpeg/jidctflt.o jpeg/decode1.o jpeg/decode3.o jpe g/rgb24.o jpeg/bgr24.o jpeg/yuv420p.o jpeg/grey.o jpeg/rgba32.o jpeg/bgra32.o pci/cfgtype.o pci/scan.o pci/bios.o pci/readb.o pci/readw.o pci/readl.o pci/writeb.o pci/writew.o pci/writel.o sys/vesacon_write.o sys/vesaserial_write.o sys/ve sa/initvesa.o sys/vesa/drawtxt.o sys/vesa/background.o sys/vesa/alphatbl.o sys/vesa/screencpy.o sys/vesa/fmtpixel.o sys/vesa/i915resolution.o syslinux/reboot.o syslinux/keyboard.o syslinux/version.o syslinux/pxe_get_cached.o syslinux/pxe_get_nic.o syslinux/pxe_dns.o syslinux/video/fontquery.o syslinux/video/reportmode.o syslinux/addlist.o syslinux/freelist.o syslinux/memmap.o syslinux/movebits.o syslinux/shuffle.o syslinux/shuffle_pm.o syslinux/shuffle_rm.o syslinux/bios$oot.o syslinux/zonelist.o syslinux/dump_mmap.o syslinux/dump_movelist.o syslinux/run_default.o syslinux/run_command.o syslinux/cleanup.o syslinux/localboot.o syslinux/runimage.o syslinux/loadfile.o syslinux/floadfile.o syslinux/zloadfile$o syslinux/load_linux.o syslinux/initramfs.o syslinux/initramfs_file.o syslinux/initramfs_loadfile.o syslinux/initramfs_archive.o sys/libansi.o sys/gpxe.o atexit.o onexit.o abort.o | ld: zlib/deflate.o: unrecognized relocation (0x2b) in section `.text' | ld: final link failed: Bad value | make[4]: *** [libcom32.elf] Error 1 (From OE-Core rev: c4897af85eace49e3c27aebc1448227105286e30) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-15 18:38:52 +00:00
oe_runmake CC="${CC} ${CFLAGS}" LD="${LD}" install INSTALLROOT="${D}" firmware="bios"
install -d ${D}${datadir}/syslinux/
install -m 644 ${S}/bios/core/ldlinux.sys ${D}${datadir}/syslinux/
install -m 644 ${S}/bios/core/ldlinux.bss ${D}${datadir}/syslinux/
install -m 755 ${S}/bios/linux/syslinux-nomtools ${D}${bindir}/
}
PACKAGES += "${PN}-nomtools ${PN}-extlinux ${PN}-mbr ${PN}-chain ${PN}-pxelinux ${PN}-isolinux ${PN}-misc"
RDEPENDS_${PN} += "mtools"
RDEPENDS_${PN}-nomtools += "libext2fs"
RDEPENDS_${PN}-misc += "perl"
FILES_${PN} = "${bindir}/syslinux"
FILES_${PN}-nomtools = "${bindir}/syslinux-nomtools"
FILES_${PN}-extlinux = "${sbindir}/extlinux"
FILES_${PN}-mbr = "${datadir}/${BPN}/mbr.bin"
FILES_${PN}-chain = "${datadir}/${BPN}/chain.c32"
FILES_${PN}-isolinux = "${datadir}/${BPN}/isolinux.bin"
FILES_${PN}-pxelinux = "${datadir}/${BPN}/pxelinux.0"
FILES_${PN}-dev += "${datadir}/${BPN}/com32/lib*${SOLIBS} ${datadir}/${BPN}/com32/include ${datadir}/${BPN}/com32/com32.ld"
FILES_${PN}-staticdev += "${datadir}/${BPN}/com32/lib*.a ${libdir}/${BPN}/com32/lib*.a"
FILES_${PN}-misc = "${datadir}/${BPN}/* ${libdir}/${BPN}/* ${bindir}/*"
BBCLASSEXTEND = "native nativesdk"