Opened 10 years ago
Closed 10 years ago
#922 closed enhancement (fixed)
Autoconf warns about non-POSIX extensions in makefiles
Reported by: | Veranika Liaukevich | Owned by: | Veranika Liaukevich |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | build system | Version: | development |
Keywords: | Cc: | Dimitar Misev | |
Complexity: | Medium |
Description
Autoreconf warns about non-POSIX variable names:
$ autoreconf -fi applications/RRasdaman/Makefile.am:48: warning: wildcard R/*.R: non-POSIX variable name applications/RRasdaman/Makefile.am:48: (probably a GNU make extension) applications/RRasdaman/Makefile.am:49: warning: wildcard man/*.Rd: non-POSIX variable name applications/RRasdaman/Makefile.am:49: (probably a GNU make extension) applications/RRasdaman/Makefile.am:50: warning: wildcard tests/*.R: non-POSIX variable name applications/RRasdaman/Makefile.am:50: (probably a GNU make extension) applications/RRasdaman/Makefile.am:50: warning: wildcard tests/testthat/*.R: non-POSIX variable name applications/RRasdaman/Makefile.am:50: (probably a GNU make extension) ...
It complains about functions wildcard
, subst
and addprefix
, which are part of GNU make extension, not POSIX make, and may not be portable to systems like Windows.
It would be nice to disable these warnings.
Change History (4)
comment:1 by , 10 years ago
comment:2 by , 10 years ago
They appear in some other places too, like the systemtest makefile.
We don't support Windows in any case, I think it's ok
comment:3 by , 10 years ago
As far as I know, Autoconf does not give much granularity and it is not possible to disable such warnings for a particular Makefile.am.
From my point of view, using GNU-specific extensions like %-style suffix rules gives way more control over what Make does. Let's compare java-related section of ./applications/RRasdaman/Makefile.am and ./java/Makefile.am. The latter recompiles all .class files when a single .java file was modified, while the former uses suffix rules and recompiles only affected byte code files.
We don't support Windows anyway, so I think the pros of using GNU extensions are outweighing its cons.
but you say yourself that this may affect portability.
Can we localize this, ie: disable only for RRasdaman?