xref: /OK3568_Linux_fs/yocto/meta-browser/meta-firefox/classes/mozilla.bbclass (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSECTION = "x11/utils"
2*4882a593SmuzhiyunDEPENDS += "gnu-config-native virtual/libintl libxt libxi zip-native gtk+"
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunSRC_URI += "file://mozconfig"
5*4882a593Smuzhiyun
6*4882a593Smuzhiyuninherit pkgconfig
7*4882a593Smuzhiyun
8*4882a593SmuzhiyunEXTRA_OECONF = "--target=${TARGET_SYS} --host=${BUILD_SYS} \
9*4882a593Smuzhiyun                --with-toolchain-prefix=${TARGET_SYS}- \
10*4882a593Smuzhiyun                --prefix=${prefix} \
11*4882a593Smuzhiyun                --libdir=${libdir}"
12*4882a593SmuzhiyunEXTRA_OECONF:append:arm = " --disable-elf-hack"
13*4882a593SmuzhiyunEXTRA_OECONF:append:x86 = " --disable-elf-hack"
14*4882a593SmuzhiyunEXTRA_OECONF:append:x86-64 = " --disable-elf-hack"
15*4882a593SmuzhiyunSELECTED_OPTIMIZATION = "-Os -fsigned-char -fno-strict-aliasing"
16*4882a593Smuzhiyun
17*4882a593Smuzhiyunexport CROSS_COMPILE = "1"
18*4882a593Smuzhiyunexport MOZCONFIG = "${B}/mozconfig"
19*4882a593Smuzhiyunexport MOZ_OBJDIR = "${S}/firefox-build-dir"
20*4882a593Smuzhiyun
21*4882a593Smuzhiyunexport HOST_CC = "${BUILD_CC}"
22*4882a593Smuzhiyunexport HOST_CXX = "${BUILD_CXX}"
23*4882a593Smuzhiyunexport HOST_CFLAGS = "${BUILD_CFLAGS}"
24*4882a593Smuzhiyunexport HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
25*4882a593Smuzhiyunexport HOST_LDFLAGS = "${BUILD_LDFLAGS}"
26*4882a593Smuzhiyunexport HOST_RANLIB = "${BUILD_RANLIB}"
27*4882a593Smuzhiyunexport HOST_AR = "${BUILD_AR}"
28*4882a593Smuzhiyun
29*4882a593Smuzhiyunmozilla_run_mach() {
30*4882a593Smuzhiyun	export SHELL="/bin/sh"
31*4882a593Smuzhiyun	export RUSTFLAGS="${RUSTFLAGS} -Cpanic=unwind"
32*4882a593Smuzhiyun	export RUST_HOST="${BUILD_SYS}"
33*4882a593Smuzhiyun	export RUST_TARGET="${TARGET_SYS}"
34*4882a593Smuzhiyun	export RUST_TARGET_PATH="${STAGING_LIBDIR_NATIVE}/rustlib"
35*4882a593Smuzhiyun	export BINDGEN_MFLOAT="${@bb.utils.contains('TUNE_CCARGS_MFLOAT', 'hard', '-mfloat-abi=hard', '', d)}"
36*4882a593Smuzhiyun	export BINDGEN_CFLAGS="--target=${TARGET_SYS} --sysroot=${RECIPE_SYSROOT} ${BINDGEN_MFLOAT}"
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun	export INSTALL_SDK=0
39*4882a593Smuzhiyun	export DESTDIR="${D}"
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun	./mach "$@"
42*4882a593Smuzhiyun}
43*4882a593Smuzhiyun
44*4882a593Smuzhiyunmozilla_do_configure() {
45*4882a593Smuzhiyun	install -D -m 0644 ${WORKDIR}/mozconfig ${MOZCONFIG}
46*4882a593Smuzhiyun	if [ ! -z "${EXTRA_OECONF}" ] ; then
47*4882a593Smuzhiyun		for f in ${EXTRA_OECONF}
48*4882a593Smuzhiyun		do
49*4882a593Smuzhiyun			echo ac_add_options $f >> ${MOZCONFIG}
50*4882a593Smuzhiyun		done
51*4882a593Smuzhiyun	fi
52*4882a593Smuzhiyun	if [ ! -z "${PACKAGECONFIG_CONFARGS}" ] ; then
53*4882a593Smuzhiyun		for f in ${PACKAGECONFIG_CONFARGS}
54*4882a593Smuzhiyun		do
55*4882a593Smuzhiyun			echo ac_add_options $f >> ${MOZCONFIG}
56*4882a593Smuzhiyun		done
57*4882a593Smuzhiyun	fi
58*4882a593Smuzhiyun	echo ac_add_options --enable-optimize=\"${SELECTED_OPTIMIZATION}\" \
59*4882a593Smuzhiyun		>> ${MOZCONFIG}
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun	mozilla_run_mach configure
62*4882a593Smuzhiyun}
63*4882a593Smuzhiyun
64*4882a593Smuzhiyunmozilla_do_compile() {
65*4882a593Smuzhiyun	mozilla_run_mach build
66*4882a593Smuzhiyun}
67*4882a593Smuzhiyun
68*4882a593Smuzhiyunmozilla_do_install() {
69*4882a593Smuzhiyun	mozilla_run_mach install
70*4882a593Smuzhiyun}
71*4882a593Smuzhiyun
72*4882a593SmuzhiyunEXPORT_FUNCTIONS do_configure do_compile do_install
73