Due to a missing comma, in the AS_IF the action run-if-false is actually
merged with run-if-true action, which means that with_libbsd is always
empty when user provides --with[out]-libbsd.
The autotool provides a simple mechanism which allows us to move ("divert")
the checks we do on the user arguments to the beginning of the script, yet
without needing to scatter the code.
This is good because we can raise errors very fast, user do not have to
wait until many other checks have passed before knowing he has to correct
his argument list; yet on our side we can keep related things together.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Directory /etc/WindowMaker is for global defaults configuration, it is not
a "data" folder which is $PREFIX/share/WindowMaker.
The name change make it more consistent with other names.
When the new configure option '--with-web-repo' is used, the new target
'make website' becomes available and will generate HTML pages to be placed
in the Homepage Repository.
This patch does not generate any content yet but it prepares the skeleton
to handle everything.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Make use of the standard macro for PKG_CONFIG; the default behaviour is now
to use Pango if present, instead of requiring explicit user request, yet
still not making it mandatory.
The detection code was moved to a macro to keep the configure.ac script
(relatively) small, and consistent with what is done for most other libs.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The goal is to use standard macros, which make code easier to maintain
(smaller, more consistent). We still keep the legacy "xfg-config" method
because we don't want to drop support for old hardware/software.
A side effect is the change in the name of the variables for the makefile,
but this goes in favour of consistency.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Because the library does not have an initialisation function, we need to
rely on an automatic called-on-load mechanism, which is provided through
a compiler attribute 'constructor'.
However, as the project aims to still compile on old hard/software, we
include a check in 'configure' to ensure it works, and if not use the
legacy solution.
Note: Because we introduce a new DEFINE, the 'config.h.in' needs to be
regenerated, otherwise you may get a compilation error in wrlib. This is
done by re-running './autogen.sh'
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The library did not propose the mechanisms to be translated, this patch is
creating the structure in autoconf/automake and the translation directory
so its messages can be also translated.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
I noticed one instance of this while looking at the code the other day,
and after a quick grep, realized it happened a *lot*! One of the many
frustrating things about the English language is that we use apostrophes
to make pretty much everything possessive *except* the pronoun "it".
In that case, we use "its". "It's" is reserved for the contraction
meaning "it is" or "it has".
This changes the behavior of the --with-{inc,lib}s-from arguments
to replace the default paths instead of adding to them. This is
required when cross-compiling in a sysroot, since the default paths
will include files from the host system which can have an
incompatible architecture.
Previously, this was only (partially) possible by redefining the macro
GLOBAL_DEFAULTS_SUBDIR. This told Window Maker to look for the global
config files in a particular subdirectory of SYSCONFDIR.
However:
* This is undocumented.
* GLOBAL_DEFAULTS_SUBDIR is ignored when installing the config files. They
are always installed to SYSCONFDIR/WindowMaker.
To solve these issues, we add a "--with-defsdatadir" option to configure
which allows a user to specify the global defaults directory.
Usually, a soname bump is reserved for when an interface is added, changed,
or removed. This has not happened to wrlib. However, I think there is a
special circumstance that warrants the bump.
In particular, there are two versions of wrlib version 5 in the wild:
* The one that shipped with wmaker 0.95.6, which uses symbol version
LIBWRASTER3.
* The one that shipped with wmaker 0.95.7, which uses symbol version
LIBWRASTER5.
This was reported in Debian bug #811304 [1]. Binaries which were built
against the older wrlib won't run after upgrading to the newer one, even
though they are supposedly using the same soname version.
(We get around this currently in Debian by patching the old LIBWRASTER3
symbol version back in.)
I propose we bump to version 6 and put this mess behind us.
[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=811304
Patch by Helmut Grohne <helmut@subdivi.de> to fix Debian bug #853236 [1]:
> wmaker fails to cross build from source, because it forces the use of
> pkg-config without $ac_tool_prefix. Discovering pkg-config with the
> PKG_PROG_PKG_CONFIG macro considers $ac_tool_prefix and thus makes cross
> compilation succeed. Please consider applying the attached patch after
> stretch is released.
>
> Helmut
[1] https://bugs.debian.org/853236
The name of the variable used in the AM_CONDITIONAL check was not aligned
with the name used at the other places of the file, which made the test
always succeed, making the conditional always enabled, causing an
unnecessary file to be included if user asked to disable the feature,
feature which was still not enabled.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
This patch fixes the output status of the configure script which
currently gives output such as this:
<output>
Window Maker was configured as follows:
Installation path prefix : /usr/local/windowmaker-0.95.7.next
Installation path for binaries : /usr/local/windowmaker-0.95.7.next/bin
Installation path for libraries : ${exec_prefix}/lib
Installation path for WPrefs.app : /usr/local/windowmaker-0.95.7.next
...
The compilation of the WRaster library needs the keyword
EXTRA_*_DEPENDENCIES in its Makefile so the configure.ac have been updated
to require at least the version of automake in which it is added.
Reported-by: Josip Deanovic <djosip+news@linuxpages.net>
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As it is really unlikely that in normal use case someone would need this
feature, it is now conditional code, which is not enabled by default; the
configure scripts now propose a '--enable-wmreplace' option to enable the
corresponding code, as people making package for distributions may want to
enable the feature to provide users the ability to give a try of all the
window managers.
Suggested-by: Carlos R. Mafra <crmafra@gmail.com>
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The old behaviour was to expect the user to go modify manually a source
file which is not a great idea because that's typically the kind of things
in charge of the configure script.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The usual way to define a macro in is to name macro with 'USE_xxx' when
they are used to enable a feature 'xxx'.
As the feature concerns the Dock and not DnD in general (WINGs support is
not disabled), make it a bit more clear in the macro name and document the
configure flag in the Installation Manual.
Took opportunity to compile the corresponding file only when the feature is
not disabled.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The old behaviour was to expect the user to go modify manually a source
file which is not a great idea because that's typically the kind of things
in charge of the configure script.
As a side effect, we can now use an automake conditional to avoid compiling
the source file in charge of the feature when not used, instead of trying
to compile an empty-looking file.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Renamed it to '--disable-xlocale' because the original name is misleading
about what the option really is for (it sets locale for X, not locales in
general) and updated its documentation;
Added checks to report incorrect uses to the user;
It is now possible to use '--enable-xlocale' to explicitely request for the
feature, so configure would stop if it were not found.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The idea is to include consistency check to warn the user if he is not
using it properly, instead of silently misbehaving;
Updated code style to use Autoconf macros for consistency.
Took opportunity to remove the hacky setting inside 'config-paths.h' where
it is a bit out of place, in favour of a standard DEFINE in the 'config.h'.
Include in the i18n documentation the explanation on how Window Maker
translates the menus, both when the 'menu-textdomain' option is used and
when it is not.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Autoconf have been providing the option '--localedir' for a long time now,
so this patch removes the deprecated '--with-nls' option and makes use of
the standard '--localedir' instead.
Took opportunity to define the path in the 'config-paths.h' in the same way
the other paths are defined to be consistent, which also simplify the
compilation commands.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The main change is to use Autoconf's syntax for consistency;
Now the detected program is used in the makefiles (user has the possibility
to change the name of the command);
A conditional is used to avoid enabling make targets that would fail if
the command does not exist.
Took opportunity to implement the silent-rules compliance to POT generation
rules.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The code was moved to a dedicated file (wm_i18n.m4) to reduce the size of
configure.ac;
It now searches for gettext+libintl only if LINGUAS is specified, because
there is no need for them otherwise;
The list of supported locales is created automatically from the list of
files present in the source tree, so there won't be problem forgetting to
update the variables when a new language is added, or removed because
one is considered outdated;
The new syntax is now using as much as possible Autoconf's syntax to ensure
consistency and better portability;
Took opportunity to improve the language check loop to make it smaller and
to tell when a locale that the user asked for is not fully supported.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The source of the documentation is in Texinfo format to have the
possibility someday to distribute in more format that just plain text;
There is a new Makefile to generate automatically the plain text file to be
distributed from the source; this doc is also generated by 'autogen.sh'
because a user would expect to find it before compiling the program, so
even before the 'configure' script have been generated, in the case he is
compiling from a git checkout;
There is a new script to generate the documentation, because from the way
we generate it we cannot assume that 'texi2any' is available and working
on the user's computer; it is also the opportunity to generate a better
looking document (see the description at the beginning of the script);
In this commit, the documentation only contains the base skeleton, it does
not contain yet any useful content because it is worth it's own commit.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The 2 options '--with-pixmapdir' and '--with-gnustepdir' did not provide
any feedback to the user if they were not used correctly. The new code now
performs more checks and tell the user about problems.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
In addition to proper quoting for M4, the macro would not behave totally as
expected: for example, providing '--disable-modelock' would enable the
feature instead of keeping it disabled as the default.
The definitions now properly behave as expectable, so the user can
explicitly specify how he wants the feature even if it is the default; it
will also fail on improper use which is always a good idea to ease possible
future evolution.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Using the appropriate quoting (with [xxx]) can spare us some problem, so
for maintainability of the script the proper quoting was added in a few
places to have a consistent file.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
This patch brings more consistency in the presentation of comments,
including:
- 2 line spaces between blocks (M4 macro tend to make the file look quite
bulky, so it is making the file more aerated)
- fixes in the length of underlining
- adding a few comments on the reason of the check to ease maintainance
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
The mail address we use is the developer's mailing list; putting it in the
macro will get Autoconf to place it in a few strategic places where it is a
good idea to have it.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
This include using the AC_COPYRIGHT macro so our copyright will also be
placed in the generated configure script.
Took opportunity to update the comment on how the file should be processed
to simplify user's life.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Some macros have evolved, so this patch brings the appropriate updates:
- AC_OUTPUT(...) is now split in AC_CONFIG_FILES(...) and AC_OUTPUT, took
the opportunity to sort the list of files so it is easier to maintain
- the macro AC_DECL_SYS_SIGLIST is now replaced by the more generic
AC_CHECK_DECLS([sys_siglist]), but as it turns out that we're not using it,
the check was just removed
- autoconf assumes that AC_TYPE_SIGNAL is deprecated because the type was
fixed since C89, but as we expect to still run on old hardware, we keep the
macro given by autoupdate on our side for when Autoconf will stop providing
the macro
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As discovered by Douglas Torrance, this flag is not really portable, so
this patch adds a check in the configure script to detect if any known
define could help. If no value works, we fall back to defining it with the
neutral value '0', so the compilation will not fail.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
As found by Douglas Torrance, when the 'configure' script is generated
using v2.68 of autoconf then it gets wrongly generated due to a regression
in the handling of names in AS_VAR_PUSHDEF, and crashes with this kind of
sibylline messages:
checking CFLAGS for -Wtrampolines... ./configure: line 11916: wm_cv_c_check_compopt_Werror_trampolines=no, unknown: command not found
This patch adds a check on autoconf version to ensure the problem will get
caught as soon as possible.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Because the use of trampolines can be a lot of problems, this patch changes
the use of the flag to:
- make it an error if possible, so coders are forced to not use them;
- always enable them, not just for debug, so we increase the probability
to get them caught.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Strict prototype are better for portability and to avoid bugs because it
makes sure the compiler has the information to properly validate the
arguments given when a function is called.
This flag however need special care when checking for it, because the
declaration for 'main' generated by autoconf cannot be a strict prototype
so the detection would always see the flag as failing.
This patch handles this by creating a dedicated macro for this detection
which uses a good prototype because we're in a case where it is possible,
so the detection will not always fail; it also makes sure to add the flag
to CFLAG only at the end, to avoid falsely crashing any further test done
in the configure script.
Signed-off-by: Christophe CURIS <christophe.curis@free.fr>