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