# HG changeset patch # User "Yann E. MORIN" # Date 1343073743 -7200 # Node ID 95173b196a88b67ce488a116688c0a334c9656b1 # Parent 0dfc9c1fcb348e354edc37aacd2e8dcb223e9ab2 scripts+samples: fix listings the samples Since we use defconfigs to save the samples, listing all the samples can no longer be done by passing all the sample names at one to the script; we need to pass them one-by-one after we expand the sample's defconfig ibnto a complete .config. Reported-by: Bryan Hundven Signed-off-by: "Yann E. MORIN" diff -r 0dfc9c1fcb34 -r 95173b196a88 samples/samples.mk --- a/samples/samples.mk Tue Jul 17 22:21:28 2012 +0200 +++ b/samples/samples.mk Mon Jul 23 22:02:23 2012 +0200 @@ -44,7 +44,7 @@ PHONY += $(patsubst %,show-%,$(CT_SAMPLES)) $(patsubst %,show-%,$(CT_SAMPLES)): config_files @KCONFIG_CONFIG=$$(pwd)/.config.sample \ - $(CONF) --defconfig=$(call sample_dir,$(patsubst show-%,%,$(@)))/crosstool.config \ + $(CONF) --defconfig=$(call sample_dir,$(patsubst show-%,%,$(@)))/crosstool.config \ $(KCONFIG_TOP) >/dev/null @$(CT_LIB_DIR)/scripts/showSamples.sh -v $(patsubst show-%,%,$(@)) @rm -f .config.sample @@ -55,18 +55,45 @@ # print the list of all available samples PHONY += list-samples -list-samples: FORCE - $(SILENT)$(CT_LIB_DIR)/scripts/showSamples.sh $(CT_SAMPLES) +list-samples: list-samples-pre $(patsubst %,list-%,$(CT_SAMPLES)) + @echo ' L (Local) : sample was found in current directory' + @echo ' G (Global) : sample was installed with crosstool-NG' + @echo ' X (EXPERIMENTAL): sample may use EXPERIMENTAL features' + @echo ' B (BROKEN) : sample is currently broken' + +PHONY += list-samples-pre +list-samples-pre: FORCE + @echo 'Status Sample name' + +PHONY += $(patsubst %,list-%,$(CT_SAMPLES)) +$(patsubst %,list-%,$(CT_SAMPLES)): config_files + @KCONFIG_CONFIG=$$(pwd)/.config.sample \ + $(CONF) --defconfig=$(call sample_dir,$(patsubst list-%,%,$(@)))/crosstool.config \ + $(KCONFIG_TOP) >/dev/null + @$(CT_LIB_DIR)/scripts/showSamples.sh $(patsubst list-%,%,$(@)) + @rm -f .config.sample PHONY += list-samples-short list-samples-short: FORCE $(SILENT)for s in $(CT_SAMPLES); do \ - printf "$${s}\n"; \ + printf "%s\n" "$${s}"; \ done PHONY += wiki-samples -wiki-samples: - $(SILENT)$(CT_LIB_DIR)/scripts/showSamples.sh -w $(CT_SAMPLES) +wiki-samples: wiki-samples-pre $(patsubst %,wiki-%,$(CT_SAMPLES)) wiki-samples-post + +wiki-samples-pre: FORCE + $(SILENT)$(CT_LIB_DIR)/scripts/showSamples.sh -w + +wiki-samples-post: FORCE + $(SILENT)$(CT_LIB_DIR)/scripts/showSamples.sh -W $(CT_SAMPLES) + +$(patsubst %,wiki-%,$(CT_SAMPLES)): config_files + $(SILENT)KCONFIG_CONFIG=$$(pwd)/.config.sample \ + $(CONF) --defconfig=$(call sample_dir,$(patsubst wiki-%,%,$(@)))/crosstool.config \ + $(KCONFIG_TOP) >/dev/null + $(SILENT)$(CT_LIB_DIR)/scripts/showSamples.sh -w $(patsubst wiki-%,%,$(@)) + $(SILENT)rm -f .config.sample # ---------------------------------------------------------- # This part deals with saving/restoring samples diff -r 0dfc9c1fcb34 -r 95173b196a88 scripts/showSamples.sh --- a/scripts/showSamples.sh Tue Jul 17 22:21:28 2012 +0200 +++ b/scripts/showSamples.sh Mon Jul 23 22:02:23 2012 +0200 @@ -9,6 +9,7 @@ [ "$1" = "-v" ] && opt="$1" && shift [ "$1" = "-w" ] && opt="$1" && shift +[ "$1" = "-W" ] && opt="$1" && shift # GREP_OPTIONS screws things up. export GREP_OPTIONS= @@ -17,16 +18,15 @@ # Note: we use the specific .config.sample config file dump_single_sample() { local verbose=0 + local wiki=0 local complibs [ "$1" = "-v" ] && verbose=1 && shift [ "$1" = "-w" ] && wiki=1 && shift - local width="$1" - local sample="$2" + local sample="$1" case "${sample}" in current) sample_type="l" sample="$( ${CT_NG} show-tuple )" - width="${#sample}" ;; *) if [ -f "${CT_TOP_DIR}/samples/${sample}/crosstool.config" ]; then sample_top="${CT_TOP_DIR}" @@ -38,20 +38,20 @@ ;; esac . $(pwd)/.config.sample - if [ -z "${wiki}" ]; then - t_width=14 - printf "%-*s [%s" ${width} "${sample}" "${sample_type}" - [ -f "${sample_top}/samples/${sample}/broken" ] && printf "B" || printf " " - [ "${CT_EXPERIMENTAL}" = "y" ] && printf "X" || printf " " - echo "]" + if [ ${wiki} -eq 0 ]; then + width=14 + printf "[%s" "${sample_type}" + [ -f "${sample_top}/samples/${sample}/broken" ] && printf "B" || printf "." + [ "${CT_EXPERIMENTAL}" = "y" ] && printf "X" || printf "." + printf "] %s\n" "${sample}" if [ ${verbose} -ne 0 ]; then case "${CT_TOOLCHAIN_TYPE}" in cross) ;; canadian) - printf " %-*s : %s\n" ${t_width} "Host" "${CT_HOST}" + printf " %-*s : %s\n" ${width} "Host" "${CT_HOST}" ;; esac - printf " %-*s : %s\n" ${t_width} "OS" "${CT_KERNEL}${CT_KERNEL_VERSION:+-}${CT_KERNEL_VERSION}" + printf " %-*s : %s\n" ${width} "OS" "${CT_KERNEL}${CT_KERNEL_VERSION:+-}${CT_KERNEL_VERSION}" if [ -n "${CT_GMP}" \ -o -n "${CT_MPFR}" \ -o -n "${CT_PPL}" \ @@ -65,7 +65,7 @@ -o -n "${CT_MPC_TARGET}" \ -o -n "${CT_LIBELF_TARGET}" \ ]; then - printf " %-*s :" ${t_width} "Companion libs" + printf " %-*s :" ${width} "Companion libs" complibs=1 fi [ -z "${CT_GMP}" -a -z "${CT_GMP_TARGET}" ] || printf " gmp-%s" "${CT_GMP_VERSION}" @@ -75,8 +75,8 @@ [ -z "${CT_MPC}" -a -z "${CT_MPC_TARGET}" ] || printf " mpc-%s" "${CT_MPC_VERSION}" [ -z "${CT_LIBELF}" -a -z "${CT_LIBELF_TARGET}" ] || printf " libelf-%s" "${CT_LIBELF_VERSION}" [ -z "${complibs}" ] || printf "\n" - printf " %-*s : %s\n" ${t_width} "binutils" "binutils-${CT_BINUTILS_VERSION}" - printf " %-*s : %s" ${t_width} "C compiler" "${CT_CC}-${CT_CC_VERSION} (C" + printf " %-*s : %s\n" ${width} "binutils" "binutils-${CT_BINUTILS_VERSION}" + printf " %-*s : %s" ${width} "C compiler" "${CT_CC}-${CT_CC_VERSION} (C" [ "${CT_CC_LANG_CXX}" = "y" ] && printf ",C++" [ "${CT_CC_LANG_FORTRAN}" = "y" ] && printf ",Fortran" [ "${CT_CC_LANG_JAVA}" = "y" ] && printf ",Java" @@ -85,8 +85,8 @@ [ "${CT_CC_LANG_OBJCXX}" = "y" ] && printf ",Objective-C++" [ -n "${CT_CC_LANG_OTHERS}" ] && printf ",${CT_CC_LANG_OTHERS}" printf ")\n" - printf " %-*s : %s\n" ${t_width} "C library" "${CT_LIBC}${CT_LIBC_VERSION:+-}${CT_LIBC_VERSION}" - printf " %-*s :" ${t_width} "Tools" + printf " %-*s : %s\n" ${width} "C library" "${CT_LIBC}${CT_LIBC_VERSION:+-}${CT_LIBC_VERSION}" + printf " %-*s :" ${width} "Tools" [ "${CT_TOOL_sstrip}" ] && printf " sstrip" [ "${CT_DEBUG_dmalloc}" ] && printf " dmalloc-${CT_DMALLOC_VERSION}" [ "${CT_DEBUG_duma}" ] && printf " duma-${CT_DUMA_VERSION}" @@ -153,13 +153,7 @@ fi } -# Get largest sample width -width=0 -for sample in "${@}"; do - [ ${#sample} -gt ${width} ] && width=${#sample} -done - -if [ "${opt}" = -w ]; then +if [ "${opt}" = "-w" -a ${#} -eq 0 ]; then printf "^ %s |||||||||||||||\n" "$( date "+%Y%m%d.%H%M %z" )" printf "^ Target " printf "^ Host " @@ -174,20 +168,13 @@ printf "^ Initially\\\\\\\\ reported by " printf "^ Last\\\\\\\\ updated " echo "^" -elif [ -z "${opt}" ]; then - printf "%-*s Status\n" ${width} "Sample name" + exit 0 +elif [ "${opt}" = "-W" ]; then + printf "^ Total: ${#} samples || **X**: sample uses features marked as being EXPERIMENTAL.\\\\\\\\ **B**: sample is currently BROKEN. |||||||||||||" + echo "" + exit 0 fi for sample in "${@}"; do - ( dump_single_sample ${opt} ${width} "${sample}" ) + ( dump_single_sample ${opt} "${sample}" ) done - -if [ "${opt}" = -w ]; then - printf "^ Total: ${#@} samples || **X**: sample uses features marked as being EXPERIMENTAL.\\\\\\\\ **B**: sample is currently BROKEN. |||||||||||||" - echo "" -elif [ -z "${opt}" ]; then - echo ' L (Local) : sample was found in current directory' - echo ' G (Global) : sample was installed with crosstool-NG' - echo ' X (EXPERIMENTAL): sample may use EXPERIMENTAL features' - echo ' B (BROKEN) : sample is currently broken' -fi