Sorry, forgot to send this to bug-make as well.

---------- Forwarded message ----------
From: Tim Murphy <[EMAIL PROTECTED]>
Date: 2008/6/6
Subject: Re: Help : how to use $(or condition ) & $(and condition ) in
makefile
To: [EMAIL PROTECTED]


Hi,

# do "equal" by seeing if a subst returns the empty string:
A_is_2:=$(if $(subst 2,,$(A)),,T)
B_is_4:=$(if $(subst 4,,$(B)),,T)

AandB:=$(and $(A_is_2),$(B_is_4))

# then you could do something based on this:
ifneq ($(AandB),)
# do something . . . .
endif


One could make it look nicer by making an equals macro:
define eq
$(if $(1:$(2)=),,$(if $(2:$(1)=),,T))
endef

which you could use as follows:

ifneq ($(and $(call eq,$(A),2),$(call eq,$(B),4)),)
# do what you want to do when A=2 and B=4
# . . . .. . .
endif

Cheers,

Tim


2008/6/6 rakesh aggarwal <[EMAIL PROTECTED]>:

> Hi sam,
>
> Very very thanks for your valuable suggestion.
>
> I have one debut that I am explaining through this example.
>
> I have 2 variable (let assume A and B) which contain some value.
>
> I want to test A==2 and B==4 using $(and condition) function.
>
> How can I put this condition in function??
>
> I want only different output for the situation when any of the condition is
> wrong (either A != 2 or B != 4) and both  are  right  (A ==2 and B==4 ).
>
> result := $(and  condition )
>
> $(warning   result=$(result))
>
> Regards
> Rakesh
>
>
>
> --- On *Thu, 6/5/08, Sam Ravnborg <[EMAIL PROTECTED]>* wrote:
>
> From: Sam Ravnborg <[EMAIL PROTECTED]>
> Subject: Re: Help : how to use $(or condition ) & $(and condition ) in
> makefiles
> To: "rakesh aggarwal" <[EMAIL PROTECTED]>
> Cc: bug-make@gnu.org
> Date: Thursday, June 5, 2008, 11:28 PM
>
> On Thu, Jun 05, 2008 at 05:36:56AM -0700, rakesh aggarwal wrote:
> > Hi,
>
> >
> > I read the GNU make manual and found there are $(or condition ) and $(and
> condition ) functions. ( at
> http://www.gnu.org/software/make/manual/make.html#Conditional-Functions )
>
> > But i didnt get in which format i have to put conditions in these
> functions.
>
> Notice that this is condition and not
>  expressions.
>
> Sample:
>
> havefile := $(if $(wildcard myfile.c), YES, NO)
>
> $(warning HAVEFILE=$(HAVEFILE))
>
>
> This will print
> HAVEFILE=NO
>
> if no myfile.c exist (because the $(wildcard myfile.c) expands to an empty
>
> string
>
>       Sam
>
>
>
> _______________________________________________
> Bug-make mailing list
> Bug-make@gnu.org
> http://lists.gnu.org/mailman/listinfo/bug-make
>
>


-- 
You could help some brave and decent people to have access to uncensored
news by making a donation at:

http://www.thezimbabwean.co.uk/



-- 
You could help some brave and decent people to have access to uncensored
news by making a donation at:

http://www.thezimbabwean.co.uk/
_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to