Makefile Nedir ?

C ve C++ dilleri ile uğraşanlar yada en azından C veya C++ ile yazılmış bir programın kaynak kodlarını edinip derlemeye çalışanlar makefile dosyasını diğer kaynak kodlar arasında görmüşlerdir. Makefile hazırlanmış olan programın kısaca yeniden derlenmesine olanak sağlayarak, değişiklikleri algılayarak bu farklılıkları üzerinde derleme işlemini gerçekleştiriyor. Bu sayede programın derleme aşaması daha kısa sürmüş oluyor ki bizim için en önemli şey zaman 🙂 .

Makefile dosyasını kullanabilmek için her linux dağıtımında yüklü olarak gelen make aracını kullanacağım.

Öncelikle örnek bir makefile dosyası oluşturalım ve içerisine şunları yazalım ve hello.c adına sahip kaynak kod dosyamızıda oluşturalım.

output: hello.o
gcc hello.o -o programim

hello.o: hello.c
gcc -c hello.c

clean:
rm *.o

install:
cp programim /bin

Makefile dosyamızın içerisine yazdığımız kodlar sırasıyla :

  • output : derlenecek kaynak kodumuzu ve nasıl derleneceğini referans gösteriyor
  • clean   : derlemeden sonra oluşan object dosyalarını yok edecektir.
  • install  : son olarak programim adındaki çalışmaya hazır programımızı /bin dizininin içine atacaktır. Bu sayede her seferinde ./ yazma zahtetinden de kurtumuş oluyoruz.

Son olarak makefile dosyamızı aktif etmek için terminal ekranına gidip make aracını çalıştıralım.

gcc -c hello.c
gcc hello.o -o programim

Bu çıktı bize programımızın başarılı bir şekilde derlendiğini bildirmektedir. İşlemin ardından make clean diyerek .o uzantılı dosyalarımızı da yok ediyoruz.

rm *.o

Artık programımız ve proje dosyamız tertemiz. Yükleme işlemini başlatmak içinse make install diyelim.

cp programim /bin

Çalışan kodu bize gösterecektir.Makefile dosyası ile oluşturduğumuz programımız direkt olarak çağırılarak çalıştırılabilir duruma gelmiştir.