blob: 1bca4f3a833233a37a6c9838fa4c8895d96d0149 [file] [log] [blame]
#
# This file is part of the flashrom project.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# Here are functions and macros defined for the Makefile
define mark_unsupported
$(foreach p,$1, \
$(if $(filter $($(p)),yes), \
$(eval UNSUPPORTED_FEATURES += $(p)=yes), \
$(eval override $(p) := no)))
endef
define mark_missing_dep
$(foreach p,$2, \
$(if $(filter $($(p)),yes), \
$(eval MISSING_DEPENDENCY += $(1)) \
$(eval MISSING_DEPENDENCY_$(1) += $(p)=yes))) \
$(eval MISSING_DEPENDENCY := $(sort $(MISSING_DEPENDENCY))) \
$(eval MISSING_DEPENDENCY_NOTE_$(1) := $(if $(3),$(3),""))
endef
define filter_deps
$(strip $(foreach p,$1, \
$(if $(filter $($(p)),yes), \
$(p))))
endef
define disable_all
$(foreach p,$1, \
$(eval override $(p) := no))
endef
# Run the C Preprocessor with file $1 and return the last line, removing quotes.
define c_macro_test
$(strip $(call debug_shell, $(CC) -E $1 | tail -n 1 | tr -d '"'))
endef
define c_compile_test # $1: files to compile, $2: cflags
$(call debug_shell, $(CC) -c -Wall -Werror $2 $1 -o /dev/null && echo yes || echo no)
endef
define c_link_test # $1: file to compile and link, $2: cflags, $3: ldflags
$(call debug_shell, $(CC) -Wall -Werror $2 $1 $3 -o /dev/null && echo yes || echo no)
endef
define find_dependency
$(call debug_shell, $(if $(PKG_CONFIG_LIBDIR),PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR),) $(PKG_CONFIG) --exists $1 && echo yes || echo no)
endef
define dependency_version
$(call debug_shell, $(if $(PKG_CONFIG_LIBDIR),PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR),) $(PKG_CONFIG) --modversion $1 2>/dev/null)
endef
define dependency_cflags
$(call debug_shell, $(if $(PKG_CONFIG_LIBDIR),PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR),) $(PKG_CONFIG) --cflags $1 2>/dev/null)
endef
define dependency_ldflags
$(call debug_shell, $(if $(PKG_CONFIG_LIBDIR),PKG_CONFIG_LIBDIR=$(PKG_CONFIG_LIBDIR),) $(PKG_CONFIG) --libs --static $1 2>/dev/null)
endef