Pro přípravu WiBSD image je potřeba balík skriptů a ostatních souborů, které nejsou veřejné.
Balík obsahuje adresář plugins ve kterém jsou další adresáře, které postupně projdeme:
_DISTROS: zde jsou pluginy pro celou distribuci, které kopirují pouze nezbytné soubory ze základní distribuce FreeBSD to distribuce WiBSD.
_IMAGES: pluginy, které mohou například vytvářet filesystém pro flash kartu nebo pro cd
_LIBS: kopirují knihovny z FreeBSD do WiBSD
_PORTS: kompilují porty a kopírují nezbytné soubory do WiBSD
ostatní adresáře: obecné pluginy, které upravují různé soubory distribuce WiBSD a přidávají tím další funkcionalitu.
V každém pluginu může být několik adresářů, které určují další práci s pluginem. Protože se může funkcionalita lišit pro různé verze WiBSD, je možnost vytvořit podadresáře, jejichž jména určují, pro kterou verzi se jejich obsah použije.
all: pro všechny verze
RELENG_4: pro verze FreeBSD 4.x
RELENG_4_8: pro verzi 4.8
pokud používáte verzi 4.8, aplikují se adresáře all, RELENG_4, RELENG_4_8 v tomto pořadí.
Každý plugin může provádět různé akce, podle toho jestli má nějaký obsah v následujících podadresářích.
Adresáře kontrolované před kompilací systému
prespecial: skripty, které se spustí před tím, než začné kompilace
patch: předkompilací "opatchuje" zdrojové soubory FreeBSD
Adresáře kontrolované po zkompilování systému
distro: zkopíruje soubory z FreeBSD do WiBSD
add: přidá soubrory z podaresářů do stejných adresářů ve WiBSD, přepíše existující
conadd: jako add ale zachová exitující
append: přidá obsah souborů v podadresářích na konec stejných souboru ve WiBSD
postpatch: umožňuje provádět patchování výsledných souborů
postspecial: skripty, které se provedou po kompilaci
V kořenu systému balíků jsou dva důležité soubory
Makefile: obsahuje cíle, jako jsou
buildjail: provádí buildworld, buildkernel
installjail: installworld, installkernel, distribution (vytvoří soubory v /etc), copyports (zkopíruje porty to chrootu)
jail: buildjail, installjail
fresh-jail: cvsup (z cvs vybere zdrojové soubory systému), cvsup-ports (z cvs vybere soubory portů), preprocess (provede předkompilační akce z pluginů), jail
wibsd: sestavuje distribuci wibsd podle pluginu
image: vytvoří image na flash kartu nebo CD
upgrade: vytvoří soubor pro vzdálený upgrade
fresh-image: vytvoří všecho
Makefile.conf: konfigurační soubor pro výše uvedený Makefile, definují se v něm sekce, kde každá může používat jiné pluginy a nastavení kompilačních adresářů.
Názvy pluginů, které chcete použít, se vloží do proměnných
DISTROPLUGINS: jména pluginů z _DISTRO adresáře
PORTPLUGINS: jména pluginů z _PORTS
LIBPLUGINS: z _LIB
IMAGEPLUGINS: z _IMAGE
PLUGINS: obecné pluginy
CLEANUPPLUGINS: obecné pluginy, které provádějí závěrečné čistění souborů v distribuci (jako strip na binárky apod.)b
Samotná kompilace se provádí v základním adresáři, kde jsou soubory Makefile a Makefile.conf a to zadáním příkazu make -DJMÉNO_SEKCE cíl, například následovně
root@vergilius# make -DSMART-ROUTER wibsd upgrade
Nad dříve zkompilovaným systémem provede sestavení WiBSD a vytvoření souboru pro upgrade.