summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/syslinux
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/syslinux')
-rw-r--r--meta/recipes-devtools/syslinux/files/cross-build.patch64
-rw-r--r--meta/recipes-devtools/syslinux/syslinux_3.86.bb46
2 files changed, 110 insertions, 0 deletions
diff --git a/meta/recipes-devtools/syslinux/files/cross-build.patch b/meta/recipes-devtools/syslinux/files/cross-build.patch
new file mode 100644
index 0000000000..c90c7afbaf
--- /dev/null
+++ b/meta/recipes-devtools/syslinux/files/cross-build.patch
@@ -0,0 +1,64 @@
1Use ?= for Makefile variables to use poky environment variables.
2Original method to sed s/CC =/CC ?=/ is not applicable anymore
3because of the Makefile changes.
4
5against 3.86
6
706/28/2010 - qhe
8
9also AUXDIR stays in $(LIBDIR)/syslinux rather than $(DATADIR)/syslinux
10
1107/08/2010 - qhe
12
13---
14diff --git a/MCONFIG b/MCONFIG
15index e9c16d3..4d49f33 100644
16--- a/MCONFIG
17+++ b/MCONFIG
18@@ -18,13 +18,13 @@
19 MAKEFLAGS += -r
20 MAKE += -r
21
22-BINDIR = /usr/bin
23-SBINDIR = /sbin
24-LIBDIR = /usr/lib
25-DATADIR = /usr/share
26-AUXDIR = $(DATADIR)/syslinux
27-MANDIR = /usr/man
28-INCDIR = /usr/include
29+BINDIR ?= /usr/bin
30+SBINDIR ?= /sbin
31+LIBDIR ?= /usr/lib
32+DATADIR ?= /usr/share
33+AUXDIR = $(LIBDIR)/syslinux
34+MANDIR ?= /usr/man
35+INCDIR ?= /usr/include
36 TFTPBOOT = /tftpboot
37 COM32DIR = $(AUXDIR)/com32
38
39@@ -38,18 +38,18 @@ PERL = perl
40
41 CHMOD = chmod
42
43-CC = gcc
44+CC ?= gcc
45 gcc_ok = $(shell tmpf=gcc_ok.$$$$.tmp; \
46 if $(CC) $(1) -c $(topdir)/dummy.c -o $$tmpf 2>/dev/null ; \
47 then echo '$(1)'; else echo '$(2)'; fi; \
48 rm -f $$tmpf)
49
50-LD = ld
51-OBJDUMP = objdump
52-OBJCOPY = objcopy
53-AR = ar
54-NM = nm
55-RANLIB = ranlib
56+LD ?= ld
57+OBJDUMP ?= objdump
58+OBJCOPY ?= objcopy
59+AR ?= ar
60+NM ?= nm
61+RANLIB ?= ranlib
62 GZIPPROG = gzip
63 PNGTOPNM = pngtopnm
64 MCOPY = mcopy
diff --git a/meta/recipes-devtools/syslinux/syslinux_3.86.bb b/meta/recipes-devtools/syslinux/syslinux_3.86.bb
new file mode 100644
index 0000000000..5edbd24086
--- /dev/null
+++ b/meta/recipes-devtools/syslinux/syslinux_3.86.bb
@@ -0,0 +1,46 @@
1DESCRIPTION = "A multi-purpose linux bootloader"
2HOMEPAGE = "http://syslinux.zytor.com/"
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
5 file://README;beginline=28;endline=34;md5=a4607efd4a6392017186d08099e7d546"
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"
10PR = "r1"
11
12SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/boot/syslinux/syslinux-${PV}.tar.bz2 \
13 file://cross-build.patch"
14
15COMPATIBLE_HOST = '(x86_64|i.86.*)-(linux|freebsd.*)'
16
17EXTRA_OEMAKE = " \
18 BINDIR=${bindir} SBINDIR=${sbindir} LIBDIR=${libdir} \
19 DATADIR=${datadir} MANDIR=${mandir} INCDIR=${includedir} \
20"
21# syslinux uses $LD for linking, strip `-Wl,' so it can work
22export LDFLAGS = "`echo $LDFLAGS | sed 's/-Wl,//g'`"
23
24do_configure() {
25 # drop win32 targets or build fails
26 sed -e 's,win32/\S*,,g' -i Makefile
27
28 # clean installer executables included in source tarball
29 oe_runmake clean
30}
31
32do_compile() {
33 # Rebuild only the installer; keep precompiled bootloaders
34 # as per author's request (doc/distrib.txt)
35 oe_runmake CC="${CC}" installer
36}
37
38do_install() {
39 oe_runmake install INSTALLROOT="${D}"
40
41 install -d ${D}${libdir}/syslinux/
42 install -m 644 ${S}/core/ldlinux.sys ${D}${libdir}/syslinux/
43 install -m 644 ${S}/core/ldlinux.bss ${D}${libdir}/syslinux/
44}
45
46BBCLASSEXTEND = "native"