universe@264: --- universe@264: title: Build Instructions universe@264: --- universe@259: universe@390: The build processes uses CMake starting with UCX 3.0. universe@259: First, download the source code from [Source Forge][1]. universe@259: universe@259: wget https://sourceforge.net/projects/ucx/files/ucx-latest.tar.gz universe@259: tar -xzf ucx-latest.tar.gz universe@259: cd ucx-latest universe@390: universe@721: Then create a build directory and use cmake to create the build files, universe@721: execute the build, and - optionally - install the files. universe@390: universe@390: mkdir build universe@390: cd build universe@390: cmake .. universe@721: cmake --build . universe@721: sudo cmake --install . universe@390: universe@737: When compiling UCX 3, you can tweak the buffer sizes for small-buffer-optimization. universe@737: You can do this, be pre-defining one or more of the following macros: universe@737: universe@737: --------------------------------- --------------------------------------------------------------------- ---------- universe@737: Macro Description Default universe@737: --------------------------------- --------------------------------------------------------------------- ---------- universe@737: CX_ARRAY_SWAP_SBO_SIZE The maximum item size in an array list that uses SBO. 128 universe@737: universe@737: CX_LINKED_LIST_SORT_SBO_SIZE The maximum list size that uses SBO during sort. 1024 universe@737: universe@737: CX_LINKED_LIST_SWAP_SBO_SIZE The maximum item size that uses SBO swap instead of relinking. 128 universe@737: universe@737: CX_PRINTF_SBO_SIZE The maximum string length printf.h uses stack memory for. 512 universe@737: universe@737: CX_STRSTR_SBO_SIZE The maximum length of the "needle" in strstr that can use SBO. 512 universe@737: --------------------------------- --------------------------------------------------------------------- ---------- universe@737: universe@737: You can also tweak some other buffer sizes with the same technique: universe@737: universe@737: --------------------------------- --------------------------------------------------- ---------- universe@737: Macro Description Default universe@737: --------------------------------- --------------------------------------------------- ---------- universe@737: CX_STRREPLACE_INDEX_BUFFER_SIZE The number of matches one index buffer can store. 64 universe@737: universe@737: CX_STREAM_COPY_BUF_SIZE The buffer size on the stack for a stream copy. 1024 universe@737: universe@737: CX_STREAM_BCOPY_BUF_SIZE The buffer size on the heap for a stream copy. 8192 universe@737: --------------------------------- --------------------------------------------------- ---------- universe@737: universe@390: --- universe@390: universe@390: ### UCX 2.1 universe@390: universe@390: The build procedure for UCX 2.1 uses a configure script. universe@390: For Microsoft Windows, you will need an appropriate port of the linux universe@390: tools (like MinGW or Cygwin). universe@390: First, download the source code from [Source Forge][1]. universe@390: universe@390: wget https://sourceforge.net/projects/ucx/files/ucx-2.1.0.tar.gz universe@390: tar -xzf ucx-2.1.0.tar.gz universe@390: cd ucx-2.1.0 universe@259: universe@259: Then issue the `configure` and `make` commands. universe@259: universe@259: ./configure && make universe@259: universe@259: To verify your installment you can issue `make check`. If everything is fine, universe@259: you can install UCX with universe@259: universe@259: make install universe@259: universe@259: Note, that you might need administrative privileges for a system wide universe@259: installation. universe@259: universe@259: [1]: https://sourceforge.net/projects/ucx/files/ universe@259: