แม้ว่าninjaจะไม่เป็นmakeเช่นนั้น ebuild ควรรับรู้และเคารพ-jพารามิเตอร์ใด ๆ ที่ระบุในMAKEOPTSตัวแปรสภาพแวดล้อม MAKEOPTS=-j1นั่นหมายความว่าคุณควรจะสามารถที่จะบังคับให้สูงสุดหนึ่งงานผ่านทาง คุณสามารถทำได้เพียงครั้งเดียว:
MAKEOPTS=-j1 emerge -a llvm
นอกจากนี้คุณยังสามารถตั้งค่าการเปลี่ยนแปลงนี้ทั่วโลก / permenantly แพ็กเกจทั้งหมดในระบบของคุณโดยการแก้ไขเส้นMAKEOPTS=/etc/portage/make.conf
อย่างไรก็ตามหากคุณตั้งค่าMAKEOPTS=-j1ผ่านเชลล์หรือmake.confการตั้งค่าการขนานจะถูกนำไปใช้กับแพ็คเกจทั้งหมดที่emergeติดตั้ง หากคุณต้องการนำไปใช้กับแพ็คเกจเดียวคุณสามารถสร้างไฟล์ที่เรียกว่า/etc/portage/env/sys-devel/llvm(สร้างไดเรกทอรีที่ขาดหายไปหากจำเป็น) และวางเนื้อหาเหล่านี้ไว้ในนั้น:
MAKEOPTS=-j1
สิ่งนี้จะนำตัวแปรไปใช้กับแพ็คเกจ llvm เท่านั้น
วิธีทำในเชลล์:
mkdir -p /etc/portage/env/sys-devel
echo MAKEOPTS=-j1>>/etc/portage/env/sys-devel/llvm
นินจาและ MAKEOPTS
ใน Gentoo เนื่องจากผู้คนพึ่งพาMAKEOPTS=-j«n»การควบคุมจำนวนงาน eclasses และ ebuild ต่าง ๆ จะแมป-jพารามิเตอร์ของตัวแปรนี้ให้เทียบเท่ากับระบบการสร้าง acutal ที่ใช้งานอยู่ คุณสามารถดูสิ่งนี้ได้ในeclass/ninja-utils.eclass(ซึ่งใช้โดยcmake-utils.eclassที่ถูกใช้โดยllvm) ตัวอย่างนั้นแยก-jพารามิเตอร์และส่งผ่านไปninjaเพราะninjaสนับสนุนพารามิเตอร์นั้นในขณะที่อาจไม่รองรับสิ่งอื่น ๆ ที่ผู้คนเข้าMAKEOPTSมา
ข้อจำกัดความรับผิดชอบ: ฉันยังไม่ได้ทดสอบสิ่งนี้ด้วยllvmebuild ล่าสุด โปรดแสดงความคิดเห็นหากมีปัญหากับคำตอบนี้!