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ıklarve 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=gccgibi kendi değişkenlerin. - Güncellik:
makedeğiştirilme zamanlarını karşılaştırır. Yalnızca bağımlılıkları daha yeni olan hedefler derlenir. - .PHONY:
testveyacleangibi dosyasız hedefler, aynı adlı bir dosya onları engellemesin diye böyle bildirilir. - Paralel:
make -j8bağı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