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
    3. # install autoconf-2.69
    4. wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz && \
    5. tar zxf autoconf-2.69.tar.gz && \
    6. cd autoconf-2.69 && \
    7. ./configure && \
    8. make && \
    9. make install
    10. # install bison-3.0.4
    11. wget http://ftp.gnu.org/gnu/bison/bison-3.0.4.tar.gz && \
    12. tar xzf bison-3.0.4.tar.gz && \
    13. cd bison-3.0.4 && \
    14. ./configure && \
    15. make && \
    16. make install
  4. 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.