summaryrefslogtreecommitdiff
path: root/doc/makepkg.8
diff options
context:
space:
mode:
Diffstat (limited to 'doc/makepkg.8')
-rw-r--r--doc/makepkg.8156
1 files changed, 156 insertions, 0 deletions
diff --git a/doc/makepkg.8 b/doc/makepkg.8
new file mode 100644
index 00000000..418d5dca
--- /dev/null
+++ b/doc/makepkg.8
@@ -0,0 +1,156 @@
+.TH makepkg 8 "January 30, 2006" "Frugalware Developer Manual" ""
+.SH NAME
+makepkg \- package build utility
+.SH SYNOPSIS
+\fBmakepkg [options]\fP
+.SH DESCRIPTION
+\fBmakepkg\fP will build packages for you. All it needs is
+a build-capable linux platform, wget, and some build scripts. The advantage
+to a script-based build is that you only really do the work once. Once you
+have the build script for a package, you just need to run makepkg and it
+will do the rest: download and validate source files, check dependencies,
+configure the buildtime settings, build the package, install the package
+into a temporary root, make customizations, generate meta-info, and package
+the whole thing up for \fBpacman\fP to use.
+
+\fBmakeworld\fP can be used to rebuild an entire package group or the
+entire build tree. See \fBmakeworld --help\fP for syntax.
+
+.SH OPTIONS
+.TP
+.B "\-b, \-\-builddeps"
+Build missing dependencies from source. When makepkg finds missing build-time or
+run-time dependencies, it will look for the dependencies' FrugalBuild files under
+$fst_root (set in your /etc/repoman.conf). If it finds them it will
+run another copy of makepkg to build and install the missing dependencies.
+The child makepkg calls will be made with the \fB-b\fP and \fB-i\fP options.
+.TP
+.B "\-B, \-\-noccache"
+Do not use ccache during build.
+.TP
+.B "\-c, \-\-clean"
+Clean up leftover work files/directories after a successful build.
+.TP
+.B "\-C, \-\-cleancache"
+Used with --chroot cleans up the chroot which means removing unnecessary
+packages from it. If used twice, then it removes all source files from
+the cache directory and cleans up the full compiler cache to free up diskspace.
+.TP
+.B "\-d, \-\-nodeps"
+Do not perform any dependency checks. This will let you override/ignore any
+dependencies required. There's a good chance this option will break the build
+process if all of the dependencies aren't installed.
+.TP
+.B "\-D <pkgname>"
+Clean up only one package's compiler cache. (Uses ccache -C.)
+.TP
+.B "\-e, \-\-noextract"
+Do not extract source files. Instead, use whatever already exists in the
+src/ directory. This is handy if you want to go into src and manually
+patch/tweak code, then make a package out of the result.
+.TP
+.B "\-f, \-\-force"
+\fBmakepkg\fP will not build a package if a \fIpkgname-pkgver-pkgrel-arch.fpm\fP
+file already exists in the build directory. You can override this behaviour with
+the \fB--force\fP switch.
+.TP
+.B "\-G, \-\-genmd5"
+Download all source files (if required) and use \fImd5sum\fP to generate md5 hashes
+for each of them. You can then redirect the output into your FrugalBuild for source
+validation (makepkg -G >>FrugalBuild).
+.TP
+.B "\-g, \-\-gensha1"
+Download all source files (if required) and use \fIsha1sum\fP to generate sha1 hashes
+for each of them. You can then redirect the output into your FrugalBuild for source
+validation (makepkg -g >>FrugalBuild).
+.TP
+.B "\-h, \-\-help"
+Output syntax and commandline options.
+.TP
+.B "\-i, \-\-install"
+Install/Upgrade the package after a successful build.
+.TP
+.B "\-j <jobs>"
+Sets MAKEFLAGS="-j<jobs>" before building the package. This is useful for overriding
+the MAKEFLAGS setting in /etc/makepkg.conf.
+.TP
+.B "\-L, \-\-nolastmod"
+Disable updating the Last modified line.
+.TP
+.B "\-k, \-\-logging"
+Logging package build process
+.TP
+.B "\-l <pkgname>"
+Download the package's buildscript before starting the build. This is useful
+if you do not want to do a full 'repoman upd' nor want to download manually the
+buildscript.
+.TP
+.B "\-m, \-\-nocolor"
+Disable color in output messages
+.TP
+.B "\-n, \-\-nostrip"
+Do not strip binaries and libraries.
+.TP
+.B "\-o, \-\-nobuild"
+Download and extract files only, do not build.
+.TP
+.B "\-p <buildscript>"
+Read the package script \fI<buildscript>\fP instead of the default (\fIFrugalBuild\fP).
+.TP
+.B "\-r, \-\-rmdeps"
+Upon successful build, remove any dependencies installed by makepkg/pacman during
+dependency auto-resolution (using \fB-b\fP or \fB-s\fP).
+.TP
+.B "\-R, \-\-chroot"
+Build the package in a chroot environment.
+.TP
+.B "\-s, \-\-syncdeps"
+Install missing dependencies using pacman. When makepkg finds missing build-time
+or run-time dependencies, it will run pacman to try and resolve them. If successful,
+pacman will download the missing packages from a package repository and
+install them for you.
+.TP
+.B "\-t <tree>"
+When building in a chroot (using -R) you may want to build packages for a
+version other than the host one. Using this option, it's possible to build
+packages for "stable" while the host system is "current" and vica versa.
+.TP
+.B "\-u, \-\-noup2date"
+Do not check for newer version before starting build. Normally makepkg will
+prevent you from building obsolete source by mistake. If you know what you are
+doing, you can disable this feature with this switch.
+.B "\-S, \-\-sudosync"
+Install missing dependencies using pacman and sudo. This is the same as \fB-s\fP
+except that makepkg will call pacman with sudo. This means you don't have to
+build as root to use dependency auto-resolution.
+.TP
+.TP
+.B "\-w <destdir>"
+Write the resulting package file to the directory \fI<destdir>\fP instead of the
+current working directory.
+.TP
+.B "\-\-noconfirm"
+When calling pacman to resolve dependencies or conflicts, makepkg can pass
+the \fI--noconfirm\fP option to it so it does not wait for any user
+input before proceeding with operations.
+.TP
+.B "\-\-noprogressbar"
+When calling pacman, makepkg can pass the \fI--noprogressbar\fP option to it.
+This is useful if one is directing makepkg's output to a non-terminal (ie, a file).
+
+.SH CONFIGURATION
+Configuration options are stored in \fI/etc/makepkg.conf\fP. This file is parsed
+as a bash script, so you can export any special compiler flags you wish
+to use. This is helpful for building for different architectures, or with
+different optimizations.
+
+\fBNOTE:\fP This does not guarantee that all package Makefiles will use
+your exported variables. Some of them are flaky...
+.SH "SEE ALSO"
+.BR FrugalBuild (8),
+.BR pacman (8)
+.SH AUTHOR
+.nf
+Judd Vinet <jvinet@zeroflux.org>
+and the Frugalware developers <frugalware-devel@frugalware.org>
+.fi