I have eventually figured out how Android JellyBean can be built on Ubuntu 12.04.
It all boils down to 2.5 to 3 issues:
1. To compile correctly external/mtd-utils, I had to copy locally liblzo2, libuuid for i386, and add the path to LOCAL_LDFLAGS in external/mtd-utils/mkfs.ubifs/Android.mk
2. This part is tricky ...
SabreSD board is not equipped with Wi-Fi, however if one merely removes "BOARD_WLAN_VENDOR := ATHEROS" line in device/fsl/sabresd_6dq/BoardConfig.mk, the Android build system will attempt to compile wpa_supplicant_6, which is so outdated, that it simply cannot be compiled these days.
Put
"WPA_SUPPLICANT_VERSION := VER_0_8_X"
"BOARD_WPA_SUPPLICANT_DRIVER := WEXT"
"BOARD_HOSTAPD_DRIVER := WEXT"
to build wpa_supplicant with no specific hardware support.
2.5 When building the whole system use "make" (as opposed to "make -j<num-cpus>"), because there are some unclear dependencies that will be broken by parallel compilation, but this is something I can currently live with.
...
Kinda so ...