NAME

rt_bootstrap - prepare RPM projects for building

SYNOPSIS

 rt_bootstrap [OPTIONS...]
 rt_bootstrap [OPTIONS...] PROJECT.bootstrap
 rt_bootstrap [OPTIONS...] PROJECT.spec.in
 rt_bootstrap [OPTIONS...] PROJECT.spec

DESCRIPTION

rt_bootstrap generates various files required for building an RPM project. It looks for a few pre-determined "bootstrap" script file names in the project's top-level directory to do it's job. If these files don't exist, it tries to "do the right thing", using various heuristics.

Projects based on autoconf(1), Module::Build(3) and ExtUtils::MakeMaker(3) are handled specially. Most well-written projects based on these build tools should work out-of-the box. If something doesn't work you can customize this script's behavior by adding a PROJECT.bootstrap script to the project's top-level directory.

Upon startup, if no filenames are provided rt_makedist searches "." and ".." for the files *.bootstrap, *.spec.in and *.spec in that order and exits with an error message if eiher directory contains more than one file of each kind, or if neither directory contains any matching files.

Next rt_bootstrap tries to generate any scripts and makefiles this project might need by executing any of the scripts named PROJECT.bootstrap, bootstrap, bootstrap.{sh,pl,py}, autogen.sh in the project's top-level directory. These scripts must either have the executable bit set, or begin with "#!/path/to/interpreter" line.

If none of bootstrap/autogen scripts exist, and it looks like the project is autoconf-based, rt_bootstrap calls autoreconf -i.

Next rt_bootstrap tries to configure the project:

Finally rt_bootstrap tries to ensure that the spec file for this project is up to date. If there's a file named GNUmakefile, makefile or Makefile, it calls make PROJECT.spec.

Note that one of the scripts or makefiles described above must generate the PROJECT.spec file, or otherwise ensure that it exists. If the spec file does not exist at the end of rt_bootstrap, it will exit with an error message.

OPTIONS

SEE ALSO

autoconf(8), autoreconf(8), Module::Build(3), ExtUtils::MakeMaker(3)

AUTHORS

Davlet Panech - dpanech at users dot sourceforge dot net

COPYRIGHT AND LICENSE

Copyright 2010 Davlet Panech.

Rpmtoolbox is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Rpmtoolbox is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with rpmtoolbox. If not, see <www.gnu.org>.