diff options
author | Abdoulaye Walsimou Gaye <awg@embtoolkit.org> | 2014-01-11 17:31:20 +0100 |
---|---|---|
committer | Abdoulaye Walsimou Gaye <awg@embtoolkit.org> | 2014-01-11 17:31:39 +0100 |
commit | 29c5a868701ea57627c196285f2ec2d23d132792 (patch) | |
tree | 6274a8ca3360d6097d732e87d7e9a1b879c7636d | |
parent | 9d97810fb93f3c2ba17dfe596ee40d4f6506dbf8 (diff) | |
download | embtoolkit-29c5a868701ea57627c196285f2ec2d23d132792.tar.gz embtoolkit-29c5a868701ea57627c196285f2ec2d23d132792.tar.bz2 embtoolkit-29c5a868701ea57627c196285f2ec2d23d132792.tar.xz |
Build system: add embtk_{l,u}case macros to change string case without shell to improve performance
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
-rw-r--r-- | mk/macros.mk | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/mk/macros.mk b/mk/macros.mk index 112eb7c..ce96d35 100644 --- a/mk/macros.mk +++ b/mk/macros.mk @@ -87,5 +87,29 @@ embtk_space := $(embtk_empty) $(embtk_empty) embtk_comma := , # +# Macros to change strings case (upper->lower or lower to upper) +# +[U-l] := A,a B,b C,c D,d E,e F,f G,g H,h I,i J,j K,k L,l M,m N,n O,o P,p Q,q R,r S,s T,t U,u V,v W,w X,x Y,y Z,z +[l-U] := a,A b,B c,C d,D e,E f,F g,G h,H i,I j,J k,K l,L m,M n,N o,O p,P q,Q r,R s,S t,T u,U v,V w,W x,X y,Y z,Z + +embtk_lcase = $(strip $(call __embtk_lcase,$(1))) +define __embtk_lcase + $(eval __lcase := $(1)) + $(foreach __c,$([U-l]), + $(eval __c1 := $(word 1,$(subst $(embtk_comma),$(embtk_space),$(__c)))) + $(eval __c2 := $(word 2,$(subst $(embtk_comma),$(embtk_space),$(__c)))) + $(eval __lcase := $(subst $(__c1),$(__c2),$(__lcase))))$(__lcase) +endef + +embtk_ucase = $(strip $(call __embtk_ucase,$(1))) +define __embtk_ucase + $(eval __ucase := $(1)) + $(foreach __c,$([l-U]), + $(eval __c1 := $(word 1,$(subst $(embtk_comma),$(embtk_space),$(__c)))) + $(eval __c2 := $(word 2,$(subst $(embtk_comma),$(embtk_space),$(__c)))) + $(eval __ucase := $(subst $(__c1),$(__c2),$(__ucase))))$(__ucase) +endef + +# # Packages management macros include mk/macros.packages.mk |