You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by Igor Sapego <is...@gridgain.com> on 2016/03/28 17:11:28 UTC

Improving Linux build process for C++ components.

Hello, Igniters,

Lately I've been working on the C++ components of Ignite and
I believe we need to rework the way we are building and shipping C++
components in Linux with Autotools.

I'll explain. Currently build process of the Apache Ignite C++ client
library looks like follows:
cd $IGNITE_HOME/platforms/cpp/utils
libtoolize
aclocal
autoheader
automake --add-missing
autoreconf
./configure
make
sudo make install (sic!)

cd $IGNITE_HOME/platforms/cpp/binary
... (repeate above steps for every other library)

Basically user needs to build all components (including internal libraries)
manually in the right order making a lot of steps. More than that, to build
most libs they need to install Ignite components for their system. And
additionally they need to have autotools installed for they system to build
Ignite.

What I propose is to change build process to something as simple as:
cd $IGNITE_HOME/platforms/cpp
./configure [--enable-component1 [--disable-component-2] ...]
make

This will not require root, autotools, knowledge of the sequence and
dependencies between internal components and it's just much simpler.

Thoughts?

Best Regards,
Igor

Re: Improving Linux build process for C++ components.

Posted by Dmitriy Setrakyan <ds...@apache.org>.
Thanks Igor!

I think I like it, assuming that it will be properly documented. However, I
am not an expert on C++. Would be nice if other folks in the community
could comment as well.

D.

On Mon, Mar 28, 2016 at 8:11 AM, Igor Sapego <is...@gridgain.com> wrote:

> Hello, Igniters,
>
> Lately I've been working on the C++ components of Ignite and
> I believe we need to rework the way we are building and shipping C++
> components in Linux with Autotools.
>
> I'll explain. Currently build process of the Apache Ignite C++ client
> library looks like follows:
> cd $IGNITE_HOME/platforms/cpp/utils
> libtoolize
> aclocal
> autoheader
> automake --add-missing
> autoreconf
> ./configure
> make
> sudo make install (sic!)
>
> cd $IGNITE_HOME/platforms/cpp/binary
> ... (repeate above steps for every other library)
>
> Basically user needs to build all components (including internal libraries)
> manually in the right order making a lot of steps. More than that, to build
> most libs they need to install Ignite components for their system. And
> additionally they need to have autotools installed for they system to build
> Ignite.
>
> What I propose is to change build process to something as simple as:
> cd $IGNITE_HOME/platforms/cpp
> ./configure [--enable-component1 [--disable-component-2] ...]
> make
>
> This will not require root, autotools, knowledge of the sequence and
> dependencies between internal components and it's just much simpler.
>
> Thoughts?
>
> Best Regards,
> Igor
>