Greetings!
I'm work on implementing make(1), and I have two questions for you:
1) What extensions do you think I shall implement? I think I will
add $(foreach), $(shell), and I will definitely add $(SHELL).
$(SHELL) is the macro that use to select the shell to use, POSIX
only standardises that the macro SHELL not affect or be affected
by the environment variable SHELL. I need $(SHELL) be sh(1p) is
not sufficient to use blind in a sane manner. I'm not sure that I
will add support `-j jobs`, and I don't I will add `-l loadavg`,
but it will recognise those options and, if not implementing
them, ignore them.
2) Any interested for make(1) in sbase? I'll be implementing it in
either case, because I will make an implementation with extended
functionality (but that would not go into sbase).
Reading make(1p), I found out that the built in value for $(CC) is c99
rather than cc, because cc is not standardise, but c99 is. Therefore
suggest removing `CC = cc` from our makefiles. Additionally, `.POSIX:`
should be added to the top of makefiles to ensure that $(CC) is in
fact c99 and other standard tools are also defined as expected, as
well as that make(1) implementations follow the make(1p) specifications
exactly; for example, this ensures that all commands lines in the
makefile are executed in separate shells, some make(1) implementations
run the command lines in one shell unless .POSIX is used.
After make(1), I may also start working on m4(1p) if there is any
interest in it.
For those interested, I estimate that make(1) will be between 1500
and 2000 lines. I'm currently at 700 lines (of which 500 line are
just simple preparations).
Mattias Andrée
Received on Thu Feb 02 2017 - 18:45:49 CET