Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Apr 2009 08:45:04 +0200
From:      Mel Flynn <mel.flynn+fbsd.questions@mailing.thruhere.net>
To:        freebsd-questions@freebsd.org
Cc:        Boris Samorodov <bsam@ipt.ru>
Subject:   Re: make, list and M pattern
Message-ID:  <200904080845.04576.mel.flynn%2Bfbsd.questions@mailing.thruhere.net>
In-Reply-To: <37646522@h30.sp.ipt.ru>
References:  <37646522@h30.sp.ipt.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 07 April 2009 21:54:13 Boris Samorodov wrote:
> Hello List,
>
>
> I need to create a list with some valid values and check an input
> value. Should this makefile work?
> -----
> LIST=f8 f9
>
> all:
> 	@echo USE_LINUX=${USE_LINUX}, LIST=${LIST}
> .if empty(LIST:M${USE_LINUX})
> 	@echo The value is invalid
> .else
> 	@echo The value is valid
> .endif
> -----
> % make USE_LINUX=f8
> USE_LINUX=f8, LIST=f8 f9
> The value is invalid
> -----

Doesn't work because the match is not on words of the list but on the full 
list and you're not using globs.
Aside from Giorgos' method, one might consider:
LIST=f8 f9
LINUX_VER=invalid

.for _VERSION in ${LIST}
.if (${USE_LINUX} == "${_VERSION}")
LINUX_VER=${_VERSION}
.endif
.endfor

all:
.if !empty(LINUX_VER:Minvalid)
        @echo "Invalid linux version: ${USE_LINUX}"
.else
        @echo "Using linux version ${LINUX_VER}"
.endif

-- 
Mel



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904080845.04576.mel.flynn%2Bfbsd.questions>