GNU Make 3.80 is the default version on macOS Tiger, and it shouldn't be
used because it has various parsing problems and bugs.
The .FEATURES variable was added in GNU Make 3.81, and that's the
easiest and most reliable way of detecting this version.
We know that GNU Make 3.81 is OK since that's still what Apple ships
by default on modern macOS (because of GPLv3).
Note: No detection objects added currently. It's just an empty variable uptill now.
- These DETECT_OBJS will be seen in action in the new commits
- They contain engine_name/detection.o
- They have MetaEngine code, which has detection features.
- This way, Executable will have linked against the detection.o files
- Detection.cpp files will be individually compilable and not dependent on engine
Remember if PKG_CONFIG_LIBDIR is set when running configure manually,
when automatically running configure, only set PKG_CONFIG_LIBDIR if it
was set during the manual run.
Fixes#10807.
Previously, only CXX could be overridden by the environment, which
made it impossible to correctly set tools for cross-compiler
toolchains which were not compatible with the default system tools.
This is due to the multiple outputs produced by the configure rule,
which cause multiple invocations of configure when make is run in
parallel. Various solutions are detailed in the Multiple-Outputs
section of the GNU automake manual which apply generally to makefiles.
This solution is a simpler one, but should solve the problem, though it
can fail on "mutilated" trees ie. where some of the configure outputs
are present, but not all... but this situation is not common, tends to
be due to an error in configure and should be recoverable by a
"make clean && ./configure" call.
Each engine now only has to provide a single configure.engine file
adding the engine into the configure script, which then produces the
required other files automatically.
This is the third and final commit enabling fully pluggable engines.
Now providing an engine folder contains a configure.engine, engine.mk
and engine-plugin.h file, it will be picked up automatically by the
configure script.
This is the first part of allowing engines to be added dynamically.
They are placed into a folder in engines/ which must contain a file
named "configure.engine" to add the engine, which is pulled into the
top level configure script automatically.
- change some constants from double to float, to avoid "loss of precision due to implicit conversion" warnings
- removed duplicate prototypes for some funcs
- fixed some "increases required alignment of target type" warnings
svn-id: r42009