-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile_options
20 lines (15 loc) · 1.06 KB
/
Makefile_options
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Helpers to get options info
space=
space+=
option_names = $(sort $(subst OPTIONS__,,$(filter OPTIONS__%,$(.VARIABLES))))
eq = $(filter $1,$2)
# Option names which start with "DEBUG_" and "D_" end up as -D flag arguments
define_option_names = $(filter DEBUG_%,$(option_names)) $(filter D_%,$(option_names))
define_env_names = $(filter-out DEBUG_%,$(option_names)) $(filter D_%,$(option_names))
defined_define_option_names = $(filter $(define_option_names),$(.VARIABLES))
defined_env_option_names = $(strip $(foreach env,$(filter $(define_env_names),$(.VARIABLES)),$(if $(call eq,$(origin $(env)),environment),$(env),)))
defined_define_option_name_flags = $(foreach option,$(defined_define_option_names),-D$(option))
# Shell cmd generators for options
options = $(foreach option,$(option_names),printf "%-20s %s\n" $(option) $(OPTIONS__$(option)); )
used_options = $(foreach option,$(option_names),[[ "$${$(option)}" ]] && echo -e "\t$(option)"; true; )
options_check = [[ "$(subst $(space),,$(foreach option,$(option_names),$${$(option)}))" ]] && echo -e " With options:" ; true