AND && in ifeq in makefile


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users AND && in ifeq in makefile
# 1  
Old 10-24-2011
AND && in ifeq in makefile

Hi,

Can anybody help mw how to use 2 conditinal directives in makefile (with AND=&&), so far none of my tries succedded.
Getting this warning like below. I thought that C's && will work, but alas, played with (), spaces and etc..

and I have only GNU Make 3.80

Code:
ifeq ($(VAR1),15) && ($(VAR2),32)
MOD_CFLAGS1 += -m64
endif
*** Extraneous text after `ifeq' directive

Tx all
# 2  
Old 10-25-2011
I assume from your syntax you are talking gmake which is different than some of the default versions of make that I've come across. I had a quick read through the manual (url at end) and I don't believe that gmake supports complex expressions. I thought maybe nested if statements, given you want ANDing rather than ORing, but that seems no good too. The only way I was able to do something like you want was to 'shell out' to do the test.

Here's an example:
Code:
SHELL = /usr/bin/ksh
ifeq ($(shell [[ $(V1) == 15 && $(V2) == 16 ]] && echo true ),true)
    v2=true
else
    v2=false
endif

verify:
    @echo $(v2)

To test I ran these commands:
Code:
V2=18 V1=15 gmake verify    # should print false
V2=16 V1=15 gmake verify    # should print true

Make sure that your SHELL variable is set to a shell that supports the double bracket syntax (Korn shell and bash should both work).

GNU `make'
# 3  
Old 10-25-2011
tx, Adama. It's bit much for me, how to make it work syntax wise, can I still do nested if.
# 4  
Old 10-25-2011
No, I don't believe that nested ifs are supported.

This is what you need based on your original post.

Code:
SHELL = /usr/bin/ksh

ifeq ($(shell [[ $(VAR1) == 15 && $(VAR2) == 32 ]] && echo true ),true)
   MOD_CFLAGS1 += -m64
endif

# 5  
Old 10-26-2011
Thanks, all dear friends ! It all works and after some gnu upgrade it also works with nested
Code:
ifeq ($(VAR1),15) 
   ifeq ($(VAR2),32)         MOD_CFLAGS1 += -m64
   endif
endif
## and without specifiin shell, I have it like 
-bash-3.00$ echo $SHELL
/bin/bash

This User Gave Thanks to trento17 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

SFTP Shell Script Get & Delete && Upload & Delete

Hi All, Do you have any sample script, - auto get file from SFTP remote server and delete file in remove server after downloaded. - only download specify filename - auto upload file from local to SFTP remote server and delete local folder file after uploaded - only upload specify filename ... (3 Replies)
Discussion started by: weesiong
3 Replies

2. Shell Programming and Scripting

GNU & BSD Makefile Directives & Conditions Compatibility

Firstly, I would like to apologize if this is not the appropriate sub-forum to post about GNU/BSD makefile scripting. Though my code is in C++, because I am focusing on the makefile I thought it would go better in shell scripting. Please correct me if I am wrong. Secondly, I am not interested in... (0 Replies)
Discussion started by: AntumDeluge
0 Replies

3. Shell Programming and Scripting

Sort a the file & refine data column & row format

cat file1.txt field1 "user1": field2:"data-cde" field3:"data-pqr" field4:"data-mno" field1 "user1": field2:"data-dcb" field3:"data-mxz" field4:"data-zul" field1 "user2": field2:"data-cqz" field3:"data-xoq" field4:"data-pos" Now i need to have the date like below. i have just... (7 Replies)
Discussion started by: ckaramsetty
7 Replies

4. Shell Programming and Scripting

Replace & sign to &amp word

Hi, I have text file abc.txt. In this file, I have the following data. Input: Mr Smith &amp Mrs Smith Mr Smith &apos Mrs Smith Mr Smith & Mrs Smith Mr Smith& Mrs Smith Mr Smith &Mrs Smith Output: Mr Smith &amp Mrs Smith Mr Smith &apos Mrs Smith Mr Smith &amp Mrs Smith Mr Smith&amp... (4 Replies)
Discussion started by: naveed
4 Replies

5. Shell Programming and Scripting

replace & with & xml file

Hello All I have a xml file with many sets of records like this <mytag>mydata</mytag> <tag2>data&</tag2> also same file can be like this <mytag>mydata</mytag> <tag2>data&</tag2> <tag3>data2&amp;data3</tag3> Now i can grep & and replace with &amp; for whole file but it will replace all... (4 Replies)
Discussion started by: lokaish23
4 Replies

6. Shell Programming and Scripting

PHP read large string & split in multidimensional arrays & assign fieldnames & write into MYSQL

Hi, I hope the title does not scare people to look into this thread but it describes roughly what I'm trying to do. I need a solution in PHP. I'm a programming beginner, so it might be that the approach to solve this, might be easier to solve with an other approach of someone else, so if you... (0 Replies)
Discussion started by: lowmaster
0 Replies

7. Shell Programming and Scripting

Find & Replace string in multiple files & folders using perl

find . -type f -name "*.sql" -print|xargs perl -i -pe 's/pattern/replaced/g' this is simple logic to find and replace in multiple files & folders Hope this helps. Thanks Zaheer (0 Replies)
Discussion started by: Zaheer.mic
0 Replies

8. Programming

makefile ifeq not working

If I have a makefile that looks like this: regress = NO echo_set_regress: regress = YES echo_set_regress: echo_regress @echo $(regress) echo_regress: @echo $(regress) ifeq ($(regress), NO) @echo "regress == NO" else @echo "regress == YES" endifWhen I run make... (2 Replies)
Discussion started by: mhornee
2 Replies

9. UNIX for Dummies Questions & Answers

Problem with xterm & tcsh & sourcing a script in a single command

Hi friends, I have a script that sets the env variable path based on different conditions. Now the new path variable setting should not done in the same terminal or same shell. Only a new terminal or new shell should have the new path env variable set. I am able to do this only as follows: >cd... (1 Reply)
Discussion started by: sowmya005
1 Replies

10. UNIX for Dummies Questions & Answers

Search for & edit rows & columns in data file and pipe

Dear unix gurus, I have a data file with header information about a subject and also 3 columns of n rows of data on various items he owns. The data file looks something like this: adam peter blah blah blah blah blah blah car 01 30 200 02 31 400 03 57 121 .. .. .. .. .. .. n y... (8 Replies)
Discussion started by: tintin72
8 Replies
Login or Register to Ask a Question