gst-plugins-bad didn't have any explicit libvpx handling, so it would be
built with/without support for it depending on build order.
More importantly, the recent libvpx bump dropped the legacy (prefix-less)
symbols from the header file and gst-plugins-bad's handling of the non
legacy symbols was buggy.
Fix it by adding an explicit vp8 suboption and add a patch to fix (drop) the
legacy symbol handling.
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/clamav: bump version to 0.98.7, enable ipv6 support
Clamav uses AC_TRY_RUN in m4/reorganization/code_checks/ipv6.m4 to check
for ipv6 support, which is not cross-compile safe. Since buildroot
supports ipv6 out-of-the-box now this patch forces ipv6 support.
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
libwebsockets: add LWS_ prefix to LWS_WITHOUT_TESTAPPS=ON cmake option
Currently, libwebsockets.mk is passing -DWITHOUT_TESTAPPS=ON to disable
the building of libwebsockets test applications, but this is doing nothing
because the option is really named LWS_WITHOUT_TESTAPPS.
This commit fixes that by using the correct option name.
Signed-off-by: Baptiste Moraine <baptiste.moraine@kapelse.com> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Richard Genoud [Tue, 28 Apr 2015 15:42:27 +0000 (17:42 +0200)]
qt: QT_COORD_TYPE_DOUBLE should only be set on soft float
If QT_COORD_TYPE_DOUBLE is forced and hard float is used, Qt compilation
breaks because it can't find hard coded operations on double.
Moreover, QT_COORD_TYPE is float only if QT_NO_FPU is set.
(cf src/corelib/global/qglobal.h)
So, we can safely make the QT_COORD_TYPE_DOUBLE option depend on
BR2_SOFT_FLOAT.
Reported-by: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Richard Genoud <richard.genoud@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Nicolas Serafini [Tue, 21 Apr 2015 17:04:44 +0000 (19:04 +0200)]
package/nvidia-tegra23-codecs: new package
nvidia-tegra23-codecs provides various HW-accelerated media codecs, such
as: AAC3, h264, jpeg, MP3...
Signed-off-by: Nicolas Serafini <nicolas.serafini@sensefly.com>
[me:
- split codecs from binaries into this patch
- use our extractor helpers
] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Thomas:
- Remove <pkg>_DEPENDENCIES variable that contained
nvidia-tegra23-binaries, since this dependency is a runtime
dependency only.
- Remove 'NVIDIA_TEGRA23_CODECS_INSTALL_STAGING = NO', since this is
the default.
- Remove 'NVIDIA_TEGRA23_CODECS_INSTALL_TARGET = YES', since this is
the default.
- Instead of using a NVIDIA_TEGRA23_CODECS_FIRMWARE variable listing
the firmware files to copy, simply copy all firmware files.]
[Thomas:
- add missing libXv dependency.
- remove the NVIDIA_TEGRA23_BINARIES_GSTREAMER_PLUGINS and
NVIDIA_TEGRA23_BINARIES_MULTIMEDIA_APPS, and use simple 'cp -dpfr'
calls to copy the plugins and sample applications.]
Signed-off-by: Nicolas Serafini <nicolas.serafini@sensefly.com>
[yann.morin.1998@free.fr: split out into their own patch] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Nicolas Serafini [Tue, 21 Apr 2015 17:04:42 +0000 (19:04 +0200)]
package/nvidia-tegra23-binaries: new package
This patch adds a new package for all libraries and drivers
provided by Nvidia Linux4Tegra release 16.5.
We have intermediate .mk and Config.in, because those values will be
shared with the codecs package, to come in a follow-up patch, like we
have for the Freescale stuff.
Signed-off-by: Nicolas Serafini <nicolas.serafini@sensefly.com>
[yann.morin.1998@free.fr:
- split jpeg into its own patch
- split codecs and gstreamer plugins out into their own packages
- do not patch for .pc files, just bundle them in $(@D)
] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Ben Ben <carmazen84@gmail.com>
[Thomas:
- don't select BR2_PACKAGE_XLIB_LIBXT, there is no reference to it
in <pkg>_DEPENDENCIES, and it doesn't seem to be used by any
library.
- select BR2_PACKAGE_XLIB_LIBX11, which is referenced by the .mk
file, and is actually used by the pre-built .so files.
- do not select BR2_PACKAGE_XLIB_LIBXV, since it isn't used by the
X.org libraries/drivers, but only the Gstreamer ones.
- remove 'NVIDIA_TEGRA23_BINARIES_INSTALL_TARGET = YES', it is not
needed since it is the default.
- remove the definitions of NVIDIA_TEGRA23_BINARIES_FIRMWARE,
NVIDIA_TEGRA23_BINARIES_LIBRARIES and
NVIDIA_TEGRA23_BINARIES_PKGCONFIG, these are very long, and not
really needed: just copy all the firmware, libraries and .pc files
with a simple 'cp -dpfr'.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/xserver_xorg-server: add blind options to specify driver ABI
The upcoming NVidia Tegra2/3 binary blobs only work with a certain
VIDEODRV ABI (namely up to 14), so we must have a way to represent that
ABI so that such packages can not be enabled with a too recent/old ABI.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/xserver_xorg-server: make the version a choice
Only a single entry for now, but we'll add one more in an upcoming
patch, to support old binary-only drivers, like the NVidia Tegra2/3
drivers.
[Thomas:
- rename option from BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_17_1 to
BR2_PACKAGE_XSERVER_XORG_SERVER_V_1_17, since we don't want to
rename the option at each minor release of the X.org server, and
X.org servers with the same major version will not have a different
ABI.]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:16 +0000 (11:51 +0200)]
Makefile: add a few more targets to nobuild_targets
With this commit, one can now execute the source-check, external-deps
and legal-info targets regardless of the checks normally being done by
packages on the configuration.
Note that we intentionally do not go down the road of adding %-source,
%-legal-info, and the miryad of other targets that could work in such
situations. We only whitelist a few targets that are really useful to
have as nobuild_targets.
[Thomas: also add 'clean' and 'distclean' to the nobuild_targets, as
suggested by Yann.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:15 +0000 (11:51 +0200)]
packages: refactor checks using BR_BUILDING
Instead of manually testing MAKECMDGOALS, use the newly introduced
BR_BUILDING variable to know if we're building or not.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:14 +0000 (11:51 +0200)]
Makefile: add BR_BUILDING variable
Some packages do some sanity checks on their configuration, for
example linux checks that the defconfig string is not empty when a
defconfig is used. Such checks are currently always performed, except
when the 'source' target is part of make goals.
This is problematic for two reasons:
- Other targets such as 'source-check', 'external-deps' or
'legal-info', that do not consist in doing a build, cannot be
executed in such situations.
- The current code removes the check as soon as one of the targets is
source. But if there are other non-source targets called at the
same time, the checks are ignored.
This commit therefore introduces an internal variable called
BR_BUILDING, which tells packages if we are actually building or
not. A variable nobuild_targets indicates the targets that we do not
consider as being build targets.
For the moment, nobuild_targets only contains 'source', to be
completely iso-functional.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:13 +0000 (11:51 +0200)]
Makefile: remove unneeded variables
Now that all the external-deps, source-check and source targets are
properly implemented based on the package infrastructure, the
PACKAGES_SOURCE, TARGET_HOST_DEPS, HOST_DEPS and HOST_SOURCE variables
are no longer needed. This is a good thing since they were anyway
incorrect, as they were only doing a two level recursion in the
dependencies of host packages.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[tested with a randpackageconfig]
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:12 +0000 (11:51 +0200)]
Makefile: implement the 'source' target using the package infrastructure
Now that all the bits are in place, switch the global 'source' target
to use the package infrastructure logic.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[with 'make source' (actually together with the next patch).] Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[tested with a randpackageconfig]
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:11 +0000 (11:51 +0200)]
pkg-generic: introduce a <pkg>_ALL_DOWNLOADS variable and factorize code
Now, both the download and source-check code are iterating over
<pkg>_SOURCE, <pkg>_PATCH and <pkg>_EXTRA_DOWNLOADS elements, figuring
out whether they contain full URLs or not. Instead of doing this
repeatdly, this patch introduces an internal <pkg>_ALL_DOWNLOADS
variable, which contains the list of everything that needs to be
downloaded, with URLs already expanded to take into account <pkg>_SITE
if needed.
This allows to simplify quite significantly the .stamp_download and
source-check implementation.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:10 +0000 (11:51 +0200)]
pkg-download: fix indentation for SOURCE_CHECK_* macros
Some of the SOURCE_CHECK_* macros are using a non-standard two-spaces
indentation. This commit switches them to use a single tab based
indentation, like in the rest of Buildroot.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[with git show -w] Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:09 +0000 (11:51 +0200)]
pkg-download: get rid of DL_MODE
The DL_MODE variable is now no longer used with any other value than
"DOWNLOAD", so it no longer makes sense to have this variable at
all. Therefore, this commit gets rid of it.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:08 +0000 (11:51 +0200)]
pkg-generic: don't use DL_MODE in .stamp_downloaded
The .stamp_downloaded target is now only being used to really
download, and no longer for other activities like "source check" or
"external deps". So the check on DL_MODE being equal to DOWNLOAD is no
longer necessary.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:07 +0000 (11:51 +0200)]
pkg-generic: remove the .stamp_rsync_sourced fake stamp file
The only reason for the .stamp_rsync_sourced fake stamp file target to
exist was to handle the SOURCE_CHECK operation on packages using the
OVERRIDE_SRCDIR mechanism. Now that this is handled directly inside
$(1)-source-check, there is no longer any need for this part of the
code.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:06 +0000 (11:51 +0200)]
Makefile: implement a package based source-check target
This commit switches the implementation of the global source-check
target to use a package infrastructure based mechanism, using the
$(1)-all-source-check target added in the previous commit.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:05 +0000 (11:51 +0200)]
pkg-generic: implement source-check targets
This commits extends the common package infrastructure with the
$(1)-source-check and $(1)-all-source-check targets.
The $(1)-source-check target simply calls the newly added
SOURCE_CHECK macro on all items to be downloaded.
The $(1)-all-source-check target will depend on the
$(1)-all-source-check targets of all dependent packages and the
$(1)-source-check target of the current package, which allows to do a
recursive source-check in the dependency tree.
[Thomas: move the code around a bit to avoid repeating the
<pkg>_OVERRIDE_SRCDIR condition, as suggested by Yann.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:04 +0000 (11:51 +0200)]
pkg-download: extend DOWNLOAD_INNER, add a SOURCE_CHECK macro
As part of moving to a package infrastructure based source-check
implementation, we are going to move away from the global DL_MODE
variable to select the behavior of the DOWNLOAD_INNER macro.
As a preparation to this, this commit makes the DOWNLOAD_INNER macro
take a third argument, which is the action to be done: either DOWNLOAD
or SOURCE_CHECK. For now, the DOWNLOAD macro passes $(DL_MODE) as this
third argument, in order to keep the existing behavior.
In addition, a SOURCE_CHECK macro is added, which calls DOWNLOAD_INNER
with the appropriate action. This macro will be used in the upcoming
package infra based implementation of source-check.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[tested by doing a "make source" on a randpackageconfig] Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:03 +0000 (11:51 +0200)]
Makefile: move source-check outside of noconfig_targets
make source-check is here to check whether the remote sources for the
current selection of packages are still available. In its current
implementation, since it simply calls recursively a sub-make with the
source target, it can be a noconfig_targets. However, a follow-up
change will make source-check not use a sub-make, which will require
it to no longer be a noconfig_targets.
Therefore, as a preparation, this commit moves source-check outside of
noconfig_targets.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:02 +0000 (11:51 +0200)]
pkg-download: remove support for the SHOW_EXTERNAL_DEPS DL_MODE
Now that the external-deps implementation relies on the per-package
<pkg>-all-external-deps and <pkg>-external-deps targets and no longer
on the 'source' target with a custom DL_MODE, we can get rid of the
support for the SHOW_EXTERNAL_DEPS DL_MODE value in the pkg-download
logic.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:01 +0000 (11:51 +0200)]
Makefile: use the package infra based external-deps
This commit changes the global 'external-deps' target to use the newly
introduced per-package <pkg>-all-external-deps, instead of relying on
the 'source' target with a custom DL_MODE.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Thomas Petazzoni [Sun, 26 Apr 2015 09:51:00 +0000 (11:51 +0200)]
pkg-generic: take into account patch dependencies in source, external-deps and legal-info
The $(1)-all-{source,external-deps,legal-info} targets currently only
take care of the dependencies in <pkg>_DEPENDENCIES, but not
<pkg>_PATCH_DEPENDENCIES. This patch fixes that by introducing a
<pkg>_FINAL_ALL_DEPENDENCIES. It also reworks the $(1)-show-depends
target to make use of <pkg>_FINALL_ALL_DEPENDENCIES.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Bump ccache from v.3.1.x to v.3.2.x.
All functionality remained the same.
- Configure now accepts a parameter to use ccache's internal zlib.
- conf.c was introduced and some settings were moved from ccache.c,
with minor changes.
- The PATCH_CONFIGURATION hook was moved from POST_CONFIGURE to
POST_PATCH, as patching files should be done there, before calling
the configure script.
Signed-off-by: Karoly Kasza <kaszak@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Removed unneeded patches, Debian did the same:
http://metadata.ftp-master.debian.org/changelogs/main/g/gnuchess/unstable_changelog
gnuchess (6.0.2-1) unstable; urgency=low
* New upstream version (Closes: #637722)
[...]
- Drop patches
The patch is no longer needed because the gnuchess code has been
reworked. The input.c file no longer exists, and there is no longer a
getline() function being defined.
[Thomas: tweak commit log.]
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thomas Petazzoni [Sun, 26 Apr 2015 09:50:59 +0000 (11:50 +0200)]
fs: only add non rootfs- targets to PACKAGES
Commit 4570dbcb14b394d8f3c97baf4c9e5f4f225d1d37
("4570dbcb14b394d8f3c97baf4c9e5f4f225d1d37") added the dependencies of
rootfs building logic to PACKAGES, only thinking about the case where
rootfs building logic actually depends on real, normal packages
(host-mtd, host-genext2fs, etc.). But some file systems (rootfs-ubi)
depend on other filesystem images (rootfs-ubifs). And such targets
should not be added to PACKAGES, otherwise an incorrect circular
dependency is created.
This commit fixes that by only adding the rootfs building logic
dependencies that do *not* start with rootfs- to the global PACKAGES
variable.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
On ARM-based platforms, qreal is a typedef for float for performance
reasons. But we may want a double precision anyway.
Signed-off-by: Richard Genoud <richard.genoud@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Thomas:
- remove reference to BR2_LARGEFILE, this option has been
removed. Largefile support is now guaranteed to be present.
- rewrap Config.in help text to the appropriate length.]
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/perl-libwww-perl: Move package/perl-libwww to new package
This move is necessary to sync the package with scancpan output
as suggested by Francois.
http://lists.busybox.net/pipermail/buildroot/2015-April/126406.html
Since perl-libwww was never part of any official buildroot release
I did not bother the include legavy handling of its options ;)
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
support/download: restore mandatory check of hashes
Now that custom external toolchains to be downloaded properly instruct
to not fail on a missing hash, restore the mandatory hash check for
everything else.
support/download: add possibility to not fail on missing hash
In very constrained cases, it might be needed to not fail if a hash is
missing. This is notably the case for custom external toolchains to be
downloaded, because we do have a .hash file for external toolchains,
but we obviously can not have hashes for all existing custom toolchains
(he, "custom"!).
So, add a way to avoid failing in that case.
>From the Makefile, we export the list of files for which not to check
the hash. Then, from the check-hash script, if no check was done, and
the file we were trying to match in in this exclusion list, we just exit
without error.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Gustavo Zacarias <gustavo@zacarias.com.ar> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
changes v6 -> v7:
- /beautify/ the pattern in the case clause
Changed v5 -> v6: (Arnout)
- fix the pattern in the case clause
Changes v4 -> v5:
- micro-optimisation, use case-esac instead of a for-loop (Arnout)
- typoes (Arnout)
Changes v3 -> v4:
- drop the magic value, use a list of excluded files (Arnout)