midipix / build / midipix_build

Forked from build/midipix_build 4 years ago
Clone
Blob Blame History Raw
Obtaining and installing a Midipix distribution
===============================================

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.

Compressed Midipix distribution tarballs and, separately, source tarballs are,
at present, produced every four (4) hours UTC after each successful build and
subsequently signed. This process is fully automated by a portable Bourne shell
script; all of the above mentioned components are cross-compiled.

Thus, the most hassle-free way to get started with Midipix is to simply download
the most recent distribution tarball and follow the instructions below. It is,
however, recommended to anyone intending to use Midipix as a development platform
to familiarise themselves with the build process. Other reasons to prefer building
a Midipix distribution yourself include integrating new 3rd party software or local
runtime component patches. At present, a full build from scratch, excluding tarballs,
takes between 1 and 2 hours to finish on an 8-core Xeon 3.5 GHz host.
The build script can be obtained from the following GitHub repository: <https://github.com/lalbornoz/midipix_build>.

If you obtained a Midipix distribution tarball, extract it into a directory and
drive of your choice, henceforth referred to as target directory; the drive can
be a network drive.
If you built Midipix yourself, the target directory is equivalent to the ${PREFIX}
configured in build.vars, which defaults to ${HOME}/midipix.

Previously, this repository contained a shell script for usage within Cygwin
and a VBS script in order to obtain a Midipix shell environment. These have been
replaced with <https://git.midipix.org/cgit.cgi/mpackage/plain/distro/bash.cmd>
from the Midipix distro skeleton[2]. In that respect, and as a general rule,
midipix_build provides all the bits needed for (cross-)building the framework
along with the entire collection of third-party software packages, whereas
mpackage's task is to create a live execution environment (midipix-on-the-fly,
or mxfly), optionally including with it a set of tarballs for the installation
of a custom, midipix-based distribution.

References:
* Sun, 24 Apr 2016 09:04:08 +0000 [1] musl FAQ <http://www.musl-libc.org/faq.html>
* Mon, 14 May 2018 17:15:26 +0000 [2] <https://git.midipix.org/cgit.cgi/mpackage/plain/README>

Linux distribution-related errata
=================================

Busybox based distributions need the gawk, gsed, and coreutils packages to build perl.