Announcing mbld.
[Thread Prev] | [Thread Next]
- Subject: Announcing mbld.
- From: Ori Bernstein <ori@xxxxxxxxxxxxxx>
- Date: Sun, 28 Sep 2014 22:28:23 -0400
- To: myrddin-dev@xxxxxxxxxxxxxx
Hi all.
So, the long awaited (by who?) refresh of the Myrddin build system is finally
in a stage where I can release it on the unsuspecting drone... I mean, beta
testers. The goal is that it will eventually be a complete replacement for
myrbuild, with a binary that is 100% compatible, but also is extended to the
point where make isn't needed.
So, first, a summary of what exists: http://git.eigenstate.org/ori/mbld.git
This code should, theoretically, already reach the first goal: Any place that
you seee 'myrbuild' in a script, running 'mbld' will work. In addition, if
you don't specify the output library/binary, it will parse a file called
'bldfile', and use that to direct its build.
The syntax of the build files is simple:
target-type target-name {options} = input list ;
So, for example:
lib meh = meh.myr moo.myr blorp.myr;
bin frobber {ldscript=customscript.ld} =
frobber.myr util.myr
;
The full syntax is below:
file: target*
target: type name optattrs '=' word* ';'
name: word
type: 'bin' | 'lib' | 'sub' | 'man'
optattrs: /* nothing */ | '{' keyval* '}'
keyval: word | word = word
The target type meanings are as follows:
bin: A binary executable.
lib: A static library. (dynamic libs are not supported by Myrddin)
sub: A subdirectory list. The semantics are the same as 'cd subdir;
mbld'
man: Manpages.
The currently supported attributes:
ldscript=s: Link using custom linker script 's'.
runtime=r: Link with a custom runtime 'r'.
noinst: Don't install the binary.
With a working example here:
http://git.eigenstate.org/ori/mbld.git/tree/bldfile
So, build on it, beat on it, crash it, and complain!
--
Ori Bernstein
- Prev by Date: Re: Sandboxing Code [Security Critical]
- Next by Date: Re: Sandboxing Code [Security Critical]
- Previous by thread: Re: Sandboxing Code [Security Critical]
- Index(es):