From d82f1c6f2a86707ebcfe134cb600b382cb00cc65 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Tue, 22 Jan 2013 00:32:38 +0100 Subject: [PATCH] samples: check if update is needed Add a ct-ng action to check if samples needs being updated. This will be usefull when the config options change. Signed-off-by: "Yann E. MORIN" --- ct-ng.comp | 6 ++++-- samples/samples.mk | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/ct-ng.comp b/ct-ng.comp index 19a39d6d..172e1e9d 100644 --- a/ct-ng.comp +++ b/ct-ng.comp @@ -9,6 +9,7 @@ _ct_ng () { samples=$( "${COMP_WORDS[0]}" list-samples-short 2>/dev/null ) show_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1show-/g;') build_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1build-/g;') + check_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1check-/g;') steps=$(${COMP_WORDS[0]} list-steps 2>/dev/null |awk '$1 == "-" { print $2; }') start_steps=$(echo "${steps}" |sed -r -e 's/($| )/\1+/;') @@ -17,14 +18,15 @@ _ct_ng () { actions='help menuconfig oldconfig saveconfig extractconfig defconfig savedefconfig build build. build-all build-all. - wiki-samples list-samples list-samples-short list-steps + wiki-samples list-samples list-samples-short check-samples + list-steps show-tuple show-all show-config clean distclean updatetools tarball version' vars="RESTART= STOP= PREFIX= V= DEFCONFIG=" - ct_ng_opts="${samples} ${show_samples} ${build_samples} + ct_ng_opts="${samples} ${show_samples} ${build_samples} ${check_samples} ${steps} ${start_steps} ${stop_steps} ${actions} ${vars}" diff --git a/samples/samples.mk b/samples/samples.mk index f4b2554b..7608dcec 100644 --- a/samples/samples.mk +++ b/samples/samples.mk @@ -79,6 +79,22 @@ list-samples-short: FORCE printf "%s\n" "$${s}"; \ done +# Check one sample +PHONY += $(patsubst %,check-%,$(CT_SAMPLES)) +$(patsubst %,check-%,$(CT_SAMPLES)): config_files + @export KCONFIG_CONFIG=$$(pwd)/.config.sample; \ + CT_NG_SAMPLE=$(call sample_dir,$(patsubst check-%,%,$(@)))/crosstool.config; \ + $(CONF) --defconfig=$${CT_NG_SAMPLE} $(KCONFIG_TOP) >/dev/null; \ + $(CONF) --savedefconfig=$$(pwd)/.defconfig $(KCONFIG_TOP) >/dev/null; \ + old_sha1=$$( sha1sum "$${CT_NG_SAMPLE}" |cut -d ' ' -f 1 ); \ + new_sha1=$$( sha1sum .defconfig |cut -d ' ' -f 1 ); \ + if [ $${old_sha1} != $${new_sha1} ]; then \ + echo "$(patsubst check-%,%,$(@)) needs update"; \ + fi + @rm -f .config.sample* .defconfig + +check-samples: $(patsubst %,check-%,$(CT_SAMPLES)) + PHONY += wiki-samples wiki-samples: wiki-samples-pre $(patsubst %,wiki-%,$(CT_SAMPLES)) wiki-samples-post