Bluetooth driver is consisted two different components. One is in-kernel driver, the other is userspace agent.
Userspace agent (bluetoothd, hciattach, hciconfig, hcitool, sdptool, etc) is officially BlueZ. Because this is userspace application, all you have to do is simply build and install.
In-kernel driver (bluetooth.ko, hci_uart.ko, btusb.ko, etc) is often refereed as "BlueZ", but it is not officially part of BlueZ. It is distributed from open-source wireless driver project (compat-wireless).
Driver update is a bit tricky than userspace application, but compat-wireless project is well designed. You can build driver modules even if you don't have Kernel source code (you still need Kernel header files though).
There are many versions of compat-wireless releases (latest is 3.5.1). However you don't have to match compat-wireless version with your kernel version. compat-wireless build file is smart enough to judge which Kernel version you use and automatically generate API compliment driver (compat.ko).
In cross-build environment, you have to give several variables to makefile
make ARCH=arm CROSS_COMPILE=arm-unknown-linux-uclibcgnueabi- KLIB=../../kernel/linux-2.6.35.3 KLIB_BUILD=../../kernel/linux-2.6.35.3 bt
ARCH is your linux platform architecture.
CROSS_COMPILE is prefix for your cross compiler
KLIB and KLIB_BUILD is where your kernel header and Makefile is located.
Last "bt" is to specify Makefile to build Bluetooth drivers.