summaryrefslogtreecommitdiffstats
path: root/Makefile.include
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.include')
-rw-r--r--Makefile.include65
1 files changed, 65 insertions, 0 deletions
diff --git a/Makefile.include b/Makefile.include
new file mode 100644
index 000000000..5f81ccc9d
--- /dev/null
+++ b/Makefile.include
@@ -0,0 +1,65 @@
+#
+# 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 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 -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 has_dependency # $1: dependency, $2: action/target
+$(if $(findstring $(strip $1),yes), $(strip $2))
+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