====== Installation ====== The core of all //Epeios// software components is [[:s:x:native_code:|native]], but may be available for some popular frameworks based on a runtime system. Actually, the supported frameworks are : * the //[[:s:x:JRE]]// (//Java//), * //[[:s:x:Node.js]]// (//Javascript// on server-side), * and the //[[:s:x:Zend engine:]]// (//PHP//). The source code of each //Epeios// software component has its own //[[:Github:]]// repository. This repository also contains some files which are needed by the program (in particular, but not only, the ''.xlcl'' and ''.xcfg'' files), so you have to retrieve the content of the repository, even if you don't need the source code. Except for the wrappers, each program's binary may be build: * Under //Windows//: * by using the provided ''.vcxproj'' file with //Visual C++// under //Windows//, * see also below for //[[:s:x:Cygwin:]]//, * under //POSIX// systems (which comprises //GNU//%%/%%//Linux// and //macOS//, and the //Cygwin// environment under //Windows//), by launching the ''make'' command in the root path of the repository, given that you have a //C++// compiler (//g++//, //Clang//...) be installed. With //[[:s:x:Cygwin:]]// under //Windows//, by default you will obtain a binary file which uses the //Cygwin// //Posix// API. You can alternatively launch ''make target=win'' if you have installed the //MinGW// compiler, so you will obtain a binary which uses the //Windows// API (like those produced by //Visual C++//). //Windows// binaries may also be available in the //releases// section of the //GitGub// repository of the component. For //Node.js// addon, the installation is made by calling ''npm install ''. Except under //Windows//, you need a //C++// development environment to be installed. For //Java// components, you also need to compile the ''.java'' files (''javac *.java'') the resulting ''.class'' files may be found with the binaries in the //GitHub// repository ''releases'' section). Except for the //CLI// variant of a program, building the component as indicated above will produce a dynamic library. To use this library, you need: * for the //Java// variant, the //[[:tools:JREq:]]// wrapper, * for the //Node.js// variant, the //[[:tools:NJSq:]]// wrapper, * for the //PHP// variant, the //[[:tools:ZNDq:]]// wrapper.