Re: cmdline processing & an additional build dependency


Subject: Re: cmdline processing & an additional build dependency
From: Paul Rohr (paul@abisource.com)
Date: Tue Aug 21 2001 - 14:01:40 CDT


At 11:03 PM 8/20/01 -0400, Patrick Lam wrote:
>So, I've decided that abi's cmdline processing is really bad.
>
>I'd like to use libpopt universally to read the commandline. At the
>moment it only gets used in the GNOME build. So this would introduce an
>additional build dependency, I guess.
>
>[Perhaps command line options are not generally required in Windows, or
>Mac. It would be unfortunate to build depend on libpopt on Mac.]
>
>I definitely want to unify the GTK and GNOME cmdline processing, using
>libpopt. Any objections?
>
>What about other platforms?

Hi Pat,

Thanks for volunteering to look into this. The one problem I'm aware of
with command-line processing is that it's messy and we don't share enough
code there, making it even harder to maintain. IIRC, some options are
inherently platform-specific, though, and the point where command-line
processing gets invoked may vary slightly, so there probably needs to be
some non-XP code when we're done.

What problems are you seeing, and how hard would it be for you to preserve
the "good bits" of the other platforms' command-line UIs if we switch over
to libpopt on all platforms?

I highly doubt you'd get any objections from Win32, etc. developers if some
future CVS update built cleanly, preserved our existing functionality (for
example, -nosplash), and replaced all the unnecessary platform-specific
duplication with an XP implementation that's easier to maintain.

>How do I put something in XP-land but only
>compile it when it's needed on that platform?

Are you asking how the diving make system [1] decides which peer libraries
to build? Inherently, all peer libraries we use are XP, but sometimes
they're not needed on a given platform. For example, compare the following:

  abi/src/config/require/xp/Makefile
  abi/src/config/require/qnx/Makefile
  abi/src/config/require/unix/Makefile
  ...

We require expat and psiconv on all platforms, so the build rule is in the
xp makefile. By contrast, our rules for handling the zlib, libpng,
libiconv, and wv vary per-platform, so those dependencies are handled in the
appropriate platform makefile.

Hope that helps.

Paul

[1] I can't speak for the experimental autoconf support, because it hasn't
made its way over to Windows yet, and I don't know of any docs to point you
to.



This archive was generated by hypermail 2b25 : Tue Aug 21 2001 - 13:53:50 CDT