[Cook] Three items to be discussed
Jerry Pendergraft
jerry at endocardial.com
Sat Nov 30 03:38:54 EST 2002
On Fri, 29 Nov 2002, Gottfried Hegmanns wrote:
> I'm currently evaluating cook to find something better than make to build
> our product (about 4000 compiles/links). cook seems to be a very good
> candidate because it's fast and is what I need to do a multi platform
> build. But I'm still facing three items I have to solve first:
>
> 1) The way to search for includes ( see our discussion 'How does c_incl
> search for included files?'),
> 2) The !#/bin/bash line in the file handed over to the remote machine for
> execution (see my update 'remote execution linux-AIX') also under the
> aspect that a remote execution should even be possible on a windows or an
> OS/2 machine,
> 3) The 'backward travel in time problem' where I build in a sandbox against
> a repository with a changed source file in my sandbox, then remove the
> changed source file (the source file in the repository becomes visible
> again) and build again. My target will not be built because the source file
> is older than my target.
>
> to 1) I could solve it myself writing an own dependency scanner if there is
> no other way to go.
We generate "cascade" files using c_incl. Works very well.
> to 2) could you make this line somehow configurable so I can put my own
> text in there (or even leave it out)? Considering a build tree having
> targets to be built on various platforms, it would be necessary to specify
> such a line by build event according to the remote operating system.
Some parts to this issue solution:
Actually "build" your executable scripts from sources using a recipe, this
allows what you want and also a way to syntax check the scripts.
Set up your recipes so there is an architecture component in the target
directory and use host_binding as well.
Make the top line of you script sources contain:
#!_SHELL_
Define variables for which shell to use on each architecture.
Use those in the recipe.
i686-Linux-2.4_sh = /bin/bash;
sun4-SunOS-5.8_sh = /bin/ksh;
%1/bin/%3 : shell/%3.sh
host_binding %1_C
{
sed -e \'s\=_SHELL_\=/[%1_sh]\=g\' [resolve shell/%3.sh] > [target] &&
[%1_sh] -n [target];
}
> to 3) I suggest an option to omit the time stamp dependency checking and to
> use the fingerprint method only. I know that this would be a performance
> degradation but build consistency for us has priority over performance. Or
> to store the modification time of the source files used for a first build
> as kind of signature and to check the time stamp of the current files
> against the stored one.
Use the copy_file_undo command to either remove its target automatically,
or possibly remove all targets ala clean.
>
> Hope we find a way.
>
> Regards
> Gottfried Hegmanns
> IBM Entwicklung GmbH
> internet: hegmanns at de.ibm.com
>
> _______________________________________________
> Cook-users mailing list
> Cook-users at auug.org.au
> http://www.auug.org.au/mailman/listinfo/cook-users
>
--
Jerry Pendergraft jerry.pendergraft at endocardial.com
Endocardial Solutions voice: 651-523-6935
1350 Energy Lane, Suite 110 fax: 651-644-7897
St Paul, MN 55108-5254
More information about the Cook-users
mailing list