From 3908725d3b843da252ef8642a9a1136f7dc50f02 Mon Sep 17 00:00:00 2001 From: Michael Holzheu Date: Wed, 22 Nov 2017 13:41:19 +0100 Subject: [PATCH] zfcpdump: Add HAVE_LIBC_STATIC check For systems that do not have glibc-static installed, print the following error message when building zfcpdump: s390-tools/zfcpdump # make REQCHK zfcpdump (stdio.h) **************************************************************** * Missing build requirement for: zfcpdump * * Install package..............: glibc-static or libc-dev * * You can skip build with......: make HAVE_LIBC_STATIC=0 * **************************************************************** To allow the check add a new compiler/linker option to the "check_dep" macro and do full compile/link instead of a simple compile. Signed-off-by: Michael Holzheu --- README.md | 16 ++++++++-------- common.mak | 3 ++- zfcpdump/Makefile | 24 ++++++++++++++++++++++-- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index c8e4df28..7e9b50bf 100644 --- a/README.md +++ b/README.md @@ -256,14 +256,14 @@ HAVE_FUSE=0`". The following table provides an overview of the used libraries and build options: -| __LIBRARY__ |__BUILD OPTION__| __TOOLS__ | -|----------------|:--------------:|:-------------------------------------:| -| fuse | `HAVE_FUSE` | cmsfs-fuse, zdsfs, hmcdrvfs, zgetdump | -| zlib | `HAVE_ZLIB` | zgetdump, dump2tar | -| ncurses | `HAVE_NCURSES` | hyptop | -| pfm | `HAVE_PFM` | cpacfstats | -| net-snmp | `HAVE_SNMP` | osasnmpd | -| glibc-static | `n/a` | zfcpdump | +| __LIBRARY__ | __BUILD OPTION__ | __TOOLS__ | +|----------------|:------------------:|:-------------------------------------:| +| fuse | `HAVE_FUSE` | cmsfs-fuse, zdsfs, hmcdrvfs, zgetdump | +| zlib | `HAVE_ZLIB` | zgetdump, dump2tar | +| ncurses | `HAVE_NCURSES` | hyptop | +| pfm | `HAVE_PFM` | cpacfstats | +| net-snmp | `HAVE_SNMP` | osasnmpd | +| glibc-static | `HAVE_LIBC_STATIC` | zfcpdump | This table lists additional build or install options: diff --git a/common.mak b/common.mak index bb6cdf06..e3328ab6 100644 --- a/common.mak +++ b/common.mak @@ -113,9 +113,10 @@ DEFAULT_LDFLAGS = -rdynamic # $2: Name of include file to check # $3: Name of required devel package # $4: Option to skip build (e.g. HAVE_FUSE=0) +# $5: Additional compiler & linker options (optional) # check_dep=\ -printf "\#include <%s>" $2 | ( $(CC) $(filter-out --coverage, $(ALL_CFLAGS)) $(ALL_CPPFLAGS) -c -o /dev/null -xc - ) > /dev/null 2>&1; \ +printf "\#include <%s>\n int main(void) {return 0;}" $2 | ( $(CC) $(filter-out --coverage, $(ALL_CFLAGS)) $(ALL_CPPFLAGS) $5 -o /dev/null -xc - ) > /dev/null 2>&1; \ if [ $$? != 0 ]; \ then \ printf " REQCHK %s (%s)\n" $1 $2; \ diff --git a/zfcpdump/Makefile b/zfcpdump/Makefile index ea17294f..5fcb0739 100644 --- a/zfcpdump/Makefile +++ b/zfcpdump/Makefile @@ -2,7 +2,25 @@ include ../common.mak CPIOINIT = $(call echocmd," CPIOINI ",/$@)./cpioinit -all: $(ZFCPDUMP_PART_RD) +ifeq (${HAVE_LIBC_STATIC},0) + +all: + $(SKIP) HAVE_LIBC_STATIC=0 + +install: + $(SKIP) HAVE_LIBC_STATIC=0 + +else + +check_dep: + $(call check_dep, \ + "zfcpdump", \ + "stdio.h", \ + "glibc-static or libc-dev", \ + "HAVE_LIBC_STATIC=0", \ + "-static") + +all: check_dep $(ZFCPDUMP_PART_RD) cpioinit: cpioinit.c $(HOSTCC) $(HOSTCFLAGS) -o $@ $^ @@ -19,7 +37,9 @@ $(ZFCPDUMP_PART_RD): cpioinit zfcpdump_part install: all $(INSTALL) -m 611 $(ZFCPDUMP_PART_RD) $(DESTDIR)$(ZFCPDUMP_DIR) +endif + clean: rm -f *.o *.gz *.tmp *~ zfcpdump_part cpioinit $(ZFCPDUMP_PART_RD) -.PHONY: all clean install +.PHONY: all clean install check_dep