Skip to content

Instructions for building omniscidb from source #2

@pearu

Description

@pearu
  1. Setup and activate conda environment:
wget https://raw.githubusercontent.com/Quansight/pearu-sandbox/master/conda-envs/omniscidb-cpu-dev.yaml
conda env create --file=omniscidb-cpu-dev.yaml -n omniscidb-cpu-dev
conda activate omniscidb-cpu-dev

When enabling CUDA build, execute also:

conda install -c conda-forge cudatoolkit-dev  # this takes a couple of minutes, be patient
  1. Checkout or download omnscidb source, for instance:
git clone https://github.com/omnisci/omniscidb
git clone [email protected]:omnisci/omniscidb-internal.git
  1. Prepare build environment:
export PREFIX=$CONDA_PREFIX
export LDFLAGS="-L$PREFIX/lib -Wl,-rpath,$PREFIX/lib"
export CXXFLAGS="`echo $CXXFLAGS | sed 's/-fPIC//'`"
export CC=clang
export CXX=clang++
export CGO_ENABLED=1
export CGO_LDFLAGS=
export CGO_CFLAGS=
export CGO_CPPFLAGS=
export CXXFLAGS="$CXXFLAGS -DBOOST_ERROR_CODE_HEADER_ONLY"

export ZLIB_ROOT=$PREFIX
export LibArchive_ROOT=$PREFIX
export Curses_ROOT=$PREFIX
export Glog_ROOT=$PREFIX
export Snappy_ROOT=$PREFIX
export Boost_ROOT=$PREFIX
export PNG_ROOT=$PREFIX
export GDAL_ROOT=$PREFIX
export BLOSC_ROOT=$PREFIX

Note that conda install ... will change the current environment, so, one must also reset the build environment whenever conda program has been used.

On some systems, one may also need to define

When enabling CUDA build, set also:

export LDFLAGS="$LDFLAGS -L$PREFIX/lib/stubs -Wl,-rpath-link,$PREFIX/lib/stubs"
export EXTRA_CMAKE_OPTIONS="$EXTRA_CMAKE_OPTIONS -DCMAKE_LIBRARY_PATH=$PREFIX/lib/stubs"
export LD_LIBRARY_PATH=/path/to/libcuda.so.1/directory/
  1. When on MacOSX, one may want to apply a fix from issue Adjust OpenSSL path when building omnscidb on MacOSX #11 .
  2. Build omniscdb:
cd omniscidb
mkdir -p build && cd build
cmake -Wno-dev \
    -DCMAKE_INSTALL_PREFIX=$PREFIX \
   -DCMAKE_PREFIX_PATH=$PREFIX \
    -DCMAKE_BUILD_TYPE=debug \
    -DMAPD_DOCS_DOWNLOAD=off \
    -DENABLE_AWS_S3=off \
    -DENABLE_CUDA=off \
    -DENABLE_FOLLY=off \
    -DENABLE_JAVA_REMOTE_DEBUG=off \
    -DENABLE_PROFILER=off \
    -DENABLE_TESTS=on  \
    -DPREFER_STATIC_LIBS=off \
    -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
    -DMAPD_EDITION=EE \
    ..
make -j `nproc`

When enabling CUDA build, use:

    -DENABLE_CUDA=on
  1. Run sanity tests:
mkdir -p tmp && bin/initdb tmp
make sanity_tests

In the case of failures, check out the following issues: #12 .

  1. Run omnscidb server
mkdir -p data && bin/initdb data
bin/omnisci_server --enable-runtime-udf

Metadata

Metadata

Assignees

Labels

HOWTOInstructions for how-to a thing.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions