Merge branch 'org.openembedded.dev' of git://git.openembedded.net/openembedded into...
[vuplus_openembedded] / packages / apex / apex-nslu2_1.5.14.bb
1 DESCRIPTION = "APEX Boot Loader"
2 SECTION = "misc"
3 PRIORITY = "optional"
4 HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader"
5 LICENSE = "GPL"
6 FILE_PR = "r2"
7
8 SRC_URI = "ftp://ftp.buici.com/pub/apex/apex-${PV}.tar.gz \
9            file://defconfig"
10 S = ${WORKDIR}/apex-${PV}
11
12 CMDLINE_CONSOLE = "console=${@bb.data.getVar("KERNEL_CONSOLE",d,1) or "ttyS0"}"
13
14 CMDLINE_ROOT  ?= "root=/dev/mtdblock4 rootfstype=jffs2 rw"
15
16 CMDLINE_DEBUG ?= ""
17
18 EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}"
19
20 oe_runmake() {
21         oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@"
22         make ${PARALLEL_MAKE} LDFLAGS= CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} "$@" || die "oe_runmake failed"
23 }
24
25 # Set the correct CONFIG_USER_xxx_ENDIAN and CONFIG_CMDLINE at the head
26 # of the .config file and remove any settings in defconfig then append
27 # defconfig to .config
28 do_configure() {
29         rm -f ${S}/.config
30         . ${CONFIG_SITE}
31         if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then
32           sed -e 's/.*CONFIG_USER_BIGENDIAN.*/CONFIG_USER_BIGENDIAN=y/' \
33               -e 's/.*CONFIG_BIGENDIAN.*/CONFIG_BIGENDIAN=y/' \
34               -e 's/.*CONFIG_TARGET_DESCRIPTION.*/CONFIG_TARGET_DESCRIPTION=\"OpenEmbedded NSLU2\/BE (8MiB Flash)\"/' \
35               -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \
36               -e 's|CONFIG_ENV_DEFAULT_CMDLINE_ALT=|CONFIG_ENV_DEFAULT_CMDLINE_ALT=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \
37                 ${WORKDIR}/defconfig > ${S}/.config
38         elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then
39           sed -e 's/.*CONFIG_USER_LITTLEENDIAN.*/CONFIG_USER_LITTLEENDIAN=y/' \
40               -e 's/.*CONFIG_LITTLEENDIAN.*/CONFIG_LITTLEENDIAN=y/' \
41               -e 's/.*CONFIG_TARGET_DESCRIPTION.*/CONFIG_TARGET_DESCRIPTION=\"OpenEmbedded NSLU2\/LE (8MiB Flash)\"/' \
42               -e 's|CONFIG_ENV_DEFAULT_CMDLINE=|CONFIG_ENV_DEFAULT_CMDLINE=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \
43               -e 's|CONFIG_ENV_DEFAULT_CMDLINE_ALT=|CONFIG_ENV_DEFAULT_CMDLINE_ALT=\"${CMDLINE_CONSOLE} ${CMDLINE_ROOT} ${CMDLINE_DEBUG}\"|' \
44                 ${WORKDIR}/defconfig > ${S}/.config
45         else
46           oefatal do_configure cannot determine endianess
47         fi
48         oe_runmake oldconfig
49 }
50
51 DEPENDS += "devio-native"
52
53 do_stage() {
54         install -d ${STAGING_LOADER_DIR}
55         . ${CONFIG_SITE}
56         if [ "x$ac_cv_c_bigendian" = "xyes" -o "x$ac_cv_c_littleendian" = "xno" ]; then
57                 cp src/arch-arm/rom/apex.bin ${STAGING_LOADER_DIR}/apex-nslu2.bin
58         elif [ "x$ac_cv_c_littleendian" = "xyes" -o "x$ac_cv_c_bigendian" = "xno" ]; then
59                 devio '<<'src/arch-arm/rom/apex.bin >${STAGING_LOADER_DIR}/apex-nslu2.bin 'xp $,4'
60         else
61                 oefatal do_populate_staging cannot determine endianess
62         fi
63 }