Modularization mailing list and initial strawman proposal

Shawn Starr shawn.starr at rogers.com
Tue Mar 29 23:43:37 PST 2005


Some random bits of points from this thread:

Daniel Stone wrote:

> The problem is thus: there are some really bad points about imake (like
> a total lack of interactivity and basic language primitives needed to
> execute tests), but on the whole it's not a horrifically bad build
> system.  The problems with it are several:
>         a) no-one knows it, not necessarily because it's obtuse (so are
>            the inner workings of autotools, scons, or whatever's cool
>            this week), but because no-one else but us uses it;
>         b) we have to maintain platform definitions, which is, to put it
>            bluntly, total crap.  it shouldn't be our job, that's the job
>            of the platform maintainers, who know it far better than us;
>         c) no-one knows it;
>         d) no-one knows it.
> 

I can certainly help with porting efforts. I've been very intimate with Imake 
in the past and I use the Autotools a lot.

> autotools has many advantages in terms of functionality, simplicity, and
> having platform definitions maintained by people who know the platform
> inside out; not us.  People feel comfortable working with autotools,
> because it's familiar territory.  No-one feels comfortable with the
> spaghetti imake horror we've backed ourselves into.

Imake is ugly, we all know this.  the Autotools handle a lot of nice things 
that we did manually in the Imake macros. One danger is to make sure your 
Makefile.am syntax conform to BSD Make at a minimal so that other UNIXs 
will work still. Since Automake.in builds BSD friendly(?) Makefiles.

Adam Jackson wrote:

> Technically this is a style issue.
> 
> My understanding of autoconf is that there's a difference between --with-foo 
> and --enable-foo.  The --with form is used for features that have external 
> dependencies, whereas --enable is for features that do not.  So for example, 
> we would say --with-freetype but --enable-render.
> 
> The easy rule is --enable options default to on and --with options default 
to 
> off.  This is too simplistic of course.  The reality is that we'll need to 
> set sensible defaults and make sure that we don't add --enables that are 
> really --withs.  But this is not different than under imake.
> 
> That other projects get it wrong doesn't mean we will too.

We should have a design document explaining the standards and naming schemes 
for the configure options as you mention above.  

Consistant
- configure script options is critical.
- macro styles, variable names makes code easy to read.
- configure.ac scripts
- Makefile.am templates.
- *.in templates and such

- *** Consistant API M4 macros you don't want to get into an autoconf/automake 
mess.
We need to make sure we pick a computable version that most platforms already 
can use. 

Creating a Wiki and or a document on how to build Xorg for testers/developers 
to get involved is important.

Other notes:

If we decide to standardize on jhbuild as the 'official' build mechanism, we 
should make sure it can handle developers needs.

1) Don't force jhbuild to set $prefix to be $HOME for everything. This is one 
gripe I have :). It should be flexable for developers/testers.

2) [ Fill in your gripe/wishlist here ]

The proposal looks good, other than some issues addressed on IRC, I support 
this process. There may be some tweaks made to it, but the overall goal is 
one I support.

Shawn.



More information about the xorg-modular mailing list