Skip to content

Nakrez/multi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

            .___  ___.  __    __   __      .___________. __
            |   \/   | |  |  |  | |  |     |           ||  |
            |  \  /  | |  |  |  | |  |     `---|  |----`|  |
            |  |\/|  | |  |  |  | |  |         |  |     |  |
            |  |  |  | |  `--'  | |  `----.    |  |     |  |
            |__|  |__|  \______/  |_______|    |__|     |__|


* README

Multi is a distributed compilation software. It will try to compile your C
project on different computer across the network (only gcc, no cross
compilation supported for now). Every computer has to run a multi deamon to
accept the connection from the multi client.

Multi is not a compiler it only preprocess the source code using gcc and
send it the client that will compile it into an object file and send it back
to the client. For all compilation purpose multi uses an external compiler
(gcc for now, more supported soon). Multi is also compatible with automake and
cmake.

* BUILD

Build multi is very simple. No external library is needed.
Multi uses CMAKE build system so you will need to have it installed on your
computer.

To build multi you have to do this :

cmake -DCMAKE_BUILD_TYPE=Release .

make

* USE

The build step would have generated you 2 binaries : multi and multi-server

multi is the client.
multi-server is the server.

To launch a server just do the following command on a shell

./multi-server --start

To launch a client you just have to invoke multi as if you were invoking gcc
binary. The client will take care of the rest.

If something goes wrong between the client and the server, or no server can be
reached, multi will try to compile locally your file;

Before using multi you must define all servers multi would try to use. To
define it you have to define the variable MULTI_HOST that contains all IP of
your servers separated by spaces. For exemple to set 3 servers at the adresses
192.168.1.1 192.168.2.2 192.168.3.3 you have to do the
following command (in bash):

export MULTI_HOST="192.168.1.1 192.168.2.2 192.168.3.3"

If you want to change the default port (8216) of the server or the client
just export the variable MULTI_PORT before launching the server or the client.
On bash you just have to do:

export MULTI_PORT=4321

For example to use port 4321

If you want to specified a specific compiler you can do it by invoking multi
with --compiler option or by setting MULTI_COMPILER environnement variable.

So for example to set g++ as compiler you can do

./multi --compiler g++ -c test.cc -o test.o

or

export MULTI_COMPILER='g++'
./multi -c test.cc -o test.o

* CONTACT

To report any bug you found or to contribute to the project
email me at b.covolato@gmail.com

* GIT

If you want to have the latest release of MULTI you can clone the official git
repository by doing the command on your terminal:

git clone git@github.com:Nakrez/multi.git

About

Multi is a distributed compilation software.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages