TCLUG Development Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Ptah



	In case anyone wants to know...

	Ptah is a new project I'm starting for the software carpentry
site.  I'm attempting to write a replacement for make.  My recent
experience trying to write a vaguely reasonable Makefile for the
StreamModule project was frustrating and instructive.  I think I can do
a better job than most of the alternatives out there.

	One thing I think is wrong with most of the alternatives out
there is the fact the defining build rules for them is a very
complicated, and often rather opaque process.  Often things like
'autoconf' need to perform complicated configuration of build tools.
Having the process be complicated makes things that much harder.  This
fact reveals a bias in such tools towards team based, closely knit
development environments where you can afford to have someone doing all
your difficult make tool configuration.

	Also, they all try to handle header file dependencies by
scanning using a special tool instead of relying on the -M flag to the
compiler, which, IMHO, is prone to missing dependencies, or picking up
false ones.  It also doesn't help much with Java, where import
something.* statements are common, but the file really only depends on a
small fraction of the classes that were 'imported'.

	The only feature of the widely available 'make' alternatives I
don't plan on emulating in some way is odin's database of derived files.
The absence of this feature will force people to make arrangements to
have build with different toolsets, or for different platforms to reside
in different directories, but I think odin's database was something
people found even more confusing.

	Because of the requirements of the software carpentry project,
the replacement will be implemented in Python (http://www.python.org).
I just recently began learning Python, so this should be fun.  :-)

	My first inclination is to emulate Cons and let Python do all my
parsing for me.  This means that Ptahnames files will actually be Python
scripts.  :-)

	As to why I chose 'Ptah' as the name...

	Ptah is the Egyptian god of creation and building.  In Egyption
mythology, Ptah created everything, from the Universe on down, by
speaking its name.  *grin*  For obvious reasons, I thought this was an
excellent name for a build tool.

	Illmarinen was considered because in the Finnish epic
'Kalevala', he occupied a similar, though much less important role.  He
was known as 'the smith', and made many interesting things.  Illmarinen
is somewhat less pretentious and a little more obscure, but much harder
to type.  :-)

	Anyway, I have some strong ideas about how things should go
together.  If anybody wants to help, or discuss ideas, feel free to
contact me.  If there's enough interest, I'll even create a Ptah mailing
list.  If the software carpentry project gives me any money, I'll share
it with people who've made significant contributions.

Have fun (if at all possible),
-- 
Its name is Public Opinion.  It is held in reverence. It settles everything.
Some think it is the voice of God.  Loyalty to petrified opinion never yet
broke a chain or freed a human soul.     ---Mark Twain
-- Eric Hopper (hopper@omnifarious.mn.org  http://omnifarious.mn.org/~hopper) --

PGP signature