libo is a library for managing OSC bundles and the odot-expression language, by [https://github.com/maccallum](John MacCallum).
libo can be built on Mac OS X, Windows 10 (MinGW + MSYS2), and many flavors
of Linux, including Raspberry Pi OS. The result is a static library, libo.a
,
that can be linked to by other programs, such as the odot objects for Max
and PD.
- libo requires recent versions of https://flex.sourceforge.net and https://www.gnu.org/software/bison/. These can be installed using your system's package manager or from source.
Note for OS X: the OS X Developer's Tools install an old version of Flex and Bison that will not work---newer versions can be installed using https://brew.sh or from source.
By default, only a static library is built. If you want a dynamic library,
set the variable DYNAMIC
to true
. Similarly, you can suppress the build
of the static library by setting STATIC
to false
. E.g.
$ DYNAMIC=true STATIC=false make
$ cd <path/to/libo>
$ make
Note: if building for Catalina or earlier versions of Mac OS X, set
NOM1
to true
:
$ NOM1=true make
The Windows 10 build is done using MinGW under MSYS2. Make sure you have
installed the 64-bit GCC toolchain (pacman -S mingw-w64-x86_64-toolchain
),
and Flex (pacman -S flex
) and Bison (pacman -S bison
).
$ cd <path/to/libo>
$ make win64
Note that 32-bit builds on Windows are not supported.
The Makefile is set up to use clang. GCC should also work, with the appropriate changes to the Makefile.
$ cd <path/to/libo>
$ make linux
- If a linker error is produced stating that libfl.a could not be found,
it was probably installed somewhere other than
/usr/local/lib
. You can either move or symlink it into/usr/local/lib
, or pass its location when you callmake
, for example:make FLEX_LIB_FOLDER=/usr/local/opt/flex/lib