mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-07-29 14:16:31 +00:00
Makefile.package.in: optimize UPPERCASE macro
As noticed by Thomas, we call the UPPERCASE macro a lot, and it slows down startup quite a bit. Optimize it by implementing it in make, rather than forking a shell + tr. The implementation is heavily based on the 'up' macro from gmsl (http://gmsl.sf.net) With this in place, startup time is ~5 times lower. Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
parent
d701a82321
commit
4efdd9f3d9
@ -24,7 +24,21 @@
|
|||||||
|
|
||||||
# UPPERCASE Macro -- transform its argument to uppercase and replace dots and
|
# UPPERCASE Macro -- transform its argument to uppercase and replace dots and
|
||||||
# hyphens to underscores
|
# hyphens to underscores
|
||||||
UPPERCASE = $(shell echo $(1) | tr "a-z.-" "A-Z__")
|
|
||||||
|
# Heavily inspired by the up macro from gmsl (http://gmsl.sf.net)
|
||||||
|
# This is approx 5 times faster than forking a shell and tr, and
|
||||||
|
# as this macro is used a lot it matters
|
||||||
|
# This works by creating translation character pairs (E.G. a:A b:B)
|
||||||
|
# and then looping though all of them running $(subst from,to,text)
|
||||||
|
[FROM] := a b c d e f g h i j k l m n o p q r s t u v w x y z . -
|
||||||
|
[TO] := A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _ _
|
||||||
|
|
||||||
|
UPPERCASE = $(strip $(eval __tmp := $1) \
|
||||||
|
$(foreach c, $(join $(addsuffix :,$([FROM])),$([TO])), \
|
||||||
|
$(eval __tmp := \
|
||||||
|
$(subst $(word 1,$(subst :, ,$c)),$(word 2,$(subst :, ,$c)),\
|
||||||
|
$(__tmp)))) \
|
||||||
|
$(__tmp))
|
||||||
|
|
||||||
# Define extrators for different archive suffixes
|
# Define extrators for different archive suffixes
|
||||||
INFLATE.bz2 = $(BZCAT)
|
INFLATE.bz2 = $(BZCAT)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user