"Создаем порт для FreeBSD своими руками" - читать интересную книгу автора (Ачилов Рашид)


ЏҐаўл© Ї а ¬Ґва § ¤ Ґв Ё¬п ®ЇжЁЁ, Є®в®а®Ґ Ї®в®¬ Ўг¤Ґв ЁбЇ®«м§®ў ­® ў
ЇҐаҐ¬Ґ­­®© WITH_*. Ќ ЇаЁ¬Ґа, ¤«п ЇҐаў®Ј® Ї а ¬Ґва  Ё¬п ЇҐаҐ¬Ґ­­®© Ўг¤Ґв
WITH_LDAP. ‚в®а®© Ї а ¬Ґва § ¤ Ґв ⥪бв Є®¬¬Ґ­в аЁп, Є®в®ал© Ўг¤Ґв ўлўҐ¤Ґ­
бЇа ў  ®в ᮮ⢥вбвўго饩 ®ЇжЁЁ, Ё ваҐвЁ© - §­ зҐ­ЁҐ Ї® 㬮«з ­Ёо. ЏаЁ
гЄ § ­ЁЁ "on" ®ЇжЁп Ї® 㬮«з ­Ёо ўЄ«о祭 , ЇаЁ гЄ § ­ЁЁ "off" - ўлЄ«о祭 .
•®а®и®, ®ЇжЁЁ § ¤ ­л. Љ Є Ёе ®Ўа Ў®в вм?
ЏаҐ¦¤Ґ ўбҐЈ® ­Ґ®Ўе®¤Ё¬® ®в¬ҐвЁвм, зв® ЇаЁ ЁбЇ®«м§®ў ­ЁЁ OPTIONS
ўЄ«о祭ЁҐ д ©«  bsd.port.mk б«Ґ¤гҐв § ¬Ґ­Ёвм ­ :

.include "bsd.port.pre.mkъ
# processing WITH_SOMEWHERE here
.include "bsd.port.post.mkъ

Ё­ зҐ ­Ё ®¤­  ЇҐаҐ¬Ґ­­ п WITH_SOMEWHERE а бЇ®§­ ­  ­Ґ Ўг¤Ґв. ЋЎа Ў®вЄ 
¦Ґ ЇҐаҐ¬Ґ­­ле ўлЇ®«­пҐвбп бв ­¤ ав­л¬ ®Ўа §®¬ - б Ї®¬®ймо гб«®ўЁп if
§ ¤ овбп ¤®Ї®«­ЁвҐ«м­лҐ Ї а ¬Ґвал ¤«п configure, § ўЁбЁ¬®бвЁ, Ї®¤бв ­®ўЄЁ
¤«п pkg-plist Ё в. ¤.

.if defined(WITH_SAM_XML)
LIB_DEPENDS+= xml2.5:${PORTSDIR}/textproc/libxml2
CONFIGURE_ARGS+= -with-xml-prefix=${LOCALBASE}
WANT_EXPSAM_MODULES+= xml


PLIST_SUB+= SAMXML=""

.else
PLIST_SUB+= SAMXML="@comment "
.endif

Љ®¬ЎЁ­ жЁп Їа®ўҐа塞ле гб«®ўЁ© ¬®¦Ґв Ўлвм ¤®ў®«м­® б«®¦­®©. ‚ Є зҐб⢥
ЇаЁ¬Ґа  в®Ј®, Є Є ¬®Јгв ЁбЇ®«м§®ў вмбп §­ зҐ­Ёп ®ЇжЁЁ, «гзиҐ ўбҐЈ®
а бб¬ ваЁў вм Ї®ав net/samba3 - ў ­Ґ¬ ®зҐ­м ¬­®Ј® ®ЇжЁ©, Ґбвм ­  зв®
Ї®б¬®ваҐвм.
Ќг Ё ­ Є®­Ґж б ¬л© Ё­вҐаҐб­л© а §¤Ґ« - § ¬Ґ­ /¤®Ї®«­Ґ­ЁҐ бв ­¤ ав­ле
®Ўа Ў®взЁЄ®ў Makefile ЇаЁ бЎ®аЄҐ Ї®ав . Љ Є 㦥 Ўл«® бЄ § ­® ў [1], бЎ®аЄ 
Ї®ав  б®бв®Ёв Ё§ Ї®б«Ґ¤®ў вҐ«м­®бвЁ ўлЇ®«­Ґ­Ёп ап¤  ¬ЁиҐ­Ґ©, Є®в®алҐ ў бў®о
®зҐаҐ¤м ¤Ґ«пвбп ­  Ї®¤¬ЁиҐ­Ё pre-something, do-something Ё post-something
(Ґбвм ҐйҐ бЇҐжЁ «м­лҐ ¬ЁиҐ­Ё, ®ЇЁб ­ЁҐ Ёе б¬ .ў bsd.port.mk). „«п 祣® нв®
Ўл«® ᤥ« ­®? „«п в®Ј® зв®Ўл Ё¬Ґвм ў®§¬®¦­®бвм ў®§¤Ґ©бвўЁп ­  Їа®жҐбб
ᮧ¤ ­Ёп Ї®ав  - зв®-­ЁЎг¤м Ё§¬Ґ­Ёвм, ўлўҐбвЁ б®®ЎйҐ­ЁҐ, ᮧ¤ вм д ©« Ё«Ё
Є в «®Ј Ё в. ¤. Љ Є б«Ґ¤гҐв Ё§ ­ §ў ­Ёп, Ї®¤¬ЁиҐ­Ё pre-somethnig Ё
post-something ўлЇ®«­повбп ᮮ⢥вб⢥­­® ¤® Ё Ї®б«Ґ ¬ЁиҐ­Ё something.
Ќ ЇаЁ¬Ґа, Ї®б«Ґ¤®ў вҐ«м­®бвм а бЇ Є®ўЄЁ Ўг¤Ґв в Є®ў : pre-extract,
do-extract, post-extract. ЏаЁ н⮬, Ґб«Ё Ї®¤¬ЁиҐ­м do-something ­Ґ ®ЇЁб ­ ,
Ўг¤Ґв ўлЇ®«­пвмбп бв ­¤ ав­ п бЁб⥬­ п ®Ўа Ў®вЄ . ЋЎа вЁвҐ ў­Ё¬ ­ЁҐ, зв®,
Ґб«Ё ¬ЁиҐ­м do-something ®ЇЁб ­ , ®­  § ¬Ґй Ґв бв ­¤ ав­го ¬ЁиҐ­м Ё ўбп
®вўҐвб⢥­­®бвм §  ўлЇ®«­Ґ­ЁҐ ¤ ­­®Ј® и Ј  «®¦Ёвбп ­  ¬ ©­в ©­Ґа  Ї®ав , в®
Ґбвм, ­ ЇаЁ¬Ґа, ¤ ¦Ґ Ґб«Ё ў Makefile, Ё¤г饬 б Їа®Ја ¬¬®©, Ґбвм ¬ЁиҐ­м