คำถามนี้และคำตอบอื่น ๆ ส่วนใหญ่ที่นี่เกิดขึ้นจากความเข้าใจผิดว่าโครงการที่ใช้ระบบGNU Build (Autotools) เป็นที่รู้จักกันอย่างไร ในความเป็นจริงในกรณีของไลบรารี Erlang XMPP ที่กล่าวถึงโดย OP ความเข้าใจผิดที่ปรากฏอยู่ในส่วนของผู้พัฒนา
การรับซอฟต์แวร์อย่างถูกวิธี
หากสิ่งที่คุณต้องการจะทำคือรวบรวมและติดตั้งโครงการออกมาพร้อมกับ GNU Autotools แล้วคุณไม่ควรตรวจสอบออกจากระบบการควบคุมแหล่งที่มา คุณควรดาวน์โหลดแหล่งที่มาของแพ็กเกจที่นักพัฒนาซอฟต์แวร์จัดทำแทน โดยปกติจะอยู่ในรูปแบบของ tarballs ที่เผยแพร่บนเว็บไซต์ของโครงการ สำหรับโครงการที่โฮสต์บน GitHub, Savannah หรือบริการโฮสติ้งที่คล้ายกันทั้งหมด tarballs เหล่านี้มักจะพบหลังลิงค์ "ดาวน์โหลด" หรือ "เผยแพร่" คุณยกเลิกแพ็กเกจและพูดให้แตกต่างจาก./configure && make && sudo make install
คาถามาตรฐาน นั่นคือทั้งหมด; คุณไม่จำเป็นต้องเรียกใช้ GNU Autotools ใด ๆ และไม่จำเป็นต้องติดตั้ง GNU Autotools ในระบบของคุณ
เหตุผลที่คุณผู้ใช้ไม่จำเป็นต้อง Autotools GNU รวบรวมโครงการ Autotools บรรจุคือการที่นักพัฒนาได้แล้วใช้โปรแกรม Autotools ต่าง ๆ เพื่อสร้าง "การกระจาย tarball" ที่สามารถนำมาใช้ในการสร้างซอฟต์แวร์ใด ๆ ระบบเหมือน Unix tarball แจกจ่ายประกอบด้วยconfigure
สคริปต์แบบพกพาสูงที่สแกนสภาพแวดล้อมการสร้างตรวจสอบการอ้างอิงและสร้างการMakefile
กำหนดเองให้กับระบบของคุณ
ดังนั้นเมื่อใดที่คุณต้องการ Autotools
เหตุผลเดียวที่คุณควรติดตั้งและเรียกใช้ GNU Autotools ด้วยตนเองคือถ้าคุณต้องการทำงานพัฒนาในโครงการที่สร้างขึ้นด้วย Autotools และถึงตอนนั้นคุณอาจไม่ต้องการใช้ Autotools จนกว่าคุณจะเปลี่ยนการอ้างอิงของโครงการ ในกรณีที่คุณแน่นอนจะต้องตรวจสอบแหล่งที่มาให้การเปลี่ยนแปลงที่เหมาะสมกับ Autotools เฉพาะไฟล์ข้อมูล ( configure.ac
, Makefile.am
ฯลฯ ) และเรียกใช้ Autotools ที่พวกเขาจะสร้างใหม่configure
ไฟล์ หากคุณต้องการเผยแพร่แพ็คเกจที่แก้ไขแล้วอย่างอิสระคุณจะต้องใช้ Makefile ที่สร้างขึ้นโดย Autotools เพื่อสร้าง tarball การกระจายแบบใหม่จากนั้นเผยแพร่ tarball แบบออนไลน์
ปัญหาคือนักพัฒนาบางคนทำให้แหล่งเก็บข้อมูลของพวกเขาเปิดเผยต่อสาธารณชน แต่ละเลยที่จะเผยแพร่ tarballs การกระจายของพวกเขา (หรือทำให้มันยากที่จะหาที่พวกเขาเผยแพร่ ตัวอย่างเช่นแทนที่จะเผยแพร่ tarballs กระจายของพวกเขาเป็น GitHub ข่าวที่GitHub ข่าวห้องสมุด Erlang XMPP ของมี tarballs ของพื้นที่เก็บข้อมูลแหล่งที่มาของวัตถุดิบ สิ่งนี้ทำให้ไม่สามารถคอมไพล์โปรเจ็กต์โดยไม่มี GNU Autotools เอาชนะจุดประสงค์ทั้งหมดของการใช้ Autotools ตั้งแต่แรก
สรุป TL; DR
Autotools ของ GNU เป็นสิ่งที่นักพัฒนาซอฟต์แวร์ใช้ในการทำแพ็คเกจซอร์สโค้ดแบบพกพาสำหรับผู้ใช้ ผู้ใช้ควรดาวน์โหลดและรวบรวมจากแพ็คเกจแหล่งข้อมูลเหล่านี้ไม่ใช่รหัสต้นฉบับจากระบบควบคุมแหล่งที่มา หากนักพัฒนาไม่ได้จัดทำแพ็คเกจแหล่งข้อมูลเหล่านี้แสดงว่าพวกเขาไม่ได้ใช้ Autotools อย่างถูกต้องและควรตบเบา ๆ ด้วยปลาเทราต์เปียกจนกว่าพวกเขาจะเห็นข้อผิดพลาดของวิธีการของพวกเขา