Skip to content

Commit

Permalink
make: make/list is generic; mv specifics to make/bootstrap
Browse files Browse the repository at this point in the history
  • Loading branch information
slitvinov committed Mar 13, 2021
1 parent 0ae3ad6 commit bf7e63a
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 20 deletions.
8 changes: 7 additions & 1 deletion make/bootstrap
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,13 @@ trap 'rm -f $t; exit 2' 1 2 3 14 15
../make/obj > ../make/obj.mk &&
../make/hdr > ../make/hdr.mk &&
../make/dir > ../make/dir.mk &&
../make/list > $t &&
find . \
-type f \
-name '*.c' -or \
-name '*.cpp' -or \
-name '*.h' -or \
-name '*.inc' -or \
-name '*.ipp' | grep -v '^\.\/test\/' | ../make/list > $t &&
../make/dep $t |
awk '{printf "$(WRK)/%s.o: $(SRC)/%s\n", $1, $2}' > ../make/dep.mk &&
../make/nmake Makefile_legacy > Makefile_nmake
Expand Down
2 changes: 1 addition & 1 deletion make/dep
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/awk -f
#!/bin/awk -f

{
if (NF != 2) {
Expand Down
33 changes: 15 additions & 18 deletions make/list
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
#!/bin/sh
#!/bin/awk -f

find . -name '*.cpp' -or -name '*.c' -or -name '*.h' -or -name '*.ipp' -or -name '*.inc' | awk -v me=list '
{ sub(/^\.\//, "") }
/^test\// { next }
{
sub(/^\.\//, "")
f = $0
line = 0
while (getline < f) {
line++
if (sub(/^[ \t]*#[ \t]*include[ \t]*"/, "")) {
sub(/".*/, "")
if (filep($0))
print f, $0
else if (filep($0 = dir(f) "/" $0))
print f, $0
else {
printf("%s:%d: error: no such file '\''%s'\''\n", f, line, $0) | "cat >&2"
exit(1)
}
}
while (getline < f > 0) {
line++
if (sub(/^[ \t]*#[ \t]*include[ \t]*"/, "")) {
sub(/".*/, "")
if (filep($0))
print f, $0
else if (filep($0 = dir(f) "/" $0))
print f, $0
else {
printf("%s:%d: error: no such file '%s'\n", f, line, $0) | "cat >&2"
exit(1)
}
}
}
}

Expand All @@ -31,4 +29,3 @@ function filep(path, aux, rc) {
function dir(path) {
return sub(/\/[^/]*$/, "", path) ? path : "."
}
'

0 comments on commit bf7e63a

Please sign in to comment.