How to switch behaviour according to glibc version?

2016-04-05 Thread David Aldrich
Hi I am running gnu make 4.1 on Ubuntu. Make builds my C++ application that requires glibc 2.22 or higher. Ubuntu 14.04 has only glibc 2.19 so my makefile checks the host o/s and, if it's Ubuntu, it links to my private copy of glibc 2.22: GLIBC_FLAGS= ifeq ($(DISTRO),debian) echo "Warnin

Re: How to switch behaviour according to glibc version?

2016-04-05 Thread David Boyce
This is primarily a shell coding question, not a make question. Once you've worked out how to do it at the shell level you can wrap the result in the $(shell ...) make function and, assuming proper escaping, it will work the same. It looks to me like the version is the last word of the first line,

RE: How to switch behaviour according to glibc version?

2016-04-05 Thread David Aldrich
Hi David Thanks for your answer to my question. I have one outstanding problem. Part of the makefile is now: ifeq ($(DISTRO),debian) verstr := $(ldd --version | head -1 | awk '{print $NF}') @echo glibc $(verstr) detected ifneq ($(call version_ge,$(verstr),2.22),TRUE) @echo "Warning: sy

Re: How to switch behaviour according to glibc version?

2016-04-05 Thread David Boyce
Makefiles are divided between make syntax and shell (recipe) syntax. Here you're trying to use a shell command (echo) in a place that's not a recipe. Replace it with $(warning ...) which is the make-syntax equivalent. On Tue, Apr 5, 2016 at 9:24 AM, David Aldrich wrote: > Hi David > > Thanks for