aboutsummaryrefslogtreecommitdiff

libtio - General I/O library

This library is my general, cross-platform, I/O library. It reimplements basic I/O with types such as streams, in, I believe, a better fashion than the standard library.

Prerequisites

Build-only dependencies

Runtime dependencies

Configuring

First of all, the configure script has a help message where all of the options are listed. The defaults should be appropriate for a native build, just ./configure if that's what you want to do, but you should read at least the next paragraph.

Building for the MS-Windows platform is supported, just use a -mingw32 BFD target for GCC and Binutils.

Also, building a static library, for both PC and embedded systems, is supported : just use the --static option. If you want to build a static library so that a cross-compiler that uses Microsoft Windows static library formats, add the --windows option (notice that for a -mingw32 target and a dynamic library generation, this option is automatically added).

Building and installing

Once configuring is done (necessary step), just make. To install, use make install.

To build and install only the lib, use all-lib then install-lib. To build and install only the docs, use all-doc and install-doc.

If you ought to package this library, use the DESTDIR Makefile variable, e.g. make install DESTDIR=./package-root. Do not use the --root configure options for this, as configure tools (libtio-config and the pkg-config configuration file) will add what's in the --root option value but not in the DESTDIR option.

Other useful targets:

  • clean: remove built files;
  • re: regenerate built files (clean and build) -- useful when configuration is changed.

To do in libtio

  • Use contexts within callbacks to get cookie, parent etc.
  • Implement fallocate()/fadvise() equivalents.
  • Integrate filesystem utilities.
  • Try to integrate some async utilities?