Prep v229: Update core build files to upstream
Prep v228: Update base files to upstream version.
Major cleanup of all leftovers after rebasing on The patching of elogind in several steps with only partly rebasing on a common commit with upstream, left the tree in a state, that was unmergeable with master. By rebasing on master and manually cleaning up all commits, this merge is now possible. However, this process left some orphans, that are cleanup now.
Prep v220: Update non-critical root files to the upstream versions.
Prep v221: Update and clean up build system to sync with upstream This commit replays the moving around of source files that have been done between systemd-219 and systemd-221. Further the Makefile.am is synchronized with the upstream version and then "re-cleaned". A lot of functions, that are not used anywhere in elogind have been coated into #if 0/#endif directives to further shorten the list of dependencies. All unneeded files have been removed.
Play better with non-FHS distros * Makefile.am: Remove rootprefix, rootbindir, and rootlibexecdir. udevrulesdir is substed from configure.ac. Adapt distcheck. * autogen.sh: Make more normal. * configure.ac: Add --with-udevrulesdir. Remove --with-rootprefix. Detect bin dir for udev.
build-sys: support local ./configure arguments I often want to use the awesome "./autogen.sh [cmd]" arguments, but have to append some custom ./configure options. For now, I always had to edit autogen.sh manually, or copy the full commands out of it and run it myself. As I think this is super annoying, this commit adds support for ".config.args" files in $topdir. If it exists, any content is just appended to $args, thus to any ./configure invokation of autogen.sh. Maybe autotools provide something similar out-of-the-box. In that case, feel free to revert this and lemme know!
autogen: drop unnecessary -Wno-gnu for the clang shortcut It is no longer necessary after 65e3a2cf7c3b399853dd309f702ca5078b7d16ea where -Wno-gnu-variable-sized-type-not-at-end is added if we detect that the compiler is clang.
autogen: add "t" switch with --enable-terminal Just temporarily add a "t" switch to "./autogen t" runs with --enable-terminal. Once it's compile-tested enough, we can add it to the default flags.
build-sys: no use for compat libs in the static analysis
build-sys: workaround scan-build bug to fix ./autogen.sh s It seems to be a clang-analyzer problem since it don't behave like clang-compiler regarding -std={c99,gnu99}
autogen: Allow running autogen from a builddir != srcdir While the configure correctly supports being run outside of the top source directory by default, it's nice if autogen.sh does too: $ git clone git://anongit.freedesktop.org/systemd/systemd $ cd systemd $ mkdir $(uname -m) $ cd $(uname -m) $ ../autogen.sh a $ make
build-sys: don't use -Wcast-align anymore We do a lot of these casts, and they are all OK, so let's get rid of the warning, to make things quieter. http://lists.freedesktop.org/archives/systemd-devel/2014-February/017174.html
build-sys: autogen - enable compat libs by default
autogen: add shortcut for running scan-build scan-build is a static analyzer in llvm. As ususal static analyzers tend to mostly find theoretical bugs in software that has been in production for a while. For in-development code it can be useful to check if new issues is added as there is a chance to spot real problems before release. For systemd we are now down to 297 issues - the vast majority are false positives because the tool does not understand the cleanup attribute. Running clang's static analyzer scan-build is a bit messy. You have to run both configure and make "inside" the build-scan tool. To have an easy shortcut from autogen.sh I thus call both directly from it. This makes it different from the other options in autogen.sh. I chose 's' for static analysis. scan-build is in the package clang-analyzer on fedora.
autogen: add shortcut for building with clang For a while I have been cleaning up warnings when building with clang. There are currently only two sources of warnings left: Wcast-align and Wgnu. I am not convinced that fixing up those up is feasible so I run with them disabled to spot regressions. E.g. clang is a bit more strict wrt to unused variables with the cleanup attribute and I have fixed a number of those since. Like the other options in autogen.sh I have a shortcut for clang as well. I use 'l' for llvm.
build-sys: the pure/const warning options are probably too much as default, but let's make it available via "autogen.sh a"
build: use -ftrapv for development We want to find these bugs if they exist.
bus: do kdbus only if this is enabled on the configure switch Since we want to retain the ability to break kernel ←→ userspace ABI after the next release, let's not make use by default of kdbus, so that people with future kernels will not suddenly break with current systemd versions. kdbus support is left in all builds but must now be explicitly requested at runtime (for example via setting $DBUS_SESSION_BUS). Via a configure switch the old behaviour can be restored. In fact, we change autogen.sh to do this, so that git builds (which run autogen.sh) get kdbus by default, but tarball builds (which ue the configure defaults) do not get it, and hence this stays out of the distros by default.
autogen: use -O0 for "autogen.sh c" after all -Og actually breaks gdb still, so let's stick to -O0 for now, but introduce "autogen.sh g" for those who don't need gdb.