rt_bootstrap - prepare RPM projects for building
rt_bootstrap [OPTIONS...] rt_bootstrap [OPTIONS...] PROJECT.bootstrap rt_bootstrap [OPTIONS...] PROJECT.spec.in rt_bootstrap [OPTIONS...] PROJECT.spec
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:
./configure
from the
top level.Module::Build
project, it calls
perl Build.PL
.ExtUtils::MakeMaker
project, it calls
perl Makefile.PL
.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.
Print out a short help message and exit.
Print out version information and exit.
Avoid printing anything other than error messages. This doesn't affect the child commands and scripts (such as autoreconf).
Print additional debug messages; this option may be specified more than once to increase the log level.
autoconf(8), autoreconf(8), Module::Build(3), ExtUtils::MakeMaker(3)
Davlet Panech - dpanech at users dot sourceforge dot net
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>.