Create install directories

When these directories don't exist (such as when portage installs to
an empty image directory) "install" won't make them.
Detect "#include *.c"

This prevents C files that are getting included from being compiled
twice.  Note that it's not entirely perfect: it's still possible to
build things twice by including both the C and H file.
Use LD instead of CC

This actually causes a difference sometimes: using GCC as a linker
seems to put a whole bunch of junk at the beginning of the output
file, which causes some tools (GRUB, for instance) to get confused.
Use -T for linker scripts

This seems to sometimes be necessary.  When I was linking today with a
particularly complicated linker script GCC gave me an error along the
lines of "You're using feature X in your linker script, but you didn't
pass -T, aborting".  "man gcc" doesn't say what would trigger this, so
I just gave up -- the man page says it goes everywhere, so it goes
everywhere.
Couple ASM and C

I can now include a header file from some C code and have it pull in
the cooresponding ASM file.
Fix ASM dependencies

I forgot to actually make ASM files depend on themselves, they now
have proper dependencies.  Note that this won't detect any sort of
Cleanup simple programs

I used to have all these simple programs in their own directory, but
that just added a lot of overhead.  I've moved them into the top-level
directory.
Add pnasm, a NASM wrapper

This allows me to build NASM files using a GCC-like wrapper.
Revert "Use LD instead of CC"

It turns out this isn't smart, I just need to figure out how to fix my
bug in another way.

This reverts commit e670d1fe4ec34732c68c416271d186b9df2e2c68.
Support Configfile comments

This should have been done a long time ago...  These still aren't
great: they're only supported as the first character of a line, but at
least it's something.
Call "scala" "scala", not "c"

This was messing with the code that detects when a language is added
twice.  When I added Scala before C, the loop to detect that a
language was being added twice would look at Scala, see that it's
called "c", and fail.

The fix is quite simple: just call Scala "scala"!
Run chkindent

I forgot to indent my code last time, sorry!
Add Chisel support

This still has one important bug: dependencies on the header file
generated by Chisel aren't actually tracked -- in other words, you
have to run make twice to reach consistancy (once for Scala, once for
C++).

I hope to eventually fix this bug, but I figured I'd commit while I
had something kind of working.
Add "quirks" for chisel

The idea is that Chisel doesn't map very well to this "one command per
file" layout that I've been using for the other toolchains.  I added a
"language_quirks" call that pretty much says "I've processed
everything pconfigure understands, let me do something weird".

This quirks call is used by the Chisel support module to tell make
that generating the Chisel binary also generates some ancillary code
(a header file that's used by the C++ support, for instance).

The Chisel support still isn't exactly what I'd call clean, but at
least it somewhat works :).
Make talloc dependency optional

The idea is that some people might not actually have talloc.  In order
to avoid forcing them to depend on talloc I'm instead simply include a
version of talloc that I staticly link into pconfigure in this case.

There is still a dependency on clang here.  I think the best way to
avoid the clang dependency is to write a mini-clang (ie, call GCC's
dependency generator a few times) that I use when clang isn't
availiable.
Make Scala code fail when it fails

I was always "exit 0"ing in my wrapper code, I don't do that anymore.
Print Chisel debug output on failure

I was hiding this before because Scala files didn't actually fail
properly, but I can now show it!
Use zinc instead of scalac if possible

zinc is a new scalac replacement that support incremental compilation,
which makes scala builds a whole lot less painful.