Pertanyaan ini, dan sebagian besar jawaban lain di sini, muncul dari kesalahpahaman tentang bagaimana proyek yang menggunakan Sistem Bangun GNU (alias Autotools) didistribusikan. Bahkan, dalam kasus perpustakaan Erlang XMPP yang disebutkan oleh OP, kesalahpahaman tampaknya berada di pihak pengembang.
Memperoleh perangkat lunak dengan cara yang benar
Jika semua yang ingin Anda lakukan adalah mengkompilasi dan menginstal proyek yang dirilis dengan GNU Autotools, maka Anda tidak boleh memeriksanya dari sistem kontrol sumber . Anda sebaiknya mengunduh rilis sumber paket yang disediakan oleh pengembang. Ini biasanya berbentuk tarball yang didistribusikan di situs web proyek. Untuk proyek yang dihosting sepenuhnya di GitHub, Savannah, atau layanan hosting serupa, tarbal ini biasanya akan ditemukan di balik beberapa tautan yang berlabel "Unduh" atau "Rilis". Anda menghapus paket dan mengucapkan beberapa varian dari ./configure && make && sudo make install
mantra standar . Itu saja; Anda tidak perlu memanggil Autotools GNU, dan bahkan tidak perlu menginstal Autotools GNU di sistem Anda.
Alasan bahwa Anda, pengguna, tidak perlu GNU autotools untuk mengkompilasi sebuah proyek autotools-dikemas adalah bahwa pengembang telah sudah menggunakan berbagai program Autotools untuk menghasilkan "tarball distribusi" yang dapat digunakan untuk membangun perangkat lunak pada setiap Sistem seperti-unix. Tarbal distribusi berisi configure
skrip yang sangat portabel yang memindai lingkungan build, memeriksa dependensi, dan membuat Makefile
kustomisasi untuk sistem Anda.
Jadi kapan Anda membutuhkan Autotools?
Satu-satunya alasan Anda harus menginstal dan memohon GNU Autotools sendiri adalah jika Anda ingin melakukan pekerjaan pengembangan pada proyek yang dibangun dengan Autotools. Dan bahkan kemudian, Anda mungkin tidak akan membutuhkan Autotools kecuali Anda mengubah dependensi proyek. Dalam hal ini, Anda memang akan perlu memeriksa sumber aslinya, membuat perubahan yang sesuai dengan Autotools spesifik file input ( configure.ac
, Makefile.am
, dll), dan menjalankan Autotools pada mereka untuk menghasilkan baru configure
berkas. Jika Anda ingin mempublikasikan paket revisi secara mandiri, maka Anda akan menggunakan Makefile yang dihasilkan oleh Autotools untuk menghasilkan tarball distribusi baru, dan kemudian menerbitkan tarball itu di suatu tempat online.
Masalahnya adalah bahwa beberapa pengembang membuat repositori sumbernya tersedia untuk umum tetapi lalai untuk menerbitkan tarbal distribusi mereka (atau membuatnya sulit untuk menemukan di mana mereka diterbitkan). Misalnya, alih-alih menerbitkan tarbal distribusi mereka sebagai GitHub Rilis , rilis GitHub perpustakaan Erlang XMPP adalah tarbal dari repositori sumber mentah. Hal ini membuat mustahil untuk mengkompilasi proyek tanpa Autotools GNU, mengalahkan seluruh tujuan menggunakan Autotools di tempat pertama.
TL; ringkasan DR
GNU Autotools adalah sesuatu yang digunakan pengembang untuk membuat paket kode sumber portabel untuk pengguna. Pengguna harus mengunduh dan mengkompilasi dari paket sumber ini, bukan kode asli dari sistem kontrol sumber. Jika pengembang tidak menyediakan paket sumber ini, maka mereka tidak menggunakan Autotools dengan benar, dan harus ditampar dengan lembut dengan trout basah sampai mereka melihat kesalahan cara mereka.