Haggis archive library
Find a file
2024-04-17 03:05:41 -04:00
include Add test/runner.c; Fix test failure due to allocating wrong size for linkmap; Overall cleanup; 2024-04-17 03:05:41 -04:00
man Update function parameters in man page 2023-09-19 00:40:14 -04:00
test Add test/runner.c; Fix test failure due to allocating wrong size for linkmap; Overall cleanup; 2024-04-17 03:05:41 -04:00
.clang-format Apply formatting 2024-02-11 18:37:05 -05:00
.gitignore Move config.mk to config.mk.in and add config.mk to .gitignore 2024-03-21 23:29:20 -04:00
bin.c Continue refactor for consistency 2024-02-11 18:54:38 -05:00
bytes.c Fix NetBSD compilation 2023-08-22 03:27:03 -04:00
compile_flags.txt Added prototypes for many functions 2023-07-20 01:06:38 -04:00
config.mk.in Add test/runner.c; Fix test failure due to allocating wrong size for linkmap; Overall cleanup; 2024-04-17 03:05:41 -04:00
Format.md Add README and Format files 2023-08-10 10:22:09 -04:00
haggis.c Add test/runner.c; Fix test failure due to allocating wrong size for linkmap; Overall cleanup; 2024-04-17 03:05:41 -04:00
jobq.c Minor refactor and formatting changes 2024-02-11 01:09:21 -05:00
linkmap.c Add test/runner.c; Fix test failure due to allocating wrong size for linkmap; Overall cleanup; 2024-04-17 03:05:41 -04:00
Makefile Add test/runner.c; Fix test failure due to allocating wrong size for linkmap; Overall cleanup; 2024-04-17 03:05:41 -04:00
mq.c Minor refactor and formatting changes 2024-02-11 01:09:21 -05:00
README.md Use /bin/echo in tests rather than shell builtin 2024-02-11 23:20:28 -05:00

SeaHag

This is a C implementation of the haggis archive format. It does not follow any particular C standard (c99, c11 etc) but has been written with portability in mind, being developed simultaneously on FreeBSD and Linux. It is implemented as a library and by default both shared and static versions will be built.

Building

Do a quick check of config.mk to be ensure the variables set therein work for your system, and edit as needed.

SeaHag is built using a portable Makefile which works with both BSD and GNU Make. Due to the limited subset of features used it may be portable to other versions of Make, but that is untested as is the code on systems other than BSD or Linux. The default target builds both shared and static libraries. If you prefer to build one or the other, use the shared or static targets. The Makefile also follows the Destdir pattern for ease of packaging.

Tests

There is a simple test harness which can be invoked via make test. If you wish to port this software to an untested platform the tests will greatly assist in that process.

Note: if your OS uses dash as /bin/sh then the builtin echo command will not be up to the task of printing the escape sequences used by the test runner. In this case, be sure to set the ECHO variable to /bin/echo in the config.mk file.

Contributing

Contributions are always welcome and can be made via pull request or git send-email, sent to jeang3nie at hitchhiker-linux dot org. Coding style is four space indent, no tabs, with function signatures on one line unless that line would go past the long line marker in which case each parameter goes on a new line. The intention is that the software should remain portable with no further dependencies beyond libmd and libpthread, so contributions which introduce further dependencies will be rejected. Of particular interest are contributions in the form of documentation or porting to untested platforms.