Unibilium is a very basic terminfo library. It can read and write ncurses-style terminfo files, and it can interpret terminfo format strings. It doesn't depend on curses or any other library. It also doesn't use global variables, so it should be thread-safe.
- a C compiler (technically this is all you need, but if you want to use the
included
Makefile, read on) - GNU make (the included
Makefilewas written for GNU make; if it works in anything else, it's by accident) - GNU libtool (for building shared libraries)
- a unix-ish shell (sh, that is)
- Perl (specifically,
pod2manfor creating the man pages andprovefor running the test suite) - gzip (for compressing the man pages)
There is no configure step. Compile unibilium.c, uninames.c, and
uniutil.c into a library.
The included Makefile does this for you:
make PREFIX=/usr/local
or
make all PREFIX=/usr/local
creates the library files, generates the man pages, and compiles the test suite.
There is a number of variables you can specify on the make command line to
override the default behavior:
TERMINFO_DIRS: A C string literal containing a colon-separated list of directories where unibilium should look for compiled terminfo files at runtime (e.g.make TERMINFO_DIRS='"/etc/terminfo:/usr/share/terminfo"'). This depends on how your ncurses library was configured. Defaults to""on Windows; everywhere else the local ncurses installation is queried (by tryingncursesw6-config,ncurses6-config,ncursesw5-config,ncurses5-configin turn) and if that fails, a hardcoded list of likely directory names is used.PREFIX: The target directory where files should be installed. This variable is only used to set the defaults forLIBDIR,INCDIR, andMANDIR, i.e. you don't need to setPREFIXif you set the other three directly. Defaults to/usr/local.LIBDIR,INCDIR,MANDIR: Where the resulting library files, header files, and man pages should be installed. They default to${PREFIX}/lib,${PREFIX}/include, and${PREFIX}/share/man, respectively.LIBTOOL: The name of the GNU libtool script on your platform. Defaults toglibtoolon Mac OS andlibtooleverywhere else.CC: The name of the C compiler that should be used (e.g. usemake CC=clangto build withclang). Defaults to whatevermakesetsCCto by default (probablycc).CFLAGS: C compiler (optimization) flags. Defaults to-O2.DEBUG: Specifymake DEBUG=1to build with debugging information. Defaults to unset.CFLAGS_DEBUG: C compiler debugging flags. Empty by default unlessDEBUG=1is specified, in which case-ggdb -DDEBUGis used.
Run
make test
to run the included test suite. If that fails, please report it at https://github.com/mauke/unibilium/issues.
Run
make install PREFIX=...
to install the library, header files, man pages, and pkg-config file. Take
care to specify the same PREFIX, LIBDIR, INCDIR, and MANDIR settings
you used for building.
make install supports one additional variable:
DESTDIR: Acts as an additional prefix for the final installation step. For example, if you domake PREFIX=/usr && make install PREFIX=/usr DESTDIR=/tmp, then the library will be configured for installation under/usr, but the actual files will be copied to/tmp/usr. Defaults to empty.
See the LICENSE file for licensing information.