Starting with Jazz by compiling everything from source

Before you start

Prerequisites

Make sure you are running a Linux box including (see the why column to decide if you need it):

What Why
Dev tools (bash, git, make, gcc) To run scripts, clone and build the server.
Libmicrohttpd (devel) To build the server.
Curl (devel) To build the server.
ZeroMQ (devel) To build the server.
ONNX-runtime (devel) To build the server.
ONNX and Protocol buffers To build the server. See server/src/onnx_proto inside Jazz.
Doxygen To make the server documentation.
scan-build (included with clang) To statically analyze the server’s source code.
cppcheck To statically analyze the server’s source code.
Valgrind To dynamically analyze the server.
Docker To build and run images.

Clone the Jazz github repository

 git clone https://github.com/kaalam/Jazz.git

Use the branch master unless you know what you are doing.

Configure

cd Jazz
./config.sh

You should get (after typing y at the prompt) a screen like the following:

(usage: ./config.sh [--debug] [--help])

Gathering information ...

You will now override:

  - server/src/include/jazz_platform.h (Version and platform const)
  - server/src/uplifted/uplifted_instances.h (Class types of uplifted classes)
  - server/src/uplifted/uplifted_instances.cpp (Class types of uplifted classes)
  - server/Makefile (for C++)
  - server/src/main.dox (main page for Doxygen)
  - docker/base/build_upload.sh (build & upload base Docker image)
  - docker/lss/build_upload.sh (build & upload LSS (Latest Stable Server) Docker image)
  - docker/tng/build_upload.sh (build & upload TNG (The Tangle) Docker image)

Do you want to continue? [y/N] y


Writing: server/src/include/jazz_platform.h ... Ok.
Writing: server/Makefile ... Ok.
Writing: server/src/main.dox ... Ok.
Writing: docker/base/build_upload.sh ... Ok.
Writing: docker/lss/build_upload.sh ... Ok.
Writing: docker/tng/build_upload.sh ... Ok.
Creating folder: server/src/uplifted ... Ok.
Writing: server/src/uplifted/uplifted_instances.h ... Ok.
Writing: server/src/uplifted/uplifted_instances.cpp ... Ok.

  Congratulations, you have successfully configured your project. Now,
you should be able to build and install the server.

  - cd server
  - make           // Shows help when invoked without arguments
  - make jazz      // Compiles the server in RELEASE mode
  - make install   // Requires sudo and installs as a Linux service
  - cd docker      // This has everything to build the docker images

Compile the server

cd server
make jazz
make install