1SUMMARY = "Multi-purpose linux bootloader" 2HOMEPAGE = "http://www.syslinux.org/" 3LICENSE = "GPLv2+" 4LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ 5 file://README;beginline=35;endline=41;md5=558f2c71cb1fb9ba511ccd4858e48e8a" 6 7# If you really want to run syslinux, you need mtools. We just want the 8# ldlinux.* stuff for now, so skip mtools-native 9DEPENDS = "nasm-native util-linux e2fsprogs" 10PV = "6.04-pre2" 11 12SRC_URI = "https://www.zytor.com/pub/syslinux/Testing/6.04/syslinux-${PV}.tar.xz \ 13 file://syslinux-remove-clean-script.patch \ 14 file://0001-linux-syslinux-support-ext2-3-4-device.patch \ 15 file://0002-linux-syslinux-implement-open_ext2_fs.patch \ 16 file://0003-linux-syslinux-implement-install_to_ext2.patch \ 17 file://0004-linux-syslinux-add-ext_file_read-and-ext_file_write.patch \ 18 file://0005-linux-syslinux-implement-handle_adv_on_ext.patch \ 19 file://0006-linux-syslinux-implement-write_to_ext-and-add-syslin.patch \ 20 file://0007-linux-syslinux-implement-ext_construct_sectmap_fs.patch \ 21 file://0008-libinstaller-syslinuxext-implement-syslinux_patch_bo.patch \ 22 file://0009-linux-syslinux-implement-install_bootblock.patch \ 23 file://0010-Workaround-multiple-definition-of-symbol-errors.patch \ 24 file://0001-install-don-t-install-obsolete-file-com32.ld.patch \ 25 " 26 27SRC_URI[md5sum] = "2b31c78f087f99179feb357da312d7ec" 28SRC_URI[sha256sum] = "4441a5d593f85bb6e8d578cf6653fb4ec30f9e8f4a2315a3d8f2d0a8b3fadf94" 29 30UPSTREAM_CHECK_URI = "https://www.zytor.com/pub/syslinux/" 31UPSTREAM_CHECK_REGEX = "syslinux-(?P<pver>.+)\.tar" 32UPSTREAM_VERSION_UNKNOWN = "1" 33 34COMPATIBLE_HOST = '(x86_64|i.86).*-(linux|freebsd.*)' 35# Don't let the sanity checker trip on the 32 bit real mode BIOS binaries 36INSANE_SKIP_${PN}-misc = "arch" 37INSANE_SKIP_${PN}-chain = "arch" 38 39EXTRA_OEMAKE = " \ 40 BINDIR=${bindir} SBINDIR=${sbindir} LIBDIR=${libdir} \ 41 DATADIR=${datadir} MANDIR=${mandir} INCDIR=${includedir} \ 42" 43 44do_configure() { 45 # drop win32 targets or build fails 46 sed -e 's,win32/\S*,,g' -i Makefile 47 48 # clean installer executables included in source tarball 49 oe_runmake clean firmware="efi32" EFIINC="${includedir}" 50 # NOTE: There is a temporary work around above to specify 51 # the efi32 as the firmware else the pre-built bios 52 # files get erased contrary to the doc/distib.txt 53 # In the future this should be "bios" and not "efi32". 54} 55 56do_compile() { 57 # Make sure the recompile is OK. 58 # Though the ${B} should always exist, still check it before find and rm. 59 [ -d "${B}" ] && find ${B} -name '.*.d' -type f -exec rm -f {} \; 60 61 # Rebuild only the installer; keep precompiled bootloaders 62 # as per author's request (doc/distrib.txt) 63 oe_runmake CC="${CC} ${CFLAGS}" \ 64 LD="${LD}" LDFLAGS="${LDFLAGS}" \ 65 OBJDUMP="${OBJDUMP}" \ 66 OBJCOPY="${OBJCOPY}" \ 67 AR="${AR}" \ 68 STRIP="${STRIP}" \ 69 NM="${NM}" \ 70 RANLIB="${RANLIB}" \ 71 firmware="bios" installer 72} 73 74do_install() { 75 oe_runmake CC="${CC} ${CFLAGS}" LD="${LD}" \ 76 OBJDUMP="${OBJDUMP}" \ 77 OBJCOPY="${OBJCOPY}" \ 78 AR="${AR}" \ 79 STRIP="${STRIP}" \ 80 NM="${NM}" \ 81 RANLIB="${RANLIB}" \ 82 firmware="bios" install INSTALLROOT="${D}" 83 84 install -d ${D}${datadir}/syslinux/ 85 install -m 644 ${S}/bios/core/ldlinux.sys ${D}${datadir}/syslinux/ 86 install -m 644 ${S}/bios/core/ldlinux.bss ${D}${datadir}/syslinux/ 87 install -m 755 ${S}/bios/linux/syslinux-nomtools ${D}${bindir}/ 88} 89 90PACKAGES += "${PN}-nomtools ${PN}-extlinux ${PN}-mbr ${PN}-chain ${PN}-pxelinux ${PN}-isolinux ${PN}-misc" 91 92RDEPENDS_${PN} += "mtools" 93RDEPENDS_${PN}-nomtools += "libext2fs" 94RDEPENDS_${PN}-misc += "perl" 95 96FILES_${PN} = "${bindir}/syslinux" 97FILES_${PN}-nomtools = "${bindir}/syslinux-nomtools" 98FILES_${PN}-extlinux = "${sbindir}/extlinux" 99FILES_${PN}-mbr = "${datadir}/${BPN}/mbr.bin" 100FILES_${PN}-chain = "${datadir}/${BPN}/chain.c32" 101FILES_${PN}-isolinux = "${datadir}/${BPN}/isolinux.bin" 102FILES_${PN}-pxelinux = "${datadir}/${BPN}/pxelinux.0" 103FILES_${PN}-dev += "${datadir}/${BPN}/com32/lib*${SOLIBS} ${datadir}/${BPN}/com32/include ${datadir}/${BPN}/com32/com32.ld" 104FILES_${PN}-staticdev += "${datadir}/${BPN}/com32/lib*.a ${libdir}/${BPN}/com32/lib*.a" 105FILES_${PN}-misc = "${datadir}/${BPN}/* ${libdir}/${BPN}/* ${bindir}/*" 106 107BBCLASSEXTEND = "native nativesdk" 108