diff options
author | Alexey Neyman <stilor@att.net> | 2017-05-11 22:00:32 -0700 |
---|---|---|
committer | Alexey Neyman <stilor@att.net> | 2017-07-08 10:56:29 -0700 |
commit | 5935d586e140b35398f45772d5749924dea7da57 (patch) | |
tree | 371d497ec06cba5afca65a5616bcb37f280481b7 /maintainer | |
parent | d589df4ebebdd9e89a66dc788e23b3c3db5f23d5 (diff) | |
download | crosstool-ng-5935d586e140b35398f45772d5749924dea7da57.tar.gz crosstool-ng-5935d586e140b35398f45772d5749924dea7da57.tar.bz2 crosstool-ng-5935d586e140b35398f45772d5749924dea7da57.zip |
Convert gcc to new framework.
Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'maintainer')
-rwxr-xr-x | maintainer/gen-versions.sh | 57 | ||||
-rw-r--r-- | maintainer/kconfig-versions.template | 13 |
2 files changed, 56 insertions, 14 deletions
diff --git a/maintainer/gen-versions.sh b/maintainer/gen-versions.sh index af58b8b4..ca6766d2 100755 --- a/maintainer/gen-versions.sh +++ b/maintainer/gen-versions.sh @@ -12,6 +12,13 @@ debug() fi } +info() +{ + if [ -z "${QUIET}" ]; then + echo "INFO :: $@" >&2 + fi +} + warn() { echo "WARN :: $@" >&2 @@ -148,6 +155,9 @@ run_lines() "#!foreach "*) run_foreach "${s#* }" ;; + "#!//"*) + # Comment, do nothing + ;; "#!"*) error "line ${l}: unrecognized command" ;; @@ -193,8 +203,9 @@ read_file() while read l; do case "${l}" in - "#*") continue;; - *) echo "info[${l%%=*}]=${l#*=}";; + "#"*) continue;; + *=*) echo "info[${l%%=*}]=${l#*=}";; + *) error "syntax error in '${1}': '${l}'" esac done < "${1}" } @@ -238,6 +249,10 @@ enter_fork() local versions local only_obsolete only_experimental + # Set defaults + info[obsolete]= + info[experimental]= + eval `read_package_desc ${fork}` info[name]=${fork} @@ -259,14 +274,22 @@ enter_fork() for f in */version.desc; do [ -r "${f}" ] && echo "${f%/version.desc}"; done | \ sort -rV | xargs echo` - set_iter version $versions - info[all_versions]=$versions - - only_obsolete=yes - only_experimental=yes - do_foreach version check_obsolete_experimental - info[only_obsolete]=${only_obsolete} - info[only_experimental]=${only_experimental} + set_iter version ${versions} + info[all_versions]=${versions} + + # If a fork does not define any versions at all ("rolling release"), do not + # consider it obsolete/experimental unless it is marked in the fork's + # description. + if [ -n "${versions}" ]; then + only_obsolete=yes + only_experimental=yes + do_foreach version check_obsolete_experimental + info[only_obsolete]=${only_obsolete} + info[only_experimental]=${only_experimental} + else + info[only_obsolete]=${info[obsolete]} + info[only_experimental]=${info[experimental]} + fi } enter_version() @@ -274,6 +297,10 @@ enter_version() local version="${1}" local tmp + # Set defaults + info[obsolete]= + info[experimental]= + eval `read_version_desc ${info[name]} ${version}` info[ver]=${version} info[kcfg]=`kconfigize ${version}` @@ -289,7 +316,8 @@ pkg_all=( `cd packages && \ ls */package.desc 2>/dev/null | \ while read f; do [ -r "${f}" ] && echo "${f%/package.desc}"; done | \ xargs echo` ) -debug "Generating package version descriptions" + +info "Generating package version descriptions" debug "Packages: ${pkg_all[@]}" # We need to group forks of the same package into the same @@ -298,12 +326,12 @@ debug "Packages: ${pkg_all[@]}" for p in "${pkg_all[@]}"; do find_forks "${p}" done -debug "Master packages: ${pkg_masters[@]}" +info "Master packages: ${pkg_masters[@]}" # Now for each master, create its kconfig file with version # definitions. for p in "${pkg_masters[@]}"; do - debug "Generating '${config_dir}/${p}.in'" + info "Generating '${config_dir}/${p}.in'" exec >"${config_dir}/${p}.in" # Base definitions for the whole config file info=( \ @@ -312,5 +340,8 @@ for p in "${pkg_masters[@]}"; do [nforks]=${pkg_nforks[${p}]} \ ) set_iter fork ${pkg_forks[${p}]} + # TBD check that origins are set for all forks if there is more than one? or is it automatic because of a missing variable check? + # TBD get rid of the "origin" completely and use just the fork name? run_template "${template}" done +info "Done!" diff --git a/maintainer/kconfig-versions.template b/maintainer/kconfig-versions.template index 7aa0de17..c7ab53f5 100644 --- a/maintainer/kconfig-versions.template +++ b/maintainer/kconfig-versions.template @@ -34,30 +34,41 @@ config @@masterpfx@@_USE if @@masterpfx@@_USE_@@originpfx@@ #!end-if +#!// If a project makes official releases, using "bleeding edge" +#!// from a development repository is experimental. However, there +#!// are projects that consider its HEAD a "rolling release". For +#!// those, checking out from a repository is the regular method. +#!if [ -n "@@all_versions@@" ] if EXPERIMENTAL +#!end-if choice bool "Source of @@name@@" +#!if [ -n "@@all_versions@@" ] config @@pfx@@_SRC_RELEASE bool "Released tarball" help Download a released tarball. +#!end-if #!if [ -n "@@repository@@" ] config @@pfx@@_SRC_DEVEL bool "Vendor repository" help Check out from vendor repository at: @@repository@@ -#!end-if +#!end-if config @@pfx@@_SRC_CUSTOM bool "Custom location" + depends on EXPERIMENTAL help Custom directory or tarball. endchoice +#!if [ -n "@@all_versions@@" ] endif +#!end-if #!if [ -n "@@repository@@" ] if @@pfx@@_SRC_DEVEL |