Compiling with LDB toolchain

This document describes how to compile Doris using the LDB toolchain. This method is currently used as a supplement to the Docker compilation method to facilitate developers and users without a Docker environment to compile Doris source code.

You can still compile the latest code using the Docker development image: apache/incubator-doris:build-env-ldb-toolchain-latest

Thanks to Amos BirdCompiling with LDB toolchain - 图1 (opens new window) for this contribution.

Prepare the environment

This works for most Linux distributions (CentOS, Ubuntu, etc.).

  1. Download ldb_toolchain_gen.sh

The latest ldb_toolchain_gen.sh can be downloaded from hereCompiling with LDB toolchain - 图2 (opens new window). This script is used to generate the ldb toolchain.

For more information, you can visit https://github.com/amosbird/ldb_toolchain_genCompiling with LDB toolchain - 图3 (opens new window) 2. Execute the following command to generate the ldb toolchain

1. sh ldb_toolchain_gen.sh /path/to/ldb_toolchain/

where /path/to/ldb_toolchain/ is the directory where the toolchain is installed.

After successful execution, the following directory structure will be created under /path/to/ldb_toolchain/.

1. ├── bin 2. ├── include 3. ├── lib 4. ├── share 5. ├── test 6. └── usr 3. Download and install other compiled components

  1. Java8Compiling with LDB toolchain - 图4 (opens new window)
  2. Apache Maven 3.6.3Compiling with LDB toolchain - 图5 (opens new window)
  3. Node v12.13.0Compiling with LDB toolchain - 图6 (opens new window)

If your environment is somehow minimal, additional packages should be installed before compiling Doris. The following instructions describe how to setup a minimal CentOS 6 box to compile Doris. Other linux distros should be similar.

``` 1. # install required system packages 2. sudo yum install -y byacc patch automake libtool make which file ncurses-devel gettext-devel unzip bzip2 zip util-linux wget git python2

  1. install autoconf-2.69

  2. wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz && \
  3. tar zxf autoconf-2.69.tar.gz && \
  4. cd autoconf-2.69 && \
  5. ./configure && \
  6. make && \
  7. make install

  8. install bison-3.0.4

  9. wget http://ftp.gnu.org/gnu/bison/bison-3.0.4.tar.gz && \
  10. tar xzf bison-3.0.4.tar.gz && \
  11. cd bison-3.0.4 && \
  12. ./configure && \
  13. make && \
  14. make install ```
  15. Download Doris source code

1. git clone https://github.com/apache/incubator-doris.git

After downloading, go to the Doris source directory, create the custom_env.sh, file, and set the PATH environment variable, e.g.

1. export JAVA_HOME=/path/to/java/ 2. export PATH=$JAVA_HOME/bin:$PATH 3. export PATH=/path/to/maven/bin:$PATH 4. export PATH=/path/to/node/bin:$PATH 5. export PATH=/path/to/ldb_toolchain/bin:$PATH

Compiling Doris

Go to the Doris source code directory and execute.

1. sh build.sh

This script will compile the third-party libraries first and then the Doris components (FE, BE) later. The compiled output is in the output/ directory.