Compilation of the sources of an Epeios software

This page is about software having their own Github repository. This will be the case for all Epeios software, but this take some time to be completed, so what described on this page may not be accurate for all Epeios software..

More and more software in the Epeios project relies on third-party frameworks (Node.js, Chromium Embeded Framework…). However, these software do not interact directly with these frameworks, but through a wrapper (NJSq for Node.js, XDHCEFq for Chromium Embeded Framework…). Therefore, this software are typical dynamic libraries, which also uses only standard/system C/C++ libraries (no v8.h or node.h header inclusion for components intended for Node.js, or capi/cef_…. h for components intended to be used with Chromium Embedded Framework, for example). Hence, only a standard C++ development environment, as described below, is required to compile most Epeios software.

Regarding he wrappers, in addition to a C++ development environment, they will require elements specific to the environments for which they are intended. More details on these elements are available on the page dedicated to each wrapper.

GNU/Linux and other POSIX compliant OSes

For GNU/Linux (or other POSIX-compliant OSes, except macOS), to compile the software you have to launch the make command (the GNU make command and the proper development environment have to be installed) from the root directory of the package (where there should be a Makefile).

You can override the default compiler by defining the CXX environment variable or by passing a CXX argument to the make command. The two recognized compilers are GNU GCC (CXX=g++, which is the default one) and Clang (CXX=clang++).

Apart from the common IA-32 and AMD64 architectures, you can also compile for both AArch32 and AArch64 ARM architectures. This means that you can compile for and on devices like the Raspberry Pi (or Banana Pi, or ODROID…) natively in 32-bit and even in 64-bit on the new ones, if the installed GNU/Linux distribution is also 64-bit.


To obtain macOS binaries, you have compile the software by launching the make command (you have to install XCode in order to do this) in the root directory of the package (where there should be a Makefile).


In the releases section of the Github repository, you should find the Windows binaries. You also still need the sources of the software, because of all extra files needed to launch it (usually at least the .xlcl and .xcfg suffixed files ; see the documentation of the corresponding software component for more details).

If you want to compile it, you will find a .vcxproj suffixed file, which can be used to compile the software using Visual C++ from Microsoft.

Additionally, under Windows with Cygwin, given you have the proper development environment, you can compile it by launching make from the root directory of the package (where there should be a Makefile). This will give you a binary which uses the Cygwin POSIX API. If you want an application which directly uses the Windows API, you can use the MinGW compiler under Cygwin. You then have to launch make target=win.