config: add an option not to remove the destination directory

In certain circumstances, removing the destination/installation directory
is a bad idea. For example, when the build environment is already taking
care of sanitising the build tree, and pre-installs stuff in there, it is
a very bad idea to remove the destination directory.

This happens now in buildroot, as the crostool-NG backend now installs the
toolchain in the common host-tools directory, and pre-install there a few
host-utilities (eg. host-automake and host-gawk).

Provide a config knob to turn on/off the removal of the destination
directory, defaulting to 'y' (previous behavior), and forced to 'n' when
used as a backend.

Reported-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
This commit is contained in:
Yann E. MORIN" 2011-01-28 22:06:49 +01:00
parent 4d82364f1f
commit 7817bcebe7
2 changed files with 23 additions and 1 deletions

View File

@ -61,6 +61,28 @@ config INSTALL_DIR
# The reason you might also want to install elsewhere is if you are going
# to package your shinny new toolchain for distribution.
config RM_RF_PREFIX_DIR
bool
prompt "| Remove the prefix dir prior to building"
default y
depends on !BACKEND
help
If you say 'y' here, then PREFIX_DIR (above) will be eradicated
prior to the toolchain is built.
This can be usefull when you are trying different settings (due
to build failures or feature tests). In this case, to avoid using
a potentially broken previous toolchain, the install location is
removed, to start afresh.
On the oher hand, if you are building a final toolchain, and install
it into a directory with pre-install, unrelated programs, it would be
damageable to remove that directory. In this case, you may want to
say 'n' here.
Note that when acting as a backend, this option is not available, and
is forced to 'n'.
config REMOVE_DOCS
bool
prompt "Remove documentation"

View File

@ -229,7 +229,7 @@ if [ -z "${CT_RESTART}" ]; then
if [ "${CT_FORCE_EXTRACT}" = "y" -a -d "${CT_SRC_DIR}" ]; then
CT_DoForceRmdir "${CT_SRC_DIR}"
fi
if [ -d "${CT_INSTALL_DIR}" ]; then
if [ -d "${CT_INSTALL_DIR}" -a "${CT_RM_RF_PREFIX_DIR}" = "y" ]; then
CT_DoForceRmdir "${CT_INSTALL_DIR}"
fi
# In case we start anew, get rid of the previously saved state directory