EMZETT.
Giriş yap

Makefile temelleri

Kısaca: Bir Makefile, hangi dosyaların hangilerinden hangi komutlarla üretildiğini tanımlar. make sonra yalnızca eskimiş olanı yeniden derler.

Biraz daha ayrıntılı: Araç 1970’lerden kalmadır ama bugün de yaygındır; her dilden projeler için basit bir görev çalıştırıcı olarak da.

Ayrıntılı

  • Kural: hedef: bağımlılıklar ve altında sekme (tab) ile girintili komutlar.
program: main.o util.o
	cc -o program main.o util.o
 
%.o: %.c
	cc -c $< -o $@
  • Değişkenler: $@ (hedef), $< (ilk bağımlılık), $^ (hepsi). CC=gcc gibi kendi değişkenlerin.
  • Güncellik: make değiştirilme zamanlarını karşılaştırır. Yalnızca bağımlılıkları daha yeni olan hedefler derlenir.
  • .PHONY: test veya clean gibi dosyasız hedefler, aynı adlı bir dosya onları engellemesin diye böyle bildirilir.
  • Paralel: make -j8 bağımsız hedefleri aynı anda derler.
  • Tuzaklar: Sekme yerine boşluk, her komut satırı kendi kabuğunda çalışır.
  • Alternatifler: CMake, Ninja, Just, Task. Bkz. bağımlılıklar ve kütüphaneler.

Ayrıca bak: Tekrarlanabilir derlemeler