1. While hunting around info-server@ukc, I came across a set of files which
claimed to be a Public Domain Make implementation. I downloaded these, and
set about ANSI-fying them. I think I am about 95% of the way there.
The thing compiles, after I tacked on the file file.c , which impersonates
some of the Unix standard calls. My major problem was converting from
Acorn datestamps - did you know that if ADFS floppies had been used by
Queen Victoria in the last years of her reign, they would have had a valid
datestamp ! - to Unix datestamps, starting in 1970. I seem to have got the
subtraction of the monster numbers nearly right - it can tell between
now and an hour ago ...
Just for frills, and to make it similar to Acorn make, the thing throws out
a file called !make , which it execs before it dies. To make it more frilly,
I added the -o switch which permits the !make file to be called whatever you like.
I then decided to make it RISC OS 'compatible', and discovered that
there is no ?? system variable giving ' this is the path to the directory containing the file being worked on'. Before you scream, this can of course be
extracted from the filename passed as parameter 0 when you double click the
makefile.
I have assigned filetype 400 to makefiles because its a silly
choice.
As you will see when you look in the !boot and !run files , you can either
type the make command into the CLI , or double click the makefile.
I have also added the -@ makefilename parameter which tells make it's
running as a
double-clicked application. Then it has to get the path name of everything
by looking at the makefile path name.
make expects the makefile to be just above the .c and .o directories.
|
------------------------------------
| | | |
makefile c o thing to make
type 400 | |
sources objects
Things you must have in the !make directory: (Usually placed at $ level)
!Sprites
!Runimage
!Boot
!Run
make
(you can delete the rest once you have built make )
dont forget to settype makefile 400 or settype makefile makefile -
you can have more than one makefile with different targets in the same
directory , or use it from the CLI for setting options etc.
DISCLAIMER:
THIS SOFWARE EXISTS ONLY THANKS TO THE GENEROSITY OF ANOTHER FAR MORE
COMPETENT PROGRAMMER WHO PLACED THEIR MAKE INTO THE PUBLIC DOMAIN.
NONE OF THE REALLY DIFFICULT BITS ARE MY WORK, JUST THE EVENINGS OF