The GNU Make Book - Demystifying Linux Build Automation

Selain menulis tentang Linux dan menulis ulasan dan tutorial tentang distribusi dan alat, saya juga sangat terlibat dalam pengembangan perangkat lunak. Sayangnya, 99,9% pengembangan perangkat lunak itu terjadi di platform Windows.

Saya memiliki lebih dari 20 tahun pengalaman sebagai pengembang C ++, Visual Basic, VB.NET, dan C # dan saya juga seorang pengguna obras dengan SQL Server baik sebagai DBA dan pengembang.

Apa yang saya tidak begitu pandai adalah mengembangkan perangkat lunak untuk Linux. Ini adalah sesuatu yang saya tidak pernah benar-benar peduli. Alasan utamanya adalah setelah mengembangkan perangkat lunak pada siang hari, hal terakhir yang ingin saya lakukan adalah duduk-duduk di malam hari dengan menulis lebih banyak perangkat lunak.

Saya jelas suka bermain-main dengan scripting dan menulis program kecil yang aneh. Ini biasanya untuk proyek-proyek berbasis elektronik di Raspberry PI .

Satu hal yang banyak pengembang pada platform Windows akan mengalami masalah ketika pertama kali pindah ke Linux adalah belajar tentang alat yang diperlukan untuk membangun dan mengemas aplikasi.

Sejauh ini jenis aplikasi yang paling mudah untuk dikembangkan adalah aplikasi web karena umumnya mereka tidak memerlukan kode yang dikompilasi (PHP, Perl, Python) dan file-file tersebut dikerahkan ke tempat tertentu di server web.

Sejumlah besar aplikasi yang dibangun untuk Linux dikembangkan menggunakan C, C ++ atau Python. Kompilasi program C tunggal relatif mudah, tetapi ketika Anda perlu mengkompilasi sejumlah program C dengan beberapa dependensi, hal-hal menjadi sedikit lebih rumit.

GNU Make adalah alat pembuatan skrip otomatisasi yang membantu Anda mengompilasi aplikasi Anda lagi dan lagi dan dengan cara yang berbeda. Misalnya, Anda dapat memberikan parameter yang bergantung pada nilai akan menyusun aplikasi menggunakan 64-bit atau 32-bit.

Buku GNU Make telah ditulis oleh John Graham-Cumming untuk membantu pengguna GNU. Dapatkan cengkeraman yang lebih kuat dari kompleksitas yang terkait dengan GNU Make.

Buku ini dibagi menjadi enam bab:

  1. Dasar-Dasar Revisited
  2. Makefile Debugging
  3. Membangun dan Membangun Kembali
  4. Kesalahan dan Masalah
  5. Mendorong Amplop
  6. GNU Membuat Pustaka Standar

Saya tidak percaya bahwa buku ini benar-benar ditujukan untuk pemula karena tidak memiliki klarifikasi tertentu yang Anda harapkan ketika mempelajari subjek baru seperti "Apa itu GNU Make?", "Bagaimana cara membuat file Make?", "Mengapa menggunakan Make lebih baik daripada kompilasi setiap program satu per satu? " dan "Bagaimana cara saya mengkompilasi program menggunakan GNU Make?". Semua bidang subjek ini tercakup dalam manual Membuat GNU .

Kenyataan bahwa bab pertama disebut "Dasar-Dasar Revisited" sebagai lawan dari "The Basics" dengan jelas menunjukkan bahwa Anda diharapkan memiliki landasan dalam materi pelajaran sebelum Anda mulai.

Bab pertama mencakup semua dasar-dasar seperti penggunaan variabel, lingkungan yang digunakan oleh perintah dan lingkungan $ (Shell). Saat bab bergerak pada Anda masuk ke dalam subjek perbandingan, daftar, dan fungsi yang ditentukan pengguna.

Jika Anda telah menggunakan GNU Make untuk sementara waktu tetapi belum menganggap diri Anda ahli, ada beberapa petunjuk dan tip bagus yang akan membantu Anda memahami seluk-beluk tertentu yang mungkin tidak segera terlihat.

Bab kedua akan menjadi berkah bagi Anda yang telah mencoba menjebak kesalahan dalam membangun skrip. Bagian "Makefile Debugging" penuh dengan petunjuk dan tip yang sangat baik untuk melakukan debug pada Makefile dan menyertakan bagian pada pencetakan nilai variabel dan bahkan membuang nilai setiap variabel. Lebih lanjut ke dalam bab ini, ada panduan ke GNU Debugger yang dapat Anda gunakan untuk melangkah melalui skrip.

Bab ketiga mencakup contoh makefile tetapi lebih dari itu menunjukkan kepada Anda cara membuat Makefile yang dapat Anda jalankan lagi dan lagi.

"Kesalahan dan Masalah" melihat perbedaan antara istilah-istilah tertentu seperti = dan: =, dan ifndef dan? =.

Saya menemukan ketika saya melangkah lebih jauh melalui buku itu karena saya tidak secara aktif mencoba menggunakan GNU Make dan karena pengetahuan saya berada pada tingkat yang sangat dasar, beberapa materi pelajaran sangat melintas di kepala saya.

Pada saat saya sampai di bab "Mendorong Amplop" mata saya sedikit berkaca-kaca.

Ringkasan utama saya, jika saya harus meringkas buku ini, adalah bahwa penulis jelas mengetahui barang-barangnya dan telah mencoba menyampaikan sebanyak mungkin informasi.

Masalahnya adalah bahwa kadang-kadang ketika seorang ahli materi pelajaran mencoba untuk menulis sesuatu, mereka memiliki ini "oh mudah, yang harus Anda lakukan adalah ...." aura tentang mereka.

Segel karet di pintu belakang saya lepas minggu lalu dan karena baru beberapa tahun saya menelepon perusahaan yang memasangnya karena masih dalam garansi.

Wanita di telepon berkata, "oh itu baik-baik saja, saya akan mengirimi Anda segel baru".

Saya berkata "Oh, apakah saya harus menyesuaikannya sendiri? Apakah itu sesuatu yang bisa saya lakukan".

Tanggapannya adalah "Tentu Anda bisa, yang harus Anda lakukan adalah membuka pintu, memasang segel dan mengembalikan pintu".

Sekarang pikiran instan saya adalah "woah, mundur sedikit di sana. Lepaskan pintu?!?". Saya tidak memenuhi syarat untuk membuka pintu, memasang segel dan memasang kembali pintu. Saya serahkan itu pada ahlinya.

Dengan buku ini, saya merasa bahwa Anda memerlukan buku lain dan sejumlah pengalaman menulis Makefile sebelum Anda akan menemukannya bermanfaat.

Saya pikir petunjuk, tips, dan pengetahuan yang disediakan akan membantu beberapa orang mengatakan "Oh, jadi itulah mengapa itu melakukan itu" atau "Saya tidak menyadari bahwa Anda bisa melakukannya dengan cara itu".

Oleh karena itu, penilaian saya adalah Anda harus membeli buku ini jika Anda mencari klarifikasi atau lebih banyak pengetahuan lanjutan hingga lanjutan tentang GNU Make tetapi ini bukan buku untuk pemula.