From ff2c07cd7ed3391da8ef26b3727cd2c36592224f Mon Sep 17 00:00:00 2001 From: Jean-Louis Leroy Date: Fri, 27 Dec 2024 12:21:33 -0500 Subject: [PATCH] README: improve build instructions Signed-off-by: Jean-Louis Leroy --- README.md | 48 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 1a0c38750..1377465d1 100644 --- a/README.md +++ b/README.md @@ -52,14 +52,17 @@ maintained in separate repositories. ## Menu -- [Documentation](#documentation) -- [Quick Start](#quick-start) -- [Building](#building) -- [Installation](#installation) -- [Contributions](#contributions) -- [License](#license) -- [Code of Conduct](#code-of-conduct) -- [Security Vulnerability Reporting](#security-vulnerability-reporting) +- [BlazingMQ - A Modern, High-Performance Message Queue](#blazingmq---a-modern-high-performance-message-queue) + - [Menu](#menu) + - [Documentation](#documentation) + - [Quick Start](#quick-start) + - [Building](#building) + - [With vcpkg](#with-vcpkg) + - [Installation](#installation) + - [Contributions](#contributions) + - [License](#license) + - [Code of Conduct](#code-of-conduct) + - [Security Vulnerability Reporting](#security-vulnerability-reporting) ## Documentation @@ -85,13 +88,38 @@ BlazingMQ and see them in action. [bin/build-ubuntu.sh](bin/build-ubuntu.sh) and [bin/build-darwin.sh](bin/build-darwin.sh) build BlazingMQ and its dependencies, respectively, on Ubuntu 22.04.2 LTS and Darwin 22.6.0. They can serve as a basis -to build BlazingMQ on other systems. - +to build BlazingMQ on other systems. + To build BlazingMQ with plugins, pass '--plugins' argument with desired plugin names to the build script, e.g. ```bash bin/build-ubuntu.sh --plugins plugin-1-name,plugin-2-name ``` +To build in a pristine Ubuntu 22.04 container: + +Create a container and run a shell: + +```shell +docker run --rm -it ubuntu:22.04 bash +``` + +At the command prompt: + +```shell +apt update +apt install -y git g++ python3 make openssl libssl-dev ninja-build \ +    flex bison google-mock libgmock-dev cmake-extras libgtest-dev \ +    zlib1g-dev libbenchmark-dev +git clone https://github.com/Kitware/CMake.git +(cd CMake ; ./bootstrap && make && make install) +git clone https://github.com/bloomberg/blazingmq.git +cd blazingmq/ +bin/build-ubuntu.sh +``` + +Note that building software as root is not generally recommended; this is +provided as the _minimal_ procedure to build in a _pristine_ container. + ### With vcpkg There is also support for building BlazingMQ with [vpckg](https://vcpkg.io/en/).