aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorHolger Schurig <schurig@mn-solutions.de>2003-04-26 21:21:20 +0000
committerHolger Schurig <schurig@mn-solutions.de>2003-04-26 21:21:20 +0000
commitf216dc3587fb4347d143062b7d68442756b04e7f (patch)
treef128b00a45553b9bb825e0d6fc4eb31768382362 /doc
parent19e432c6794e44463eba603ef567c636edc16201 (diff)
downloadbitbake-f216dc3587fb4347d143062b7d68442756b04e7f.tar.gz
Diffstat (limited to 'doc')
-rw-r--r--doc/README12
-rw-r--r--doc/ebuild.1.txt184
-rw-r--r--doc/ebuild.5.txt733
3 files changed, 929 insertions, 0 deletions
diff --git a/doc/README b/doc/README
new file mode 100644
index 000000000..9fe7f26d9
--- /dev/null
+++ b/doc/README
@@ -0,0 +1,12 @@
+Contents
+--------
+
+Misc documentation
+
+
+
+ebuild.*.txt
+------------
+Since I shape many things of OE like it is in Gentoo, here is the manpage
+of ebuild, Gentoo's build workhorse. It's for reference, we do some things
+differently.
diff --git a/doc/ebuild.1.txt b/doc/ebuild.1.txt
new file mode 100644
index 000000000..68a171071
--- /dev/null
+++ b/doc/ebuild.1.txt
@@ -0,0 +1,184 @@
+NAME
+ ebuild - manual page for the ebuild program, a low level
+ interface to the Portage system.
+
+SYNOPSIS
+ ebuild file command [command]...
+
+DESCRIPTION
+ The ebuild program is a direct interface to the Portage
+ system. It allows for direct action upon an ebuild with
+ specific subcommands or groups of commands to perform in a
+ specific ebuild's context and functions. Accepting an
+ ebuild script and one or more commands as arguments, the
+ ebuild program parses the ebuild script and execute the
+ specified commands. Commands exist to fetch sources,
+ unpack sources, compile sources, install object files into
+ a temporary directory "image", merge the image to the
+ local filesystem, create a bzipped tarball package out of
+ the image, and more.
+
+FILE
+ This must be a valid ebuild script. For further informa­
+ tion read ebuild(5).
+
+COMMANDS
+ help Show a condensed form of the man page along with a
+ lot of package specific information.
+
+ setup Run all package specific setup actions and exotic
+ system checks.
+
+ clean Cleans the temporary build directory that Portage
+ has created for this particular ebuild file. The
+ temporary build directory normally contains the
+ extracted source files as well as a possible
+ "install image" (all the files that will be merged
+ to the local filesystem or stored in a package).
+ The location of the build directory is set by the
+ BUILD_PREFIX variable. For information on what
+ this variable is, run emerge [-v] info, or to over­
+ ride this variable, see make.conf(5).
+
+ Note: Portage cleans up almost everything after a
+ package has been successfully merged unless FEA­
+ TURES contains 'noclean'. Adding noclean to FEA­
+ TURES will cause a lot of files to remain and will
+ consume large amounts of space, very quickly. It is
+ not recommended to leave this on unless you have
+ use for the sources post-merge. Optionally one may,
+ manual clean rm -rf /var/tmp/portage will take care
+ of these files.
+
+ fetch Checks to see if all the sources specified in
+ SRC_URI are available in DISTDIR (see make.conf(5)
+ for more information) and have a valid md5 check­
+ sum. If the sources aren't available, an attempt
+ is made to download them from the locations speci­
+ fied in SRC_URI. If multiple download locations
+ are listed for a particular file, Portage pings
+ each location to see which location is closer. (May
+ not be true presently.) The Gentoo Linux mirrors
+ defined by GENTOO_MIRRORS is always considered
+ first. If for some reason the current or just-down­
+ loaded sources' md5 digests don't match those
+ recorded in files/digest-[package]-[version-rev], a
+ warning is printed and ebuild exits with an error
+ code of 1.
+
+ digest Creates a digest file for the package in
+ /usr/portage/[category]/[package]/files/. This
+ digest file lists the md5sum's of all the files
+ found in the SRC_URI. If the fetched source of the
+ package is corrupt/bogus in some way, the md5sum
+ will catch this.
+
+ unpack Extracts the sources to a subdirectory in the build
+ directory (BUILD_PREFIX) by running the
+ src_unpack() function in the ebuild file. If no
+ src_unpack() function has been specified, a default
+ src_unpack() function is used that extracts all the
+ files specified in SRC_URI. The sources are nor­
+ mally extracted to ${BUILD_PREFIX}/[package]-[ver­
+ sion-rev]/work. This particular directory can be
+ referenced by using the ${WORKDIR} variable.
+
+ If you're creating an ebuild, you'll want to make
+ sure that the S (source directory) variable defined
+ at at the top of your ebuild script points to the
+ directory that contains your extracted sources.
+ This directory is defined by default to be
+ ${WORKDIR}/${P}, so it is not often required. The
+ src_unpack() function is also responsible for mak­
+ ing the appropriate patches to the sources so that
+ they're ready for compilation.
+
+ compile
+ Compiles the extracted sources by running the the
+ src_compile() function specified in the ebuild
+ file. When src_compile() starts, the current work­
+ ing directory will be set to ${S}. When src_com­
+ pile() completes, the sources should be fully com­
+ piled.
+
+ preinst
+ Run package specific actions that need to be done
+ before the package is installed into the live
+ filesystem.
+
+ install
+ Installs the package to the temporary install
+ directory by running the src_install() function.
+ When completed, the install directory (${BUILD_PRE­
+ FIX}/[package]-[version-rev]/image) will contain
+ all the files that should either be merged to the
+ local file system or included in a binary package.
+
+ postinst
+ Run package specific actions that need to be done
+ after the package is installed into the live
+ filesystem. Usually helpful messages are shown
+ here.
+
+ qmerge This function installs all the files in the install
+ directory to the live filesystem. The process works
+ as follows: first, the pkg_preinst() function (if
+ specified) is run. Then, the files are merged into
+ the live filesystem, and the installed files' md5
+ digests are recorded in
+ /var/db/pkg/${CATEOGRY}/${PN}-[version-rev]/CON­
+ TENTS. After all the files have been merged, the
+ pkg_postinst() function (if specified) is executed.
+
+ merge Normally, to merge an ebuild, you need to fetch,
+ unpack, compile, install and qmerge. If you're
+ simply interested in merging the ebuild, you can
+ use this command, which will perform all these
+ steps for you, stopping along the way if a particu­
+ lar step doesn't complete successfully.
+
+ unmerge
+ This function first executes the pkg_prerm function
+ (if specified). Then it removes all files from the
+ live filesystem that have a valid md5 checksum and
+ mtime in the package contents file. Any empty
+ directories are recursively removed. Finally, it
+ runs pkg_postrm function (if specified). It is
+ safe to merge a new version of a package first and
+ then unmerge the old one. In fact, this is the
+ recommended package upgrade method.
+
+ package
+ This command is a lot like the merge command,
+ except that after fetching, unpacking, compiling
+ and installing, a .tbz2 binary package tarball is
+ created and stored in ${PKGDIR}/All (${PKGDIR}
+ defaults to /usr/portage/packages). A symbolic
+ link is created in ${PKGDIR}/${CATEGORY} that
+ points to the package in ${PKGDIR}/All.
+
+ rpm Builds a RedHat RPM package from the files in the
+ temporary install directory. At the moment, the
+ ebuild's dependency information is not incorporated
+ into the RPM.
+
+REPORTING BUGS
+ Please report bugs via http://bugs.gentoo.org/
+
+SEE ALSO
+ ebuild(5), make.conf(5)
+
+ The /usr/sbin/ebuild.sh script.
+
+ The helper apps in /usr/lib/portage/bin.
+
+FILES
+ /etc/make.conf
+ Contains variables for the build-process and over­
+ writes those in make.globals.
+
+AUTHORS
+ Achim Gottinger <achim@gentoo.org>
+ Daniel Robbins <drobbins@gentoo.org>
+ Nicholas Jones <carpaski@gentoo.org>
+ Mike Frysinger <vapier@gentoo.org>
diff --git a/doc/ebuild.5.txt b/doc/ebuild.5.txt
new file mode 100644
index 000000000..4d62b39a5
--- /dev/null
+++ b/doc/ebuild.5.txt
@@ -0,0 +1,733 @@
+NAME
+ ebuild - the internal format, variables, and functions in
+ an ebuild script
+
+DESCRIPTION
+ The ebuild(1) program accepts a single ebuild script as an
+ argument. This script contains variables and commands
+ that specify how to download, unpack, patch, compile,
+ install and merge a particular software package from its
+ original sources. In addition to all of this, the ebuild
+ script can also contain pre/post install/remove commands,
+ as required.
+
+EXAMPLES
+ Here's a simple example ebuild:
+
+ DESCRIPTION="Super-useful stream editor (sed)"
+ SRC_URI="ftp://alpha.gnu.org/pub/gnu/sed/${P}.tar.gz"
+ HOMEPAGE="http://www.gnu.org/software/sed/sed.html"
+
+ KEYWORDS="~x86"
+ SLOT="0"
+ LICENSE="GPL-2"
+ IUSE=""
+
+ DEPEND="virtual/glibc"
+ RDEPEND="virtual/glibc"
+
+ src_compile() {
+ econf || die "could not configure"
+ emake || die "emake failed"
+ }
+
+ src_install() {
+ into /usr
+ doinfo doc/sed.info
+ doman doc/sed.1
+ into /
+ dobin sed/sed
+ dodir /usr/bin
+ dosym /bin/sed /usr/bin/sed
+ dodoc COPYING NEWS README* THANKS TODO AUTHORS BUGS
+ ANNOUNCE
+ }
+
+VARIABLES
+ MISC USAGE NOTES
+ - PORTAGE* and PORTDIR* variables may be found in
+ make.conf(5).
+ - When assigning values to variables in ebuilds,
+ you cannot have a space between the variable name
+ and the equal sign.
+
+ P This variable contains the package name without the
+ ebuild revision. This variable must NEVER be modi­
+ fied.
+ xfree-4.2.1-r2.ebuild --> $P=='xfree-4.2.1'
+
+ PN Contains the name of the script without the version
+ number.
+ xfree-4.2.1-r2.ebuild --> $PN=='xfree'
+
+ PV Contains the version number without the revision.
+ xfree-4.2.1-r2.ebuild --> $PV=='4.2.1'
+
+ PR Contains the revision number or 'r0' if no revision
+ number exists.
+ xfree-4.2.1-r2.ebuild --> $PR=='r2'
+
+ PF Contains the full package name [PN]-[PV]-r[PR]
+ xfree-4.2.1-r2.ebuild --> $PF=='xfree-4.2.1-r2'
+
+ A Contains all source files required for the package.
+ This variable must not be defined. It is autogener­
+ ated from the SRC_URI variables.
+
+ WORKDIR = "${PORTAGE_TMPDIR}/portage/${PF}/work"
+ Contains the path to the package build root. Do
+ not modify this variable.
+
+ FILESDIR = "${PORTDIR}/${CATEGORY}/${PF}/files"
+ Contains the path to the 'files' sub folder in the
+ package specific location in the portage tree. Do
+ not modify this variable.
+
+ S = "${WORKDIR}/${P}"
+ Contains the path to the temporary build directory.
+ This variable is used by the functions src_compile
+ and src_install. Both are executed with S as the
+ current directory. This variable may be modified
+ to match the extraction directory of a tarball for
+ the package.
+
+ T = "${PORTAGE_TMPDIR}/portage/${PF}/temp"
+ Contains the path to a temporary directory. You
+ may use this for whatever you like.
+
+ D = "${PORTAGE_TMPDIR}/portage/${PF}/image"
+ Contains the path to the temporary install direc­
+ tory. Every write operation that does not involve
+ the helper tools and functions (found below) should
+ be prefixed with ${D}. Do not modify this vari­
+ able.
+
+ DESCRIPTION = "A happy little package"
+ Should contain a short description of the package.
+
+ SRC_URI = "http://happy.com/little/${P}.tar.gz"
+ Contains a list of URI's for the required source
+ files. It can contain multiple URI's for a single
+ source file. The fastest location is chosen if the
+ file was not found at GENTOO_MIRROR.
+
+ HOMEPAGE = "http://happy.com/"
+ Should contain a list of URL's for the sources main
+ sites and other further package dependent informa­
+ tion.
+
+ KEYWORDS = [-~][x86,ppc,sparc,mips,alpha,arm,hppa]
+ Should contain appropriate list of arches that the
+ ebuild is know to work/not work. By default if you
+ do not know if an ebuild runs under a particular
+ arch simply omit that KEYWORD. If the ebuild will
+ not work on that arch include it as -ppc for exam­
+ ple. If the ebuild is being submitted for inclu­
+ sion, it must have ~arch set for architectures
+ where it has been PROVEN TO WORK. (Packages KEY­
+ WORDed this way may be unmasked for testing by set­
+ ting ACCEPT_KEYWORDS="~arch" on the command line,
+ or in make.conf(5)) For an authoritative list
+ please review /usr/portage/profiles/arch.list.
+
+ SLOT This sets the SLOT for packages that may need to
+ co-exist. By default you should set SLOT="0"
+ unless you know what you are doing and need to do
+ otherwise. This value should NEVER be left unde­
+ fined.
+
+ LICENSE
+ This should be a space delimited list of licenses
+ that the package falls under. This _must_ be set
+ to a matching license in /usr/portage/licenses/. If
+ the license does not exist in portage yet you must
+ add it first.
+
+ IUSE This should be a list of any and all USE flags that
+ are leveraged within your build script. The only
+ USE flags that should not be listed here are arch
+ related flags (see KEYWORDS).
+
+ DEPEND This should contain a list of all packages that are
+ required for the program to compile.
+
+ DEPEND Atoms
+ A depend atom is simply a dependency that is
+ used by portage when calculating relation­
+ ships between packages. Please note that if
+ the atom has not already been emerged, then
+ the latest version available is matched.
+
+ Atom Bases
+ The base atom is just a full cate­
+ gory/packagename. Hence, these are
+ base atoms:
+
+ sys-apps/sed
+ sys-libs/zlib
+ net-misc/dhcp
+
+ Atom Versions
+ It is nice to be more specific and
+ say that only certain versions of
+ atoms are acceptable. Note that
+ versions must be combined with a
+ prefix (see below). Hence you may
+ add a version number as a postfix to
+ the base:
+
+ sys-apps/sed-4.0.5
+ sys-libs/zlib-1.1.4-r1
+ net-misc/dhcp-3.0_p2
+
+ Atom Prefix Operators [> >= = <= =]
+ Sometimes you want to be able to
+ depend on general versions rather
+ than specifying exact versions all
+ the time. Hence we provide standard
+ boolean operators:
+
+ >media-libs/libgd-1.6
+ >=media-libs/libgd-1.6
+ =media-libs/libgd-1.6
+ <=media-libs/libgd-1.6
+ <media-libs/libgd-1.6
+
+ Extended Atom Prefixes [!] and Postfixes [*]
+ Now to get even fancier, we provide
+ the ability to define blocking pack­
+ ages and version range matching.
+ Also note that these extended pre­
+ fixes/postfixes may be combined in
+ any way with the atom classes
+ defined above. Here are some common
+ examples you may find in the portage
+ tree:
+
+ !app-text/dos2unix
+ =dev-libs/glib-2*
+ !net-fs/samba-2*
+
+ ! means block packages from being
+ installed at the same time. * means
+ match any version of the package so
+ long as the specified base is
+ matched. So with a version of '2*',
+ we can match '2.1', '2.2', '2.2.1',
+ etc... and not match version '1.0',
+ '3.0', '4.1', etc...
+
+ USE Variation
+ Sometimes programs may depend on different
+ things depending on the USE variable. To
+ vary the packages the program depends on,
+ just use this syntax:
+
+ DEPEND="media-libs/libsdl
+ jpeg? ( >=media-libs/jpeg-6b )
+ tiff? ( >=media-libs/tiff-3.5.5 )
+ png? ( >=media-libs/libpng-1.2.1 )
+ X? ( virtual/x11 )"
+
+
+ RDEPEND
+ This should contain a list of all
+ packages that are required for this
+ program to run (aka runtime depend).
+ If this is not set, then it defaults
+ to the value of DEPEND.
+ You may use the same syntax to vary
+ dependencies as seen above in DEPEND.
+
+ RESTRICT = [nostrip,nomirror,fetch]
+ This should be a space delimited list
+ of portage features to restrict.
+ nostrip
+ final binaries/libraries will
+ not be stripped of debug sym­
+ bols.
+ nomirror
+ files in SRC_URI will not be
+ downloaded from the GEN­
+ TOO_MIRRORS.
+ fetch like nomirror but the files
+ will not be fetched via
+ SRC_URI either.
+
+ PROVIDE = "virtual/TARGET"
+ This variable should only be used
+ when a package provides a virtual
+ target. For example, blackdown-jdk
+ and sun-jdk provide virtual/jdk.
+ This allows for packages to depend on
+ virtual/jdk rather than on blackdown
+ or sun specifically.
+
+FUNCTIONS
+ pkg_nofetch
+ If you turn on fetch in RESTRICT,
+ then this function will be run when
+ the files in SRC_URI cannot be found.
+ Useful for displaying information to
+ the user on *how* to obtain said
+ files.
+
+ pkg_setup
+ This function can be used if the
+ package needs specific setup actions
+ or checks to be preformed before any­
+ thing else.
+ Initial working directory of
+ ${PORTAGE_TMPDIR}.
+
+ src_unpack
+ This function is used to unpack all
+ the sources in A to WORKDIR. If not
+ defined in the ebuild script it calls
+ unpack ${A}. Any patches and other
+ pre configure/compile modifications
+ should be done here.
+ Initial working directory of
+ $WORKDIR.
+
+ src_compile
+ All necessary steps for configuration
+ and compilation should be done in
+ here.
+ Initial working directory of $S.
+
+ src_install
+ Should contain everything required to
+ install the package in the temporary
+ install directory.
+ Initial working directory of $S.
+
+ pkg_preinst pkg_postinst
+ All modifications required on the
+ live-filesystem before and after the
+ package is merged should be placed
+ here. Also commentary for the user
+ should be listed here as it will be
+ displayed last.
+ Initial working directory of $PWD.
+
+ pkg_prerm pkg_postrm
+ Like the pkg_*inst functions but for
+ unmerge.
+ Initial working directory of $PWD.
+
+ config This function should contain optional
+ basic configuration steps.
+ Initial working directory of $PWD.
+
+HELPER FUNCTIONS: GENERAL
+ die [reason]
+ Causes the current emerge process to
+ be aborted. The final display will
+ include reason.
+
+ use <USE item>
+ If USE item is in the USE variable,
+ USE item will be echoed and the func­
+ tion will return 0. If USE item is
+ not in the USE variable, the function
+ will return 1.
+
+ Example:
+ if [ `use gnome` ] ; then
+ guiconf="--enable-
+ gui=gnome --with-x"
+ elif [ `use gtk` ] ; then
+ guiconf="--enable-gui=gtk
+ --with-x"
+ elif [ `use X` ] ; then
+ guiconf="--enable-
+ gui=athena --with-x"
+ else
+ # No gui version will be
+ built
+ guiconf=""
+ fi
+
+ use_with <USE item> [configure option]
+ Useful for creating custom options to
+ pass to a configure script. If USE
+ item is in the USE variable, then the
+ string --with-[configure option] will
+ be echoed. If USE item is not in the
+ USE variable, then the string --with­
+ out-[configure option] will be
+ echoed. If configure option is not
+ specified, than USE item will be used
+ in its place.
+
+ Example:
+ USE="jpeg"
+ myconf="`use_with jpeg lib­
+ jpeg`"
+ (myconf now has the value
+ "--with-libjpeg")
+
+ USE=""
+ myconf="`use_with jpeg lib­
+ jpeg`"
+ (myconf now has the value
+ "--without-libjpeg")
+
+ USE="pic"
+ myconf="`use_with pic`"
+ (myconf now has the value
+ "--with-pic")
+
+ use_enable <USE item> [configure option]
+ Useful for creating custom options to
+ pass to a configure script. If USE
+ item is in the USE variable, then the
+ string --enable-[configure option]
+ will be echoed. If USE item is not
+ in the USE variable, then the string
+ --disable-[configure option] will be
+ echoed. If configure option is not
+ specified, than USE item will be used
+ in its place.
+ See use_with for an example.
+
+ has <item> <item list>
+ If item is in item list, then item is
+ echoed and has returns 0. Otherwise,
+ nothing is echoed and 1 is returned.
+ The item list is delimited by the IFS
+ variable. This variable has a
+ default value of ' ', or a space. It
+ is a bash(1) setting.
+
+ has_version <category/package-version>
+ Check to see if category/package-ver­
+ sion is installed on the system. The
+ parameter accepts all values that are
+ acceptable in the DEPEND variable.
+ The function returns 0 if cate­
+ gory/package-version is installed, 1
+ otherwise.
+
+ best_version <package name>
+ This function will look up package
+ name in the database of currently
+ installed programs and echo the "best
+ version" of the package that is cur­
+ rently installed. The function
+ returns 0 if there is a package that
+ matches package name. Otherwise, the
+ function will return 1.
+
+ Example:
+ VERINS=`best_version net-
+ ftp/glftpd`
+ (VERINS now has the value
+ "net-ftp/glftpd-1.27" if
+ glftpd-1.27 is installed)
+
+HELPER FUNCTIONS: UNPACK
+ unpack <source> [list of more sources]
+ This function uncompresses and/or
+ untars a list of sources into the
+ current directory. The function will
+ append source to the DISTDIR vari­
+ able.
+
+HELPER FUNCTIONS: COMPILE
+ econf [configure options]
+ This is used as a replacement for
+ configure. Performs:
+ configure \
+ --prefix=/usr \
+ --host=${CHOST} \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --datadir=/usr/share \
+ --sysconfdir=/etc \
+ --localstatedir=/var/lib \
+ configure options
+
+ *Note: There is no need to use '||
+ die' because econf checks for you
+
+ emake [make options]
+ This is used as a replacement for
+ make. Performs default is
+ MAKEOPTS="-j2".
+
+ ***warning***
+ if you are going to use emake, make
+ sure your build is happy with par­
+ alell makes (make -j2). It should be
+ tested thoroughly as parallel makes
+ are notorious for failing _sometimes_
+ but not always.
+
+ *Note: Be sure to use '|| die' con­
+ structs to ensure emake success
+
+HELPER FUNCTIONS: INSTALL
+ einstall [make options]
+ This is used as a replacement for
+ make install. Performs:
+ make prefix=${D}/usr \
+ mandir=${D}/usr/share/man
+ \
+ infodir=${D}/usr/share/info
+ \
+ datadir=${D}/usr/share \
+ sysconfdir=${D}/etc \
+ localstate­
+ dir=${D}/var/lib \
+ make options install
+
+ *Note: There is no need to use '||
+ die' because einstall checks for you
+
+ prepall
+ prepalldocs
+ prepallinfo
+ prepallman
+ prepallstrip
+ Useful for when a package installs
+ into ${D} via scripts (i.e. make­
+ files). If you want to be sure that
+ libraries are executable, aclocal
+ files are installed into the right
+ place, doc/info/man files are all
+ compressed, and that executables are
+ all stripped of debugging symbols,
+ then use these suite of functions.
+ prepall:
+ Runs prepallman, prepallinfo,
+ prepallstrip, sets libraries
+ +x, and then checks aclocal
+ directories. Please note this
+ does *not* run prepalldocs.
+ prepalldocs:
+ Compresses all doc files in
+ ${D}/usr/share/doc.
+ prepallinfo:
+ Compresses all info files in
+ ${D}/usr/share/info.
+ prepallman:
+ Compresses all man files in
+ ${D}/usr/share/man.
+ prepallstrip:
+ Strips all executable files of
+ debugging symboles. This
+ includes libraries.
+
+ prepinfo [dir]
+ preplib [dir]
+ preplib.so [dir]
+ prepman [dir]
+ prepstrip [dir]
+ Similiar to the prepall functions,
+ these are subtle in their differ­
+ ences.
+ prepinfo:
+ If a dir is not specified,
+ then prepinfo will assume the
+ dir usr. prepinfo will then
+ compress all the files in
+ ${D}/dir/info.
+ preplib:
+ If a dir is not specified,
+ then preplib will assume the
+ dir usr. preplib will then run
+ 'ldconfig -n -N' on
+ ${D}/dir/lib.
+ preplib.so:
+ All the files with '.so' in
+ their name and are found in
+ ${D}/dir will be stripped of
+ their debug symbols. You may
+ specify multiple directories.
+ prepman:
+ If a dir is not specified,
+ then prepman will assume the
+ dir usr. prepman will then
+ compress all the files in
+ ${D}/dir/man/*/.
+ prepstrip:
+ All the files found in
+ ${D}/dir will be stripped.
+ You may specify multiple
+ directories.
+
+ dopython <commands>
+ Performs commands with python and
+ returns the result.
+
+ dosed "s:orig:change:g" <filename>
+ Performs sed (including cp/mv file­
+ name) on filename.
+ 'dosed "s:/usr/local:/usr:g"
+ /usr/bin/some-script' runs sed on
+ ${D}/usr/bin/some-script
+
+ dodir <path>
+ Creates a directory inside of ${D}.
+ 'dodir /usr/lib/apache' creates
+ ${D}/usr/lib/apache
+
+ into <path>
+ Sets the root (DESTTREE) for other
+ functions like dobin, dosbin, doman,
+ doinfo, dolib.
+ The default root is /usr.
+
+ keepdir <path>
+ Tells portage to leave a directory
+ behind even if it is empty.
+ Functions the same as dodir.
+
+ dobin <binary> [list of more binaries]
+ Installs a binary or a list of bina­
+ ries into DESTTREE/bin. Creates all
+ necessary dirs.
+
+ dosbin <binary> [list of more binaries]
+ Installs a binary or a list of bina­
+ ries into DESTTREE/sbin. Creates all
+ necessary dirs.
+
+ dolib <library> [list of more libraries]
+ dolib.a <library> [list of more libraries]
+ dolib.so <library> [list of more libraries]
+ Installs a library or a list of
+ libraries into DESTTREE/lib. Creates
+ all necessary dirs.
+
+ doman <man-page> [list of more man-pages]
+ Installs manual-pages into DEST­
+ DIR/man/man[1-8n] depending on the
+ manual file ending. The files are
+ gzipped if they are not already. Cre­
+ ates all necessary dirs.
+
+ dohard <filename> <linkname>
+ dosym <filename> <linkname>
+ Performs the ln command as either a
+ hard link or symlink.
+
+ dohtml [-a filetypes] [-r] [-x
+ list-of-dirs-to-ignore]
+ [list-of-files-and-dirs]
+ Installs the files in the list of
+ files (space-separated list) into
+ /usr/share/doc/${PF}/html provided
+ the file ends in .html, .png, .js, -A
+ appends to the default list, setting
+ -x sets which dirs to exclude (CVS
+ excluded by default), -r sets recur­
+ sive.
+
+ doinfo <info-file> [list of more info-files]
+ Installs info-pages into DEST­
+ DIR/info. Files are automatically
+ gzipped. Creates all necessary dirs.
+
+ dojar <jar file> [list of more jar files]
+ Installs jar files into
+ /usr/share/${PN}/lib and adds them to
+ /usr/share/${PN}/classpath.env.
+
+ domo <locale-file> [list of more
+ locale-files]
+ Installs locale-files into DEST­
+ DIR/usr/share/locale/[LANG] depending
+ on local-file's ending. Creates all
+ necessary dirs.
+
+ fowners <permissions> <file> [files]
+ fperms <permissions> <file> [files]
+ Performs chown (fowners) or chmod
+ (fperms), applying permissions to
+ files.
+
+ insinto [path]
+ Sets the root (INSDESTTREE) for the
+ doins function.
+ The default root is /.
+
+ insopts [options for install(1)]
+ Can be used to define options for the
+ install function used in doins. The
+ default is -m0644.
+
+ doins <file> [list of more files]
+ Installs files into INSDESTTREE.
+ This function uses install(1).
+
+ exeinto [path]
+ Sets the root (EXEDESTTREE) for the
+ doexe function.
+ The default root is /.
+
+ exeopts [options for install(1)]
+ Can be used to define options for the
+ install function used in doexe. The
+ default is -m0755.
+
+ doexe <executable> [list of more executa­
+ bles]
+ Installs a executable or a list of
+ executable into EXEDESTTREE. This
+ function uses install(1).
+
+ docinto [path]
+ Sets the relative subdir (DOCDEST­
+ TREE) used by dodoc.
+
+ dodoc <document> [list of more documents]
+ Installs a document or a list of doc­
+ ument into /usr/doc/${PV}/DOCDEST­
+ TREE. Files are automatically
+ gzipped. Creates all necessary dirs.
+
+ newbin <old file> <new filename>
+ newsbin <old file> <new filename>
+ newlib <old file> <new filename>
+ newlib.so <old file> <new filename>
+ newlib.a <old file> <new filename>
+ newman <old file> <new filename>
+ newinfo <old file> <new filename>
+ newins <old file> <new filename>
+ newexe <old file> <new filename>
+ newdoc <old file> <new filename>
+ All these functions act like the do*
+ functions, but they only work with
+ one file and the file is installed as
+ [new filename].
+
+REPORTING BUGS
+ Please report bugs via http://bugs.gen­
+ too.org/
+
+SEE ALSO
+ ebuild(1), make.conf(5)
+
+ The /usr/sbin/ebuild.sh script.
+
+ The helper apps in /usr/lib/portage/bin.
+
+FILES
+ /etc/make.conf
+ Contains variables for the build-pro­
+ cess and overwrites those in
+ make.defaults.
+
+ /etc/make.globals
+ Contains the default variables for
+ the build-process, you should edit
+ /etc/make.conf instead.
+
+AUTHORS
+ Achim Gottinger <achim@gentoo.org>
+ Mark Guertin <gerk@gentoo.org>
+ Nicholas Jones <carpaski@gentoo.org>
+ Mike Frysinger <vapier@gentoo.org>