[PATCH 1 of 1] companion_tools/autoconf: add autoconf tool
Yann E. MORIN
yann.morin.1998@anciens.enib.fr
Mon Jan 11 08:38:00 GMT 2010
Richard, All,
On Sunday 10 January 2010 22:06:43 Richard Strand wrote:
> diff -r dbd5078816f9 -r b571c9ad20d5 config/companion_tools.in
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/config/companion_tools.in Sun Jan 10 20:43:44 2010 +0000
> @@ -0,0 +1,29 @@
> +# Companion tools config options
> +
> +if EXPERIMENTAL
Yep, EXPERIMENTAL is OK.
> +menu "Companion tools"
> +
> +config COMP_TOOLS
> + bool
> + prompt "READ HELP before you say 'Y' here !!!"
> + help
> + No help yet - continue at your peril!
> +
> +if COMP_TOOLS
> +
> +config AUTOCONF
> + bool
> + prompt "autoconf"
> + help
> + No help yet
> +
> +if AUTOCONF
> +source config/companion_tools/autoconf.in
> +endif
No need for sub-files, see below.
> +endif
> +
> +endmenu
> +
> +endif
> diff -r dbd5078816f9 -r b571c9ad20d5 config/companion_tools/autoconf.in
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/config/companion_tools/autoconf.in Sun Jan 10 20:43:44 2010 +0000
> @@ -0,0 +1,19 @@
> +# AUTOCONF options
> +
> +choice
> + bool
> + prompt "autoconf version"
> +# Don't remove next line
> +# CT_INSERT_VERSION_BELOW
> +
> +config AUTOCONF_V_2_65
> + bool
> + prompt "2.65"
> +
> +endchoice
> +
> +config AUTOCONF_VERSION
> + string
> +# Don't remove next line
> +# CT_INSERT_VERSION_STRING_BELOW
> + default "2.65" if AUTOCONF_V_2_65
We do not need to support multiple versions of the companion tools.
We're adding them just so the user does not need to update his/her system.
Just use what we need.
So, do not bother with a sub-file and sub-options, just hard-code the
strictly necessary stuff. Do not do any fancy config/options.
> diff -r dbd5078816f9 -r b571c9ad20d5 config/config.in
> --- a/config/config.in Sun Jan 10 17:43:23 2010 +0100
> +++ b/config/config.in Sun Jan 10 20:43:44 2010 +0000
> @@ -8,3 +8,4 @@
> source config/debug.in
> source config/tools.in
> source config/companion_libs.in
> +source config/companion_tools.in
OK.
> diff -r dbd5078816f9 -r b571c9ad20d5 scripts/build/companion_tools/autoconf.sh
> --- /dev/null Thu Jan 01 00:00:00 1970 +0000
> +++ b/scripts/build/companion_tools/autoconf.sh Sun Jan 10 20:43:44 2010 +0000
> @@ -0,0 +1,32 @@
> +# Build script for autoconf
> +
> +do_autoconf_get() { :; }
> +do_autoconf_extract() { :; }
> +do_autoconf() { :; }
> +
> +# Overide functions depending on configuration
> +if [ "${CT_AUTOCONF}" = "y" ]; then
> +
> +do_autoconf_get() {
> + CT_GetFile "autoconf-${CT_AUTOCONF_VERSION}" {ftp,http}://ftp.gnu.org/gnu/autoconf/
> +}
> +
> +do_autoconf_extract() {
> + CT_Extract "autoconf-${CT_AUTOCONF_VERSION}"
> + CT_Patch "autoconf-${CT_AUTOCONF_VERSION}"
> +}
> +
> +do_autoconf() {
> + CT_DoStep INFO "Installing autoconf"
> + mkdir -p "${CT_BUILD_DIR}/build-autoconf"
> + CT_Pushd "${CT_BUILD_DIR}/build-autoconf"
> + CT_DoExecLog ALL ${CONFIG_SHELL} \
> + "${CT_SRC_DIR}/autoconf-${CT_AUTOCONF_VERSION}/configure" \
> + --prefix="${CT_COMP_TOOLS_DIR}"
> + CT_DoExecLog ALL make
> + CT_DoExecLog ALL make install
> + CT_Popd
> + CT_EndStep
> +}
> +
> +fi
OK.
> diff -r dbd5078816f9 -r b571c9ad20d5 scripts/crosstool-NG.sh.in
> --- a/scripts/crosstool-NG.sh.in Sun Jan 10 17:43:23 2010 +0100
> +++ b/scripts/crosstool-NG.sh.in Sun Jan 10 20:43:44 2010 +0000
> @@ -126,6 +126,7 @@
> . "${CT_LIB_DIR}/scripts/build/cc/${CT_CC}.sh"
> . "${CT_LIB_DIR}/scripts/build/tools.sh"
> . "${CT_LIB_DIR}/scripts/build/debug.sh"
> +. "${CT_LIB_DIR}/scripts/build/companion_tools/autoconf.sh"
>
> # Target tuple: CT_TARGET needs a little love:
> CT_DoBuildTargetTuple
> @@ -504,6 +505,7 @@
> do_libc_get
> do_tools_get
> do_debug_get
> + do_autoconf_get
As for the config file, a single do_companion_tools_get() might be better
( a-la do_debug_get() ).
Also, the list is in the order components are being built, move the get to
the top of the list.
> CT_EndStep
> fi
>
> @@ -512,6 +514,16 @@
> CT_DoForceRmdir "${CT_SRC_DIR}"
> CT_DoExecLog ALL mkdir -p "${CT_SRC_DIR}"
> fi
> +
> + if [ "${CT_COMP_TOOLS}" = "y" ]; then
> + export CT_COMP_TOOLS_DIR="${CT_PREFIX_DIR}/companion_tools"
See my previous mail: ${CT_WORK_DIR}/tools
The tools are needed only at build-time, not at run-time.
See also around line 80 in scripts/crosstool-NG.sh.in:
CT_BIN_OVERIDE_DIR="${CT_WORK_DIR}/bin"
change into:
CT_BIN_OVERIDE_DIR="${CT_WORK_DIR}/tools/bin"
> + export PATH="${CT_COMP_TOOLS_DIR}/bin:${PATH}"
> + CT_DoStep INFO "Extracting, patching and installing companion tools"
> + do_autoconf_extract
> + do_autoconf
> + CT_EndStep
> + fi
Move all of this into do_companion_tools_extract() and do_companion_tools(),
again, like do_debug_extract() and do_debug(). Look at scripts/build/debug.sh
for how it's done in there.
Globally, that's pretty good! Keep up the good work! :-)
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
`------------------------------^-------^------------------^--------------------'
--
For unsubscribe information see http://sourceware.org/lists.html#faq
More information about the crossgcc
mailing list