docs/src/install.md

Sun, 22 Dec 2024 22:10:04 +0100

author
Mike Becker <universe@uap-core.de>
date
Sun, 22 Dec 2024 22:10:04 +0100
changeset 1047
40aad3f0bc9e
parent 807
c8d692131b1e
permissions
-rw-r--r--

don't trust that size_t always has word width

it should be the case on all platforms supported by UCX, but it's not strictly defined in POSIX that it must be the case

---
title: Build Instructions
---

The build processes uses configure and make.
First, download the source code from [Source Forge][1].

    wget https://sourceforge.net/projects/ucx/files/ucx-latest.tar.gz
    tar -xzf ucx-latest.tar.gz
    cd ucx-latest

Then execute ./configure with the options you like. You can get a list of
all available options with ./configure --help. The recommended configuration
for production builds is ./configure --release.

    ./configure --release
    make
    make check                 # only available when built with tests 
    sudo make install

When compiling UCX 3, you can tweak the buffer sizes for small-buffer-optimization.
You can do this, be pre-defining one or more of the following macros:

--------------------------------- --------------------------------------------------------------------- ----------
Macro                             Description                                                           Default
--------------------------------- --------------------------------------------------------------------- ----------
CX_ARRAY_SWAP_SBO_SIZE            The maximum item size in an array list that uses SBO.                 128

CX_LINKED_LIST_SWAP_SBO_SIZE      The maximum item size that uses SBO swap instead of relinking.        128

CX_LINKED_LIST_SORT_SBO_SIZE      The maximum list size that uses SBO during sort.                      1024

CX_PRINTF_SBO_SIZE                The maximum string length printf.h uses stack memory for.             512

CX_STRSTR_SBO_SIZE                The maximum length of the "needle" in cx_strstr that can use SBO.     512
--------------------------------- --------------------------------------------------------------------- ----------

You can also tweak some other buffer sizes with the same technique:

--------------------------------- --------------------------------------------------- ----------
Macro                             Description                                         Default
--------------------------------- --------------------------------------------------- ----------
CX_STRREPLACE_INDEX_BUFFER_SIZE   The number of matches one index buffer can store.   64

CX_STREAM_COPY_BUF_SIZE           The buffer size on the stack for a stream copy.     1024

CX_STREAM_BCOPY_BUF_SIZE          The buffer size on the heap for a stream copy.      8192
--------------------------------- --------------------------------------------------- ----------

---

### UCX 2.1

The build procedure for UCX 2.1 uses a configure script.
For Microsoft Windows, you will need an appropriate port of the linux
tools (like MinGW or Cygwin).
First, download the source code from [Source Forge][1].

    wget https://sourceforge.net/projects/ucx/files/ucx-2.1.0.tar.gz
    tar -xzf ucx-2.1.0.tar.gz
    cd ucx-2.1.0

Then issue the `configure` and `make` commands.

    ./configure && make

To verify your installment you can issue `make check`. If everything is fine,
you can install UCX with

    make install
    
Note, that you might need administrative privileges for a system wide
installation.

[1]: https://sourceforge.net/projects/ucx/files/

mercurial