is a modular cross-compiler interface.
It does not contain any frontend or backends on its own,
but rather functions as a toolchain
that allows installing and interoperating compilers
follow m
's simple conventions.
The purpose of m
is to function as the CLI for the
garter
compiler and its components, but m
itself should be simple enough to allow
cross-compatibility or incorporation into other projects.
# https://www.mingw-w64.org/getting-started/debian/
sudo apt install clang llvm
sudo apt-get install mingw-w64
sudo apt install g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64
Windows and MacOS builds also require zig
bsd
depends on an entirely different libc
, so we need to clone and build that too
mkdir -p ./tmp/bsd
curl -o ./tmp/bsd.txz https://download.freebsd.org/snapshots/amd64/14.2-STABLE/base.txz
tar -xJf ./tmp/bsd.txz -C ./tmp/bsd
m
is made available under the copyleft GPLv3 license.
Assets used by m
, such as the
Modula and garter branding,
are freely available but proprietary.
Modula permits redistribution of those assets alongside
the original or modified GPLv3 code so long as the copyright notice for those assets is still included.
Note
The default m license
command is sufficient
for fufilling this requirement if left as-is