diff --git a/etc/README b/etc/README index 7547559..7d9f773 100644 --- a/etc/README +++ b/etc/README @@ -20,6 +20,8 @@ A Midipix distribution consists of the following: * **Debian/-derived Linux**: binutils bzip2 clzip cmake coreutils curl findutils g++ gawk gcc git grep gzip hostname libc6-dev libxml-parser-perl lzma make patch perl procps sed tar util-linux wget xz-utils zip * **OpenSUSE Linux**: binutils bzip2 cmake coreutils curl findutils gawk gcc gcc-c++ git grep gzip hostname linux-glibc-devel lzip make patch perl perl-XML-Parser procps sed tar util-linux wget xz zip +> N.B. Busybox is not supported. + > N.B. Some packages (*coreutils*, *grep*, and *tar*, among others) override Alpine's BusyBox utilities of the same name, as the latter are either non- conformant or defective. @@ -32,6 +34,46 @@ following command line within the latter: ./build.sh -a nt64 -b release -D minipix,zipdist -P -v ``` +## Non-exhaustive list of build variables +The following variables are primarily defined in ``midipix.env`` and may be overriden +on a per-build basis on the command-line after the last argument, if any, e.g.: + +```shell +./build.sh -a nt64 -b release -D minipix,zipdist -P -v PREFIX_ROOT="${HOME}/midipix_tmp" +``` + +Furthermore, ``${HOME}/midipix_build.vars``, ``${HOME}/.midipix_build.vars``, and/or +``../midipix_build.vars`` are sourced during build initialisation and may contain +additional overrides, particularly ``${DEFAULT_GITROOT_HEAD}``. + +| Variable name | Default value | Description | +| ---------------- | ------------------------------- | ----------------------------------------------------------------------------- | +| ARCH | nt64 | Target 32-bit (nt32) or 64-bit (nt64) architecture | +| BUILD | debug | Build w/ debugging (debug) or release compiler flags | +| BUILD_DLCACHEDIR | ${PREFIX_ROOT}/dlcache | Absolute pathname to package downloads cache root directory | +| BUILD_WORKDIR | ${PREFIX}/tmp | Absolute pathname to temporary package build root directory | +| PREFIX | ${PREFIX_ROOT}/${ARCH}/${BUILD} | Absolute pathname to architecture- & build type-specific build root directory | +| PREFIX_CROSS | ${PREFIX}/${DEFAULT_TARGET} | Absolute pathname to toolchain root directory | +| PREFIX_MINGW32 | ${PREFIX}/x86_64-w64-mingw32 | Absolute pathname to MinGW toolchain root directory | +| PREFIX_MINIPIX | ${PREFIX}/minipix | Absolute pathname to minipix distribution root directory | +| PREFIX_NATIVE | ${PREFIX}/native | Absolute pathname to cross-compiled packages root directory | +| PREFIX_ROOT | ${HOME}/midipix | Absolute pathname to top-level directory | +| PREFIX_RPM | ${PREFIX}/rpm | Absolute pathname to package RPM archive root directory | + +## Common tasks +Rebuild set of packages in isolation, along w/ their dependencies, if any, as needed, +or forcibly, respectively: +```shell +./build.sh [ ... ] -r mc,zsh +./build.sh [ ... ] -r \*mc,zsh +./build.sh [ ... ] -r \*\*mc,zsh +``` + +Rebuild entire build group: +```shell +./build.sh [ ... ] -r ALL native_runtime +``` + ## References * ``Sun, 25 Apr 2016 09:04:08 +0000 [1]`` musl FAQ diff --git a/midipix.env b/midipix.env index 6f87c4b..9b21a4b 100644 --- a/midipix.env +++ b/midipix.env @@ -31,15 +31,15 @@ DEFAULT_BUILD_VARS=" VERSION"; # Path names -: ${PREFIX_ROOT:=${HOME}/midipix}; -: ${PREFIX:=${PREFIX_ROOT}/${ARCH}/${BUILD}}; -: ${PREFIX_CROSS:=${PREFIX}/${DEFAULT_TARGET}}; -: ${PREFIX_MINGW32:=${PREFIX}/x86_64-w64-mingw32}; -: ${PREFIX_MINIPIX:=${PREFIX}/minipix}; -: ${PREFIX_NATIVE:=${PREFIX}/native}; -: ${PREFIX_RPM:=${PREFIX}/rpm}; -: ${BUILD_DLCACHEDIR:=${PREFIX_ROOT}/dlcache}; -: ${BUILD_WORKDIR:=${PREFIX}/tmp}; +: ${PREFIX_ROOT:="${HOME}/midipix"}; +: ${PREFIX:="${PREFIX_ROOT}/${ARCH}/${BUILD}"}; +: ${PREFIX_CROSS:="${PREFIX}/${DEFAULT_TARGET}"}; +: ${PREFIX_MINGW32:="${PREFIX}/x86_64-w64-mingw32"}; +: ${PREFIX_MINIPIX:="${PREFIX}/minipix"}; +: ${PREFIX_NATIVE:="${PREFIX}/native"}; +: ${PREFIX_RPM:="${PREFIX}/rpm"}; +: ${BUILD_DLCACHEDIR:="${PREFIX_ROOT}/dlcache"}; +: ${BUILD_WORKDIR:="${PREFIX}/tmp"}; : ${DEFAULT_CHECK_PATH_VARS:="PREFIX PREFIX_NATIVE PREFIX_CROSS BUILD_DLCACHEDIR BUILD_WORKDIR"}; : ${DEFAULT_CLEAR_ENV_VARS_EXCEPT:="HOME PATH TERM USER"}; : ${DEFAULT_CLEAR_PREFIX_PATHS:="