The DEPENDS file is used to contain information about what this spell needs to compile, with optional ones for added compile-time or runtime options.
This specifies the name of the spell which this spell requires to compile.
The syntax is:
depends <spell> \ ["<config_if_set>"] \ ["<description>"] \ [<grimoire>]
Example (basic dependency):
Example (multiple dependencies):
depends zlib "--enable-compression" && depends gtk+ "" "for the GUI"
This specifies the name of the spell which this spell requires to run, but not to build.
This specifies the name of the spell which this spell can use to add features, along with the required ./configure parameters (use
./configure --help for this spell to find out what else you can add to it and what their options are).
The syntax is:
optional_depends <spell> \ "<config_if_set>" \ "<config_if_unset>" \ "descripion" \ [<grimoire>]
optional_depends gtk+ \ "--with-gtk+" \ "--without-gtk+" \ "to enable GTK+ widget support"
Example (multiple optional dependencies):
optional_depends gtk+ \ "--with-gtk+" \ "--without-gtk+" \ "to enable GTK+ widget support" && optional_depends sdl \ "--with-sdl" \ "--without-sdl" \ "for Simple DirectMedia Layer support"
This specifies the name of the spell which this spell can use at runtime, but does not need it to build. It is the runtime-only counterpart of
suggest_depends wine-gecko "" "" "for a standalone gecko for wine"
This specifies the name of the provider which this spell requires to compile or run, optionally or not.
depends MAIL-TRANSPORT-AGENT && suggest_depends WEB-BROWSER "" "" "for browsing the html docs"
See PROVIDES for a listing of generic services provided by spells, and how to use them to make generic dependencies.
Only spells that can actually use all of the providers for a generic dependency are allowed to depend/optional_depend on that provider.
Cross-grimoire dependencies allow you to depend on a spell in a specific grimoire.
Here is an example of how to use cross-grimoire depends:
depends JAVA "" "" z-rejected && optional_depends libcg \ "--enable-cg" \ "--disable-cg" \ "for nVIDIA's Computer Graphics library" \ z-rejected
This package will depend on z-rejected for
JAVA, and again depend on z-rejected if the user says 'y' to installing "libcg".
Remember, do not use TABs, but instead SPACEs for formatting. Also make sure that your last line does not have the
&&, for there will be nothing after it to continue on, and you will have a syntax error when this file is read. And you always must provide at least
"" if you have further arguments or the ordering will be wrong.
depends JAVA "" "" z-rejected && optional_depends libcg \ "" \ "" \ "for nVIDIA's Computer Graphics library" \ z-rejected
force_depends is not a regular dependency function like the rest mentioned here. It is used to force a dependency to be rebuilt if possible. The dependency still has to be specified normally.
For example, "g++" needs to be of the same version as "gcc" or it won't build:
depends gcc && if [[ $VERSION != $(installed_version gcc) ]]; then force_depends gcc fi
force_depends forces ordering and that's what helps most. "gcc" could've been recompiled later in the queue, but this spell needs the latest before its own build.