mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-04-16 15:28:55 +00:00
cc/gcc: Add the ability to build gcc from svn
I took some of the svn functionality from eglibc. Signed-off-by: Bryan Hundven <bryanhundven@gmail.com> [yann.morin.1998@free.fr: fix the conditional test in build script] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
This commit is contained in:
parent
946e5d8535
commit
8c43cdb436
@ -33,6 +33,14 @@ config CC_GCC_SHOW_LINARO
|
||||
choice
|
||||
bool
|
||||
prompt "gcc version"
|
||||
|
||||
config CC_V_SVN
|
||||
bool
|
||||
prompt "gcc from svn"
|
||||
depends on EXPERIMENTAL
|
||||
depends on CONFIGURE_has_svn
|
||||
select CC_GCC_latest
|
||||
|
||||
# Don't remove next line
|
||||
# CT_INSERT_VERSION_BELOW
|
||||
|
||||
@ -228,6 +236,62 @@ config CC_V_3_4_6
|
||||
|
||||
endchoice
|
||||
|
||||
if CC_V_SVN
|
||||
|
||||
config GCC_BRANCH
|
||||
string
|
||||
prompt "Branch or tag to use"
|
||||
default "trunk"
|
||||
help
|
||||
Enter the branch of gcc to use. Default is trunk
|
||||
|
||||
A few examples might be:
|
||||
* trunk
|
||||
* branches/gcc-4_7-branch
|
||||
* branches/gcc-4_4-branch
|
||||
* branches/gccgo
|
||||
* branches/google
|
||||
* tags/gcc_4_7_1_release
|
||||
* tags/microblaze-4.4.2
|
||||
|
||||
config GCC_REVISION
|
||||
string
|
||||
prompt "Revision to use"
|
||||
default "HEAD"
|
||||
help
|
||||
Enter the revision of you want to use. Default is HEAD
|
||||
|
||||
A revision argument can be one of:
|
||||
NUMBER revision number
|
||||
'{' DATE '}' revision at start of the date (*)
|
||||
'HEAD' latest in repository
|
||||
|
||||
(*) If you want to use a date, please use ISO-8601 formats if
|
||||
at all possible.
|
||||
|
||||
config GCC_HTTP
|
||||
bool
|
||||
prompt "use http:// instead of svn://"
|
||||
help
|
||||
By default, when gcc is downloaded it is checked out using
|
||||
svn://gcc.gnu.org/svn/gcc. This option allows you to download gcc
|
||||
from http://gcc.gnu.org/svn/gcc, if you are behind a proxy or firewall.
|
||||
If you are behind a proxy, don't forget to update your
|
||||
.subversion/servers file with your proxy info in [global].
|
||||
|
||||
config GCC_CHECKOUT
|
||||
bool
|
||||
prompt "checkout instead of export"
|
||||
help
|
||||
By default, the gcc download will be an export of the subversion
|
||||
repository. If you say 'y' here, then the repository will instead be
|
||||
checked-out, so that you can update it later.
|
||||
|
||||
Note that crosstool-NG will *not* update your working copy, you will
|
||||
have to do that yourself.
|
||||
|
||||
endif
|
||||
|
||||
config CC_GCC_4_2
|
||||
bool
|
||||
select CC_GCC_4_2_or_later
|
||||
@ -301,6 +365,18 @@ config CC_GCC_4_7_or_later
|
||||
bool
|
||||
select CC_GCC_4_6_or_later
|
||||
|
||||
config CC_GCC_latest
|
||||
bool
|
||||
select CC_GCC_4_7_or_later
|
||||
select CC_GCC_USE_GMP_MPFR
|
||||
select CC_GCC_USE_MPC
|
||||
select CC_GCC_HAS_GRAPHITE
|
||||
select CC_GCC_HAS_LTO
|
||||
select CC_GCC_HAS_PKGVERSION_BUGURL
|
||||
select CC_GCC_HAS_BUILD_ID
|
||||
select CC_GCC_HAS_LNK_HASH_STYLE
|
||||
select CC_GCC_HAS_LIBQUADMATH
|
||||
|
||||
config CC_GCC_HAS_GRAPHITE
|
||||
bool
|
||||
|
||||
@ -362,6 +438,7 @@ config CC_GCC_HAS_LIBQUADMATH
|
||||
|
||||
config CC_VERSION
|
||||
string
|
||||
default "SVN" if CC_V_SVN
|
||||
# Don't remove next line
|
||||
# CT_INSERT_VERSION_STRING_BELOW
|
||||
default "linaro-4.7-2012.08" if CC_V_linaro_4_7_2012_08
|
||||
|
@ -4,30 +4,49 @@
|
||||
|
||||
# Download gcc
|
||||
do_cc_get() {
|
||||
local linaro_version
|
||||
local linaro_series
|
||||
local linaro_base_url="http://launchpad.net/gcc-linaro"
|
||||
if [ -n "${CT_CC_V_SVN}" ]; then
|
||||
# Get gcc from SVN!
|
||||
local svn_base
|
||||
|
||||
if [ "${CT_GCC_HTTP}" = "y" ]; then
|
||||
svn_base="http://gcc.gnu.org/svn/gcc"
|
||||
else
|
||||
svn_base="svn://gcc.gnu.org/svn/gcc"
|
||||
fi
|
||||
|
||||
svn_base+="/${CT_GCC_BRANCH:-trunk}"
|
||||
|
||||
CT_CC_VERSION="${CT_GCC_BRANCH//\//_}"
|
||||
|
||||
CT_GetSVN "gcc-${CT_CC_VERSION}" \
|
||||
"${svn_base}/" \
|
||||
"${CT_GCC_REVISION:-HEAD}"
|
||||
else
|
||||
local linaro_version
|
||||
local linaro_series
|
||||
local linaro_base_url="http://launchpad.net/gcc-linaro"
|
||||
|
||||
|
||||
# Account for the Linaro versioning
|
||||
linaro_version="$( echo "${CT_CC_VERSION}" \
|
||||
|sed -r -e 's/^linaro-//;' \
|
||||
)"
|
||||
linaro_series="$( echo "${linaro_version}" \
|
||||
|sed -r -e 's/-.*//;' \
|
||||
)"
|
||||
# Account for the Linaro versioning
|
||||
linaro_version="$( echo "${CT_CC_VERSION}" \
|
||||
|sed -r -e 's/^linaro-//;' \
|
||||
)"
|
||||
linaro_series="$( echo "${linaro_version}" \
|
||||
|sed -r -e 's/-.*//;' \
|
||||
)"
|
||||
|
||||
# Ah! gcc folks are kind of 'different': they store the tarballs in
|
||||
# subdirectories of the same name!
|
||||
# Arrgghh! Some of those versions does not follow this convention:
|
||||
# gcc-3.3.3 lives in releases/gcc-3.3.3, while gcc-2.95.* isn't in a
|
||||
# subdirectory!
|
||||
CT_GetFile "gcc-${CT_CC_VERSION}" \
|
||||
{ftp,http}://ftp.gnu.org/gnu/gcc{,{,/releases}/gcc-${CT_CC_VERSION}} \
|
||||
ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-${CT_CC_VERSION} \
|
||||
ftp://ftp.uvsq.fr/pub/gcc/snapshots/${CT_CC_VERSION} \
|
||||
"${linaro_base_url}/${linaro_series}/${linaro_version}/+download"
|
||||
# Ah! gcc folks are kind of 'different': they store the tarballs in
|
||||
# subdirectories of the same name!
|
||||
# Arrgghh! Some of those versions does not follow this convention:
|
||||
# gcc-3.3.3 lives in releases/gcc-3.3.3, while gcc-2.95.* isn't in a
|
||||
# subdirectory!
|
||||
CT_GetFile "gcc-${CT_CC_VERSION}" \
|
||||
{ftp,http}://ftp.gnu.org/gnu/gcc{,{,/releases}/gcc-${CT_CC_VERSION}} \
|
||||
ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-${CT_CC_VERSION} \
|
||||
ftp://ftp.uvsq.fr/pub/gcc/snapshots/${CT_CC_VERSION} \
|
||||
"${linaro_base_url}/${linaro_series}/${linaro_version}/+download"
|
||||
|
||||
fi # -n ${CT_CC_V_SVN}
|
||||
# Starting with GCC 4.3, ecj is used for Java, and will only be
|
||||
# built if the configure script finds ecj.jar at the top of the
|
||||
# GCC source tree, which will not be there unless we get it and
|
||||
|
Loading…
x
Reference in New Issue
Block a user