[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: [ANN] One More Maketool
- From: Ulrich Schmidt <u.sch.zw@...>
- Date: Fri, 3 Jun 2016 18:08:51 +0200
I would like to announce the 1st alpha release of OMM.
I wrote it for my own use after i started using Steve Donovan's lake. I had a
few wishes, unable to hack into lake by myself. So i wrote a "new lake from
scratch. The syntax is similar to lake but i tried to remove syntax elements
to keep it simple. (Maybe i have to implement them again based on your critic.)
The concurrency logic optimizes the build order to avoid queue flushes as much
as possible. Old and new concurrency code can be used/compared using -j/-J
switches. (see: benchmark results in the README)
Needs handling is similar to lake with a few extensions. You can now assign
aliases to needs. This allows reusing a sub-makefile with different needs.
Needs can be imported/exported. The -N switch collects/updates all needs in a
main needs file or in a user defined file.
Main- and sub-makefiles share the same sandbox environment and can communicate
thru sandbox global vars. The os environment can still be used off cause.
The main difference to lake is: ALL makefiles become scanned in the 1st pass
and all external commands become executed in the 3rd pass, no matter from
which makefiles the definition comes from. This allows some more optimization
and faster compilation.
And surprisingly: OMM has no tools like "cc" or "c99" and no actions like
".program", ".shared", ... ! Yes! All those tools and actions are supplied by
so called Toolchain modules. This makes OMM extensible. Toolchains may be
external or internal. Basic Toolchains are included for the gcc compiler, file
actions, clean targets. MSC toolchain is a untested skeleton right now.
I added my makefiles for building my own lua versions in the example directory.
The main reason for still being alpha is the missing user documentation and
the lack of extensible testing.
Any critics, wishes, bug reports, ... are welcome.