2021-09-29 06:16:01 +03:00
# SPDX-License-Identifier: GPL-2.0
i n c l u d e . . / s c r i p t s / M a k e f i l e . i n c l u d e
bindir ?= /usr/bin
i f e q ( $( srctree ) , )
srctree := $( patsubst %/,%,$( dir $( CURDIR) ) )
srctree := $( patsubst %/,%,$( dir $( srctree) ) )
e n d i f
# Do not use make's built-in rules
# (this improves performance and avoids hard-to-debug behaviour);
MAKEFLAGS += -r
tools/counter: add a flexible watch events tool
This adds a new counter tool to be able to test various watch events.
A flexible watch array can be populated from command line, each field
may be tuned with a dedicated command line sub-option in "--watch" string.
Several watch events can be defined, each can have specific watch options,
by using "--watch <watch 1 options> --watch <watch 2 options>".
Watch options is a comma separated list.
It also comes with a simple default watch (to monitor overflow/underflow
events), used when no watch parameters are provided. It's equivalent to:
counter_watch_events -w comp_count,scope_count,evt_ovf_udf
The print_usage() routine proposes another example, from the command line,
which generates a 2 elements watch array, to monitor:
- overflow underflow events
- capture events, on channel 3, that reads read captured data by
specifying the component id (capture3_component_id being 7 here).
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Link: https://lore.kernel.org/r/20231213173117.4174511-2-fabrice.gasnier@foss.st.com
Signed-off-by: William Breathitt Gray <william.gray@linaro.org>
2023-12-13 20:31:16 +03:00
o v e r r i d e CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$( OUTPUT) include \
-I$( srctree) /tools/include
2021-09-29 06:16:01 +03:00
tools/counter: add a flexible watch events tool
This adds a new counter tool to be able to test various watch events.
A flexible watch array can be populated from command line, each field
may be tuned with a dedicated command line sub-option in "--watch" string.
Several watch events can be defined, each can have specific watch options,
by using "--watch <watch 1 options> --watch <watch 2 options>".
Watch options is a comma separated list.
It also comes with a simple default watch (to monitor overflow/underflow
events), used when no watch parameters are provided. It's equivalent to:
counter_watch_events -w comp_count,scope_count,evt_ovf_udf
The print_usage() routine proposes another example, from the command line,
which generates a 2 elements watch array, to monitor:
- overflow underflow events
- capture events, on channel 3, that reads read captured data by
specifying the component id (capture3_component_id being 7 here).
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Link: https://lore.kernel.org/r/20231213173117.4174511-2-fabrice.gasnier@foss.st.com
Signed-off-by: William Breathitt Gray <william.gray@linaro.org>
2023-12-13 20:31:16 +03:00
ALL_TARGETS := counter_example counter_watch_events
2021-09-29 06:16:01 +03:00
ALL_PROGRAMS := $( patsubst %,$( OUTPUT) %,$( ALL_TARGETS) )
all : $( ALL_PROGRAMS )
export srctree OUTPUT CC LD CFLAGS
i n c l u d e $( srctree ) / t o o l s / b u i l d / M a k e f i l e . i n c l u d e
#
# We need the following to be outside of kernel tree
#
$(OUTPUT)include/linux/counter.h : ../../include /uapi /linux /counter .h
mkdir -p $( OUTPUT) include/linux 2>& 1 || true
ln -sf $( CURDIR) /../../include/uapi/linux/counter.h $@
prepare : $( OUTPUT ) include /linux /counter .h
COUNTER_EXAMPLE := $( OUTPUT) counter_example.o
$(COUNTER_EXAMPLE) : prepare FORCE
$( Q) $( MAKE) $( build) = counter_example
$(OUTPUT)counter_example : $( COUNTER_EXAMPLE )
$( QUIET_LINK) $( CC) $( CFLAGS) $( LDFLAGS) $< -o $@
tools/counter: add a flexible watch events tool
This adds a new counter tool to be able to test various watch events.
A flexible watch array can be populated from command line, each field
may be tuned with a dedicated command line sub-option in "--watch" string.
Several watch events can be defined, each can have specific watch options,
by using "--watch <watch 1 options> --watch <watch 2 options>".
Watch options is a comma separated list.
It also comes with a simple default watch (to monitor overflow/underflow
events), used when no watch parameters are provided. It's equivalent to:
counter_watch_events -w comp_count,scope_count,evt_ovf_udf
The print_usage() routine proposes another example, from the command line,
which generates a 2 elements watch array, to monitor:
- overflow underflow events
- capture events, on channel 3, that reads read captured data by
specifying the component id (capture3_component_id being 7 here).
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Link: https://lore.kernel.org/r/20231213173117.4174511-2-fabrice.gasnier@foss.st.com
Signed-off-by: William Breathitt Gray <william.gray@linaro.org>
2023-12-13 20:31:16 +03:00
COUNTER_WATCH_EVENTS := $( OUTPUT) counter_watch_events.o
$(COUNTER_WATCH_EVENTS) : prepare FORCE
$( Q) $( MAKE) $( build) = counter_watch_events
$(OUTPUT)counter_watch_events : $( COUNTER_WATCH_EVENTS )
$( QUIET_LINK) $( CC) $( CFLAGS) $( LDFLAGS) $< -o $@
2021-09-29 06:16:01 +03:00
clean :
rm -f $( ALL_PROGRAMS)
rm -rf $( OUTPUT) include/linux/counter.h
2023-07-16 18:44:56 +03:00
rm -df $( OUTPUT) include/linux
rm -df $( OUTPUT) include
kbuild: replace $(if A,A,B) with $(or A,B)
$(or ...) is available since GNU Make 3.81, and useful to shorten the
code in some places.
Covert as follows:
$(if A,A,B) --> $(or A,B)
This patch also converts:
$(if A, A, B) --> $(or A, B)
Strictly speaking, the latter is not an equivalent conversion because
GNU Make keeps spaces after commas; if A is not empty, $(if A, A, B)
expands to " A", while $(or A, B) expands to "A".
Anyway, preceding spaces are not significant in the code hunks I touched.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
2022-02-11 08:14:11 +03:00
find $( or $( OUTPUT) ,.) -name '*.o' -delete -o -name '\.*.d' -delete
tools/counter: add a flexible watch events tool
This adds a new counter tool to be able to test various watch events.
A flexible watch array can be populated from command line, each field
may be tuned with a dedicated command line sub-option in "--watch" string.
Several watch events can be defined, each can have specific watch options,
by using "--watch <watch 1 options> --watch <watch 2 options>".
Watch options is a comma separated list.
It also comes with a simple default watch (to monitor overflow/underflow
events), used when no watch parameters are provided. It's equivalent to:
counter_watch_events -w comp_count,scope_count,evt_ovf_udf
The print_usage() routine proposes another example, from the command line,
which generates a 2 elements watch array, to monitor:
- overflow underflow events
- capture events, on channel 3, that reads read captured data by
specifying the component id (capture3_component_id being 7 here).
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Link: https://lore.kernel.org/r/20231213173117.4174511-2-fabrice.gasnier@foss.st.com
Signed-off-by: William Breathitt Gray <william.gray@linaro.org>
2023-12-13 20:31:16 +03:00
find $( or $( OUTPUT) ,.) -name '\.*.o.cmd' -delete
2021-09-29 06:16:01 +03:00
install : $( ALL_PROGRAMS )
install -d -m 755 $( DESTDIR) $( bindir) ; \
for program in $( ALL_PROGRAMS) ; do \
install $$ program $( DESTDIR) $( bindir) ; \
done
FORCE :
.PHONY : all install clean FORCE prepare