# Installation

> UCall for C

Link `ucall::static` or `ucall::shared`, each a single library containing every enabled backend.
An installed tree or the SDK archive finds them through `find_package(ucall)`, and the shared library through `pkg-config --libs ucall` too.

`#include <ucall/types.h>`

## ucall_version

Reports the version of the linked library, which may differ from `UCALL_VERSION_*` in the header.

```c
void ucall_version(int *major, int *minor, int *patch);
```

- `major` (out): Output for the major version.
- `minor` (out): Output for the minor version.
- `patch` (out): Output for the patch version.

## ucall_version_name

The linked library's version, including a release-candidate suffix, in static storage.

```c
char const * ucall_version_name(void);
```

## UCALL_VERSION_MAJOR

Major version of the C interface; it changes when a release breaks it.

```c
#define UCALL_VERSION_MAJOR 1
```

## UCALL_VERSION_MINOR

Minor version of the C interface; it changes when a release adds to it.

```c
#define UCALL_VERSION_MINOR 0
```

## UCALL_VERSION_PATCH

Patch version of the C interface; it changes when a release only fixes it.

```c
#define UCALL_VERSION_PATCH 0
```

