Mercurial > ~dholland > hg > ag > index.cgi
comparison mk/subdir-rules.sh @ 0:13d2b8934445
Import AnaGram (near-)release tree into Mercurial.
author | David A. Holland |
---|---|
date | Sat, 22 Dec 2007 17:52:45 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:13d2b8934445 |
---|---|
1 #!/bin/sh | |
2 # subdir-rules.sh - generate make rules for subdir.mk | |
3 # usage: subdir-rules.sh "targets" "subdirs" "moresubdirs" > rules.mk | |
4 | |
5 if [ $# != 3 ]; then | |
6 echo "$0: usage: $0 'targets' 'subdirs' 'moresubdirs'" 1>&2 | |
7 exit 1 | |
8 fi | |
9 | |
10 TARGETS="$1" | |
11 SUBDIRS="$2" | |
12 MORESUBDIRS="$3" | |
13 | |
14 # Remove anything from MORESUBDIRS that's already in DIRS | |
15 MORESUBDIRS=`(echo 1 $SUBDIRS; echo 2 $MORESUBDIRS) | awk ' | |
16 /^1 / { for (i=2;i<=NF;i++) seen[$i] = 1; } | |
17 /^2 / { for (i=2;i<=NF;i++) if (!seen[$i]) print $i; } | |
18 '` | |
19 | |
20 for T in $TARGETS; do | |
21 if [ "$T" != rules -a "$T" != distclean ]; then | |
22 echo "${T}: ${T}-subdirs" | |
23 fi | |
24 done | |
25 | |
26 for T in $TARGETS; do | |
27 echo "${T}-subdirs:" | |
28 | |
29 if [ "$T" = rules -o "$T" = distclean ]; then | |
30 DIRS="$SUBDIRS $MORESUBDIRS" | |
31 else | |
32 DIRS="$SUBDIRS" | |
33 fi | |
34 | |
35 for D in $DIRS; do | |
36 echo $D | awk '{ | |
37 printf "\t@echo \"%s ===> $(_SUBDIR_)%s\"\n", t, $1; | |
38 printf "\t@cd %s && $(MAKE) %s _SUBDIR_=$(_SUBDIR_)%s/\n", $1,t,$1; | |
39 }' "t=$T" | |
40 done | |
41 done | |
42 | |
43 for T in $TARGETS; do | |
44 echo ".PHONY: $T ${T}-subdirs" | |
45 done | |
46 | |
47 echo 'distclean-here:' | |
48 for D in $SUBDIRS $MORESUBDIRS; do | |
49 echo $D | awk ' | |
50 { | |
51 printf "\t@echo \" [RMDIR] %s\"\n", $1; | |
52 printf "\t@-rm -f %s/Makefile %s/rules.mk %s/depend.mk\n",$1,$1,$1; | |
53 printf "\t@-rmdir %s\n", $1; | |
54 } | |
55 ' | |
56 done |