summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2014-01-11 17:31:20 +0100
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2014-01-11 17:31:39 +0100
commit29c5a868701ea57627c196285f2ec2d23d132792 (patch)
tree6274a8ca3360d6097d732e87d7e9a1b879c7636d
parent9d97810fb93f3c2ba17dfe596ee40d4f6506dbf8 (diff)
downloadembtoolkit-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.mk24
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