'\" t .\" Title: makepkg.conf .\" Author: [see the "Authors" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024-03-15 .\" Manual: Pacman Manual .\" Source: Pacman 6.1.0 .\" Language: English .\" .TH "MAKEPKG\&.CONF" "5" "2024\-03\-15" "Pacman 6\&.1\&.0" "Pacman Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" makepkg.conf \- makepkg configuration file .SH "SYNOPSIS" .sp /etc/makepkg\&.conf, $XDG_CONFIG_HOME/pacman/makepkg\&.conf, ~/\&.makepkg\&.conf .SH "DESCRIPTION" .sp 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\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBNote\fR .ps -1 .br .sp This does not guarantee that all package Makefiles will use your exported variables\&. Some of them are non\-standard\&. .sp .5v .RE .sp The system\-wide configuration file is found in /etc/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\&. .sp The default file is fairly well commented, so it may be easiest to simply follow directions given there for customization\&. .SH "OPTIONS" .PP \fBDLAGENTS=(\fR\*(Aqprotocol::/path/to/command [options]\*(Aq \&...\fB)\fR .RS 4 Sets the download agents used to fetch source files specified with a URL in the \fBPKGBUILD\fR(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 \(lq\&.part\(rq extension, which allows makepkg to handle resuming file downloads\&. .RE .PP \fBVCSCLIENTS=(\fR\*(Aqprotocol::package\*(Aq \&...\fB)\fR .RS 4 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\&. .RE .PP \fBCARCH=\fR"carch" .RS 4 Specifies your computer architecture; possible values include such things as \(lqi686\(rq, \(lqx86_64\(rq, \(lqppc\(rq, etc\&. This should be automatically set on installation\&. .RE .PP \fBCHOST=\fR"chost" .RS 4 A string such as \(lqi686\-pc\-linux\-gnu\(rq; do not touch this unless you know what you are doing\&. This can be commented out by most users if desired\&. .RE .PP \fBCPPFLAGS=\fR"cppflags" .RS 4 Flags used for the C preprocessor; see CFLAGS for more information\&. .RE .PP \fBCFLAGS=\fR"cflags" .RS 4 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: \(lq\-march=i686 \-O2 \-pipe\(rq\&. Another useful option may be \-mcpu in place of \-march\&. Read gcc(1) for more details on the wide variety of compiler flags available\&. .RE .PP \fBCXXFLAGS=\fR"cxxflags" .RS 4 Flags used for the C++ compiler; see CFLAGS for more info\&. .RE .PP \fBLDFLAGS=\fR"ldflags" .RS 4 Flags used for the linker\&. Several options may be specified with common usage resembling \(lq\-Wl,\-\-hash\-style=gnu\(rq\&. Read ld(1) for more details on available linker flags\&. .RE .PP \fBLTOFLAGS=\fR"ltoflags" .RS 4 Additional compiler and linker flags appended to CFLAGS, CXXFLAGS and LDFLAGS when building with link time optimization\&. If empty, \(lq\-flto\(rq is used\&. .RE .PP \fBMAKEFLAGS=\fR"makeflags" .RS 4 This is often used to set the number of jobs used; for example, \-j2\&. Other flags that make accepts can also be passed\&. .RE .PP \fBDEBUG_CFLAGS=\fR"debug_cflags" .RS 4 Additional compiler flags appended to CFLAGS for use in debugging\&. Usually this would include: \(lq\-g\(rq\&. Read gcc(1) for more details on the wide variety of compiler flags available\&. .RE .PP \fBDEBUG_CXXFLAGS=\fR"debug_cxxflags" .RS 4 Debug flags used for the C++ compiler; see DEBUG_CFLAGS for more info\&. .RE .PP \fBBUILDENV=(\fR!distcc !color !ccache check !sign\fB)\fR .RS 4 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 \(lq!\(rq at the front of the option\&. If an option is specified multiple times, the final value takes precedence\&. Each option works as follows: .PP \fBdistcc\fR .RS 4 Use the distributed C/C++/ObjC compiler to spread compilation among multiple machines\&. If this is enabled, DISTCC_HOSTS must be specified as well\&. .RE .PP \fBcolor\fR .RS 4 Colorize output messages, making output easier to read\&. .RE .PP \fBccache\fR .RS 4 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\&. .RE .PP \fBcheck\fR .RS 4 Run the check() function if present in the PKGBUILD\&. This can be enabled or disabled for individual packages through the use of makepkg\(cqs \fI\-\-check\fR and \fI\-\-nocheck\fR options, respectively\&. .RE .PP \fBsign\fR .RS 4 Generate a PGP signature file using GnuPG\&. This will execute \fIgpg \-\-detach\-sign \-\-use\-agent\fR 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 \(lq\&.sig\(rq extension\&. .RE .RE .PP \fBDISTCC_HOSTS=\fR"host1 \&..." .RS 4 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\&. .RE .PP \fBBUILDDIR=\fR"/path/to/directory" .RS 4 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\&. .RE .PP \fBGPGKEY=\fR"" .RS 4 Specify a key to use for GPG signing instead of the default key in the keyring\&. Can be overridden with makepkg\(cqs \fI\-\-key\fR option\&. .RE .PP \fBOPTIONS=(\fR!strip docs libtool staticlibs emptydirs \&...\fB)\fR .RS 4 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 \(lq!\(rq at the front of the option\&. If an option is specified multiple times, the final value takes precedence\&. Each option works as follows: .PP \fBstrip\fR .RS 4 Strip symbols from binaries and libraries\&. If you frequently use a debugger on programs or libraries, it may be helpful to disable this option\&. .RE .PP \fBdocs\fR .RS 4 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\&. .RE .PP \fBlibtool\fR .RS 4 Leave libtool (\&.la) files in packages\&. Specify !libtool to remove them\&. .RE .PP \fBstaticlibs\fR .RS 4 Leave static library (\&.a) files in packages\&. Specify !staticlibs to remove them, if they have a shared counterpart\&. .RE .PP \fBemptydirs\fR .RS 4 Leave empty directories in packages\&. .RE .PP \fBzipman\fR .RS 4 Compress manual (man and info) pages with gzip\&. The directories affected are specified by the MAN_DIRS variable\&. .RE .PP \fBpurge\fR .RS 4 Remove files specified by the PURGE_TARGETS variable from the package\&. .RE .PP \fBdebug\fR .RS 4 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 \(oqstrip\(cq\&. .RE .PP \fBlto\fR .RS 4 Enable building packages using link time optimization\&. Adds the flags specified in LTOFLAGS to CFLAGS, CXXFLAGS and LDFLAGS (or \(lq\-flto\(rq if LTOFLAGS is empty)\&. .RE .PP \fBautodeps\fR .RS 4 Enable the automatic addition of libraries to the depends and provides arrays\&. Search library directories are controlled by the LIB_DIRS variable defined below\&. .RE .RE .PP \fBINTEGRITY_CHECK=(\fRcheck1 \&...\fB)\fR .RS 4 File integrity checks to use\&. Multiple checks may be specified; this affects both generation and checking\&. The current valid options are: ck, md5, sha1, sha224, sha256, sha384, sha512, and b2\&. .RE .PP \fBSTRIP_BINARIES=\fR"\-\-strip\-all" .RS 4 Options to be used when stripping binaries\&. See \fBstrip\fR(1) for details\&. .RE .PP \fBSTRIP_SHARED=\fR"\-\-strip\-unneeded" .RS 4 Options to be used when stripping shared libraries or PIE executables\&. See \fBstrip\fR(1) for details\&. .RE .PP \fBSTRIP_STATIC=\fR"\-\-strip\-debug" .RS 4 Options to be used when stripping static libraries\&. See \fBstrip\fR(1) for details\&. .RE .PP \fBMAN_DIRS=(\fR{usr{,/local}{,/share},opt/*}/{man,info} \&...\fB)\fR .RS 4 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\&. \fBNOTE:\fR Do not add the leading slash to the directory name\&. .RE .PP \fBDOC_DIRS=(\fRusr/{,share/}{doc,gtk\-doc} \&...\fB)\fR .RS 4 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\&. \fBNOTE:\fR Do not add the leading slash to the directory name\&. .RE .PP \fBLIB_DIRS=(\fRlib:usr/lib \&...\fB)\fR .RS 4 If autodeps is specified in the OPTIONS array, this variable will instruct makepkg where to look to find libraries to add to the provides array\&. The format is "prefix:path", where provides will be added for libraries found in "path" with the specified prefix added\&. .RE .PP \fBPURGE_TARGETS=(\fRusr/{,share}/info/dir \&.podlist *\&.pod\&...\fB)\fR .RS 4 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\&. .RE .PP \fBDBGSRCDIR=\fR"/usr/src/debug" .RS 4 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\&. .RE .PP \fBPKGDEST=\fR"/path/to/directory" .RS 4 If this value is not set, packages will, by default, be placed in the current directory (location of the \fBPKGBUILD\fR(5))\&. Many people like to keep all their packages in one place so this option allows for this behavior\&. A common location is \(lq/home/packages\(rq\&. .RE .PP \fBSRCDEST=\fR"/path/to/directory" .RS 4 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\&. .RE .PP \fBSRCPKGDEST=\fR"/path/to/directory" .RS 4 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\&. .RE .PP \fBLOGDEST=\fR"/path/to/directory" .RS 4 If this value is not set, log files are written to the current directory\&. This centralizes the log location, facilitating cleanup and compression\&. .RE .PP \fBPACKAGER=\fR"John Doe " .RS 4 This value is used when querying a package to see who was the builder\&. The given format is required for PGP key lookup through WKD\&. It is recommended to change this to your name and email address\&. .RE .PP \fBCOMPRESSGZ=\fR"(gzip \-c \-f \-n)", \fBCOMPRESSBZ2=\fR"(bzip2 \-c \-f)", \fBCOMPRESSXZ=\fR"(xz \-c \-z \-)", \fBCOMPRESSZST=\fR"(zstd \-c \-z \-)", \fBCOMPRESSLZO\fR"(lzop \-q)", \fBCOMPRESSLRZ=\fR"(lrzip \-q)", \fBCOMPRESSLZ4=\fR"(lz4 \-q)", \fBCOMPRESSZ=\fR"(compress \-c \-f)", \fBCOMPRESSLZ=\fR"(lzip \-c \-f)" .RS 4 Sets the command and options used when compressing compiled or source packages in the named format\&. .RE .PP \fBPKGEXT=\fR"\&.pkg\&.tar\&.gz", \fBSRCEXT=\fR"\&.src\&.tar\&.gz" .RS 4 Sets the compression used when making compiled or source packages\&. Valid suffixes are \&.pkg or \&.src (for PKGEXT and SRCEXT resepectively) followed by one of \&.tar\&.gz, \&.tar\&.bz2, \&.tar\&.xz, \&.tar\&.zst, \&.tar\&.lzo, \&.tar\&.lrz, \&.tar\&.lz4, \&.tar\&.lz and \&.tar\&.Z, or simply \&.tar to disable compression entirely\&. .RE .PP \fBPACMAN_AUTH=()\fR .RS 4 Specify a command prefix for running pacman as root\&. If unset, makepkg will check for the presence of sudo(8) and su(1) in turn, and try the first one it finds\&. If present, %c will be replaced with the shell\-quoted form of the command to run\&. Otherwise, the command to run is appended to the auth command\&. .RE .SH "SEE ALSO" .sp \fBmakepkg\fR(8), \fBpacman\fR(8), \fBPKGBUILD\fR(5) .sp See the pacman website at https://archlinux\&.org/pacman/ for current information on pacman and its related tools\&. .SH "BUGS" .sp Bugs? You must be kidding; there are no bugs in this software\&. But if we happen to be wrong, submit a bug report with as much detail as possible at the Arch Linux Bug Tracker in the Pacman section\&. .SH "AUTHORS" .sp Current maintainers: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Allan McRae .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Andrew Gregory .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Morgan Adamiec .RE .sp Past major contributors: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Judd Vinet .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Aurelien Foret .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Aaron Griffin .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Dan McGee .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Xavier Chantry .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Nagy Gabor .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Dave Reisner .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Eli Schwartz .RE .sp For additional contributors, use git shortlog \-s on the pacman\&.git repository\&.