Darrell Anderson wrote:
> It might be a good idea to add a -DBUILD_AUTO flag
that causes any
> failing checks to simply disable the associated functionality as
> Autotools does. If you want to see this please file an enhancement
> bug report.
I am noticing that -DBUILD_ALL does not encompass all
features. In
several of my build scripts I have had to specify various options
because the default is for many features to be disabled.
There are two sets of parameters: BUILD_XXX and WITH_YYY. The
BUILD_ALL parameter turns on all the BUILD_XXX parameters, but doesn't
affect the WITH_YYY parameters.
If we enable all features by default, we end up with
larger packages
sizes, but the advantage is things breaks faster. One of the
challenges I see in Trinity development is many developers do not
build all packages. When a person comes along who is interested in
building such a package, that person usually finds problems. If all
features were enabled by default, collectively we would discover
these problems much faster.
The defaults are not terribly important. What I'd like to see is a
WITH_ALL flag similar to BUILD_ALL. I do like the idea of a BUILD_AUTO
flag. When a needed dependency is not found, a message like:
libtiff.so not found. Disabling TIFF support.
Even better would be a summary of findings at the end of the cmake
invocation. For instance, openssh gives the following at the end of
configure:
OpenSSH has been configured with the following options:
User binaries: /usr/bin
System binaries: /usr/sbin
Configuration files: /etc/ssh
Askpass program: /usr/lib/openssh/ssh-askpass
Manual pages: /usr/share/man/manX
PID file: /var/run
Privilege separation chroot path: /var/lib/sshd
sshd default user PATH: /usr/bin:/bin:/usr/sbin:/sbin
Manpage format: doc
PAM support: no
OSF SIA support: no
KerberosV support: no
SELinux support: no
Smartcard support:
S/KEY support: no
TCP Wrappers support: no
MD5 password support: yes
libedit support: no
Solaris process contract support: no
Solaris project support: no
IP address in $DISPLAY hack: no
Translate v4 in v6 hack: yes
BSD Auth support: no
Random number source: OpenSSL internal ONLY
Privsep sandbox style: rlimit
Host: x86_64-unknown-linux-gnu
Compiler: gcc
Compiler flags: -g -O2 -Wall -Wpointer-arith -Wuninitialized
-Wsign-compare -Wformat-security -Wno-pointer-sign -Wno-unused-result
-fno-strict-aliasing -fno-builtin-memset -fstack-protector-all
Preprocessor flags:
Linker flags: -fstack-protector-all
Libraries: /usr/lib/libcrypto.a -ldl -ldl -lutil -lz -lnsl
-lcrypt -lresolv
This tells the user exactly what is being built. If the user wants
something else, he has a basis to determine what is missing (or extra)
and make the appropriate changes.
-- Bruce