Hudson
Hudson

Reputation: 21

Export preprocessor macro in makefile

I want to export preprocessor macro to an internal makefile from the main makefile in a particular target.

example: Main_Makefile

target1 :
   CXXFLAGS+=-DNewFlag=NewFlag
   cd some_directory; make

Here I want to use value of CXXFLAGS which is -DNewFlag=NewFlag and is only defined under target1 in some_directory/make

Please let me know how can I achieve this.

Upvotes: 0

Views: 849

Answers (1)

MadScientist
MadScientist

Reputation: 100966

There is no way to append to a variable from the command line, unless you've made arrangements for it in the makefile of the subdirectory.

The simplest thing to do is use a different variable, like this:

target1:
        cd some_directory && $(MAKE) EXTRA_CXXFLAGS=-DNewFlag=NewFlag

(note you should always use $(MAKE) or ${MAKE} when invoking a sub-make, never make directly.)

Then in the subdirectory makefile you do something like this:

CXXFLAGS += $(EXTRA_CXXFLAGS)

Upvotes: 2

Related Questions