In the remainder of this text the environment variable GNUMAKE stands for the absolute path of the GNU make executable on the host system (e.g. Darwin’s /usr/bin/gnumake, *BSD /usr/local/bin/gmake, Linux /usr/bin/make, etc.). All the mandatory steps are blue-boxed, the rest is informational.
> wget http://www.koanlogic.com/download/makl/makl-latest.tar.gz
> tar zxvf makl-latest.tar.gz
> cd makl-x.y.z/
> ${GNUMAKE} toolchain
> ./configure --gnu_make=${GNUMAKE}
> su
Password: ********
# ${GNUMAKE} install
The very first step by which MaKL self detects the host platform and installs the appropriate toolchain files is the following:
> ${GNUMAKE} toolchain
This top level MaKL target can be conditioned by the following environment variables:
| Variable | Semantics | Available values |
|---|---|---|
MAKL_TC | select a specific toolchain file (basename without .tc extension) | darwin, default, freebsd, linux-arm, linux-cris-axis, linux-i386, linux-m68k, linux-mips, linux-mipsel, linux-powerpc, linux-sh4, linux, mingw, netbsd, openbsd, qnx-armbe, qnx-armle, qnx-mipsbe, qnx-mipsle, qnx-ppcbe, qnx-shle, qnx-x86, vxworks-default, vxworks-x86 |
MAKL_SHLIB | select a specific shared library template (basename without .mk extension) | darwin, default, freebsd, linux, netbsd, null, openbsd |
MAKL_PLATFORM | shortcut for selecting the above variables (when overlapping) in a single shot | |
Anyway these are only useful when you have created your own shlib or toolchain file, or when preparing for cross-compilation.
E.g., should you need to build for mipsel architecture on a GNU Linux operating system with shared libraries support, that’s what you’d do:
> ${GNUMAKE} MAKL_TC=linux-mipsel MAKL_SHLIB=linux toolchain
A funny thing here is that if the requested toolchain or shared library is not found in the host system, the KoanLogic site is automatically queried for it.
> ./configure --gnu_make=/path/to/gnu/make --prefix=/path/to/makl/dest/dir
While –gnu_make=... parameter is mandatory and must be set to the exact path of an installed GNU make executable (perhaps the same used in the toolchain step, –prefix=... is optional and defaults to /usr/local.
MaKL template libraries (i.e. mk and cf modules) will be placed into $(prefix)/share/makl-$(MAKL_VERSION). The maklsh executable and its related symlinks (makl, maklconf and maklhelp) will reside into $(prefix)/bin/
Switch to the superuser account and do the following:
# ${GNUMAKE} install
add $(prefix)/bin/ to your PATH environment variable and you will be able to use the makl and maklconf commands to build and configure your C/C++ projects.