dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) (01/06/89)
Read the documentation.... Just to wet your interest, here is a
sample makefile: (but remember, this is alpha ... I am expecting bug reports
and everything isn't quite done yet)
c:blah : ram:*.o
ln %(right) -lc32 -o c:blah
ram:*.o : *.c *.h
cc %(*.c) -o %(left)
-Matt
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create:
# dmake.uue
# dmake.doc
# mf.test
# mf2.test
# DMakefile
# This archive created: Thu Jan 5 15:47:45 1989
export PATH; PATH=/bin:/usr/bin:$PATH
echo shar: "extracting 'dmake.uue'" '(29726 characters)'
if test -f 'dmake.uue'
then
echo shar: "will not over-write existing file 'dmake.uue'"
else
cat << \!Funky!Stuff! > 'dmake.uue'
begin 644 dmake
M```#\P`````````#``````````(``!#<```#.`````$```/I```0W$[Z,,A.
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
M``EG!%**8.Q*$F<&($I2BD(08+P@;0`,,(1%].74YU*$1%4"!,25-4*0!D97`Z("4P,FQX("4R;&0@*",E,FQD*2@E,#AL
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
M"68&4ZT`#JT`#"!M``R1[0`((FW__#-(`!(@;?_\,"@`$DC`4H`O`$ZZ
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
M``0````"7WAE>&ET``````)^`````U]38V%N1FEL90```````J(````$7T-O
M;6)I;F52969#;G1S````!*@````$7T9I;F1"96=I;E!O:6YT````!EH````$
M7T5X96-U=&5$97!,:7-T````!Q0````&7T5X96-U=&5#;61#;VQL96-T:6]N
M```````+Y@````1?17AE8W5T94-M9$QI<W0````,<@````-?27-7:6QD0V%R
M9`````SR````!5]$:7)E8W1O<GE7:6QD4V-A;@`````-'`````5?075T;T5X
M<&%N9%)I9VAT4VED90``$*(````$7T5X<&%N9%)I9VAT4VED90``$/(````$
M7U9I<G1U;T5X<&%N9```````$50````%7T-R96%T941E<&5N9&%N8VEE<P``
M`!-:````!%]-86ME3VYE1&5P96YD`````!8H`````U]!9&1#;VQL96-T````
M%J8````"7V=E=&QI;F4``!;0`````U]P87)S96QI;F4`````%UP````$7U!R
M:6YT1&5P3&ES=```````%^@````"7V1O<&5N`````!C2`````E]D;F5X=```
M```97`````)?9&-L;W-E````&:P````"7VES9&ER`````!GN`````U]F<F5E
M7V5X<&%N9```&B@````"7V5X<&%N9````!I:`````U]/=71$871E9```````
M'KX````#7TUA8W)O07-S:6=N```@)@````1?36%C<F]297!L86-E```````A
M9`````5?4F5S971687)#;VQL96-T;W(`````):0````$7T%D9%9A<D-O;&QE
M8W1O<@``)=X````$7T5X96-U=&5?0V]M;6%N9```)NX````"7W=I;&1C;7``
M`"?D`````E]B;6]V```````I'`````)?8GIE<F\`````*A0````"7V)S970`
M`````"H8`````E]'971(96%D```JG@````)?1V5T4W5C8P``*IX````"7T=E
M=%1A:6P``"JL`````E]'9710<F5D```JO@````-?4F5M2&5A9$]F9@```"K4
M`````U]296U486EL3V9F````*O0````#7T=E=$AE861/9F8````K"@````-?
M1V5T5&%I;$]F9@```"L<`````U]'9713=6-C3V9F````*S(````#7T=E=%!R
M961/9F8````K1@````)?<W1R8W!Y````*UX````"7W-T<FQE;@```"MN````
M`E]F9V5T<P`````K@`````)?86=E=&,`````*]H````"7V=E=&,``````"P<
M`````E]?9FEL;``````L3`````)?9F]P96X`````+1X````"7V9R96]P96X`
M`"U(`````E]P97)R;W(````MQ@````)?9G!R:6YT9@``+B8````"7W-T<F-M
M<````"Y>`````E]S=')N8VUP```N9`````)?8W)E870`````+HX````"7V]P
M96X``````"ZH`````E]R96%D```````O_@````)?<'5T<P``````,(P````"
M+F)E9VEN`````##*`````E]G971A-``````Q/`````)?7VUA:6X`````,40`
M```#7U]C;&E?<&%R<V4````R@`````)?<W1R8V%T````-%8````"7W-T<FYC
M870``#1<`````E]S=')N8W!Y```T@`````-?7W=B7W!A<G-E`````#5H````
M`E]P<FEN=&8````V'`````)?9F]R;6%T````-KX````"+F1I=G,``````#HB
M`````BYM;V1S```````Z2@````(N;6]D=0``````.F0````"+F1I=G4`````
M`#IP`````E]P=71C:&%R```ZR@````)?87!U=&,`````.N`````"7W!U=&,`
M`````#LF`````E]F8VQO<V4````[D`````)?9FQS:%\`````/!8````#7VYE
M=W-T<F5A;0`````]"`````)?9V5T8G5F9@``/4`````"7VQM86QL;V,``#W2
M`````E]M86QL;V,````^$@````)?9G)E90``````/B(````"7VES871T>0``
M`#YN`````E]U;FQI;FL````^T`````)?=W)I=&4`````/O0````#7T-H:U]!
M8F]R=``````_>`````)?7V%B;W)T````/Z@````"7V5X:70``````#_2````
M`E]?97AI=``````_\`````)?8VQO<V4`````008````"+FUU;'4``````$%<
M`````E]?0VQO<V4```!!@`````-?0W5R<F5N=$1I<@```$&,`````U]?0W5R
M<F5N=$1I<@``09`````#7U]$96QE=&5&:6QE``!!G`````)?1'5P3&]C:P``
M0:@````"7T5X86UI;F4``$&T`````U]?17AA;6EN90``````0;@````"7T5X
M96-U=&4``$'&`````E]%>$YE>'0```!!U`````)?7TEN<'5T````0>(````"
M7U]);T5R<@```$'J````!%]?27-);G1E<F%C=&EV90```$'R`````E],;V-K
M``````!!_@````)?7TQO8VL`````0@(````"7U]/<&5N`````$(0`````E]?
M3W5T<'5T``!"'@````)?7U)E860`````0B8````"7U]3965K`````$(T````
M`E]5;DQO8VL```!"0@````)?7U5N3&]C:P``0D8````"7U]7<FET90```$)2
M`````E]!9&1486EL``!"8`````)?06QE<G0`````0FX````$7T-L;W-E3&EB
M<F%R>0``````0H8````$7U]#;&]S94QI8G)A<GD`````0HH````#7T%L;&]C
M365M``````!"E@````-?7T%L;&]C365M`````$*:`````E]!9&1(96%D``!"
MJ`````-?7T9I;F1487-K`````$*V`````E]?1F]R8FED``!"P@````)?1G)E
M94UE;0``0LH````#7U]&<F5E365M``````!"S@````)?7T=E=$US9P``0MX`
M```"7TYE=TQI<W0``$+J````!%]?3W!E;DQI8G)A<GD``````$+\`````E]2
M96U(96%D``!##`````)?4F5M;W9E````0Q@````#7U]297!L>4US9P````!#
M)`````-?7U-E=%-I9VYA;````$,P`````U]?5V%I=%!O<G0`````0SX````$
M7T9I;F14;V]L5'EP90``````0TH````$7T9R965$:7-K3V)J96-T````0U@`
M```$7T=E=$1I<VM/8FIE8W0`````0V0````"7U](,%]E;F0``$-P````````
M`_(```/J````N@````0``````````````!``````````#'(`````````<BL`
M``````)W```````#`7<K``````,"80``````"0%A*P`````)`G@```````4!
M>"L`````!0(`````````````-*(``#2K```TN@``-,H``#3>```TZ@``-0(`
M`#46```U*P``-3\``#50````"S`Q,C,T-38W.#EA8F-D968````@("`@("`@
M("`P,#`P,"`@("`@("`@("`@("`@("`@()!`0$!`0$!`0$!`0$!`0$`,#`P,
M#`P,#`P,0$!`0$!`0`D)"0D)"0$!`0$!`0$!`0$!`0$!`0$!`0$!0$!`0$!`
M"@H*"@H*`@("`@("`@("`@("`@("`@("`@)`0$!`(``````````````````!
M``````$``````````````````````0$````!``````````````````````$"
M`````0``````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M```````````````````````````````4`````````````````^P````$````
M`0`````````(````#````!0````+`````````&````!D````:````&P```!P
M````=````'@```!\````@````(0```"(`````````_`````"7U](,5]O<F<`
M`````````E]-86-,:7-T``````````)?0V]L3&ES=`````P````#7W-Y<U]E
M<G)L:7-T````8`````-?<WES7VYE<G(```````",`````E]C='!?````````
MH@````)?0V)U9F9S`````20````"7U]N=6UD978```+<````!%]?9&5T86-H
M7VYA;64```````+>````!%]?9&5T86-H7V-U<F1I<@````+B`````E]?2#%?
M96YD```"Z`````)?7T@R7V]R9P```N@````"7T1E<$QI<W0```KP`````E]6
M97)B;W-E```*_`````)?3&EN94YO````"OX````#7T9O<F-E06QL```````+
M``````-?3&ES=$]N;'D```````L"`````E]/<F1E<@`````+!`````-?4V%V
M94QO8VL```````L&`````U]-86ME1FEL90``````"PH````"7TQI;F5"=68`
M``N*`````E]E<G)N;P`````,B@````)?7V1E=G1A8@``#(X````"7U]S879S
M<`````R2`````E]3>7-"87-E```,E@````)?1$]30F%S90``#)H````#7U]S
M=&MB87-E```````,G@````1?16YA8FQE7T%B;W)T```````,H@````-?5T)E
M;F-H37-G``````RF`````E]?87)G=@`````,J@````)?7V%R9V,`````#*X`
M```#7U]A<F=?;&5N```````,L@````-?7V%R9U]L:6X```````RV`````U])
M8V]N0F%S90``````#+H````"7V-L<U\```````R^`````E]?8VQN```````,
MP@````-?7W1R87!A9&1R``````S&`````U]?;VQD=')A<```````#,H````$
M7TUA=&A4<F%N<T)A<V4`````#,X````#7TUA=&A"87-E```````,T@````5?
M36%T:$EE965$;W5B0F%S0F%S90``#-8````&7TUA=&A)965E1&]U8E1R86YS
M0F%S90`````,V@````)?7T@R7V5N9```#.`````````#\@```^L````!```#
!\F%S
`
end
!Funky!Stuff!
fi # end of overwriting check
echo shar: "extracting 'dmake.doc'" '(6781 characters)'
if test -f 'dmake.doc'
then
echo shar: "will not over-write existing file 'dmake.doc'"
else
cat << \!Funky!Stuff! > 'dmake.doc'
DMAKE.DOC
ALPHA RELEASE V1.00 5-Jan-1988
*ALPHA* *ALPHA* *ALPHA*
NOTE!! This is an alpha version. I have yet to add all the features
I will eventually want (like \ line continuation). In fact, that's
the whole point of saying 'alpha' above ... only people interesting
in exploring and testing the radical features of DMake should be
using this release.
You MUST be familar with 'make' to understand these instructions.
The default file is 'DMakefile'. Options are:
-a force a time comparisons to fail
-f filename use this instead of DMakefile
-n don't actually execute the lines
-v (debugging)
RADICAL FEATURES
We are all familar with the UNIX make utility. We all hate it.
This program is the beginnings of my solution to the problem.
(1) Multiple dependancies on the left:
ram:a.o ram:b.o ram:c.o : a.c b.c c.c
cc %(right) -o %(left)
(2) Wildcards with virtual reverse mapping (I just made that word
up). In the example below, a directory search is used to
resolve the *.c wildcard in the line "ram:*.o : *.c". The left
side is then replaced with the resolved list changing the order
according to the wildcard specification ( *.c -> ram:*.o ).
NOTE that the two wildcard specifications have to contain the
same wildcards in the same order. NO directory search is made
for the objects ... the names are generated from the source.
Finally, note the line 'ram:*.o : *.asm'... note that this
combined with 'ram:*.o : *.c' specifies a joinin of the two
specs ... the 'ram:*.o' spec in the linker line will contain
ALL the objects.
$(EXE) : ram:symbols.m ram:*.o
ln +Q %(ram:*.o) -o $(EXE)
ram:*.o : *.c
cc +Iram:symbols.m %(right) -o %(left)
ram:*.o : *.asm
as %(right) -o %(left)
ram:symbols.m : include:symbols.m
copy %(right) %(left)
(3) $ and % variables. $(SYMBOL) is the standard way to specify
a symbol name. %(symbol) is used to macro-insert wildcard
symbols that appear on the right. Two special %
symbols exist: %(left) contains the stuff on the left and
%(right) contains the stuff on the right.
Note the difference between these two lines:
all: ram:*.o
ln %(ram:*.o) -o c:blah
ram:*.o : *.c
cc %(*.c) -o %(left)
The difference is that the symbol in the linker line contains
ALL the objects while the symbol in the compiler line contains
only the CURRENT .c file being compiled. The reason is explained
below, but it ought to be obvious.
Note that only variables on the right of the ':' may be
specified via their name in a %() macro. You can refer to
the left side with %(left), or the entire right side with
%(right).
(4) Another form that might be useful is this:
ram:*.o : *.c *.h
cc %(*.c) -o %(left)
Carefully now: Each .O file is dependant on its .C file.
Each .O file depends on ALL OF THE .H FILES.
SPECIFICATION OF DEPENDANCIES
The specification of dependancies might seem a bit confusing to
you. Lets take a general example:
a b c d : r s t u
The rule is as follows: UNTIL one side is exhausted, one item on
the left is dependant on one item on the right. That is, a : r,
b : s, c : t etc....
If there are EXTRA arguments on the right, each argument is applied
to ALL THE ARGUMENTS ON THE LEFT. If I had a 'v' above it would be
equivalent to a : v, b : v, c : v, d : v.
EXTRA arguments on the left are disalloweds except for two cases:
blah : - blah depends on nothing
a b c d e : x - a : x, b : x, c : x , d : x, etc....
*.c : *.h - WRONG THIS DOES NOT SPECIFY ALL THE
.C FILES DEPENDANT ON THE .H FILES!!!
*.o : *.c *.h - This does, as well as saying that each
object depends on its associated .C file
EXECUTION ORDER & VARIABLES
Whenever possible, a depth first execution order will be taken:
all: ram:symbols.m $(OBJS)
ln "%(OBJS)" -o c:blah
$(OBJS): *.c
cc +Iram:symbols.m %(right) -o %(left)
ram:symbols.m : include:symbols.m
copy %(right) %(left)
Here, the symbols are guarenteed to be copied before the objects
are compiled. Variables work somewhat like the normal make. You
can create variables with '=':
SRCS = a.c b.c c.c
OBJS = $(SRCS:"*.c":"ram:*.o") (i.e. ram:a.o, ram:b.o ...)
When used in the Makefile, use $(SYMBOL) to get an exact replacement,
%(SYMBOL) to get an indirect replacement. That is,
OBJS = ram:*.o
all: $(OBJS)
ln %(OBJS) ...
Here, %(OBJS) finds "ram:*.o" then re-applies it to %, giving you
the object list.
The other little item you just saw is global name replacement on
symbol inclusion:
$(SYMNAME:"oldwild":"newwild") -if the symbol is a list of
files and not a wildcard
%(SYMNAME:"oldwild":"newwild") -if the symbol is a wildcard
on the righthand side of
the dependancy.
Causes the symbol to be parsed (space delimits) and each filename
rung through the grinder. Each filename is matched with the left
wildcard and then modified according to the right wildcard. Here
are two common DMakefiles:
SRCS = a.c b.c c.c d.c e.c
OBJS = $(SRCS:"*.c":"ram:*.o")
all: $(OBJS)
ln $(OBJS) -o c:blah
$(OBJS) : $(SRCS)
cc %(right) -o %(left)
---
SRCS = *.c
OBJS = ram:*.o
# note, in the line below you must specify $(SRCS) on the right
# hand side of you want %(SRCS) to expand properly
all: $(OBJS) $(SRCS)
ln %(OBJS) -o c:blah
Echo "%(SRCS)"
$(OBJS) : $(SRCS)
cc %(right) -o %(left)
arc: $(SRCS) c:blah
-delete ram:x.arc
arc a ram:x %(right)
ALPHA 'TO-DO'
There are probably lots of bugs. The bigest one now is the lack
of error detection... it won't stop if it comes across an error.
You *can* ^C dmake though ... no problem.
DMake is currently extremely slow ... extremely extremely slow.
I am not releasing source yet (cause it's a mess). You just
wouldn't BELIEVE what I had to go through!
DMake currently uses Execute() to run commands. Error codes are
ignored. However, you *can* 'cd' ... this is handled internally.
The original directory can be returned to via 'cd' with no argument.
Since Execute() is used, command lines that are too long get
chopped. Eventually there will be no limit (for non BCPL program).
But, since 'cd' is internal, you can sometimes shorten the link
line. In the example below we use the wildcard modification
feature to modify ram:*.o to just *.o in the link line after having
CD'd to ram:.
OBJS = ram:*.o
SRCS = *.c
$(EXE): $(OBJS)
cd ram:
ln %(right:"ram:*":"*") -lc32 -o $(EXE)
cd
$(OBJS): $(SRCS)
cc %(right) -o %(left)
!Funky!Stuff!
fi # end of overwriting check
echo shar: "extracting 'mf.test'" '(225 characters)'
if test -f 'mf.test'
then
echo shar: "will not over-write existing file 'mf.test'"
else
cat << \!Funky!Stuff! > 'mf.test'
OBJS = ram:a.o ram:b.o ram:c.o
SRCS = $(OBJS:"ram:*.o":"*.c")
all: $(OBJS)
Echo "$(SRCS) $(OBJS)"
cd ram:
dir
Echo "$(OBJS:"ram:*":"*")"
cd
dir
$(OBJS) : $(SRCS)
Echo "cc %(right) -o %(left)"
!Funky!Stuff!
fi # end of overwriting check
echo shar: "extracting 'mf2.test'" '(432 characters)'
if test -f 'mf2.test'
then
echo shar: "will not over-write existing file 'mf2.test'"
else
cat << \!Funky!Stuff! > 'mf2.test'
SRCS = *.c
OBJS = ram:*.o
# note, in the line below you must specify $(SRCS) on the right
# hand side of you want %(SRCS) to expand properly. Apart from
# that the specification of $(SRCS) is redundant
all: $(OBJS) $(SRCS)
Echo "ln %(OBJS) -o c:blah"
Echo "sources are: %(SRCS)"
$(OBJS) : $(SRCS)
Echo "cc %(right) -o %(left)"
arc: $(SRCS) c:blah
Echo "Delete ram:x.arc"
Echo "arc a ram:x %(SRCS) c:blah"
!Funky!Stuff!
fi # end of overwriting check
echo shar: "extracting 'DMakefile'" '(255 characters)'
if test -f 'DMakefile'
then
echo shar: "will not over-write existing file 'DMakefile'"
else
cat << \!Funky!Stuff! > 'DMakefile'
EXE = srcc:dmake
CFLAGS = +L +Iram:symbols.m
all: ram:symbols.m $(EXE)
$(EXE) : ram:*.o
ln -W +Q %(right) -lsup32 -lc32 -o $(EXE)
ram:*.o : *.c *.h
cc $(CFLAGS) %(*.c) -o %(left)
ram:symbols.m : include:symbols.m
copy %(right) %(left)
!Funky!Stuff!
fi # end of overwriting check
exit 0
# End of shell archive