[dev] Some core tools

From: Mattias Andrée <maandree_AT_kth.se>
Date: Thu, 2 Feb 2017 18:45:49 +0100


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

This archive was generated by hypermail 2.3.0 : Thu Feb 02 2017 - 18:48:18 CET