Re: cmdline processing & an additional build dependency

Subject: Re: cmdline processing & an additional build dependency
From: Paul Rohr (
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:


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.


[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

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