My favorites | Sign in
Repository Home Source
Checkout   Browse   Changes   Clones    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/dis/sh
uos = $*
tos = $*
#coneed = d

while {! no $uos} {
uo = ${hd $uos}
uos = ${tl $uos}
if {~ $coneed '*d*'} {echo coneed uos: '('^$uo^')' $uos}
if {! ftest -r $uo} {
dodep (c cc c o) $uo >/dev/null
credo $uo >/dev/null
}
deps = `{os -T nm $uo | grep U | grep -v __ | sed 's,[ ]*U[ ]+_,,'}
apply {
dep = $1
if {~ $coneed '*d*'} {echo coneed dep: $dep}
tcs = `{grep -l '^[^ ]+.*'^$dep^'\(' $srcdir^*.c}
apply {
tc = $1
to = `{echo $tc | sed 's,^.*/,,;s,\.c$,.o,'}
if {! ftest -r $to} {
dodep (c cc c o) $to >/dev/null
credo $to >/dev/null
}
if {and {os -T nm $to | grep T | grep $dep >/dev/null} {! ~ $tos '*'^$to^'*'}} {
uos = $uos $to
echo $to
if {~ $coneed '*d*'} {echo coneed tos: $tos '('^$to^')'}
tos = $tos $to
}
} $tcs
} $deps
}

exit

Change log

87cda9d0c3b4 by Jason Catena <jason.catena> on Jun 14, 2011   Diff
(c cc c o) and (c cc o exe) handle
separate source (and object directories.
Set srcdir to relative path before
creating env files and dodep in object
dir.
Go to: 
Project members, sign in to write a code review

Older revisions

c663b7cda997 by Jason Catena <jason.catena> on Jun 10, 2011   Diff
Coneed progressively compiles objects
and adds dependencies as long as it
can resolve symbols.
08ef08a044ea by Jason Catena <jason.catena> on Jun 10, 2011   Diff
Evaluate settings in *.env, to allow
shell-variable substitutions.  Rewrite
map with <{}. Deduce tries to figure
out how to compile an archive or
executable.  Coneed compiles c to o
...
All revisions of this file

File info

Size: 815 bytes, 36 lines
Powered by Google Project Hosting