GNU Autoconf 2.69b พร้อมใช้งานเพื่อทดสอบการเปลี่ยนแปลงความเข้ากันได้ที่อาจเกิดขึ้น

หลังจากแปดปีนับตั้งแต่เวอร์ชัน 2.69 ได้รับการเผยแพร่ นำเสนอ การเปิดตัวแพ็คเกจ GNU Autoconf 2.69b ซึ่งมีชุดมาโคร M4 สำหรับการสร้างสคริปต์การกำหนดค่าอัตโนมัติสำหรับการสร้างแอปพลิเคชันบนระบบที่คล้าย Unix ต่างๆ (สคริปต์ "กำหนดค่า" จะถูกสร้างขึ้นตามเทมเพลตที่เตรียมไว้) การเปิดตัวอยู่ในตำแหน่งที่เป็นเวอร์ชันเบต้าของเวอร์ชัน 2.70 ที่กำลังจะมาถึง

เวลาหน่วงที่สำคัญจากรุ่นก่อนหน้าและการเผยแพร่ล่วงหน้าของรุ่นเบต้าเกิดจากการรวมการเปลี่ยนแปลงในสาขา 2.70 ที่อาจทำลายความเข้ากันได้กับสคริปต์ Autoconf ที่มีอยู่ ผู้ใช้ควรทดสอบสคริปต์กับรุ่นที่แนะนำและ แจ้ง นักพัฒนาซอฟต์แวร์หากพบปัญหา

ท่ามกลางการเปลี่ยนแปลง:

  • เปิดใช้งานการหลีกเลี่ยงอาร์กิวเมนต์ config.log ในความคิดเห็นส่วนหัว ปรับปรุงความสามารถในการอ่านเอาต์พุต "config.status –config";
  • เพิ่มตัวเลือก '--runstatedir' ให้กับสคริปต์กำหนดค่าเพื่อกำหนดเส้นทางไปยังไดเร็กทอรี /run ด้วยไฟล์ pid
  • autoreconf ไม่รองรับเวอร์ชันของ automake และ aclocal ที่เผยแพร่ก่อนหน้า 1.8 อีกต่อไป
  • ขอแนะนำให้ใช้ printf แทน echo ตอนนี้มาโคร AS_ECHO และ AS_ECHO_N จะถูกแปลงเป็น
    'printf "%s\n"' และ 'printf %s' เลิกใช้งานตัวแปรที่ไม่มีเอกสาร $as_echo และ
    $as_echo_n แทนที่จะใช้มาโคร AS_ECHO และ AS_ECHO_N

  • มาโครจำนวนมากมีการเปลี่ยนแปลงเพื่อขยายอาร์กิวเมนต์เพียงครั้งเดียวเพื่อเพิ่มความเร็วในการดำเนินการ autoconf ซึ่งอาจส่งผลต่อความเข้ากันได้กับสคริปต์บางตัวที่ไม่ได้อ้างอิงอาร์กิวเมนต์อย่างถูกต้อง
  • มาโครบางตัว เช่น AC_PROG_CC ซึ่งใช้กันทั่วไปตั้งแต่ต้นในสคริปต์กำหนดค่า ได้รับการปรับให้เหมาะสมและไม่มีการเรียกมาโครรองมากนัก การเปลี่ยนแปลงระบุข้อผิดพลาดหลายระดับ โดยทั่วไปเกิดจากการใช้แมโคร AC_REQUIRE
  • แมโครที่ยอมรับรายการอาร์กิวเมนต์ที่คั่นด้วยช่องว่างจะขยายตามแต่ละอาร์กิวเมนต์ที่อยู่ในรายการเสมอ
    การเปลี่ยนแปลงส่งผลต่อมาโคร AC_CHECK_FILES, AC_CHECK_FUNCS
    AC_CHECK_FUNCS_ONCE, AC_CHECK_HEADERS, AC_CHECK_HEADERS_ONCE,
    AC_CONFIG_MACRO_DIRS, AC_CONFIG_SUBDIRS และ AC_REPLACE_FUNCS;

  • เพิ่มมาโครใหม่ AC_C__GENERIC, AC_CONFIG_MACRO_DIRS และ AC_CHECK_INCLUDES_DEFAULT;
  • ในมาโคร AC_PROG_CC หากมี คอมไพลเลอร์ที่รองรับ C11 ได้ถูกเลือกแล้ว (โดยย้อนกลับไปเป็น C99 และ C89 หากไม่พบ) และใน AC_PROG_CXX - C++11 ที่มีการย้อนกลับเป็น C++98 มาโคร AC_PROG_CC_STDC, AC_PROG_CC_C89 และ AC_PROG_CC_C99 เลิกใช้แล้ว

ที่มา: opennet.ru

เพิ่มความคิดเห็น