help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Question on targets and goals


From: Oleksandr Gavenko
Subject: Re: Question on targets and goals
Date: Mon, 08 Aug 2011 16:30:30 +0300
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20110624 Thunderbird/5.0

08.08.2011 15:01, Jeffrey Walton пишет:
On Mon, Aug 8, 2011 at 7:57 AM, Greg Chicares<address@hidden>  wrote:
On 2011-08-08 10:51Z, Jeffrey Walton wrote:

I would like to invoke make with a debug or release configuration, but
without a rule:
     `make debug` or `make release`

Later:

ifeq ($(MAKECMDGOALS),debug)
   CXXFLAGS += -DDEBUG=1 -g3 -ggdb -O0
endif

Because I don't have a rule, I'm getting a make error:
     make: *** No rule to make target `debug'.  Stop.

So I think I've figured out how *not* to do it.

I need to pick up debug or release, then invoke the `all` rule.  Can
anyone suggest a way that works?

Untested:

`make build_type=debug all` or `make build_type=release all`

ifeq (debug,$(findstring debug,$(build_type)))
  CXXFLAGS += -DDEBUG=1 -g3 -ggdb -O0
endif
Thanks Greg. I was trying to stay away from the flags style since its
less intuitive (we're targeting folks whose primary language might not
be C/C++).

   `make debug` =>  easy, no user questions
   `make build_type=debug all` =>  what was that flag again?

How about:

debug: CXXFLAGS += -DDEBUG=1 -g3 -ggdb -O0
debug: all

release: CXXFLAGS += -UDEBUG -O2
release: all

Read "6.11 Pattern-specific Variable Values".

--
С уважением, Александр Гавенко.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]