N.B. If you're interested in building Midipix using this script, please join the project's IRC channel #midipix on Freenode and ask for the address of the internal repositories.
N.B. If in doubt, consult the fault-tolerant & highly optimised 3D laser show-equipped usage screen w/ ./build.sh -h or a hungry lion might eat you alive.
A Midipix distribution consists of the following: * the native Midipix toolchain, consisting of perk, gcc, its dependencies, and binutils, * musl, a lightweight, fast, simple, and free libc[1] used by Midipix, * the Midipix runtime components that bridge the gap between the libc and the executive subsystems of all Windows NT-derived Windows OS starting with and including Windows XP, and * a steadily increasing number of 3rd party open source packages, as expected in any modern POSIX-compliant *nix environment, including GNU coreutils, shells, libraries such as ncurses, libressl, as well as Perl and Python.
Install the build-time dependencies listed below, clone this repository, and run the following command line within the latter:
./build.sh -a nt64 -b release -D minipix,zipdist -P -v
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.
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.:
./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 |
Rebuild set of packages in isolation, along w/ their dependencies, if any, as needed, or forcibly, respectively:
./build.sh [ ... ] -r mc,zsh
./build.sh [ ... ] -r \*mc,zsh
./build.sh [ ... ] -r \*\*mc,zsh
Rebuild entire build group:
./build.sh [ ... ] -r ALL native_runtime
Sun, 25 Apr 2016 09:04:08 +0000 [1]
musl FAQ vim:tw=0