summaryrefslogtreecommitdiffstats
path: root/doc/makepkg.conf.5.asciidoc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/makepkg.conf.5.asciidoc')
-rw-r--r--doc/makepkg.conf.5.asciidoc269
1 files changed, 269 insertions, 0 deletions
diff --git a/doc/makepkg.conf.5.asciidoc b/doc/makepkg.conf.5.asciidoc
new file mode 100644
index 00000000..3b596a91
--- /dev/null
+++ b/doc/makepkg.conf.5.asciidoc
@@ -0,0 +1,269 @@
+makepkg.conf(5)
+===============
+
+Name
+----
+makepkg.conf - makepkg configuration file
+
+
+Synopsis
+--------
+{sysconfdir}/makepkg.conf, $XDG_CONFIG_HOME/pacman/makepkg.conf, ~/.makepkg.conf
+
+
+Description
+-----------
+Configuration options for makepkg are stored in makepkg.conf. This file is
+sourced so you can include any special compiler flags you wish to use. This is
+helpful when building for different architectures or with different
+optimizations. However, only the variables described below are exported to the
+build environment.
+
+NOTE: This does not guarantee that all package Makefiles will use your exported
+variables. Some of them are non-standard.
+
+The system-wide configuration file is found in {sysconfdir}/makepkg.conf.
+Individual options can be overridden (or added to) on a per-user basis in
+$XDG_CONFIG_HOME/pacman/makepkg.conf or ~/.makepkg.conf, with the former
+taking priority.
+
+The default file is fairly well commented, so it may be easiest to simply
+follow directions given there for customization.
+
+
+Options
+-------
+**DLAGENTS=(**\'protocol::/path/to/command [options]' ...**)**::
+ Sets the download agents used to fetch source files specified with a URL in
+ the linkman:PKGBUILD[5] file. Options can be specified for each command as
+ well, and any protocol can have a download agent. Any spaces in option
+ arguments are required to be escaped to avoid being split. Several
+ examples are provided in the default makepkg.conf.
+ +
+ If present, `%u` will be replaced with the download URL. Otherwise, the
+ download URL will be placed on the end of the command. If present, `%o` will
+ be replaced with the local file name, plus a ``.part'' extension, which allows
+ makepkg to handle resuming file downloads.
+
+**VCSCLIENTS=(**\'protocol::package' ...**)**::
+ Sets the packages required to fetch version controlled source files. When
+ required, makepkg will check that these packages are installed or are included
+ in the `depends` or `makedepends` arrays in the PKGBUILD.
+
+**CARCH=**"carch"::
+ Specifies your computer architecture; possible values include such things
+ as ``i686'', ``x86_64'', ``ppc'', etc. This should be automatically set on
+ installation.
+
+**CHOST=**"chost"::
+ A string such as ``i686-pc-linux-gnu''; do not touch this unless you know what
+ you are doing. This can be commented out by most users if desired.
+
+**CPPFLAGS=**"cppflags"::
+ Flags used for the C preprocessor; see CFLAGS for more information.
+
+**CFLAGS=**"cflags"::
+ Flags used for the C compiler. This is a key part to the use of makepkg.
+ Usually several options are specified, and the most common string resembles
+ something like this: ``-march=i686 -O2 -pipe''. Another useful option may
+ be `-mcpu` in place of `-march`. Read gcc(1) for more details on the wide
+ variety of compiler flags available.
+
+**CXXFLAGS=**"cxxflags"::
+ Flags used for the C++ compiler; see CFLAGS for more info.
+
+**LDFLAGS=**"ldflags"::
+ Flags used for the linker. Several options may be specified with common
+ usage resembling ``-Wl,--hash-style=gnu''. Read ld(1) for more details on
+ available linker flags.
+
+**MAKEFLAGS=**"makeflags"::
+ This is often used to set the number of jobs used; for example, `-j2`.
+ Other flags that make accepts can also be passed.
+
+**DEBUG_CFLAGS=**"debug_cflags"::
+ Additional compiler flags appended to `CFLAGS` for use in debugging. Usually
+ this would include: ``-g''. Read gcc(1) for more details on the wide
+ variety of compiler flags available.
+
+**DEBUG_CXXFLAGS=**"debug_cxxflags"::
+ Debug flags used for the C++ compiler; see DEBUG_CFLAGS for more info.
+
+**BUILDENV=(**!distcc !color !ccache check !sign**)**::
+ This array contains options that affect the build environment; the defaults
+ are shown here. All options should always be left in the array; to enable
+ or disable an option, simply remove or add an ``!'' at the front of the
+ option. If an option is specified multiple times, the final value takes
+ precedence. Each option works as follows:
+
+ *distcc*;;
+ Use the distributed C/C++/ObjC compiler to spread compilation among
+ multiple machines. If this is enabled, `DISTCC_HOSTS` must be specified
+ as well.
+
+ *color*;;
+ Colorize output messages, making output easier to read.
+
+ *ccache*;;
+ Use ccache to cache compilation by default. This allows for faster
+ compiles if you are continuously recompiling the same packages. It can
+ be disabled for individual packages by placing `!ccache` in the
+ PKGBUILD options array.
+
+ *check*;;
+ Run the check() function if present in the PKGBUILD. This can be
+ enabled or disabled for individual packages through the use of
+ makepkg's '\--check' and '\--nocheck' options, respectively.
+
+ *sign*;;
+ Generate a PGP signature file using GnuPG. This will execute 'gpg
+ \--detach-sign \--use-agent' on the built package to generate a detached
+ signature file, using the GPG agent, if it is available. The signature
+ file will be the entire file name of the package with a ``.sig''
+ extension.
+
+**DISTCC_HOSTS=**"host1 ..."::
+ If using DistCC, this is used to specify a space-delimited list of hosts
+ running in the DistCC cluster. In addition, you will want to modify your
+ `MAKEFLAGS`.
+
+**BUILDDIR=**"/path/to/directory"::
+ If this value is not set, packages will, by default, be built in
+ subdirectories of the directory that makepkg is called from. This
+ option allows setting the build location to another directory.
+ Incorrect use of `$startdir` in a PKGBUILD may cause building with
+ this option to fail.
+
+**GPGKEY=**""::
+ Specify a key to use for GPG signing instead of the default key in the
+ keyring. Can be overridden with makepkg's '\--key' option.
+
+**OPTIONS=(**!strip docs libtool staticlibs emptydirs !zipman !purge !debug**)**::
+ This array contains options that affect default packaging. They are
+ equivalent to options that can be placed in the PKGBUILD; the defaults are
+ shown here. All options should always be left in the array; to enable or
+ disable an option, simply remove or add an ``!'' at the front of the
+ option. If an option is specified multiple times, the final value takes
+ precedence. Each option works as follows:
+
+ *strip*;;
+ Strip symbols from binaries and libraries. If you frequently use a
+ debugger on programs or libraries, it may be helpful to disable this
+ option.
+
+ *docs*;;
+ Save doc directories. If you wish to delete doc directories, specify
+ `!docs` in the array. The directories affected are specified by the
+ `DOC_DIRS` variable.
+
+ *libtool*;;
+ Leave libtool (.la) files in packages. Specify `!libtool` to remove
+ them.
+
+ *staticlibs*;;
+ Leave static library (.a) files in packages. Specify `!staticlibs` to
+ remove them, if they have a shared counterpart.
+
+ *emptydirs*;;
+ Leave empty directories in packages.
+
+ *zipman*;;
+ Compress manual (man and info) pages with gzip. The directories
+ affected are specified by the `MAN_DIRS` variable.
+
+ *purge*;;
+ Remove files specified by the `PURGE_TARGETS` variable from the
+ package.
+
+ *debug*;;
+ Add the user-specified debug flags as specified in DEBUG_CFLAGS and
+ DEBUG_CXXFLAGS to their counterpart buildflags. Creates a separate
+ package containing the debug symbols when used with `strip'.
+
+**INTEGRITY_CHECK=(**check1 ...**)**::
+ File integrity checks to use. Multiple checks may be specified; this
+ affects both generation and checking. The current valid options are:
+ `md5`, `sha1`, `sha256`, `sha384`, and `sha512`.
+
+**STRIP_BINARIES=**"--strip-all"::
+ Options to be used when stripping binaries. See linkman:strip[1]
+ for details.
+
+**STRIP_SHARED=**"--strip-unneeded"::
+ Options to be used when stripping shared libraries or PIE executables.
+ See linkman:strip[1] for details.
+
+**STRIP_STATIC=**"--strip-debug"::
+ Options to be used when stripping static libraries. See linkman:strip[1]
+ for details.
+
+**MAN_DIRS=(**{usr{,/local}{,/share},opt/*}/{man,info} ...**)**::
+ If `zipman` is specified in the `OPTIONS` array, this variable will
+ instruct makepkg where to look to compress manual (man and info)
+ pages. If you build packages that are located in opt/, you may need
+ to add the directory to this array. *NOTE:* Do not add the leading
+ slash to the directory name.
+
+**DOC_DIRS=(**usr/{,share/}{doc,gtk-doc} ...**)**::
+ If `!docs` is specified in the `OPTIONS` array, this variable will
+ instruct makepkg where to look to remove docs. If you build packages
+ that are located in opt/, you may need to add the directory to this
+ array. *NOTE:* Do not add the leading slash to the directory name.
+
+**PURGE_TARGETS=(**usr/{,share}/info/dir .podlist *.pod...**)**::
+ If `purge` is specified in the `OPTIONS` array, this variable will
+ instruct makepkg which files to remove from the package. This is
+ useful for index files that are added by multiple packages.
+
+**DBGSRCDIR=**"/usr/src/debug"::
+ If `strip` and `debug` are specified in the `OPTIONS` array, this variable
+ will instruct makepkg where to place source files for installed binaries.
+ The binaries will be modified to link this directory for the debugger
+ search path.
+
+**PKGDEST=**"/path/to/directory"::
+ If this value is not set, packages will, by default, be placed in the
+ current directory (location of the linkman:PKGBUILD[5]). Many people
+ like to keep all their packages in one place so this option allows
+ for this behavior. A common location is ``/home/packages''.
+
+**SRCDEST=**"/path/to/directory"::
+ If this value is not set, downloaded source files will only be stored
+ in the current directory. Many people like to keep all source files in
+ a central location for easy cleanup, so this path can be set here.
+
+**SRCPKGDEST=**"/path/to/directory"::
+ If this value is not set, source package files will be stored in
+ in the current directory. Many people like to keep all source package files
+ in a central location for easy cleanup, so this path can be set here.
+
+**LOGDEST=**"/path/to/directory"::
+ If this value is not set, log files are written to the current
+ directory. This centralizes the log location, facilitating cleanup
+ and compression.
+
+**PACKAGER=**"John Doe <john@example.com>"::
+ This value is used when querying a package to see who was the builder.
+ It is recommended to change this to your name and email address.
+
+**COMPRESSGZ=**"(gzip -c -f -n)"::
+**COMPRESSBZ2=**"(bzip2 -c -f)"::
+**COMPRESSXZ=**"(xz -c -z -)"::
+**COMPRESSLZO**"(lzop -q)"::
+**COMPRESSLRZ=**"(lrzip -q)"::
+**COMPRESSZ=**"(compress -c -f)"::
+ Sets the command and options used when compressing compiled or source
+ packages in the named format.
+
+**PKGEXT=**".pkg.tar.gz", **SRCEXT=**".src.tar.gz"::
+ Sets the compression used when making compiled or source packages.
+ Valid suffixes are `.tar`, `.tar.gz`, `.tar.bz2`, `.tar.xz`,
+ `.tar.lzo`, `.tar.lrz`, and `.tar.Z`.
+ Do not touch these unless you know what you are doing.
+
+
+See Also
+--------
+linkman:makepkg[8], linkman:pacman[8], linkman:PKGBUILD[5]
+
+include::footer.asciidoc[]