automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[rfc] Antimake


From: Marko Kreen
Subject: [rfc] Antimake
Date: Sat, 10 Mar 2012 00:26:44 +0200

Antimake is my attempt to fix "no good build system" problem -
GNU Make library, but instead inventing custom conventions,
it implements Automake syntax.

Example:

  bin_PROGRAMS = hello
  hello_SOURCES = hello.c
  include antimake.mk

After writing such Makefile, you can run 'make' immediately,
no need for ./configure or Makefile rebuild.


Links
-----

Doc:    http://libusual.github.com/mk/antimake.html
Demos:  http://libusual.github.com/mk/
Source: https://github.com/libusual/libusual/blob/master/mk/antimake.mk
GIT:    git://github.com/libusual/libusual.git


Basic ideas
-----------

It examines $(.VARIABLES) for known name patterns and generates
rules based on them.

Core logic is implemented with GNU Make functions, it has minimal amount
of shell in main rules (true,echo,printf,mkdir -p).

Use of autoconf is optional - it has reasonable defaults for all variables.

It can use libtool without autoconf - LIBTOOL simply defaults for 'libtool'
in PATH with is likely already configured for current system.

Non-Automake feature: It supports non-recursive subdirs by
moving target variables away, then simply includes subdir makefile
and rewrites (and moves) newly appeared target variables.


Conclusions
-----------

Seems good fit for small or perhaps even big but consistent projects.

Internally, it's seems to be on the borderline what can be
done with plain GNU Make and still have something maintainable.
OTOH, the resulting Makefiles are really clean so perhaps
it balances itself out.

Currently it lives in libusual repository, if there is enough
interest it can be put into independent repository.  It is quite
independent from other stuff in libusual.  Although, by being
there it has non-trivial code to test with.


Comments, flames?

-- 
marko




reply via email to

[Prev in Thread] Current Thread [Next in Thread]