We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

About Makefile

aishwaria
aishwaria asked
on
Medium Priority
365 Views
Last Modified: 2010-04-15
I have to include certain library paths only is a particular condition is true.
for example,
i need to include file.h,
INCLUDE_HEADER = file1.h file.h
only if s=1
otherwise
i need only INCLUDE_HEADER = file1.h

How can i test this condition in a Makefile.

Comment
Watch Question

Commented:
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview

Commented:
ankuratvb slipped in,

anyway what i said is for GNU "make"

I don't know if that will work in microsoft environ

-/abhijit/

Author

Commented:
Can i get the s value as a command line argument
>Can i get the s value as a command line argument

I am not sure about that.

Another Option.You could write a shell script for this.

Author

Commented:
Can you give me some examples for this.
#!/bin/bash
S=1
SS=$1 #first command line argument

if [ $S -eq $SS ]      
then
#ur makefile command here      
else
#ur other makefile command here
fi

Save as:urfilename.sh

Execute as:bash urfilename.sh 2
where 2 is the value of S

Author

Commented:
but then the makefile is executed as
make -f Makefile

So i wish if it is done something like,

make -f Makefile -d 2

where 2 is the argument

can you suggest me some way to do like this.

-aishwaria

Commented:
Just as a sidenote , if your makefile is named "Makefile" or "makefile"
you dont need the "-f  Makefile"

make by default looks for a file called "Makefile" failing which it looks for "makefile"

/abhijit/
You could do this:

#!/bin/bash
S=1
SS=$1 #first command line argument

if [ $S -eq $SS ]    
then
make -f Makefile1
else
make -f Makefile2
fi


where Makefile1 is the makefile with the first include option
and MakeFile2 is the makefile with the other option.
Hope this helps.

Commented:
You can set some environment variables and export them.
This can be processed from inside the Makefile.

-ssnkumar

Commented:
from what i have gathered

using "autoconf" and "automake" sounds like a good idea but I am not good at those but if someone knows he/she can help.

/abhijit/
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a free trial preview!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.