Apa itu makefile dan bagaimana kita bisa membuatnya?

8

Saya tahu ini adalah pertanyaan konyol, tetapi karena saya berusaha keras untuk belajar linux sendiri, saya butuh bantuan dari Anda.

Saya menemukan tugas ini di internet dan saya mencoba menyelesaikannya tetapi saya tidak mengerti persis bagaimana saya bisa menggunakan makefile di linux dan bagaimana saya bisa membuatnya.

Misalkan direktori kerja pencetakan saya /home/george/Documents

Saya ingin membuat makefile yang melakukan hal berikut:

  1. Menampilkan pesan sebagai berikut "hello work, today is Sun". Sun berasal dari hari Minggu. Jadi saya harus menggunakan dateperintah dalam file make ini untuk menampilkan hanya tiga huruf pertama.
  2. kompres /etc/hostsdalam /tmpmenggunakan gzip(mungkin di sini harus seperti

    gzip -c SOURCE DESTINATION # ?? 
    

Bersulang

Adrian George
sumber
Makefiles ada di sana untuk secara selektif membangun file objek usang dari file sumber, dalam aktivitas pengembangan perangkat lunak. Tidak ada hubungannya dengan apa yang akan Anda lakukan.
enzotib

Jawaban:

8

untuk menjawab pertanyaan Anda, saya tidak dapat memberikan jawaban satu baris / paragraf karena ini berkaitan dengan segala hal. Baca tautan pertama memiliki semua yang Anda butuhkan dengan contoh juga.

Tutorial bagus yang bisa menjelaskan segalanya tentang make

rɑːdʒɑ
sumber
3
tautan pertama adalah: mrbook.org/blog/tutorials/make
Shahryar Saljoughi
mrbook.org/blog/tutorials/make tutorial menggunakan kode c ++ yang sudah kedaluwarsa dan tidak lagi dikompilasi. Lihat pertanyaan ini untuk memahami dan memperbaikinya.
David
Tautan sudah mati.
ComputerScientist
2

Makefile digunakan sebagai "peta" untuk kompilasi program C. Mereka bekerja dengan makeutilitas, yang menggambarkan bagaimana suatu program harus dikompilasi / dihubungkan untuk bekerja dengan benar setelah berubah menjadi file yang dapat dieksekusi. Untuk tugas UNIX / shell global, Anda mencari skrip shell, bukan makefiles :)

Lihat http://en.wikipedia.org/wiki/Make_(software)#Makefiles untuk informasi lebih lanjut tentang makefiles, dan http://en.wikipedia.org/wiki/Shell_script untuk menemukan skrip shell.

Skrip shell dasar untuk apa yang Anda coba lakukan adalah:

#!/bin/bash
echo "Hello world, today is $(date +%a)"
gzip -c SOURCE DESTINATION

Menyimpan ini dalam sebuah file, dan jalankan menggunakan shell Anda prompt ( bash myscript.sh, sh myscript.sh, ...). Anda juga dapat membuat skrip dapat dieksekusi menggunakan:

chmod +x myscript.sh

Dan kemudian jalankan dengan penerjemah default Anda dengan:

./myscript.sh
John WH Smith
sumber
1
Saya mencoba membuat makefile yang melakukan ini bukan skrip shell.
Adrian George
Maka Anda harus mengembangkan program C yang melakukan ini, dan mengompilasinya menggunakan Makefile, jika Anda mau. Makefile tidak menjalankan tugas-tugas Linux, mereka memandu kompilasi program C, itu adalah hal yang sama sekali berbeda.
John WH Smith
1
@ JohnWHSmith Tidak ada yang istimewa tentang kompilasi program C. Makefiles dapat digunakan untuk melakukan berbagai tugas. (Dengan mengatakan itu, banyak tugas yang kurang cocok untuk penggunaan makefile.)
Eliah Kagan
0

Mengapa tidak membuat skrip shell, lalu buat tautan simbolis yang mengarah ke skrip shell yang Anda buat? Tempatkan tautan simbolik di direktori yang ada di PATH, sehingga Anda dapat 'menjalankan' tautan simbolik di mana pun direktori itu berada.

pengguna544202
sumber