* Don't bother prefixing commands with a line of ${_MKCMD}\
and instead rely upon "make -s". This is less intrusive on
all the Makefiles than the former. Idea from David Laight.
* Rename the variables use to print messages. The scheme now is:
_MKMSG_FOO Run _MKMSG 'foo'
_MKTARGET_FOO Run _MKMSG_FOO ${.TARGET}
From discussion with Alistair Crooks.
* DPSRCS contains extra dependencies, but is _NOT_ added to CLEANFILES.
This is a change of behaviour. If a Makefile wants the clean semantics
it must specifically append to CLEANFILES.
Resolves PR toolchain/5204.
* To recap: .d (depend) files are generated for all files in SRCS and DPSRCS
that have a suffix of: .c .m .s .S .C .cc .cpp .cxx
* If YHEADER is set, automatically add the .y->.h to DPSRCS & CLEANFILES
* Ensure that ${OBJS} ${POBJS} ${LOBJS} ${SOBJS} *.d depend upon ${DPSRCS}
* Deprecate the (short lived) DEPENDSRCS
Update the various Makefiles to these new semantics; generally either
adding to CLEANFILES (because DPSRCS doesn't do that anymore), or replacing
specific .o dependencies with DPSRCS entries.
Tested with "make -j 8 distribution" and "make distribution".
- add a new INTPTR_IS_LONG define and use it.
- XXX: the PTRDIFF, SIZEOF, INTPTR defines really make lint more relaxed
in some platforms than others. We should really be looking for the
particular tokens to enable this kind of checking. I.e.
now:
char *p;
int foo = (int)p;
does not produce a warning on INTPTR_IS_LONG == 0 platformas.
In reality it should only elide the warning if:
char *p;
int foo = (intptr_t)p;
but it is not that smart (yet).
expressions.
Details:
lint did fail on constructs like
struct foo *x;
x = ({ struct foo *y; /* do stuff */; y;});
since it gave the whole ({ }) the same structure representing the
type as y, but that structure is reclaimed when y goes out of scope.
2) inline is acceptable in c99 -- create a new c99 keyword class.
XXX The handling of sflag and Sflag is utterly bogus throughout this
pass. I think I have to make some adjustments.
C99 support.
- turn lerror() into a macro so that the filename and the line number of the
error are printed before we abort.
- recurse in type printing to provide the proper type name.