# libcasio - Library and utilities for using CASIO's protocols and file formats This is the main repository for the P7 project, a project to free software surrounding CASIO calculators. It aims at being able to manage CASIO's proprietary protocols and file formats. It is basically a merge of three subprojects of the P7 project: the libp7, which managed protocols, the libg1m, which managed file formats, and the p7utils, which had the utilities now put in this repository. ## Prerequisites Side note : the library might work with older versions of these dependencies, I took these as a reference because these are the ones I work with. Because of libusb, the library requires C99. Without it, it should compile using C89. ## Build-only dependencies - `make `_ (>= 4.0). - `gcc `_ (>= 4.9). - `binutils `_ (>= 2.25). - `asciidoc `_ (>= 8.6.9). - `gzip `_ (1.6). - `pkg-config `_. ## Runtime dependencies - `libusb `_ (>= 1.0). - `zlib `_ (>= 1.2.8). - `SDL `_ (>= 2.0). ## 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. If you're installing on or packaging for a GNU/Linux distribution, you might want to install the ``udev`` rule to let the access to the direct calculator connexions to normal users. As calculators can be connected as serial devices, which are attributed to the ``uucp`` group (on Manjaro GNU/Linux), I chose to attribute the ``uucp`` group to calculators plugged directly as USB. If you agree with that, just add the ``--udev`` option to the configuration command line; otherwise, make your own, or make nothing, I don't really care. 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). `./configure --help` for more information. ## Building and installing Once configuring is done (necessary step), just ``make``. To install, use ``make install``. TODO : make uninstall ? 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 (``libcasio-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.