Home | History | Annotate | only in /system/bt
Up to higher level directory
NameDateSize
.clang-format06-Dec-2017812
.gitignore06-Dec-201727
.gn06-Dec-2017888
Android.bp06-Dec-2017257
Android.mk06-Dec-201737
audio_a2dp_hw/06-Dec-2017
bta/06-Dec-2017
btcore/06-Dec-2017
btif/06-Dec-2017
build/06-Dec-2017
BUILD.gn06-Dec-20171.4K
CleanSpec.mk06-Dec-20172.4K
conf/06-Dec-2017
device/06-Dec-2017
doc/06-Dec-2017
embdrv/06-Dec-2017
EventLogTags.logtags06-Dec-20171.3K
hci/06-Dec-2017
include/06-Dec-2017
main/06-Dec-2017
MODULE_LICENSE_APACHE206-Dec-20170
NOTICE06-Dec-201711.1K
osi/06-Dec-2017
OWNERS06-Dec-2017239
PREUPLOAD.cfg06-Dec-201777
README.md06-Dec-20173K
service/06-Dec-2017
stack/06-Dec-2017
test/06-Dec-2017
tools/06-Dec-2017
types/06-Dec-2017
udrv/06-Dec-2017
utils/06-Dec-2017
vendor_libs/06-Dec-2017
vnd/06-Dec-2017

README.md

      1 # Fluoride Bluetooth stack
      2 
      3 ## Building and running on AOSP
      4 Just build AOSP - Fluoride is there by default.
      5 
      6 ## Building and running on Linux
      7 
      8 Instructions for Ubuntu, tested on 14.04 with Clang 3.5.0 and 16.10 with Clang
      9  3.8.0
     10 
     11 ### Download source
     12 
     13 ```sh
     14 mkdir ~/fluoride
     15 cd ~/fluoride
     16 git clone https://android.googlesource.com/platform/system/bt
     17 ```
     18 
     19 Install dependencies (require sudo access):
     20 
     21 ```sh
     22 cd ~/fluoride/bt
     23 build/install_deps.sh
     24 ```
     25 
     26 Then fetch third party dependencies:
     27 
     28 ```sh
     29 cd ~/fluoride/bt
     30 mkdir third_party
     31 cd third_party
     32 git clone https://github.com/google/googletest.git
     33 git clone https://android.googlesource.com/platform/external/aac
     34 git clone https://android.googlesource.com/platform/external/libchrome
     35 git clone https://android.googlesource.com/platform/external/libldac
     36 git clone https://android.googlesource.com/platform/external/modp_b64
     37 git clone https://android.googlesource.com/platform/external/tinyxml2
     38 git clone https://android.googlesource.com/platform/hardware/libhardware
     39 ```
     40 
     41 And third party dependencies of third party dependencies:
     42 
     43 ```sh
     44 cd fluoride/bt/third_party/libchrome/base/third_party
     45 mkdir valgrind
     46 cd valgrind
     47 curl https://chromium.googlesource.com/chromium/src/base/+/master/third_party/valgrind/valgrind.h?format=TEXT | base64 -d > valgrind.h
     48 curl https://chromium.googlesource.com/chromium/src/base/+/master/third_party/valgrind/memcheck.h?format=TEXT | base64 -d > memcheck.h
     49 ```
     50 
     51 NOTE: If system/bt is checked out under AOSP, then create symbolic links instead
     52 of downloading sources
     53 
     54 ```
     55 cd system/bt
     56 mkdir third_party
     57 cd third_party
     58 ln -s ../../../external/aac aac
     59 ln -s ../../../external/libchrome libchrome
     60 ln -s ../../../external/libldac libldac
     61 ln -s ../../../external/modp_b64 modp_b64
     62 ln -s ../../../external/tinyxml2 tinyxml2
     63 ln -s ../../../hardware/libhardware libhardware
     64 ln -s ../../../external/googletest googletest
     65 ```
     66 
     67 ### Generate your build files
     68 
     69 ```sh
     70 cd ~/fluoride/bt
     71 gn gen out/Default
     72 ```
     73 
     74 ### Build
     75 
     76 ```sh
     77 cd ~/fluoride/bt
     78 ninja -C out/Default all
     79 ```
     80 
     81 This will build all targets (the shared library, executables, tests, etc) and
     82  put them in out/Default. To build an individual target, replace "all" with the
     83  target of your choice, e.g. ```ninja -C out/Default net_test_osi```.
     84 
     85 ### Run
     86 
     87 ```sh
     88 cd ~/fluoride/bt/out/Default
     89 LD_LIBRARY_PATH=./ ./bluetoothtbd -create-ipc-socket=fluoride
     90 ```
     91 
     92 ### Eclipse IDE Support
     93 
     94 1. Follows the Chromium project
     95  [Eclipse Setup Instructions](https://chromium.googlesource.com/chromium/src/+/master/docs/linux_eclipse_dev.md)
     96  until "Optional: Building inside Eclipse" section (don't do that section, we
     97  will set it up differently)
     98 
     99 2. Generate Eclipse settings:
    100 
    101   ```sh
    102   cd system/bt
    103   gn gen --ide=eclipse out/Default
    104   ```
    105 
    106 3. In Eclipse, do File->Import->C/C++->C/C++ Project Settings, choose the XML
    107  location under system/bt/out/Default
    108 
    109 4. Right click on the project. Go to Preferences->C/C++ Build->Builder Settings.
    110  Uncheck "Use default build command", but instead using "ninja -C out/Default"
    111 
    112 5. Goto Behaviour tab, change clean command to "-t clean"
    113 
    114