ເຄື່ອງມືນັກພັດທະນາ
GNU make 4.3
GNU make 4.3 ລວມມີການແກ້ໄຂບັກ, ຄຸນສົມບັດໃໝ່ ແລະ ການປັບປຸງປະສິດທິພາບຫຼາຍຢ່າງ.
ຄວາມບໍ່ເຂົ້າກັນແບບຍ້ອນຫຼັງ
ແພັດຄວາມເຂົ້າກັນໄດ້ສໍາລັບ make ເວີຊັນ 3.8 ຖືກຖອດອອກໃນລຸ້ນນີ້, ເຊິ່ງເຮັດໃຫ້ make ຂອງ Fedora ຄືກັນກັບດີສໂຕຣ (distros) ອື່ນໆ.
|
ເຈົ້າຂອງແພັກເກດທີ່ເພິ່ງພາຄຸນສົມບັດຂອງ makefile ສະເພາະເວີຊັນເກົ່າຂອງ GNU make (ລວມທັງແພັດຄວາມເຂົ້າກັນໄດ້ສໍາລັບ 3.8 ທີ່ພວກເຮົາກໍາລັງຕັດອອກ) ອາດຈະເກີດ FTBFS ແລະ ຈໍາເປັນຕ້ອງປັບປຸງ Makefiles ຂອງພວກເຂົາ. ແພັກເກດທີ່ຖືກບິລ (build) ກ່ອນການອັບເກຣດນີ້ຈະບໍ່ໄດ້ຮັບຜົນກະທົບ. |
ຄວາມບໍ່ເຂົ້າກັນແບບຍ້ອນຫຼັງສະເພາະ:
* ຄໍາເຕືອນ: ຄວາມບໍ່ເຂົ້າກັນແບບຍ້ອນຫຼັງ!
ເຄື່ອງໝາຍສີ່ຫຼ່ຽມ (#) ທີ່ປະກົດຢູ່ພາຍໃນການອ້າງອີງມາໂຄຣ ຫຼື ການຮຽກໃຊ້ຟັງຊັນ
ຈະບໍ່ຖືກນັບວ່າເປັນຄໍາອະທິບາຍ (comment) ອີກຕໍ່ໄປ ແລະ ບໍ່ຄວນໃສ່ backslashes ເພື່ອຫຼົບຫຼີກ (escape):
ດັ່ງນັ້ນການຮຽກໃຊ້ເຊັ່ນ:
foo := $(shell echo '#')
ແມ່ນຖືກຕ້ອງ. ກ່ອນໜ້ານີ້ເຄື່ອງໝາຍສີ່ຫຼ່ຽມຈໍາເປັນຕ້ອງໄດ້ຫຼົບຫຼີກ, ຕົວຢ່າງ:
foo := $(shell echo '\#')
ຕອນນີ້ແບບຫຼັງນີ້ຈະກາຍເປັນ "\#". ຖ້າທ່ານຕ້ອງການຂຽນ makefiles
ໃຫ້ໃຊ້ໄດ້ກັບທັງສອງເວີຊັນ, ໃຫ້ກໍານົດເຄື່ອງໝາຍສີ່ຫຼ່ຽມໃສ່ຕົວປ່ຽນ:
H := \#
foo := $(shell echo '$H')
ສິ່ງນີ້ເຄີຍຖືກອ້າງວ່າໄດ້ແກ້ໄຂແລ້ວໃນ 3.81, ແຕ່ຍັງບໍ່ທັນແກ້ໄຂຍ້ອນເຫດຜົນບາງຢ່າງ.
ເພື່ອກວດສອບການປ່ຽນແປງນີ້ ໃຫ້ຄົ້ນຫາ 'nocomment' ໃນຕົວປ່ຽນ .FEATURES.
* ຄໍາເຕືອນ: ຄວາມບໍ່ເຂົ້າກັນແບບຍ້ອນຫຼັງ!
ກ່ອນໜ້ານີ້ການຕໍ່ທ້າຍໂດຍໃຊ້ '+=' ໃສ່ຕົວປ່ຽນທີ່ວ່າງເປົ່າ ຈະສົ່ງຜົນໃຫ້ຄ່າ
ມີການຂຶ້ນຕົ້ນດ້ວຍຍະຫວ່າງ. ຕອນນີ້ຍະຫວ່າງເລີ່ມຕົ້ນຈະຖືກເພີ່ມເຂົ້າກໍຕໍ່ເມື່ອຕົວປ່ຽນນັ້ນ
ມີຄ່າຢູ່ແລ້ວເທົ່ານັ້ນ. ໃນທໍານອງດຽວກັນ, ການຕໍ່ທ້າຍດ້ວຍຂໍ້ຄວາມວ່າງເປົ່າກໍຈະບໍ່
ມີການເພີ່ມຍະຫວ່າງຕໍ່ທ້າຍ.
ຄຸນສົມບັດໃໝ່
-
ກຸ່ມເປົ້າໝາຍທີ່ກໍານົດຢ່າງຊັດເຈນ (Grouped explicit targets) ກົດເກນຮູບແບບ (Pattern rules) ມີຄວາມສາມາດໃນການສ້າງຫຼາຍເປົ້າໝາຍດ້ວຍການຮຽກໃຊ້ເຮຊີພີ (recipe) ພຽງຄັ້ງດຽວມາໂດຍຕະຫຼອດ. ຕອນນີ້ສາມາດປະກາດໄດ້ແລ້ວວ່າ ກົດເກນທີ່ຊັດເຈນ (explicit rule) ສາມາດສ້າງໄດ້ຫຼາຍເປົ້າໝາຍດ້ວຍການຮຽກໃຊ້ພຽງຄັ້ງດຽວ. ເພື່ອໃຊ້ສິ່ງນີ້, ໃຫ້ປ່ຽນເຄື່ອງໝາຍ
:ເປັນ&:ໃນກົດເກນ. ເພື່ອກວດສອບຄຸນສົມບັດນີ້ ໃຫ້ຄົ້ນຫາgrouped-targetໃນຕົວປ່ຽນພິເສດ .FEATURES. -
ຕົວປ່ຽນ .EXTRA_PREREQS ຄໍາສັບໃນຕົວປ່ຽນນີ້ຖືກຖືວ່າເປັນເງື່ອນໄຂເບື້ອງຕົ້ນ (prerequisites) ຂອງເປົ້າໝາຍ ແຕ່ພວກມັນຈະບໍ່ຖືກເພີ່ມເຂົ້າໃນຄ່າຕົວປ່ຽນອັດຕະໂນມັດໃດໆ ເມື່ອມີການຂະຫຍາຍເຮຊີພີ (recipe). ຕົວປ່ຽນນີ້ສາມາດເປັນໄດ້ທັງແບບທົ່ວໄປ (ໃຊ້ກັບທຸກເປົ້າໝາຍ) ຫຼື ຕົວປ່ຽນສະເພາະເປົ້າໝາຍ. ເພື່ອກວດສອບຄຸນສົມບັດນີ້ ໃຫ້ຄົ້ນຫາ
extra-prereqsໃນຕົວປ່ຽນພິເສດ.FEATURES. -
ຕອນນີ້ Makefiles ສາມາດກໍານົດຕົວເລືອກ
-jໃນຕົວປ່ຽນ MAKEFLAGS ຂອງພວກເຂົາໄດ້ ແລະ ສິ່ງນີ້ຈະເຮັດໃຫ້ make ເປີດໃຊ້ໂໝດການເຮັດວຽກແບບຂະໜານ (parallelism) ນັ້ນ. -
GNU make ຈະໃຊ້
posix_spawn()ໃນລະບົບທີ່ມີໃຫ້ໃຊ້. ຖ້າທ່ານຕ້ອງການໃຊ້ fork/exec ເຖິງແມ່ນວ່າໃນລະບົບທີ່ມີ posix_spawn() ກໍຕາມ, ທ່ານສາມາດໃຊ້ຕົວເລືອກ--disable-posix-spawnໃນການກໍານົດຄ່າ (configure). -
ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດທີ່ສະແດງອອກມາເມື່ອມີການຮຽກໃຊ້ຄໍາສັ່ງທີ່ບໍ່ມີຢູ່ ໄດ້ຖືກປັບປຸງໃຫ້ສະອາດ ແລະ ເປັນໄປໃນທາງດຽວກັນ.
-
ໄດ້ມີການເພີ່ມຕົວເລືອກໃໝ່
--no-silent, ເຊິ່ງຈະຍົກເລີກຜົນຂອງແຟລັກ (flag)-s/--silent/--quiet. -
ໄດ້ມີການເພີ່ມຕົວເລືອກໃໝ່
-Eເພື່ອເປັນຊື່ຫຍໍ້ສໍາລັບ--eval. -
ເຮັດວຽກຮ່ວມກັບ GNU libc ແລະ musl C runtime libraries ລຸ້ນໃໝ່ໄດ້.
ເບິ່ງ ການປະກາດເປີດຕົວຈາກຕົ້ນທາງ ສໍາລັບຂໍ້ມູນລະອຽດເພີ່ມເຕີມກ່ຽວກັບລຸ້ນນີ້.
ແກ້ໄຂບັກແລ້ວ
ລາຍຊື່ທັງໝົດຂອງບັກທີ່ຖືກແກ້ໄຂໃນເວີຊັນນີ້ ສາມາດເບິ່ງໄດ້ທີ່ນີ້ make - Bugs
Want to help? Learn how to contribute to Fedora Docs ›