การ จำกัด GNU ‑ ทำเพื่อ POSIX สร้างพฤติกรรม


12

มีวิธีที่รู้จักกันในการทำให้ Linux makeปฏิเสธการใช้ GNU โดยไม่ตั้งใจหรือไม่ทำส่วนขยายเฉพาะใน Makefile เมื่อแก้ไขหรือใช้ Makefile ใน Linux อื่น ๆ ฉันหมายถึงการ จำกัด GNU ‑ ทำตัวตามที่makeระบุใน POSIXและปฏิเสธ GNU ใด ๆ ‑ สร้างส่วนขยายเฉพาะหรือไม่

.POSIXเป้าหมายพิเศษไม่เพียงพอตามที่“ 4.9 พิเศษ Built-in ชื่อเป้าหมาย (gnu.org) ” man page ไม่ได้กล่าวถึงตัวเลือกบรรทัดคำสั่งสำหรับสิ่งนี้

การใช้makeยูทิลิตี้อื่นอาจเป็นตัวเลือก

- อัปเดต 2018-10-19 -

ฉันยังไม่ได้พบคำตอบที่ตรงไปยังคำถามของฉัน แต่ที่นี่เป็นอย่างน้อยเอกสารเกี่ยวกับปัญหานี้เอกสารซึ่งไม่ได้อยู่ในเวลาที่ฉันมีคำถามนี้:  สอนเกี่ยวกับพกพา Makefiles (nullprogram.com)


เมื่อดูที่รายการนี้มันไม่ชัดเจนว่ามีหรือเคยมี POSIX ที่เข้มงวดเท่านั้น - ดังนั้นจึงอาจเหมาะสมกว่าที่จะเริ่มต้นแทนที่จะใช้makeที่มีไว้สำหรับใช้กับ "Makefile ของผู้อื่น" นอกจากนี้คุณยังได้กล่าวว่า GNU ของ" .POSIXเป้าหมายไม่เพียงพอตามที่"การอ่านของคุณเอกสารบางอย่าง แต่คุณยังไม่ได้แสดงให้เห็นถึงนี้กับกรณีที่เกิดขึ้นจริงซึ่งเป็นนิด ๆ หน่อย ๆXY problemesque
goldilocks

@goldilocks X กำลังตรวจสอบข้อ จำกัด ที่ฉันต้องการติด (สำหรับการแก้ไขและดัดแปลง) เนื่องจากไม่มี GNU ที่เชี่ยวชาญ ตา ‑ การตรวจสอบนั้นมีข้อผิดพลาด mechan มีแนวโน้มไม่สามารถใช้ยานยนต์ได้และฉันชอบที่จะหลีกเลี่ยงข้อผิดพลาด ‑ ตัวบ้านที่มีแนวโน้มจะทำฟิลเตอร์ grep / sed / awk เพื่อตรวจสอบและดึงความสนใจของฉัน
Hibou57

ฉันไม่ได้เป็นพ่อมด แต่อย่างนั้นจะดีกว่าไหมถ้าถามเรื่องนั้นโดยตรง? (หากเป็นเช่นนั้น Stack Overflow อาจเป็นสถานที่ที่ดีกว่า)
goldilocks

คุณอาจจะถูก ยังไงก็ตามหลังจากที่ฉันโพสต์มันฉันก่อนลบแล้วยกเลิกการลบคำถามนี้อีกครั้ง (ไม่แน่ใจสถานที่) ฉันอาจถามใน Stack Overflow ตามที่คุณแนะนำในภายหลัง ขอบคุณสำหรับความกังวลของคุณ
Hibou57

1
มีคำถามเก่า แต่ที่เกี่ยวข้องในStack Overflow : คำสั่งgnu make และ microsoft nmake และ posix มีความคล้ายคลึง / แตกต่างกันอย่างไร
Palec

คำตอบ:


6

ฉันค่อนข้างแน่ใจว่าไม่มีวิธีใดที่จะปิดการใช้งาน GNU เพื่อสร้างส่วนขยาย .POSIXเป้าหมายปรับปรุงความเข้ากัน แต่ไม่ส่วนขยายเข้ากันไม่ได้ปิดการใช้งานเช่นฟังก์ชั่นที่เป็นกรรมสิทธิ์ของเป้าหมายจุด%ในรูปแบบเป้าหมาย ฯลฯ

ฉันไม่ทราบเกี่ยวกับการนำไปใช้งานใด ๆ ที่ยึดติดกับคุณลักษณะ POSIX ตัวอย่างเช่น MINIX, Solaris, OpenBSD ล้วนมีนามสกุลเป็นของตัวเอง อย่างน้อยคุณสามารถลองสร้างโปรแกรมของคุณด้วยการใช้งานสี่อย่างนี้ (สมมติว่าโปรแกรมของคุณสร้างบนแพลตฟอร์มเหล่านี้ทั้งหมด) ซึ่งจะทำให้คุณมีความมั่นใจในการพกพาที่ดีในทางปฏิบัติ เพิ่ม Windows ด้วยmakeยูทิลิตี้จาก Visual Studio รวมถึงพอร์ตของเครื่องมือ Unix shell บางตัวหากคุณสามารถใช้ระบบปฏิบัติการที่ไม่ใช่ฟรี (ฉันคิดว่ามี VS รุ่นฟรีที่เพียงพอ)


3
บน Debian Linux ฉันใช้pmakeเพื่อทดสอบการพกพาของ makefiles ของฉัน มันอ้างว่ามันทำให้รสชาติจาก NetBSD (ใน Debian เวอร์ชันใหม่กว่านี้คือbmake)
Palec
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.