fuenfundachtzig
fuenfundachtzig

Reputation: 8352

Output in makefile at top-level

I am setting a variable in a makefile like this:

SOMEVAR = foo

This makefile later includes some other makefile in which the actual building of programs takes place:

include generic/Makefile.common

So no build targets are defined in the first makefile, it's only setting up variables which are then used by the common generic makefile to do the actual package building.

Now I know that I should be careful when using foo, so to remind myself of this, I want to print a warning message whenever this makefile is used to setup the make process. The problem is that I cannot just insert an echo command after the variable definition, because we are not yet building something there.

Is there a solution (more elegant than adding a fake target where the message is printed which would destroy the separation of setting variables and building)?

Upvotes: 7

Views: 10252

Answers (2)

Paulo Alexandre
Paulo Alexandre

Reputation: 902

According with official documentation there is three ways to do a top-level output in a makefile

  1. $(error text)
  2. $(warning text)
  3. $(info text)

Just in case you want do that in another way.

I hope helps.

Upvotes: 9

Beta
Beta

Reputation: 99094

SOMEVAR = foo
$(warning be careful with foo)

Upvotes: 18

Related Questions