String literals are const in C++. Using this warnings moves us closer to
the stated goal of C++ compatibility, makes the code cleaner and lets
compilers optimize the code better.
Add m4/ax_append_compile_flags.m4 from Autoconf Archives for the
AX_APPEND_COMPILE_FLAGS macro and m4/ax_check_compile_flag.m4 as its
dependency.
Add Autoconf archive macros to check for -Wall and its dependencies.
Adjust m4/.gitignore to only ignore libtool macros.
Require Autoconf 2.65 for compatibility with Autoconf archive macros.
libdir is for shared and static libraries. Some xrdp libraries are loaded
dynamically from a non-standard directory, so they are used like modules.
Having separate libdir and moduledir would eventually allow to separate
dynamically loaded modules from shared libraries.
Automake 1.6.x cannot deal with conditional EXTRA_LIBS. Automake 1.7 and
1.7.1 cannot deal with line continuation in SUBDIRS.
It is important to have correct requirements to know what Automake
features can be used.
AC_CONFIG_MACRO_DIRS requires a very recent Automake, much newer than the
declared version 1.6 (even 1.11 doesn't work). AC_CONFIG_MACRO_DIR is
defined by Autoconf starting with version 2.58, so it's within the
currently declared constraints.
Use AC_PATH_XTRA to search for X11 in configure.ac. In Makefiles, add
X_CFLAGS to AM_CFLAGS for the source compilation. Add X_LIBS to LDFLAGS.
Add X_PRE_LIBS and X_EXTRA_LIBS to LDADD.
With this patch, X Windows system is correctly detected on Mac OS X.
Keeping separate files is more maintainable than merging them into a
single aclocal.m4 file. It is easier for users to understand where those
files come from.
Automake knows how to distribute files in the m4 directory.
To add flags to the compiler, CFLAGS, CPPFLAGS or LDFLAGS can be used on
the configure command line.
The need to add flags depends on the location of the headers and
libraries of the dependencies, which is orthogonal to the directory where
xrdp will be installed.
The implementation in configure.ac has a stray closing bracket, making
GOT_PREFIX true even if --prefix is not passed.
The implementation is inconsistent - the only affected makefiles are for
xrdp and libxrdp.
Changing rpath manually is wrong in most cases. Libtool should be able to
set rpath correctly on its own.
Using $(prefix)/lib ignores the libdir setting. For many 64-bit systems,
/usr/lib is used for 32-bit libraries. Adding 32-bit libraries to the
rpath slows down 64-bit executables, as the dynamic loader searches for
libraries in a wrong directory.
There is no way to disable GOT_PREFIX if --prefix has to be passed.
Fedora RPM patches configure.ac and needs to rerun autoconf and automake
after that.
OpenPAM is used in FreeBSD, NetBSD, DragonFly BSD and Mac OS X.
On the Linux system, Linux-PAM is used. Detect PAM during configure
and use which the system has.
Fix the use of AC_ARG_ENABLE() so that --disable-foo configure options
are respected.
The third and fourth arguments of AC_ARG_ENABLE are respectively
ACTION-IF-GIVEN and ACTION-IF-NOT-GIVEN. The former is executed if
either --enable-foo or --disable-foo is specified on command line, the
latter if neither is. Additionally, the specified value is stored in
$enable_foo variable.
Therefore, the common practice is to provide null ACTION-IF-GIVEN
(and use the value of $enable_foo), and to set a default for $enable_foo
in ACTION-IF-NOT-GIVEN. The commit does that, and adjusts the further
conditionals to test $enable_foo properly.