Help on Makefile
Eljay Love-Jensen
eljay@adobe.com
Thu Oct 14 11:34:00 GMT 2004
Hi Lalit Seth,
Your question is off-topic for this forum.
- - - - - - - - - - - - - - - - - - - - - -
For doing something like:
gmake debug
...and...
gmake release
Do something like this near the beginning of your makefile:
ifeq ($(MAKECMDGOALS),debug)
BUILD:=debug
endif
ifeq ($(MAKECMDGOALS),release)
BUILD:=release
endif
ifeq ($(findstring $(BUILD),debug release),)
$(error BUILD=$(BUILD) is unknown, must be BUILD=release or BUILD=debug)
endif
And this near the end:
.PHONY : debug release
debug: all
release: all
And you can use the $(BUILD) variable to determine what compiler settings
you want, and what directory you want to put your build files.
As given, "make clean" will fail; but "make BUILD=debug clean" will
succeed. You could either put in a "BUILD:=debug" as the default (near the
very top of the makefile), so "make" will always do a BUILD:=debug by default.
Or, you may want to add a "BUILD:=clean" option that cleans both debug and
release interim generated files.
- - - - - - - - - - - - - - - - - - - - - -
However, I highly recommend that you DO NOT do that. Instead, I recommend
you do:
gmake BUILD=debug
...and...
gmake BUILD=release
Using "debug" and "release" as targets is counter-intuitive to the make
paradigm. In my opinion.
HTH,
--Eljay
More information about the Gcc-help
mailing list