summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--samples/samples.mk39
-rwxr-xr-xscripts/showSamples.sh59
2 files changed, 56 insertions, 42 deletions
diff --git a/samples/samples.mk b/samples/samples.mk
index 980ce5f..f4b2554 100644
--- a/samples/samples.mk
+++ b/samples/samples.mk
@@ -44,7 +44,7 @@ show-config: .config
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 @@ show-all: $(patsubst %,show-%,$(CT_SAMPLES))
# 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 --git a/scripts/showSamples.sh b/scripts/showSamples.sh
index ba32c3c..9a902ee 100755
--- a/scripts/showSamples.sh
+++ b/scripts/showSamples.sh
@@ -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 @@ export GREP_OPTIONS=
# 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 @@ dump_single_sample() {
;;
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 @@ dump_single_sample() {
-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 @@ dump_single_sample() {
[ -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 @@ dump_single_sample() {
[ "${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 @@ dump_single_sample() {
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 @@ if [ "${opt}" = -w ]; then
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