A FreeBSD Dokumentációs Projekt irányelvei kezdőknek
Előző | Fejezet 7. A dokumentáció előállításának folyamata | Következő

# 7.2. A dokumentációt tároló könyvtárban található `Makefile` állományok

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.

## 7.2.1. Az alkönyvtári `Makefile` állományok

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.

## 7.2.2. A dokumentumokra vonatkozó `Makefile` állományok

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.sgml

    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 `.sgml` 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.

> Megjegyzés: 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.

Előző | Tartalom | Következő
A dokumentáció előállításának folyamata | Fel | A FreeBSD Dokumentációs Projekt `.mk` állományai

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.