switching to std::unique_ptr<> in 52c9f62 caused some trouble for
users of "older" compilers: they needed to add the --std=cxx11 flag
by hand. to make life more convenient, m4/ax_cxx_compile_stdcxx.m4
and m4/ax_cxx_compile_stdcxx_11.m4 are added to do the right thing.
in my tests, the last "good" compiler is gcc-4.8, gcc-4.7 does not
support the required c++11 standard.
clang++-3.5 also works.
After 'configure' finishes it states just CXXFLAGS and LIBS. But these are
actually not complete, the build system will use much more later on. Problems
with the build system are easier to address if 'configure' is a little bit
more verbose.
* Correctly build data files when operate outside of the $(srcdir)
* Actually install data files
* Use pkg-config to detect X11, works better on MacOSX. We used pkg-config
already anyway, double checking for X11 does not yield better results.
* Replace EXEEXT in some files while before installing them
xxx_LDFLAGS place the libraries like '-lX11' or '-lXft' at the beginning of
the linker command. Some systems were not able to handle the situation and
this lead to a lot of unresolved symbols. Reading the documentation of
automake:
... you can use LDADD to do so. This variable is used to specify
additional objects or libraries to link with; it is inappropriate for
specifying specific linker flags, you should use AM_LDFLAGS for this
purpose.
In addition we link against -lm in order to satisfy symbols refering to 'cos'
and 'sin'.
This commit fixes primarily a race condition that occurs when xinit(1) shuts
down: by not acting properly fluxbox gets caught in an infinite loop. It
caused bug #1100.
xinit(1) sends a SIGHUP signal to all processes. fluxbox tries to shutdown
itself properly by shutting down workspaces and screens. While doing that, the
Xserver might be gone already. Additionally, fluxbox used to restart() itself
on SIGHUP, which is clearly not the right thing to do when xinit(1) is about
to end the session.
So, fluxbox does this:
* handling SIGHUP now shuts down fluxbox without clearing workspaces and
screens.
* A 2 second alarm() is triggered in Fluxbox::shutdown() as a last resort
* XSetIOErrorHandler() is used to recognize the disconnect from the xserver.
* SIGUSR1 is for restarting fluxbox, SIGUSR2 for reloading the config
* FbTk/SignalHandler.cc/hh is gone; this unused abstraction served currently
no real purpose. Signal handling is now done in main.cc
* Unrelated to the issue itself src/main.cc was trimmed down quite a bit and
the code (responsible for handling the command line interface) was moved to
src/cli*
This patch took copy of config.rpath from gettext 0.18.2 to build-aux/
directory. Software projects usually does not need to do that, because
the file is copied by gettext autopoint in autogen.sh or bootstrap.
In Fluxbox case calling autopoint seems wrong, as it would generate po/
directory with necessary make automation, adn 'msgid' & 'msgstr' files,
but that is not how the translations are done in this project.
This commit alters XRANDR (X Resize And Rotate) extension dependency,
which is expected to have at least version 1.4. Earlier old versions of
xrandr were supported, at least to some extent.
It seems autoheader version 2.69 does not work with configure.in file,
and AM_CONFIG_HEADER macro.
aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'
configure.in:585: warning: macro 'AM_CONFIG_HEADER' not found in library
Executing: autoheader
autoheader: error: AC_CONFIG_HEADERS not found in configure.in