aboutsummaryrefslogtreecommitdiff
path: root/recipes/mozilla/fennec_hg.bb
blob: 7075fd9396b354de6d7b860d6216194019c9cdee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
DESCRIPTION = "Mozilla Mobile browser"

PV = "2.0+${MOZPV}"
MOZPV = "4.0b5"
PR = "r0"
PE = "1"
SRCREV = "FENNEC_4_0b5_RELEASE"
SRC_URI = "hg://hg.mozilla.org;module=mozilla-central;rev=${SRCREV} \
           hg://hg.mozilla.org;module=mobile-browser;rev=${SRCREV} \
           file://fennec-uclibc.patch \
           file://libffi-arm-softfloat.patch \
           file://uclibc-isfinite.patch \
           file://cross-config.patch \
           file://jsautocfg.h \
           file://jsautocfg-dontoverwrite.patch \
"

S = "${WORKDIR}/mozilla-central"

inherit mozilla
require firefox.inc

DEPENDS += "yasm-native libnotify autoconf213-native cairo alsa-lib sqlite3 mesa gconf"

FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"

export LIBXUL_DIST="${S}/objdir/xulrunner/dist/"

CFLAGS_append = " -DMOZ_GFX_OPTIMIZE_MOBILE "

# We need to append -L<sysroot>/usr/lib to LDFLAGS otherwise
# it starts picking dependencies from /usr/lib if
# EXTRA_DSO_LDOPTS contains libraries like -lgconf-2
# then the make looks it up in VPATH and sysroot
# does not appear in VPATH and it wont find it if
# build host does not have a library in its /usr/lib
# 

LDFLAGS += "-L${STAGING_LIBDIR}"
#EXTRA_OEMAKE += "EXTRA_DSO_LDOPTS=-L${STAGING_LIBDIR}"

EXTRA_OECONF_append_arm = " --with-cpu-arch=${BASE_PACKAGE_ARCH} "

do_configure_prepend() {
	if [ -e ${WORKDIR}/mobile-browser ] ; then
		mv ${WORKDIR}/mobile-browser ${S}/mobile
	fi	
	sed -i -e 's:head\ -1:head\ -n1:g' client.mk
	oe_runmake -f client.mk CONFIGURE_ARGS="${EXTRA_OECONF}" configure
}

do_compile_prepend() {
	# A compile time assert is broken:
	# http://mxr.mozilla.org/mozilla-central/source/nsprpub/pr/include/prlog.h#259
	for i in $(find ${S} -name "autoconf.mk") ; do 
		sed -i -e s:fsigned-char:fno-signed-char:g $i
	done

	cp ${WORKDIR}/jsautocfg.h ${S}/js/src/
	cp ${WORKDIR}/jsautocfg.h ${S}/objdir/xulrunner/js/src/
	sed -i -e "s|CPU_ARCH =|CPU_ARCH = ${TARGET_ARCH}|" \
	       -e  s:'$(OS_TEST)':${TARGET_ARCH}:g \
	           ${S}/security/coreconf/Linux.mk

	sed -i -e /LIBXUL_DIST/d \ 
	       -e /LIBXUL_SDK/d \   
		  ${S}/objdir/mobile/config/autoconf.mk

	echo "LIBXUL_DIST	 = ${S}/objdir/xulrunner/dist" >> ${S}/objdir/mobile/config/autoconf.mk
	echo "LIBXUL_SDK	 = ${S}/objdir/xulrunner/dist" >> ${S}/objdir/mobile/config/autoconf.mk
}


do_install() {
	cd ${S}/objdir/mobile/
	oe_runmake package
	install -d ${D}/${libdir}
	tar xjf ${S}/objdir/mobile/dist/fennec-${MOZPV}*.tar.bz2 -C ${D}/${libdir}
	# remove x86 binary
	rm ${D}/${libdir}/fennec/xulrunner/nsinstall ||true
        install -d ${D}${datadir}/applications
        install -d ${D}${datadir}/pixmaps
        install -m 0644 ${WORKDIR}/mozilla-${PN}.desktop ${D}${datadir}/applications/
        install -m 0644 ${WORKDIR}/mozilla-${PN}.png ${D}${datadir}/pixmaps/
}

FILES_${PN} += "${libdir}/fennec"