include/prereq.mk: add RequireCHeader helper
authorChristian Marangi <ansuelsmth@gmail.com>
Mon, 9 Jan 2023 13:23:23 +0000 (14:23 +0100)
committerChristian Marangi <ansuelsmth@gmail.com>
Mon, 9 Jan 2023 20:25:06 +0000 (21:25 +0100)
Add RequireCHeader helper that will try to compile a fake c program with
the requested header included.

This is useful to check if a specific header is present in the system
without checking for the specific path.

This is a generilized version of the current ncurses test.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
include/prereq.mk

index 0033535e782a71fd7f15aae96f832f957d2fa32e..d34539ec3043f7c00d5dca9abd11cde883574b5c 100644 (file)
@@ -63,6 +63,18 @@ define RequireHeader
   $$(eval $$(call Require,$(1),$(2)))
 endef
 
+# 1: header to test
+# 2: failure message
+# 3: optional compile time test
+# 4: optional link library test (example -lncurses)
+define RequireCHeader
+  define Require/$(1)
+    echo 'int main(int argc, char **argv) { $(3); return 0; }' | gcc -include $(1) -x c -o $(TMP_DIR)/a.out - $(4)
+  endef
+
+  $$(eval $$(call Require,$(1),$(2)))
+endef
+
 define CleanupPython2
   define Require/python2-cleanup
        if [ -f "$(STAGING_DIR_HOST)/bin/python" ] && \