mkjambase now can process '. file' includes; default monolithic Jambase separated...
[k8jam.git] / defaults / Jambase.boiler
blobb8e0674f259691141dae87ab28fece3d214134de
2 # 'boilerplate' code
4 rule -Generate-Boiler- {
5   local _f = $(FORCE) ;
6   NotFile gen-boiler ;
7   Always gen-boiler ;
8   if $(_f) {
9     _f = "_-boiler-target-force-_" ;
10   } else {
11     _f = "_-boiler-target-noforce-_" ;
12   }
13   NotFile $(_f) ;
14   NoCare $(_f) ;
15   AGenBoiler gen-boiler $(_f) ;
17 actions quietly AGenBoiler {
19 fregen="$(<[2])"
20 if [ "z$fregen" != "z_-boiler-target-force-_" ]; then
21   fregen="ona"
22 else
23   fregen="tan"
26 for dname in `find . -maxdepth 8 -type d -name "[^._]*"`; do
27   fname="$dname/Jamfile"
28   xskip="ona"
29   if [ "$fregen" == "ona" ]; then
30     if [ -e "${fname}" ]; then
31       xskip="tan"
32     fi
33   fi
34   if [ "$xskip" = "tan" ]; then
35     echo "SKIP: $fname"
36   else
37     echo "GENF: $fname"
38     dpp=`echo "$dname" | sed 's/^\.\//TOP /;' | sed 's/\// /g;'`
39     echo "SubDir $dpp ;" >"$fname"
40     echo "" >>"$fname"
41     echo "" >>"$fname"
42     if [ "$dname" != "./src" ]; then
43       dpp=`basename "$dname"`
44       fc=`echo "$dpp" | cut -c1-3`
45       if [ "z$fc" != "zlib" ]; then dpp="lib${dpp}"; fi
46       echo "Library ${dpp}.a :" >>"$fname"
47     else
48       echo "Main XXXMAIN :" >>"$fname"
49     fi
50     llist=`find "$dname" -mindepth 1 -maxdepth 1 -type f -name "*.c"`
51     for lname in $llist; do
52       dpp=`basename "$lname"`
53       echo "  $dpp" >>"$fname"
54     done
55     llist=`find "$dname" -mindepth 1 -maxdepth 1 -type f -name "*.cpp"`
56     for lname in $llist; do
57       dpp=`basename "$lname"`
58       echo "  $dpp" >>"$fname"
59     done
60     echo ";" >>"$fname"
61     llist=`find "$dname" -mindepth 1 -maxdepth 8 -type d -name "[^._]*"`
62     if [ "z$llist" != "z" ]; then
63       if [ "$dname" = "./src" ]; then
64         llibs=""
65         for lname in $llist; do
66           dpp=`basename "$lname"`
67           if [ "z$fc" != "zlib" ]; then dpp="lib${dpp}"; fi
68           llibs="${llibs} ${dpp}.a"
69         done
70         echo "LinkLibraries XXXMAIN :${llibs} ;" >>"$fname"
71       fi
72       echo "" >>"$fname"
73       echo "" >>"$fname"
74       for lname in $llist; do
75         dpp=`echo "$lname" | sed 's/^\.\//TOP /;' | sed 's/\// /g;'`
76         echo "SubInclude $dpp ;" >>"$fname"
77       done
78     fi
79   fi
80 done
83 fname="./Jamfile"
84 xskip="ona"
85 if [ "$fregen" == "ona" ]; then
86   if [ -e "$fname" ]; then
87     xskip="tan"
88   fi
90 if [ "$xskip" = "tan" ]; then
91   echo "SKIP: $fname"
92 else
93   echo "GENF: $fname"
94   echo "SubDir TOP ;" >"$fname"
95   echo "" >>"$fname"
96   echo "" >>"$fname"
97   for dname in `find . -maxdepth 8 -type d -name "[^._]*"`; do
98     dpp=`echo "$dname" | sed 's/^\.\//TOP /;' | sed 's/\// /g;'`
99     echo "SubInclude $dpp ;" >>"$fname"
100   done
103 fname="./Jamrules"
104 xskip="ona"
105 if [ "$fregen" == "ona" ]; then
106   if [ -e "$fname" ]; then
107     xskip="tan"
108   fi
110 if [ "$xskip" = "tan" ]; then
111   echo "SKIP: $fname"
112 else
113   echo "GENF: $fname"
114   cat >"$fname" <<JRBOILER
115 set-profile ;
116 set-target-locations ;
117 JRBOILER
121 -Generate-Boiler- ;