22/11/2021

GNU Make

İlk defa olmasına rağmen keşfettiğim “make”.

Asli dokümanı gnu sayfasından indirilebilir.

https://www.gnu.org/software/make/manual/make.pdf

Ben burda basitçe bir örnek yapacağım ve benim örneğim C++ vs için değil. Sıradan bir otomasyon için.

Docker da makefile kullanızor bu nedenle öğrennmiştim ve son derece ilgimi çekti.

Hemen bir örnek ile anlatayım

all: run_swaks
install_swaks:
        curl -l http://www.jetmore.org/john/code/swaks/files/swaks-20201014.0/swaks -o /mnt/c/Users/can/Docker/Make/swaks.pl
        chmod 700 /mnt/c/Users/can/Docker/Make/swaks.pl
run_swaks: install_swaks
          perl ./swaks.pl --to can@mail.de --from can@mail.de --server smtp.mail.de --helo mail.de --body "Works"
clean:
        rm swaks.pl

burada “install_swaks:” bir target tir. altında da bash te yaptığım işlemler mevcut. Bu komutlar her biri bir satıra gelecek şekilde yazılır. Bu komutlara “recipe” yada tarif denir.

run_swaks: install_swaks ” run_swaks hedefi önce “install_swaks” ın başarılı olarak çalışmasına bağımlıdır demektir.

“all:” –> bu satır olmadığı zaman make komutu ile bir target vermek zorundayız.

$ make run_swaks

gibi.

  • Önemli konulardan biride clean kuralı oluşturmak. Böylece oluşturduğumuz dosyaları sileriz ki yeniden make yapabilelim.
  • Make default olarak “Makefile” isiml dosyayı arar. Eğer başka bir dosya kullanmak istersek “-f” ile dosyayı göstermeliyiz.

Leave a Reply