Build libudo

Dependencies

For better dependency version control underview builds all packages required from source.

Underview Build Depends

See ubuild-depends (dependencies) to get going. For this repo you only need the system dependencies.

$ git clone https://github.com/under-view/ubuild-depends.git
$ source setenvars.sh

Yocto Project SDK

Download SDK from ubuild-depends (releases)

$ ./x86_64-0.1.0-underview.sh
sdk # Folder to place libs
$ source environment-setup-zen1-underview-linux

Meson

Options

All options/features are disabled by default.

 1c_std=c11
 2buildtype=release
 3default_library=shared
 4tests=true           # Default [false]
 5docs=true            # Default [false]
 6file-offset-bits=32  # Default [64]
 7file-ops=enabled     # Default [disabled]
 8jpool=enabled        # Default [disabled]
 9shm=enabled          # Default [disabled]
10sock-tcp=enabled     # Default [disabled]
11sock-udp=enabled     # Default [disabled]
12csock-raw=enabled    # Default [disabled]
13usock-tcp=enabled    # Default [disabled]
14usock-udp=enabled    # Default [disabled]
15vsock-tcp=enabled    # Default [disabled]
16vsock-udp=enabled    # Default [disabled]

Build/Install (Normal)

$ meson setup [options] build
$ ninja install -C build
$ meson setup \
        -Dtests="true" \
        -Ddocs="false" \
        -Dfile-offset-bits=64 \
        -Dfile-ops="enabled" \
        -Djpool="enabled" \
        -Dshm="enabled" \
        -Dsock-tcp="enabled" \
        -Dsock-udp="enabled" \
        -Dcsock-raw="enabled" \
        -Dusock-tcp="enabled" \
        -Dusock-udp="enabled" \
        -Dvsock-tcp="enabled" \
        -Dvsock-udp="enabled" \
        build
$ ninja install -C build

Build/Install (SDK)

# Yocto Project SDK Builds
$ meson setup \
        --prefix="${SDKTARGETSYSROOT}/usr" \
        --libdir="${SDKTARGETSYSROOT}/usr/${OECORE_BASELIB}" \
        [options] \
        build
$ ninja install -C build
$ meson setup \
        --prefix="${SDKTARGETSYSROOT}/usr" \
        --libdir="${SDKTARGETSYSROOT}/usr/${OECORE_BASELIB}" \
        -Dtests="true" \
        -Ddocs="false" \
        -Dfile-offset-bits=64 \
        -Dfile-ops="enabled" \
        -Djpool="enabled" \
        -Dshm="enabled" \
        -Dsock-tcp="enabled" \
        -Dsock-udp="enabled" \
        -Dcsock-raw="enabled" \
        -Dusock-tcp="enabled" \
        -Dusock-udp="enabled" \
        -Dvsock-tcp="enabled" \
        -Dvsock-udp="enabled" \
        build
$ ninja install -C build

Include

1# Clone libudo or create a udo.wrap under <source_root>/subprojects
2project('name', 'c')
3
4udo_dep = dependency('udo', required : true)
5
6executable('exe', 'src/main.c', dependencies : udo_dep)
1#include <udo/udo.h>

Documentation (Sphinx)

libudo uses sphinx framework for documentation. Primarily utilizing The C Domain.

https://www.sphinx-doc.org/en/master/man/sphinx-build.html

Dependencies

  • python3-pip

Build Docs

$ git clone https://github.com/under-view/libudo.git
$ cd libudo
$ sudo pip3 install -r docs/requirements.txt

# If no build directory exists
$ meson setup -Ddocs=true build

# If build directory exists
$ meson configure -Ddocs=true build

$ ninja docs -C build