scripts/functions: Fix CT_ExtractGit function.
Change CT_ExtractGit so that it clones the repository, instead of just
symlinking it. After cloning, any given ref is checked out, or if no
ref is given, the HEAD of the repository is checked out.
This makes CT_Extract behave similar for git repositories as it does
for tarballs, so that it for example can be used for passing glibc-ports
as a git repository.
Signed-off-by: "Esben Haabendal" <esben.haabendal@prevas.dk>
[yann.morin.1998@anciens.enib.fr: fix incomplete var rename]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
2 # Yes, this is supposed to be a POSIX-compliant shell script.
4 # Parses all samples on the command line, and for each of them, prints
5 # the versions of the main tools
7 # Use tools discovered by ./configure
8 . "${CT_LIB_DIR}/paths.mk"
10 [ "$1" = "-v" ] && opt="$1" && shift
11 [ "$1" = "-w" ] && opt="$1" && shift
13 # GREP_OPTIONS screws things up.
16 # Dump a single sample
17 # Note: we can quite safely used the non-mangled .config.2
18 dump_single_sample() {
21 [ "$1" = "-v" ] && verbose=1 && shift
22 [ "$1" = "-w" ] && wiki=1 && shift
28 sample="${current_tuple}"
32 *) if [ -f "${CT_TOP_DIR}/samples/${sample}/crosstool.config" ]; then
33 sample_top="${CT_TOP_DIR}"
36 sample_top="${CT_LIB_DIR}"
39 . "${sample_top}/samples/${sample}/crosstool.config"
42 if [ -z "${wiki}" ]; then
44 printf "%-*s [%s" ${width} "${sample}" "${sample_type}"
45 [ -f "${sample_top}/samples/${sample}/broken" ] && printf "B" || printf " "
46 [ "${CT_EXPERIMENTAL}" = "y" ] && printf "X" || printf " "
48 if [ ${verbose} -ne 0 ]; then
49 case "${CT_TOOLCHAIN_TYPE}" in
52 printf " %-*s : %s\n" ${t_width} "Host" "${CT_HOST}"
55 printf " %-*s : %s\n" ${t_width} "OS" "${CT_KERNEL}${CT_KERNEL_VERSION:+-}${CT_KERNEL_VERSION}"
61 -o -n "${CT_LIBELF}" \
62 -o -n "${CT_GMP_TARGET}" \
63 -o -n "${CT_MPFR_TARGET}" \
64 -o -n "${CT_PPL_TARGET}" \
65 -o -n "${CT_CLOOG_TARGET}" \
66 -o -n "${CT_MPC_TARGET}" \
67 -o -n "${CT_LIBELF_TARGET}" \
69 printf " %-*s :" ${t_width} "Companion libs"
72 [ -z "${CT_GMP}" -a -z "${CT_GMP_TARGET}" ] || printf " gmp-%s" "${CT_GMP_VERSION}"
73 [ -z "${CT_MPFR}" -a -z "${CT_MPFR_TARGET}" ] || printf " mpfr-%s" "${CT_MPFR_VERSION}"
74 [ -z "${CT_PPL}" -a -z "${CT_PPL_TARGET}" ] || printf " ppl-%s" "${CT_PPL_VERSION}"
75 [ -z "${CT_CLOOG}" -a -z "${CT_CLOOG_TARGET}" ] || printf " cloog-ppl-%s" "${CT_CLOOG_VERSION}"
76 [ -z "${CT_MPC}" -a -z "${CT_MPC_TARGET}" ] || printf " mpc-%s" "${CT_MPC_VERSION}"
77 [ -z "${CT_LIBELF}" -a -z "${CT_LIBELF_TARGET}" ] || printf " libelf-%s" "${CT_LIBELF_VERSION}"
78 [ -z "${complibs}" ] || printf "\n"
79 printf " %-*s : %s\n" ${t_width} "binutils" "binutils-${CT_BINUTILS_VERSION}"
80 printf " %-*s : %s" ${t_width} "C compiler" "${CT_CC}-${CT_CC_VERSION} (C"
81 [ "${CT_CC_LANG_CXX}" = "y" ] && printf ",C++"
82 [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran"
83 [ "${CT_CC_LANG_JAVA}" = "y" ] && printf ",Java"
84 [ "${CT_CC_LANG_ADA}" = "y" ] && printf ",ADA"
85 [ "${CT_CC_LANG_OBJC}" = "y" ] && printf ",Objective-C"
86 [ "${CT_CC_LANG_OBJCXX}" = "y" ] && printf ",Objective-C++"
87 [ -n "${CT_CC_LANG_OTHERS}" ] && printf ",${CT_CC_LANG_OTHERS}"
89 printf " %-*s : %s\n" ${t_width} "C library" "${CT_LIBC}${CT_LIBC_VERSION:+-}${CT_LIBC_VERSION}"
90 printf " %-*s :" ${t_width} "Tools"
91 [ "${CT_TOOL_sstrip}" ] && printf " sstrip"
92 [ "${CT_DEBUG_dmalloc}" ] && printf " dmalloc-${CT_DMALLOC_VERSION}"
93 [ "${CT_DEBUG_duma}" ] && printf " duma-${CT_DUMA_VERSION}"
94 [ "${CT_DEBUG_gdb}" ] && printf " gdb-${CT_GDB_VERSION}"
95 [ "${CT_DEBUG_ltrace}" ] && printf " ltrace-${CT_LTRACE_VERSION}"
96 [ "${CT_DEBUG_strace}" ] && printf " strace-${CT_STRACE_VERSION}"
100 case "${CT_TOOLCHAIN_TYPE}" in
102 printf "| ''${sample}'' | "
106 printf "${sample}" |sed -r -e 's/.*,//'
107 printf "'' | ${CT_HOST} "
112 [ "${CT_EXPERIMENTAL}" = "y" ] && printf "**X**"
113 [ -f "${sample_top}/samples/${sample}/broken" ] && printf "**B**"
114 printf " | ''${CT_KERNEL}'' |"
115 if [ "${CT_KERNEL}" != "bare-metal" ];then
116 if [ "${CT_KERNEL_LINUX_HEADERS_USE_CUSTOM_DIR}" = "y" ]; then
117 printf " //custom// "
119 printf " ${CT_KERNEL_VERSION} "
122 printf "| ${CT_BINUTILS_VERSION} "
123 printf "| ''${CT_CC}'' "
124 printf "| ${CT_CC_VERSION} "
125 printf "| ''${CT_LIBC}'' |"
126 if [ "${CT_LIBC}" != "none" ]; then
127 printf " ${CT_LIBC_VERSION} "
129 printf "| ${CT_THREADS:-none} "
130 printf "| ${CT_ARCH_FLOAT_HW:+hard}${CT_ARCH_FLOAT_SW:+soft} "
132 [ "${CT_CC_LANG_CXX}" = "y" ] && printf ", C++"
133 [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ", Fortran"
134 [ "${CT_CC_LANG_JAVA}" = "y" ] && printf ", Java"
135 [ "${CT_CC_LANG_ADA}" = "y" ] && printf ", ADA"
136 [ "${CT_CC_LANG_OBJC}" = "y" ] && printf ", Objective-C"
137 [ "${CT_CC_LANG_OBJCXX}" = "y" ] && printf ", Objective-C++"
138 [ -n "${CT_CC_LANG_OTHERS}" ] && printf "\\\\\\\\ Others: ${CT_CC_LANG_OTHERS}"
140 ( . "${sample_top}/samples/${sample}/reported.by"
141 if [ -n "${reporter_name}" ]; then
142 if [ -n "${reporter_url}" ]; then
143 printf "| [[${reporter_url}|${reporter_name}]] "
145 printf "| ${reporter_name} "
148 printf "| [[http://ymorin.is-a-geek.org/|YEM]] "
151 sample_updated="$( hg log -l 1 --template '{date|shortdate}' "${sample_top}/samples/${sample}" )"
152 printf "| ${sample_updated} "
157 # Get largest sample width
159 for sample in "${@}"; do
160 [ ${#sample} -gt ${width} ] && width=${#sample}
163 if [ "${opt}" = -w ]; then
164 printf "^ %s |||||||||||||||\n" "$( date "+%Y%m%d.%H%M %z" )"
168 printf "^ Kernel headers\\\\\\\\ version ^"
169 printf "^ binutils\\\\\\\\ version "
170 printf "^ C compiler\\\\\\\\ version ^"
171 printf "^ C library\\\\\\\\ version ^"
172 printf "^ Threading\\\\\\\\ model "
173 printf "^ Floating point\\\\\\\\ support "
174 printf "^ Languages "
175 printf "^ Initially\\\\\\\\ reported by "
176 printf "^ Last\\\\\\\\ updated "
178 elif [ -z "${opt}" ]; then
179 printf "%-*s Status\n" ${width} "Sample name"
182 for sample in "${@}"; do
183 ( dump_single_sample ${opt} ${width} "${sample}" )
186 if [ "${opt}" = -w ]; then
187 printf "^ Total: ${#@} samples || **X**: sample uses features marked as being EXPERIMENTAL.\\\\\\\\ **B**: sample is currently BROKEN. |||||||||||||"
189 elif [ -z "${opt}" ]; then
190 echo ' L (Local) : sample was found in current directory'
191 echo ' G (Global) : sample was installed with crosstool-NG'
192 echo ' X (EXPERIMENTAL): sample may use EXPERIMENTAL features'
193 echo ' B (BROKEN) : sample is currently broken'