मेकफाइल में निर्भरता को परिभाषित करना
यह बहुत सामान्य है कि एक अंतिम बाइनरी विभिन्न स्रोत कोड और स्रोत हेडर फ़ाइलों पर निर्भर होगी। निर्भरता महत्वपूर्ण है क्योंकि वे करते हैंmakeकिसी भी लक्ष्य के लिए स्रोत के बारे में जाना जाता है। निम्नलिखित उदाहरण पर विचार करें -
hello: main.o factorial.o hello.o
$(CC) main.o factorial.o hello.o -o hello
यहाँ, हम बताते हैं makeयह हेल्लो main.o, factorial.o और hello.o फाइलों पर निर्भर है। इसलिए, जब भी इन ऑब्जेक्ट फ़ाइलों में से किसी में परिवर्तन होता है,make कार्रवाई करेंगे।
उसी समय, हमें यह बताने की जरूरत है makeकैसे .o फ़ाइलों को तैयार करने के लिए। इसलिए हमें उन निर्भरताओं को भी परिभाषित करने की आवश्यकता है -
main.o: main.cpp functions.h
$(CC) -c main.cpp
factorial.o: factorial.cpp functions.h
$(CC) -c factorial.cpp
hello.o: hello.cpp functions.h
$(CC) -c hello.cpp