@@ -1,3 +1,7 @@
+HAVE_C_HEADER = $(shell if echo "\#include <$(1)>" | \
+ $(CC) -x c -c - 2>/dev/null; then echo "$(2)"; \
+ else echo "$(3)"; fi)
+
C_TARGETS := \
loblksize \
loop_get_status_null \
@@ -13,9 +17,11 @@ CXX_TARGETS := \
TARGETS := $(C_TARGETS) $(CXX_TARGETS)
-override CFLAGS := -O2 -Wall -Wshadow $(CFLAGS)
+CONFIG_DEFS := $(call HAVE_C_HEADER,linux/blkzoned.h,-DHAVE_LINUX_BLKZONED_H)
+
+override CFLAGS := -O2 -Wall -Wshadow $(CFLAGS) $(CONFIG_DEFS)
override CXXFLAGS := -O2 -std=c++11 -Wall -Wextra -Wshadow -Wno-sign-compare \
- -Werror $(CXXFLAGS)
+ -Werror $(CXXFLAGS) $(CONFIG_DEFS)
all: $(TARGETS)
@@ -6,7 +6,9 @@
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
+#ifdef HAVE_LINUX_BLKZONED_H
#include <linux/blkzoned.h>
+#endif
#include <linux/types.h>
#ifndef BLKGETZONESZ
The Travis environment in which the continous integration build is run does not have the <linux/blkzoned.h> header file. Make sure that the zbdioctl.c source file builds fine without that header file. Cc: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com> Cc: Chaitanya Kulkarni <Chaitanya.Kulkarni@wdc.com> Fixes: d42cc3f85e0d ("src: Introduce zbdioctl program") Signed-off-by: Bart Van Assche <bvanassche@acm.org> --- src/Makefile | 10 ++++++++-- src/zbdioctl.c | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-)