मेरे पास अपनी परियोजना के लिए निम्नलिखित मेकफाइल है, और मैं इसे रिलीज़ और डीबग बिल्ड के लिए कॉन्फ़िगर करना चाहूंगा। मेरे कोड में, मेरे पास बहुत सारे #ifdef DEBUG
मैक्रोज़ हैं, इसलिए यह केवल इस मैक्रो को सेट -g3 -gdwarf2
करने और संकलक में झंडे जोड़ने की बात है । मैं यह कैसे कर सकता हूँ?
$(CC) = g++ -g3 -gdwarf2
$(cc) = gcc -g3 -gdwarf2
all: executable
executable: CommandParser.tab.o CommandParser.yy.o Command.o
g++ -g -o output CommandParser.yy.o CommandParser.tab.o Command.o -lfl
CommandParser.yy.o: CommandParser.l
flex -o CommandParser.yy.c CommandParser.l
gcc -g -c CommandParser.yy.c
CommandParser.tab.o: CommandParser.y
bison -d CommandParser.y
g++ -g -c CommandParser.tab.c
Command.o: Command.cpp
g++ -g -c Command.cpp
clean:
rm -f CommandParser.tab.* CommandParser.yy.* output *.o
बस स्पष्ट करने के लिए, जब मैं कहता हूं कि रिलीज़ / डिबग बनाता है, तो मैं चाहता हूं कि मैं केवल टाइप करूं make
और एक रिलीज बिल्ड प्राप्त करूं या make debug
एक डिबग बिल्ड प्राप्त करूं , बिना मेनुफाइल में चीजों को मैन्युअल रूप से टिप्पणी किए।
.PHONY