Build system: use SPDX identifiers The SPDX identifiers [1] are a legally binding shorthand, which can be used instead of the full boiler plate text. This is the first step towards implementing the full REUSE spec [2] to help with copyright and licensing audits and compliance. This will reduce a lot a manual work required for the licensing audit required in Debian on each update. For files that lacked copyright and licensing information, I used the following guidelines. If a clear author could be determined from the git history use it, otherwise use 'EfficiOS Inc.'. For build system files, use 'MIT', for documentation 'CC-BY-4.0' and for data files 'CC-1.0'. [1] https://spdx.org/ids-how [2] https://reuse.software/tutorial/ Change-Id: Ie507130c00b95606dc439616fda4fd9b1d35353d Signed-off-by: Michael Jeanson <mjeanson@efficios.com> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
configure: regroup automake conditionals This is part of an effort to standardise our autotools setup across project to simplify maintenance. Change-Id: I5be5e254670e2ca6c26564ab391ea1dbfea105cd Signed-off-by: Michael Jeanson <mjeanson@efficios.com> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fix: Don't override user variables within the build system Instead use the appropriatly prefixed AM_* variables as to not interfere when a user variable is passed to a make command. The proper use of flag variables is documented at : https://www.gnu.org/software/automake/manual/automake.html#Flag-Variables-Ordering Fixes #1095 Signed-off-by: Michael Jeanson <mjeanson@efficios.com> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cleanup: Re-organise source dir Re-organise the sources, add a top level "src" and "include" dir and move relevant files. Disable autotools automated includes and define them manually. This fixes problems with collision of header names with system headers. Include the autoconf config.h in the default includes and remove it where it's explicitely included. Remove _GNU_SOURCE defines since it's detected at configure for platforms that requires it and added to the config.h. Signed-off-by: Michael Jeanson <mjeanson@efficios.com> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fix: examples make distcheck failure "make distcheck" marks each source file on the srcdir in the extracted dist tarball read-only. The examples copy from the srcdir into the builddir before running the "make" examples, but this keeps the read-only flag on the builddir directories, which fails the build because the resulting objects cannot be created. Fix this by ensuring the copied target directory for each example is user-writeable. Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Port: Fixes to build system for portability Move our own m4 scripts to m4/. Scripts in this directory are automatically included. Make nproc command configurable. Make grep command configurable. Signed-off-by: Michael Jeanson <mjeanson@efficios.com> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fix: preserve example files' timestamps when copying This fixes an issue where examples were always being rebuilt when performing an out of tree build since the examples were being copied to the build directory with a timestamp more recent than the already-built example objects. Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Pass the CC variable to the example Makefiles Cross-compilation fails when using the --host configure option since the cross-compiler is not invoked by the hand-made Makefiles in doc/examples. The CC variable must be passed explicitly to ensure the host's default compiler is not invoked. Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>