[BuildTools] [Coin-tlc] Help with build system

Stefan Vigerske stefan at math.hu-berlin.de
Wed Jun 16 06:13:30 EDT 2010


Hi,

>>>> I agree.
>>>> But one may wanna change it such that from the big tarball one does the
>>>> whole configure+make+make test+make install for one project after the other.
>>> That would be easy for us, but it would not make things very different
>>> from downloading all tarballs separatelly :-) I am an optimist, I think
>>> that we will manage to do it in a smart way. In the worst case, we could
>>> make a shell script that would build and install all the stuff for the
>>> user.
>> I thought this "worst case" could be the final goal. :-)
>> Ted was also thinking of having some installer that pulls down all
>> required packages, builds and installs them.
>> Currently there is a "small" configure script in the project base
>> directory. It should be possible to replace it by somethink that does
>> configure+build+test+install for each subdirectory one by one.
> 
> If Automake could handle it, it would be somewhat better. Portable shell
> scripting is usually a pain and if 
>  - somebody doesn't have an Internet connection at that moment or
> website is down
>  - the up-to-date versions are broken with your script
>
> the all-inclusive tarball would be much more appreciated (because you
> have every COIN stuff you need and it is tested as whole).

I did not mean to get rid of the "all-inclusive tarball"'s. That is
something one may wanna keep. I was just thinking of the script that
takes all the single projects in the tarball and configures and builds them.
With the current setup, one has to first configure them all before being
able to build+test+install, which seems problematic. If one can do it
differently with autoconf (do config+build+test+install one-by-one),
that would be great.

> So should I try to write gnulib-powered checks for some libraries?

For my opinion, one way to go on is to extend the COIN_HAS_MODULE macro
in BuildTools/trunk/coin.m4
(https://projects.coin-or.org/BuildTools/browser/trunk/coin.m4#L3719)
so that it
1. can additionally check for (installed) dependencies via gnulib and
sets up the corresponding linker, compiler, and data flags.
2. checks if the flags actually work by trying to link against a
specific library

I think, it would be nice to separate these two steps, so the actual
link check can also be done for flags that come out of pkg-config or are
given by the user (via --with-xxx-lib).
One will need an additional argument for AC_COIN_HAS_MODULE to specify
the linking test, but there are only 4 yet ;-).
Also having an option to disable the linking check
(--disable-xxx-libcheck) as in AC_COIN_HAS_USER_LIBRARY would be necessary.

If you wanna start, maybe have a look at CoinUtils/trunk and it's check
for Glpk.

Thanks for help!,
Stefan

-- 
Stefan Vigerske
Humboldt University Berlin, Numerical Mathematics
http://www.math.hu-berlin.de/~stefan



More information about the BuildTools mailing list