ນີ້ແມ່ນຄໍາສັ່ງ makepp_builtin ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
makepp_builtin -- ສ້າງໃນກົດລະບຽບສໍາລັບ makepp
ລາຍລະອຽດ
Makepp ອາດຈະສາມາດຄິດອອກວິທີການລວບລວມແລະການເຊື່ອມໂຍງໂປຼແກຼມຂອງທ່ານເຖິງແມ່ນວ່າທ່ານຈະລະບຸ
ບໍ່ມີກົດລະບຽບໃດໆ (ຫຼືຖ້າທ່ານບໍ່ມີ Makeppfile). ຫຼັງຈາກທີ່ທຸກ Makeppfile ແມ່ນ
loaded, makepp ຍັງໂຫຼດຊຸດຂອງກົດລະບຽບເລີ່ມຕົ້ນ. (ກົດລະບຽບເຫຼົ່ານີ້ແມ່ນພິເສດໃນນັ້ນ
ຢ່າ override ກົດລະບຽບອື່ນໆໃນ Makeppfile.) ຖານຂໍ້ມູນກົດລະບຽບເລີ່ມຕົ້ນຖືກເກັບໄວ້
ໃນໄຟລ໌ "makepp_builtin_rules.mk" ໃນການແຈກຢາຍ makepp ຫຼືໄດເລກະທໍລີຫ້ອງສະຫມຸດ, ດັ່ງນັ້ນ.
ເຈົ້າສາມາດເບິ່ງໄດ້ສະເໝີເພື່ອເບິ່ງວ່າກົດລະບຽບເລີ່ມຕົ້ນແມ່ນຫຍັງ.
ກົດລະບຽບການກໍ່ສ້າງຂອງ Makepp ແມ່ນເກືອບຄືກັນກັບກົດລະບຽບໃນ GNU, ຍົກເວັ້ນວ່າມັນບໍ່ມີ
ກົດລະບຽບສໍາລັບບາງພາສາທີ່ຫາຍາກທີ່ GNU ສ້າງມີກົດລະບຽບສໍາລັບ. (ນີ້ແມ່ນເຈດຕະນາ; I
ມັກຈະມີບັນຫາກັບ GNU ເຮັດໃຫ້ໂຄງການຈໍານວນຫນຶ່ງທີ່ນໍາໃຊ້ຄືນໃຫມ່ໂດຍບັງເອີນ
ຄໍາຕໍ່ທ້າຍທີ່ GNU ມອບຫມາຍໃຫ້ກັບພາສາທີ່ຫາຍາກເຫຼົ່ານັ້ນ.) ກົດລະບຽບໃຊ້ດຽວກັນ
ຕົວແປທີ່ GNU ເຮັດ, ດ້ວຍການເພີ່ມທີ່ເປັນປະໂຫຍດບາງຢ່າງ. Makepp ແມ່ນສະຫລາດກວ່າ GNU
ເຮັດໃຫ້ການສົມມຸດຖານທີ່ compiler ທີ່ຈະໃຊ້, ແລະວັດຖຸອື່ນໆແລະຫ້ອງສະຫມຸດທີ່ຈະເຊື່ອມຕໍ່
ໃນ.
ມາດຕະຖານ ຕົວແປ ຄ່າ
Makepp ສະໜອງຄ່າເລີ່ມຕົ້ນສຳລັບຕົວແປຈຳນວນໜຶ່ງ. ສ່ວນໃຫຍ່ເຫຼົ່ານີ້ແມ່ນປົກກະຕິ
ໃຊ້ໃນກົດລະບຽບ, ແລະຕົວຈິງແລ້ວຖືກນໍາໃຊ້ໃນກົດລະບຽບເລີ່ມຕົ້ນ. ຄຸນຄ່າຂອງພວກມັນສາມາດຖືກລົບລ້າງໄດ້
ໂດຍການມອບຫມາຍໃຫ້ຕົວແປເຫຼົ່ານີ້ຢູ່ໃນ Makeppfile ຂອງທ່ານຫຼືຢູ່ໃນເສັ້ນຄໍາສັ່ງ.
ຕົວແປເຫຼົ່ານີ້ຖືກບັນທຶກໄວ້ໃນ "ຕົວແປທີ່ກໍານົດໄວ້ກ່ອນ" ໃນ makepp_variables. ຖ້າເຈົ້າມີ
ຄໍາຖາມໃດໆກ່ຽວກັບສິ່ງທີ່ຕົວແປໃດປະເມີນ, ເຈົ້າສາມາດໃສ່ເສັ້ນໄດ້ຕະຫຼອດເວລາ
ຂອງສາຍເຫຼົ່ານີ້ຢູ່ໃນ Makeppfile ຂອງທ່ານ:
dummy := $(ພິມ $(CC))
&echo -- $(CC) # ຕ້ອງຖືກຫຍໍ້ໜ້າໜ້ອຍກວ່າກົດລະບຽບກ່ອນໜ້າ.
ເຊິ່ງພຽງແຕ່ພິມຄ່າຂອງຕົວແປ "$(CC)" ເມື່ອ Makeppfile ຖືກໂຫລດ.
(ໂດຍບັງເອີນ, ນີ້ແມ່ນວິທີທີ່ເປັນປະໂຫຍດທີ່ຈະດີບັກການສະແດງອອກໃດໆທີ່ທ່ານບໍ່ແນ່ໃຈວ່າເປັນ
ຖືກຕ້ອງ.)
ການລວບລວມ ກົດລະບຽບ
ໃນຮູບແບບທີ່ງ່າຍດາຍ, ນີ້ແມ່ນປະມານສິ່ງທີ່ກົດລະບຽບການລວບລວມເບິ່ງຄືວ່າ. ຖ້າເຈົ້າ
ການປ່ຽນແປງຄຸນຄ່າຂອງຕົວແປໃດຫນຶ່ງສະແດງໃຫ້ເຫັນ, ຄໍາສັ່ງການລວບລວມແມ່ນການປ່ຽນແປງເປັນ
ຄາດວ່າ.
#
# ສໍາລັບໂຄງການ C:
#
%.o: %.c
$(CC) $(CFLAGS) $(CPPFLAGS) -c $(input) -o $(output)
#
# ສໍາລັບໂຄງການ C++:
#
%o: %cxx # ແລະຍັງ %cc, %cpp, %c++, ແລະ %C.
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(input) -o $(output)
#
# ສໍາລັບໂຄງການ Fortran:
#
%.ຂອງ
$(FC) $(FFLAGS) -c $(input) -o $(output)
#
# Yacc ແລະ lex:
#
%.c: %.y
$(YACC) $(YFLAGS) $(ປ້ອນຂໍ້ມູນ)
&mv -f y.tab.c $(ຜົນຜະລິດ)
%.c: %.l
$(LEX) $(LFLAGS) -t $(input) -o $(output)
ຖ້າຫາກວ່າທ່ານ curious ກ່ຽວກັບລາຍລະອຽດທີ່ແນ່ນອນ, ທ່ານສາມາດເບິ່ງໃນໄຟລ໌
makepp_builtin_rules.mk ໃນການແຈກຢາຍ makepp.
ການເຊື່ອມຕໍ່ ກົດລະບຽບ
Makepp ຍັງຮູ້ວິທີການເຊື່ອມຕໍ່ໂຄງການ, ເຊັ່ນກັນ. Makepp ພະຍາຍາມທີ່ຈະສະຫລາດກວ່າ
ມາດຕະຖານ Unix ເຮັດໃນເວລາທີ່ມັນມາກັບການຄິດໄລ່ຄໍາສັ່ງເຊື່ອມຕໍ່. ສົມມຸດວ່າທ່ານກໍາລັງພະຍາຍາມ
ເພື່ອສ້າງໂຄງການເປົ້າຫມາຍ "xyz". Makepp ຈະພະຍາຍາມສ້າງນີ້ຈາກ "xyz.o", ແລະ
(ບໍ່ຄືກັບມາດຕະຖານ Unix ເຮັດ) ມັນຍັງຈະພະຍາຍາມສົມມຸດວ່າວັດຖຸອື່ນ ຫຼື
ຫ້ອງສະຫມຸດຈໍາເປັນຕ້ອງໄດ້ເຊື່ອມຕໍ່ໃນ.
ກົດລະບຽບການເຊື່ອມໂຍງມີລັກສະນະນີ້:
xyz: $(infer_objects xyz.o, *.o)
$(infer_linker $(inputs)) $(inputs) $(LDFLAGS) $(LDLIBS) $(LIBS) -o $(output)
"$(infer_objects)" ພະຍາຍາມຊີ້ບອກສິ່ງທີ່ໄຟລ໌ ".o" ອື່ນຕ້ອງເຊື່ອມຕໍ່ໂດຍອີງຕາມ
ໄຟລ໌ ".h" ປະກອບມີຫຍັງແດ່.
"ຕົວເຊື່ອມຕໍ່ທີ່ສົມມຸດຕິຖານ" ແມ່ນສິ່ງມະຫັດສະຈັນພິເສດທີ່ປ່ຽນເປັນ "$(CC)" ຖ້າແຫຼ່ງທັງຫມົດ
ແມ່ນລະຫັດ C, "$(CXX)" ຖ້າແຫຼ່ງໃດນຶ່ງແມ່ນ C++, ຫຼື "$(F77)" ຖ້າແຫຼ່ງໃດນຶ່ງແມ່ນ
ຟໍຣັນ.
ຫັນ ໄປ ໄດ້ ສ້າງຂຶ້ນໃນ ກົດລະບຽບ
ຖ້າທ່ານບໍ່ມັກກົດລະບຽບທີ່ສ້າງຂຶ້ນ, ຢ່າໃຊ້ພວກມັນ. ຖ້າພວກເຂົາບໍ່ເຮັດວຽກສໍາລັບທ່ານ, ຂອງເຈົ້າ
ການກໍ່ສ້າງແມ່ນອາດຈະສັບສົນພຽງພໍທີ່ທ່ານຕ້ອງການ Makeppfile ຂອງທ່ານເອງ
ຢ່າງໃດກໍ່ຕາມ.
ເພື່ອປິດກົດລະບຽບ builtin, ທ່ານສາມາດເພີ່ມເສັ້ນເຊັ່ນນີ້ໃສ່ Makeppfile ຂອງທ່ານ:
makepp_no_builtin = 1
ຖ້າທ່ານໃຊ້ພວກມັນ, ແຕ່ບໍ່ແມ່ນກົດລະບຽບການເຊື່ອມໂຍງທີ່ມີລາຄາແພງຫຼາຍ, ທ່ານສາມາດປ່ຽນມັນ
ປິດກັບ:
makepp_no_builtin_linker = 1
ສໍາລັບຄວາມເຂົ້າກັນໄດ້ໃນດ້ານຫລັງ, makepp ຍັງປິດກົດລະບຽບເລີ່ມຕົ້ນຂອງມັນຖ້າທ່ານລວມເອົາອັນນີ້
ເສັ້ນບາງບ່ອນໃນ Makeppfile ຂອງທ່ານ:
.SUFFIXES:
ທ່ານສາມາດປິດກົດລະບຽບ buildin ສໍາລັບທຸກ Makeppfile ໃນການກໍ່ສ້າງທັງຫມົດໂດຍການລະບຸ
"--no-builtin-rules" ທາງເລືອກໃນແຖວຄໍາສັ່ງ.
ໃຊ້ makepp_builtin ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net