rashok
rashok

Reputation: 13474

Best way to optimize the building/Compilation task of C library on various machines

We need to build a C library on various environment like (suse x86, suse itanium, solaris, HPUX, IBM AIX) with different compiler options(like compiler flags, 32bit or 64 bit, static or dyanamic, endianess etc). Currently we are building it on around 200 build machines. We are having an efficient makefile but still we need to login to various machines and doing FTP to take the code and then doing make and then again transferring libraries. Then we need to keep all 200 platform libs in one release machine.

Our intension is to reduce the effort of logging in to different machine manually for triggering build, what is the best way to do it?

One way to automate this by writing an expect script on one linux machine which will do login to all 200 machine, triggering build and taking back the libs and keep it on place.

Is there any other way is there which will takes less effort when compared to writing expect scripts for 200 builds? For example we need to build around 50 Vxworks platform, for that we are having tornado packages(cross compiler) in only one windows machine which will do all 50 platforms. For this we have written one click automation scripts(small script which doesnt require to login to 50 machine).

Similarly if cross compilers available for all *nix machine (suse, solaris, hpux, ibm aix, etc) compilers we can install all that in one machine(either linux or windows). Then we can write a script to automate all 200 builds in one machine without writing scripts for remote login or ftp.

Or is there any other easy way to handle builds in multiple *nix platforms?

Upvotes: 1

Views: 144

Answers (2)

vonbrand
vonbrand

Reputation: 11841

Take a look at the GNU AutoTools. Everybody knows how to use their output (the typical ./configure; make; make install dance), no strange requirements on the target, has extensive machinery to handle operating system vagaries. It's learning curve is quite steep, though.

Upvotes: 1

jpmuc
jpmuc

Reputation: 1154

Would Jenkins be a possibility for you? It's becoming increasingly popular beyond Java projects (C/C++/C#). From what I understand, Jenkins would be a fit.

Upvotes: 4

Related Questions