แม้ว่า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
มา
ข้อจำกัดความรับผิดชอบ: ฉันยังไม่ได้ทดสอบสิ่งนี้ด้วยllvm
ebuild ล่าสุด โปรดแสดงความคิดเห็นหากมีปัญหากับคำตอบนี้!