What is this?

AWIPGART

Damn straight. AWIPGART is `Alex's written-in-perl GNU autoconf replacement
thing'.

What it is:

A really nifty thought.. something to replace that mess of m4 and sh shit
that is GNU autoconf for the KDE project.

What it isn't:

Portable. I've designed it with the KDE build setup in mind. Which is not
to say that my goal was to make this thing really hard to customize, but
it's that I haven't tested it with anything else. IN fact, right now I've
not even tested it outside of Perl 5.6.0 and FreeBSD (my perferred setup
of sorts).

Why's it so cool?

Come closer... lemmie tell you. It doesn't need a pre-processor (read:
m4), it uses a well defined standardized language. What's that mean? No
more mess of sh code. You've got a mess of perl code now. Well, at least
one can make that more readable. Well.. so what. I'm a masochist. I LIKE
OBFSCUATED CODE! Yeah? Well! I've got the cache setup in a dbm file. Oooh
yeah. Guess what folks, lightning fast cache parsing, and oh yeah, more
efficient substutition... and.. oh yeah, easier to comprehend tests.. you
can add stuff on the fly. You can add handlers for your own arguments..
all that lovely stuff that GNU autoconf does.. we do too. Except it's more
structured.

Why won't it work with MY neat project?

Well, because I didn't design it to be nearly as flexible as the GNU
autoconf scripts can be. Honestly, with KDE the configure script is the
least of your worries when you're trying to cross-build it. There are
perhaps a few other features I haven't properly implemented yet (or that I
might never implement), most can be overcome with some quick perl quite
easily if you really desired such things.

How do I use it?

Well for now it seems the best way to get going is to:

* check out a copy of kdelibs
* check out a copy of perlconfthing (in kdenonbeta) or here
* copy/symlink the admin dir from perlconfthing into kdelibs (mv or rm the old one out of the way).
* copy/symlink all of the tests from tests_for_subdirs into their appropiate subdir
* copy/symlink the toplevel stuff from perlconfthing into kdelibs
* hack the custom dependency stuff out of the toplevel Makefile.am
* run ./configure --prepare-for-am (any other arguments you want)
* run automake
* run am_edit (am_edit should possibly be merged into configure, but this could slow things down)
* run ./configure (any arguments you want)

If all goes well it (make) should work. Of course it doesn't completely
work yet (mainly libltdl needs to be configured with an autoconf generated
script), and some tests are missing.

You can also use objdir != srcdir with the argument --with-obj-dir=XXX,
just make the new object directory first.

- alex