[Nut-upsdev] New default for SNMP and USB (and HAL) compilation
Peter Selinger
selinger at mathstat.dal.ca
Thu Dec 28 07:37:26 CET 2006
Hi Arnaud,
I have reworked autoconf to the point where it should work correctly
with HAL, and also should by default compile all drivers whose
prerequisites are met.
Here are some more details and random thoughts.
* drivers: by default, they are built if possible, but if some
prerequisites are missing then configure skips them without
complaining. A summary is printed at the end of ./configure.
Of course, the user can request specific things with the
corresponding --with option.
* CGI scripts and the upsclient library: the default is still *not* to
build and install these, because I believe most average users don't
need them. However, it is now possible to say e.g. --with-cgi=auto
(or indeed --with-all=auto) if the user wants to build all that is
possible. Similarly, --without-all should build no drivers at all.
* make distcheck now works, HAL and all.
* the checks for libusb, libhal, and libnetsnmp are performed even if
the corresponding --without options are given. This is because we
have no good way of checking which drivers the user selected with
--with-drivers=xxx,yyy,zzz, and these drivers might need the
libraries.
* Charles, you made some autoconf changes in your man branch, which
probably should have gone in the trunk. I believe I have now made
equivalent changes in the trunk, so be careful when merging.
* I wonder what is the difference between --with/--without style
configure options and --enable/--disable style options. One is
supposed to be for "features" and the other for "packages" but in
practice I am not sure which is which or what the real difference
is. But if anyone knows better, please let me know.
* HAL design. The HAL binaries don't seem to be drivers; they seem to
be clienty-servery type things. Perhaps these should live in a
different subdirectly? This would also make it slightly easier to
pass specific CFLAGS and LDFLAGS.
* HAL design. Is it necessary to create a dedicated HAL clone for each
existing driver? Would it not be better to take advantage of the
already existing modular approach, and have a single HAL application
that will select the desired NUT driver, start it as a child
process, and communicate with it through its socket (without using
upsd as I understand?)
* I have written several local autoconf macros, which are located in
the m4/ directory, and documented in docs/macros.txt. This makes the
configure.in shorter, more uniform, and more maintainable, while
leaving some ugly details out of view. ./configure.in is now down to
763 lines from 1001.
-- Peter
Arnaud Quette wrote:
>
> Hi Peter,
>
> 2006/12/21, Peter Selinger <selinger at mathstat.dal.ca>:
> > I agree that this is a good idea. The reason I did not do this
> > immediately when converting to Automake is that I tried to be as
> > backward compatible as possible. In general, if --with-feature is not
> > given, then the prerequisite should be checked, and the feature
> > enabled if they are present. If --with-feature is given, then the
> > prerequisites should be checked, and the configure script should fail
> > if sthey are not present. If --without-feature is given, then the
> > prerequisites should not be checked at all (to save time).
>
> perfect
>
> > ...
> > If you want, I'll look into it.
>
> with pleasure.
> once more, you've really done a good job on the automake side ;-)
>
> Arnaud
> --
> Linux / Unix Expert - MGE UPS SYSTEMS - R&D Dpt
> Network UPS Tools (NUT) Project Leader - http://www.networkupstools.org/
> Debian Developer - http://people.debian.org/~aquette/
> OpenSource Developer - http://arnaud.quette.free.fr/
>
More information about the Nut-upsdev
mailing list