Date: Wed, 08 Apr 2009 13:37:09 +0400 From: Boris Samorodov <bsam@ipt.ru> To: Giorgos Keramidas <keramida@ceid.upatras.gr> Cc: freebsd-questions@FreeBSD.org Subject: Re: make, list and M pattern Message-ID: <89475722@bb.ipt.ru> In-Reply-To: <871vs49nmw.fsf@kobe.laptop> (Giorgos Keramidas's message of "Wed\, 08 Apr 2009 00\:09\:43 %2B0300") References: <37646522@h30.sp.ipt.ru> <871vs49nmw.fsf@kobe.laptop>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 08 Apr 2009 00:09:43 +0300 Giorgos Keramidas wrote: > On Tue, 07 Apr 2009 23:54:13 +0400, Boris Samorodov <bsam@ipt.ru> wrote: > > > > 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 > > ----- > Hi Boris! :) Hi Giorgos, Mel and list! > This is not exactly what you asked for, but you can probably loop > instead of trying to match regular expressions: > keramida@kobe:/tmp$ cat -n Makefile > 1 LIST= f8 f9 > 2 USE_LINUX?= f9 > 3 > 4 LINUX_VERSION= ${USE_LINUX:C/[ ]*([^ ]*)[ ]*/\1/} > 5 > 6 .if defined(USE_LINUX) > 7 .for item in ${LIST} > 8 .if ${USE_LINUX} == ${item} > 9 RESULT= ${item} > 10 .endif > 11 .endfor > 12 .endif > 13 > 14 all: > 15 .if empty(RESULT) > 16 @echo Version ${LINUX_VERSION} is not valid. > 17 .else > 18 @echo Valid version ${RESULT} selected. > 19 .endif > keramida@kobe:/tmp$ make > Valid version f9 selected. > keramida@kobe:/tmp$ make -e USE_LINUX=f10 > Version f10 is not valid. > keramida@kobe:/tmp$ Hm, And what if I need to compare two lists and detect if they have any common items? VALID_LIST=f8 f9 INPUT_LIST=f6 f7 f8 Nested .for loops are not helpful since .if statement is not useful here: .for x in ${VALID_LIST} . for y in ${INPUT_LIST} . if $x == $y -- make error here Thanks! WBR -- Boris Samorodov (bsam) Research Engineer, http://www.ipt.ru Telephone & Internet SP FreeBSD Committer, http://www.FreeBSD.org The Power To Serve
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?89475722>