Gnu make: default values and conditionals


 
Thread Tools Search this Thread
Top Forums Programming Gnu make: default values and conditionals
# 1  
Old 11-08-2017
Gnu make: default values and conditionals

I need some help.

I use variables and conditionals to build with or without specic libraries. I set
Code:
USEAL ?= 1 # get value from cmd, defaults to 1

(see comment)
the conditional is:
Code:
ifeq ($(USEAL),1)
    LIBS = <any libs>
else
    LIBS = 
endif

Its amazing that this works when invoked from the command line setting the variable to 1 explicit:
Code:
make USEAL=1

However when invoked without setting the variable
Code:
make

it doesn't work.
I already defined a test target to print USEAL's default value, which is 1.

It looks like 1 != 1

any idea?
# 2  
Old 11-08-2017
In what way does it "not work"? What actually happens?
# 3  
Old 11-08-2017
Quote:
Originally Posted by Corona688
In what way does it "not work"? What actually happens?
USEAL's default value is 1, nevertheless it ignores it as if USEAL's default value would be 0, unless I invoke with USEAL=1.
# 4  
Old 11-09-2017
I've tested it with this Makefile:

Code:
USEAL ?= 1

ifeq ($(USEAL),1)
    LIBS = qwertyuip
else
    LIBS =
endif

all:
        echo $(LIBS)

Code:
$ make
echo qwertyuip
qwertyuip

$ make USEAL=0
echo

$ make USEAL=1
echo qwertyuip
qwertyuip

$

Seems to work. The problem may be elsewhere, if there's anything to your makefile you haven't posted yet.
# 5  
Old 11-09-2017
Quote:
Originally Posted by Corona688
$[/code]Seems to work. The problem may be elsewhere, if there's anything to your makefile you haven't posted yet.
Thanks a lot!
I did the same job. Then I carefully copied all the working lines from the test makefile into the real one et voila: it works. The only real difference is that the
Code:
VARIABLE ?= DEF.VAL

now is located at the beginning of the makefile, whereas before it was placed somewhat in the middle part.
This User Gave Thanks to dodona For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

I received a WARN when was configuring GNU make,

When I tried to configure GNU make, I received:... WARNING: Your system has neither waitpid() nor wait3(). Without one of these, signal handling is unreliable You should be aware that running GNU make with -j could result in erratic behavior. ... What is that supposed to mean ? my spec: ... (1 Reply)
Discussion started by: abdulbadii
1 Replies

2. Shell Programming and Scripting

extension building make GNU Linux

Hi, I do "touch poub.mlc" Download my Makefile, But when I try : make -f Makefile.txt(.txt in order my file to be accepted for upload), it says:"no rule for poub.mlo target" What is wrong in my Makefile(test yourself please before posting)? (1 Reply)
Discussion started by: synhedionn
1 Replies

3. Shell Programming and Scripting

GNU make doesn't pick up changes

It's been a while since I had to write a Makefile, but I've managed to clobber this together: SRC=module1.c module2.c OBJS=$(SRC:%.c=%.o) HDR=include1.h include2.h CC=gcc CFLAGS=-Wall -ggdb -D_XOPEN_SOURCE -I. -ansi all: program program: $(OBJS) $(CC) $(CFLAGS) -o $@ $(OBJS) ... (3 Replies)
Discussion started by: pludi
3 Replies

4. AIX

Not picking up the GNU version of make

Hi team, I am new to unix,and need your advice on the below. I am using aix5.3 and have installed make-3.82 on the server. I need to use gmake for configuring and installing a package ,but it is giving error at the below root@sapsrp:/usr/tmp/xymon-4.3.2 # ./configure.server ... (7 Replies)
Discussion started by: sonal kumar
7 Replies

5. Programming

A question about Makefile run by GNU make

Hello everybody, Currently I'm learning how to build projects (C programming) with GNU make. I have a problem with one Makefile and I would appreciate if you could kindly give me a hand. Here is the environment: OS: Redhat linux 5 compiler: gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)... (2 Replies)
Discussion started by: dariyoosh
2 Replies

6. SCO

GNU cpp and make on SCO

Installed GNU make and the GNU C/C++ compiler on SCO Openserver 5.0.7 recently. Only a normal user is able to run make and compile programs - root is not able to. Under root, make do run, but root can't access the compiler at all, even tho I set root's path to point to the compiler.... (0 Replies)
Discussion started by: The_Librarian
0 Replies

7. Programming

Detecting host OS in Gnu make

Is this possible? Right now I'm developing some code for Linux, Windows and OS X. To build on each of the systems I've currently got separate build targets for each platform. Ideally I'd like to set up a single make rule that can detect the appropriate target and build it. I know this is... (2 Replies)
Discussion started by: G_Morgan
2 Replies

8. UNIX for Dummies Questions & Answers

What's the difference between PMake and GNU Make?

My system is ubuntu, can I use PMake ? (0 Replies)
Discussion started by: meili100
0 Replies

9. UNIX for Advanced & Expert Users

GNU's make error codes - list

Hi, I often encounter make errors. Many a times, a corresponding error code is also shown, like make: Error 56 (ignored) make: Error 91 (ignored) make: Error 96 (ignored) et al. I tried google'ing as well as searching this forum for what these error codes mean. I know, make... (1 Reply)
Discussion started by: vino
1 Replies

10. UNIX for Advanced & Expert Users

Problems with gnu make

I am running a make file through the gnu make tool and i am getting the following error jsh1035c:/users/egate453/admegate/kapil/samples $ make -f GNUmakefile queue_c make -f ./GNUmakefile queue_c in_objdir=1 build_root=/users/egate453/admegate/kapil/samples make: Entering directory... (2 Replies)
Discussion started by: handak9
2 Replies
Login or Register to Ask a Question