A FreeBSD Dokumentációs Projekt által
használt könyvtárakban megtalálható
Makefile
állományoknak
három típusa létezik:
Az alkönyvtári
Makefile
állományok
egyszerűen csak továbbadják a parancsokat
az alkönyvtáraiknak.
A dokumentumokra vonatkozó
Makefile
állományok
írják le, hogy milyen dokumentumokat kellene az
adott könyvtárban
előállítani.
Az .mk
állományok segítik valamilyen
formában a dokumentumok
előállítását. Többnyire
doc.xxx.mk
névvel láthatóak.
Ezek a típusú Makefile
állományok általában a
következő alakúak:
SUBDIR =articles SUBDIR+=books COMPAT_SYMLINK = en DOC_PREFIX?= ${.CURDIR}/.. .include "${DOC_PREFIX}/share/mk/doc.project.mk"
Röviden összefoglalva: az első négy
nem üres sorban ún. make
változókat definiálunk. Ezek rendre a
SUBDIR
, COMPAT_SYMLINK
és DOC_PREFIX
.
Az első SUBDIR
sornál,
illetve a COMPAT_SYMLINK
sorában
láthatjuk hogyan kell egy új értéket
beállítani egy ilyen
változónak.
A második SUBDIR
sorban azt
láthatjuk, hogyan tudunk a változó
aktuális értékéhez
továbbiakat hozzáfűzni. Ebben az esetben
tehát az utasítás
végrehajtása után a
SUBDIR
értéke articles
books
lesz.
A DOC_PREFIX
esetében pedig olyan
értékadást figyelhetünk meg, amelyik
csak akkor hajtódik végre ténylegesen, ha a
változónak addig még nem volt
értéke. Ez olyankor tud kapóra jönni,
amikor a DOC_PREFIX
nem pontosan az, amire a
Makefile
számít — a
felhasználó ekkor meg tudja adni a helyes
értéket.
Ez így együttesen tehát mit is jelent? A
SUBDIR
összefoglalja azokat a
könyvtárakat, amelyekben a dokumentumok
előállításának
folyamatának folytatódnia kell majd.
A COMPAT_SYMLINK
a kompatibilitás
céljából létrehozott szimbolikus
linkekre vonatkozik, amelyek (valamilyen csoda folytán)
az adott nyelv hivatalos kódolására
mutatnak (tehát például a
doc/en
a
en_US.ISO8859-1
könyvtárra).
A DOC_PREFIX
a FreeBSD
Dokumentációs Projekt
főkönyvtárához vezető utat adja
meg. Ezt nem mindig egyszerű megtalálni,
ezért a rugalmasság kedvéért
könnyedén felül is definiálható.
A .CURDIR
a make
egyik
saját belső változója, amelyben az
aktuális könyvtár elérési
útját tárolja.
Végül az utolsó sorban a FreeBSD
Dokumentációs Projekt összes
Makefile
állományára
vonatkozó, rendszerszintű
doc.project.mk
állományra
hivatkozunk, amelyen keresztül az iménti
változókból épül fel a
dokumentumok előállításának
pontos menete.
Ezekben a Makefile
állományokban az adott könyvtárban
található dokumentumok
előállítását
leíró különböző
make
változók
szerepelnek.
Lássunk erre egy példát:
MAINTAINER=pgj@FreeBSD.org DOC?= book FORMATS?= html-split html INSTALL_COMPRESSED?= gz INSTALL_ONLY_COMPRESSED?= # Az SGML forrás SRCS= book.xml DOC_PREFIX?= ${.CURDIR}/../../.. .include "$(DOC_PREFIX)/share/mk/docproj.docbook.mk"
A MAINTAINER
változó nagyon
fontos. A FreeBSD Dokumentációs Projekten belül
ezen a változón keresztül jelezhetjük a
dokumentum birtoklását, vagyis
karbantartási kötelezettségünket.
A DOC
hivatkozik (az
.xml
kiterjesztés
nélkül) az adott könyvtárban
található dokumentum fő
forrására. Emellett az SRCS
változóban kell összefoglalnunk a
dokumentumot alkotó források neveit. Ebben
érdemes megadni minden olyan állományt,
amelynek megváltozása esetén újra
elő kell állítani az érintett
dokumentumot.
A FORMATS
segítségével definiáljuk a dokumentum
alapértelmezetten előállítandó
formátumait. A INSTALL_COMPRESSED
változóban a dokumentum
elkészítésekor felhasználandó
tömörítési formákat adhatjuk meg.
A INSTALL_ONLY_COMPRESSED
változó alapból üres, de ha adunk neki
valamilyen egyéb értéket, akkor a
dokumentumoknak csak a tömörített
változata fog elkészülni.
A változók feltételes értékadásáról már volt szó az előző szakaszban.
A DOC_PREFIX
változó
és az .include
utasítás a
korábbiak alapján már ismerős
lehet.
Ha kérdése van a FreeBSD-vel kapcsolatban, a
következő címre írhat (angolul):
<questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon:
<gabor@FreeBSD.org>.