*BSD News Article 37950


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!msuinfo!uwm.edu!spool.mu.edu!howland.reston.ans.net!pipex!demon!awfulhak.demon.co.uk!awfulhak.demon.co.uk!brian
From: brian@awfulhak.demon.co.uk (Brian Somers)
Newsgroups: comp.os.386bsd.development
Subject: A replacement to the make program
Date: 15 Nov 1994 00:27:03 GMT
Organization: Coverform Ltd.
Lines: 52
Distribution: world
Message-ID: <3a8v8n$mi@awfulhak.demon.co.uk>
NNTP-Posting-Host: awfulhak.demon.co.uk

I've written a program, it's a C++ program, it's a development tool.

The problem I have is that I don't know how to sell it.....

I don't mean sell in the monetary sense of the word, but rather I don't know how I
can get people to be interested enough to use it.

The only rights I want on the program is that _I_ may always modify it and give it
away to people (including source).

It's a replacement to the make program.  It's called mk.

Here are the reasons that I wrote it:

1) Make does not support building programs that span several directories unless it
invokes itself to do so (or builds all the objects in one directory).

2) Make is not implicitly consistant with the #includes that a module contains.  Not
without lots of gcc -M.... commands every now and then.

3) Make has no idea how to build a development system when others may be building the
same system at the same time.

4) Make cannot spawn multiple compiles without a lot of work going into the build
file.

5) Make does not allow offline modifications to a system without involving an amount
of work that exceeds the time take to write a script to compile everything and run
the script.

6) Make does not ensure (for C++) that modules are linked in the correct order.


Mk is still not finished, but it's functional.  It does the following:

1) It allows a given module to reside in any directory.
2) It ensures that what's included is not out of date when a program compiles.
3/4) It allows simultaneous multi-user multi-process builds.
5) It allows offline re-builds with partial local modifications included.
6) It ensures that object link ordering is correct.

It has bugs (although few...), and could do with a few more features.

_I_ think it's a great idea (that's why I wrote it), and I attempt to impose it on
all of my employers.  I just don't know how to _SELL_ it to people.

Help ?

-- 
Brian <brian@awfulhak.demon.co.uk>

Don't _EVER_ lose your sense of humour....