-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
89 lines (58 loc) · 2.8 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
.___ ___. __ __ __ .___________. __
| \/ | | | | | | | | || |
| \ / | | | | | | | `---| |----`| |
| |\/| | | | | | | | | | | |
| | | | | `--' | | `----. | | | |
|__| |__| \______/ |_______| |__| |__|
* 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