[ANN] One More Maketool

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

[ANN] One More Maketool

Ulrich Schmidt
Hello List!

I would like to announce the 1st alpha release of OMM.

Github:  https://github.com/Fuzzlix/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.

Ulrich Schmidt.

Reply | Threaded
Open this post in threaded view
|

[ANN] One More Maketool

Ulrich Schmidt
Hello List!

I would like to announce the 1st beta release of OMM[1].

All basic features are implemented and documented. You can everything you can
do in make and a lot more. You have the full power of lua.

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.
The concurrency logic optimizes the build order to avoid queue flushes as much
as possible.
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.
Sample makefiles are included to get a first impression.

Any critics, wishes, bug reports, ... are welcome.

Ulrich Schmidt.

[1]:  https://github.com/Fuzzlix/omm


Reply | Threaded
Open this post in threaded view
|

Re: [ANN] One More Maketool

steve donovan
On Mon, Jul 25, 2016 at 10:05 AM, Ulrich Schmidt <[hidden email]> wrote:
> 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.

Ah lake - a 3500 line script ;) My apologies...

Some good examples, looks solid!

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] One More Maketool

Ulrich Schmidt

Am 25.07.2016 um 10:16 schrieb steve donovan:
> On Mon, Jul 25, 2016 at 10:05 AM, Ulrich Schmidt <[hidden email]> wrote:
>> 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.
>
> Ah lake - a 3500 line script ;) My apologies...
>

Hehe :D

Yeah, many ideas put into omm are yours. Please feel free to feel as a
unmentioned conributor. :)

Ulrich.

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] One More Maketool

steve donovan
On Mon, Jul 25, 2016 at 10:44 AM, Ulrich Schmidt <[hidden email]> wrote:
> Yeah, many ideas put into omm are yours. Please feel free to feel as a
> unmentioned conributor. :)

Thanks! I did increasingly have the feeling that I was creating a
beast that needed to become a proper program. I was too worried about
ease-of-deployment but that really is a non-issue these days.

Reply | Threaded
Open this post in threaded view
|

[ANN] One More Maketool

Ulrich Schmidt
In reply to this post by Ulrich Schmidt
Hello List!

I would like to announce a new  beta release of OMM[1].

While working with omm, i felt, the implemented toolchains are usefull, easy
to use, but too specialiced for non standard tasks. Therefore i implemented a
very native rule tool to define any rules able to execute any command line.
In addition you can use lua functions instead of external programs. A bin2c
rule and a luastrip rule are implemented this way in the examples and used in
the iuplua sample makefile to avoid dealing with tecmake on windows. iuplua's
lua scrips become stripped to reduce the size of the resulting module file.

You may store any makefile content in include files. I used this to define
bin2c rules and lstrip rules and include them as nessesary. The calling
makefiles looks much cleaner this way.

Include files are searched in the main makefile folder, omm's program folder
and in lua's package.path.

Any critics, wishes, bug reports, ... are welcome.

Ulrich Schmidt.

[1]:  https://github.com/Fuzzlix/omm

Reply | Threaded
Open this post in threaded view
|

[ANN] One More Maketool

Ulrich Schmidt
Hello List!

I would like to announce v0.4.13 of OMM[1].

* All example scripts running well on windows.
* All needed sources for Lua and modules become downloaded via svn
  automatically, if you have 'svn.exe' on your windows system.
* Lua functions can be used in rule actions instead external programs.
* some minor changes in screen outputs.
* Fixed a horrible bug introduced by the rule tool stopping existing
  toolchains to generate proper command lines.

further plans:
* Rethink internal needs handling. Dependency checks for "needs" need to
  become more fine grained.
* Rethink toolchains code. Toolchain code is independent from rules code
  now. By reusing rules in toolchains, things may be coded simpler and
  easier to maintain.
* Create a rule for compiling statically linked windows executable including
  all lua libs and lua scripts.
* Makefile syntax is complete and should not change anymore.

Any critics, wishes, bug reports, ... are welcome.

Ulrich Schmidt.

[1]:  https://github.com/Fuzzlix/omm