Hare Installation for Distributions

Hare depends on a POSIX-compatible C11 environment, and our compiler backend, qbe. To provide the minimum level of support for Hare, you need qbe, harec, and hare packages.

Your distro’s packages are our preferred means for users to install Hare and programs written in Hare. Your support is important to us. Please visit our IRC channel if you have any questions or concerns.

Hare installation layout

Assuming a typical Unix filesystem layout (you can configure this in config.mk if you need something different), Hare expects to be installed in the following places:

The source code for Hare dependencies must be present to build Hare packages or read their documentation.

Timekeeping requirements

Hare’s timekeeping support in the standard library relies on a local installation of the IANA time zone database. Important: Hare uses the local leap second list as well, at /usr/share/zoneinfo/leap-seconds.list by default, which is often not installed by many distributions. Please update your tzdata package accordingly when packaging Hare.

Customizing Hare builds

The build driver chooses its linker and such via the LD, AS, and similar environment variables, and also supports setting flags for each via LDLINKFLAGS et al.

Hare programs are statically linked. We know you’re not a fan of this. We’re sorry.

Linking to native dependencies

This is supported via the -l flag, which is passed to the linker. This is not currently done very well. We have plans to replace it with something better, more customizable, and based on pkg-config, but it has not yet been done.

Was your question not answered?

Ask us on IRC and we’ll add a section here.