5 # @(#)pp.probe (AT&T Research) 2009-02-02
9 # NOTE: C.probe must be included or .'d here
15 for f in $ppdef $ppkey $ppsym
16 do test -f $f || { echo "$0: $f: not found" >&4; exit 1 ;}
19 sed -e "/^#/d" -e "s/[ ].*//" < $ppdef > all.pp
34 for i in stdinclude usrinclude
38 *//*) v=`echo $v | sed 's,///*,/,g'` ;;
40 if (test . -ef "`pwd`")
86 test $x -ef $p && x=$p
104 do test $d -ef $j && continue 2
125 id="::IDENT::`date`::IDENT::"
126 echo '#assert test(ok)
130 #endif' > assert.$src
131 echo '#ifdef __BASE_FILE__
135 #endif' > basefile.$src
136 cat > catlit1.i <<'!'
140 cat > catlit2.i <<'!'
144 echo '#define g(a,b) a ## b
147 extern int c(int);' > compat.$src
149 echo "#defincl <x.h>" > defincl.$src
150 echo 'int a$b;' > dollar.$src
151 echo "#eject" > eject.$src
158 #endif" > elseif.$src
159 echo "#define _CAT(a,b,c) a##b##c
161 #define hdr _CAT(<,hdra,.h>)
162 #include hdr" > hdra.$src
163 echo "#define _XAT(a,b,c) a##b##c
164 #define _CAT(a,b,c) _XAT(a,b,c)
166 #define hdr _CAT(<,hdra,.h>)
167 #include hdr" > hdrx.$src
168 echo "int f(){return 0;}" > hdrx.h
169 echo "#ident \"$id\"" > ident.$src
170 echo "#import \"import.h\"" > import.$src
171 echo "int aaa;" > import.h
172 echo "#include <inc_next.h>" > inc_next.$src
174 echo "#include_next <inc_next.h>" > inc0/inc_next.h
175 echo 'char s[] = "INCLUDE_NEXT";' > inc1/inc_next.h
176 echo '# 1 "linefile.i"
180 int i;' > linefile1.i
181 echo '# 1 "linefile.i"
185 int i;' > linefile2.i
186 echo "int i = 0;" > lineid1.i
188 int i = 0;' > lineid2.i
190 int i = 0;' > lineid3.$src
191 echo "#include <stdio.h>" > linetype.$src
192 echo '#include <sys/types.h>
195 return sizeof(LONGLONG) != 8;
197 echo '#include "once.h"
198 #include "once.h"' > once.$src
204 echo "extern int a,b;int f(){return a + = b;}" > opspace.$src
205 echo "int f(){return(0);} // ((" > pluscom.$src
206 echo "class x {int n;} m;" > plusplus.$src
210 int x = 1;' > plusspl.$src
211 echo "int stdc_default_value = __STDC__ ;" > stdc.$src
212 echo 'char xxx[] = "abc
214 echo '#define g(a,b) a\
218 char* g(x,y);' > splice.$src
223 echo '#define g(a,b) a/**/b
224 int g(x,y)=1;' > trans.$src
226 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 65
227 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 64
228 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 63
229 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 62
230 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 61
231 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 60
232 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 59
233 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 58
234 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 57
235 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 56
236 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 55
237 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 54
238 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 53
239 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 52
240 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 51
241 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 50
242 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 49
243 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 48
244 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 47
245 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 46
246 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 45
247 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 44
248 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 43
249 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 42
250 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 41
251 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 40
252 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 39
253 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 38
254 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 37
255 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 36
256 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 35
257 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 34
258 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 33
259 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 32
260 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 31
261 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 30
262 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxxx 29
263 #define xxxxxxxxxxxxxxxxxxxxxxxxxxxx 28
264 #define xxxxxxxxxxxxxxxxxxxxxxxxxxx 27
265 #define xxxxxxxxxxxxxxxxxxxxxxxxxx 26
266 #define xxxxxxxxxxxxxxxxxxxxxxxxx 25
267 #define xxxxxxxxxxxxxxxxxxxxxxxx 24
268 #define xxxxxxxxxxxxxxxxxxxxxxx 23
269 #define xxxxxxxxxxxxxxxxxxxxxx 22
270 #define xxxxxxxxxxxxxxxxxxxxx 21
271 #define xxxxxxxxxxxxxxxxxxxx 20
272 #define xxxxxxxxxxxxxxxxxxx 19
273 #define xxxxxxxxxxxxxxxxxx 18
274 #define xxxxxxxxxxxxxxxxx 17
275 #define xxxxxxxxxxxxxxxx 16
276 #define xxxxxxxxxxxxxxx 15
277 #define xxxxxxxxxxxxxx 14
278 #define xxxxxxxxxxxxx 13
279 #define xxxxxxxxxxxx 12
280 #define xxxxxxxxxxx 11
281 #define xxxxxxxxxx 10
291 #if xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx != m
292 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
293 #endif' > truncate.$src
295 char* foo = "a
\x1az";
332 $cc -c assert.$src && assert=1
334 $cc -c basefile.$src && basefile=__BASE_FILE__
336 if $cc -E defincl.$src
337 then case "`$cc -E defincl.$src | grep -c 'defincl'`" in
342 if $cc -c catlit1.i 2>e
343 then if $cc -c catlit2.i 2>f
344 then if test `wc -c < f` -gt `wc -c < e`
351 $cc -c dollar.$src && dollar=1
353 $cc -c elseif.$src && elseif=1
355 if $cc -I. -c hdra.$src
356 then headerexpandall=1
357 elif $cc -I. -c hdrx.$src
362 then case "`$cc -E eject.$src | grep -c 'eject'`" in
367 $cc -S ident.$src && grep "$id" ident.s && ident=1
369 { $cc -E import.$src | grep aaa ;} && import=1
371 { $cc -E -Iinc0 -Iinc1 inc_next.$src | grep INCLUDE_NEXT ;} && include_next=1
373 if $cc -c linefile1.i
374 then $cc -c linefile2.i
381 if $cc -c lineid1.i 2>b
382 then $cc -c lineid2.i 2>e
384 else $cc -c lineid3.c 2>e
388 0) case `wc -l < b` in
397 if $cc -E linetype.$src | grep '^[ ]*#[ ]*[0123456789]*[ ]*".*"[ ]*[12]' > linetype
398 then if grep '^[ ]*#[ ]*[0123456789]*[ ]*".*"[ ]*[12][ ][ ]*3' linetype
404 { $cc -E once.$src | grep allmultiple ;} && allmultiple=1
406 $cc -c plusplus.$src && plusplus=1
408 $cc -c span.$src && stringspan=1
410 $cc -c splice.$src && splicecat=1
412 $cc -c splicesp.$src && splicespace=1
415 while read keyword type alternate comment
425 do for suf in '' _ __
430 case ,,$alternate, in
443 $cc -c key.$src >/dev/null 2>&1 || reserved="$reserved $key$type"
450 $cc -c opspace.$src && opspace=1
453 "") $cc -c compat.$src && compatibility=
454 $cc -c pluscom.$src && pluscom=1
457 case $plusplus$pluscom in
458 ?*) $cc -c plusspl.$src || plussplice=1 ;;
463 echo '#include "ptrone.h"
465 int main () { return gt(2,1) + gt(2.0,1.0); }' > ptr.$src
466 echo '#include "ptrone.h"
467 template<class T> int gt(T a, T b) { return a > b; }' > ptrdef.$src
468 echo 'template<class T> int gt(T a, T b);' > ptrdef.h
469 echo '/* empty */' > ptrone.h
470 if $cc -E ptr.$src > x.i && $cc x.i
471 then echo '#ifndef _PTRONE_H
475 if $cc -E ptr.$src > x.i && echo "#define _PTRONE_H" >> x.i && $cc x.i
484 stdc=`$cc -E stdc.$src | sed -e '/stdc_default_value/!d' -e 's/.*=[ ]*//' -e 's/[ ]*;.*//'`
486 0) $cc -c trans.$src && transition=1 ;;
491 truncate=`$cc -E truncate.$src | grep '^[ ]*[0123456789]'`
492 $cc -c zeof.c || zeof=1
494 echo "$predef" >> all.pp
499 eval $ppenv '$'cc -Dmycpp -E '$'ppopt cpp.$src
502 eval set x $probe_verbose
506 do set x `$cc $o -c cpp.$src 2>&1`
515 [\\/]*) case " $x " in
517 *) test -x $1 && x="$x $1" ;;
524 do cp $f x && chmod u+w x && strip x && f=x
531 } 3>&- 3>&1 >/dev/null |
532 sed -e '/^ppsymbol$/d' -e '/^.$/d' -e '/^..$/d' -e '/[ABCDEFGHIJKLMNOPQRSTUVWXYZ].*[abcdefghijklmnopqrstuvwxyz]/d' -e '/[abcdefghijklmnopqrstuvwxyz].*[ABCDEFGHIJKLMNOPQRSTUVWXYZ]/d' |
537 do echo "struct { char* name; long value; } predef[] = {" > cpp$i.$src
545 [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]*)
546 set 1 ${sym} 2 _${sym} 3 _${sym}_ 4 __${sym} 5 __${sym}__
557 echo "\"$2\" , (long) $2 -1,"
565 do echo "\"\", 0 };" >> cpp$i.$src
568 preval="`for i in 0 1 2 3 4 5;do $cc -E cpp$i.$src;done | sed -e '/\".*\".*,.*,/!d' -e 's/[^\"]*\"\\([^\"]*\\)\"[ ]*,[ ]*([ ]*long[ ]*)[ ]*\\(.*\\)[ ]*-[ ]*1[ ]*,[ ]*\$/\\1 \\2 =/g'` `$cc -dM -E stdc.$src | sed -e '/[ ]*#[ ]*define/!d' -e '/\"/d' -e 's/[ ]*#[ ]*define[ ]*\\([abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*\\)[ ]*\\(.*\\)/\\1 \\2 =/'`"
570 for i in bufld namei quota reboot utsname vfs
571 do echo "#include <sys/$i.h>" > t.$src
579 echo "char* fun() { return (char*)__FUNCTION__; }
580 int main() { return !fun(); }" > fun.$src
582 if $cc -o fun.exe fun.$src && test -x fun.exe
583 then undef_predef="$undef_predef __FUNCTION__"
586 case "`grep -c '__STDC__[-0 ]*[=!]=[ ]*0' $usrinclude/stdio.h 2>/dev/null`" in
588 *) hostedtransition=1 ;;
593 do echo "#include <$i.h>" > t.$src
595 then mapinclude="$mapinclude <$i.h>=\".\""
605 case "$compatibility:$transition:$dollar" in
608 case $version_stamp in
609 ?*) echo "/* $version_stamp" ;;
613 case $plusplus:$stdc in
614 1:?*) preval="$preval = __STDC__ $stdc ="
615 redef="$redef __STDC__"
624 echo "#pragma pp:predefined"
633 *'('*) i=`echo "$m" | sed 's,(.*,,'` ;;
653 do case " $redef " in
655 *) eval predef_$i=3 ;;
666 *'('*) i=`echo "$m" | sed 's,(.*,,'` ;;
689 *) eval j=\$predef_$i
711 *'('*) i=`echo "$m" | sed 's,(.*,,'` ;;
735 ' '[0123456789]*|' '"'"*"'"*)
749 0) case $ppbuiltin in
750 2) echo "#pragma pp:builtin"
759 eval j=\$predef___${i}__
762 *) case $ppbuiltin in
763 2) echo "#pragma pp:builtin"
767 eval predef___${i}__=2
768 echo "#define __${i}__$v"
779 echo "#pragma pp:nopredefined"
789 ?*) case $ppbuiltin in
791 echo "#pragma pp:builtin"
794 echo "#define $basefile #(BASE)"
798 1) echo "#pragma pp:nobuiltin" ;;
801 eval set x $probe_longlong
805 do rm -f longlong.$exe
806 if $cc -DLONGLONG="$o" -o longlong.$exe longlong.$src &&
813 '') eval set x $probe_longlong_t
816 do rm -f longlong.$exe
817 if $cc -DLONGLONG="$o" -o longlong.$exe longlong.$src &&
819 then echo "#define <long long> $o"
827 for i in `echo "$predef" | sed -e 's/^__*\(.*\)_*\$/\1/' -e '/^[abcdefghijklmnopqrstuvwxyz][abcdefghijklmnopqrstuvwxyz]*[0123456789][abcdefghijklmnopqrstuvwxyz0123456789]*\$/!d'` `echo "$predef" | sed -e 's/^__*\(.*\)_*\$/\1/' -e '/^[abcdefghijklmnopqrstuvwxyz][abcdefghijklmnopqrstuvwxyz]*\$/!d'`
835 for i in `sed -e '/^#/d' -e '/:architecture:/!d' -e 's/[ ].*//' < $ppdef`
836 do eval j="\" \$predef_$i \$predef__${i} \$predef__${i}_ \$predef___${i} \$predef___${i}__ \""
838 *" 2 "*)architecture=$i
843 for i in `sed -e '/^#/d' -e '/:machine:/!d' -e 's/[ ].*//' < $ppdef`
844 do eval j="\" \$predef_$i \$predef__${i} \$predef__${i}_ \$predef___${i} \$predef___${i}__ \""
846 *" 2 "*)machine="$machine $i" ;;
849 case $sys_bufld$sys_reboot$sys_utsname in
850 1??) release=research
860 1) case $sys_namei in
872 for i in `sed -e '/^#/d' -e '/:release:/!d' -e 's/[ ].*//' < $ppdef`
873 do eval j=\$predef_$i
875 2) release="$release $i" ;;
878 for i in `sed -e '/^#/d' -e '/:system:/!d' -e 's/[ ].*//' < $ppdef`
879 do eval j=\$predef_$i
881 2) system="$system $i" ;;
885 topix) release="$release V"
892 *) for p in architecture cpu machine system
894 eval \"case \\\" \$$p \\\" in *\\\" $i \\\"*) ;; *) $p=\\\"$i \$$p\\\" ;; esac\"
895 : avoid string literal concatenation
901 eval "`$cc -E t.$src`"
921 case $architecture in
922 ibm|uts|u370) model=370
925 m*68*) architecture=m68000
928 m*68*[123456789][0123456789])
929 model=`echo $i | sed 's/.*\(..\)/\1/'`
935 u3b?*) model=`echo $architecture | sed 's/u3b//'`
944 model=`echo $architecture | sed 's/vax//'`
947 hp[0123456789]*s[0123456789])
949 [abcdefghijklmnopqrstuvwxyz]*.[abcdefghijklmnopqrstuvwxyz]*.*)
954 architecture="$architecture `echo $architecture | sed 's/s.*//'`"
958 *.*) i=`echo $hosttype | sed -e 's,.*\.,,'` ;;
963 ?*) case " $architecture " in
965 *) architecture="$architecture $i" ;;
969 case $architecture in
970 "") echo "$cc: warning: architecture not determined" >&4
975 echo "#define #hosttype($hosttype)"
977 do echo "#define #system($i)"
980 "") echo "#define #release()" ;;
982 do echo "#define #release($i)"
984 V) echo "#define #release(system5)" ;; # compatibility
989 echo "#define #version($version)"
990 case $architecture in
991 "") echo "#define #architecture()" ;;
992 *) for i in `echo $architecture | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
993 do echo "#define #architecture($i)"
997 echo "#define #model($model)"
999 "") case $architecture:$model in
1000 ?*:?*) set x $architecture; machine="$2/$model $architecture" ;;
1001 *) machine=$architecture ;;
1004 *) machine="$machine $architecture"
1008 "") echo "#define #machine()" ;;
1010 for i in `echo $machine | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
1015 echo "#define #machine($i)"
1022 do echo "#define #cpu($i)"
1024 echo "#define #addressing()"
1025 for i in $ATTRIBUTES
1027 n=`echo $i | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
1028 echo "#define #$n($d)"
1031 ?*) echo "#define #dialect(ansi)" ;;
1034 ?*) echo "#define #dialect(C++)" ;;
1037 "") echo "#define #dialect(cross)" ;;
1039 case $so:$dynamic:$static in
1041 *) echo "#define #dialect(dynamic)" ;;
1044 case $undef_predef in
1045 ?*) for m in $undef_predef
1052 ?*) echo "#pragma pp:plusplus" ;;
1055 ?*) echo "#pragma pp:reserved" $reserved ;;
1057 case $nocatliteral in
1058 ?*) echo "#pragma pp:nocatliteral" ;;
1061 ?*) echo "#pragma pp:opspace" ;;
1064 ?*) echo "#pragma pp:pluscomment" ;;
1067 ?*) echo "#pragma pp:plussplice" ;;
1070 ?*) echo "#pragma pp:reguard" ;;
1073 ?*) echo "#pragma pp:splicecat" ;;
1075 case $splicespace in
1076 ?*) echo "#pragma pp:splicespace" ;;
1079 ?*) echo "#pragma pp:stringspan" ;;
1082 "") echo "#pragma pp:compatibility"
1084 0) echo "#pragma pp:transition"
1087 ?*) echo "#pragma pp:strict" ;;
1091 case $hostedtransition in
1092 1) echo "#pragma pp:hostedtransition" ;;
1095 ?*) case $ppopt$ppenv in
1097 echo "#pragma pp:spaceout"
1103 ?*) echo "#pragma pp:truncate $truncate" ;;
1106 ?*) echo "#pragma pp:zeof" ;;
1109 1) echo '#pragma pp:id "$"' ;;
1123 echo "#pragma pp:nocdir"
1126 echo "#pragma pp:cdir"
1129 echo "#pragma pp:nohostdir"
1132 echo "#pragma pp:hostdir"
1135 *) echo "#pragma pp:include \"$1\""
1142 ?*) echo "#pragma pp:standard \"$usrinclude\""
1146 ?*) case $usrinclude in
1147 ?*) if grep plusplus $usrinclude/ctype.h >/dev/null 2>&1
1148 then echo '#pragma pp:nocdir "-"'
1155 ?*) echo "#pragma pp:mapinclude hosted$mapinclude" ;;
1158 ?*) echo "#pragma pp:linefile" ;;
1161 ?*) echo "#pragma pp:lineid line" ;;
1164 1) echo "#pragma pp:linetype" ;;
1165 ?*) echo "#pragma pp:linetype $linetype" ;;
1167 case $allmultiple in
1168 "") echo "#pragma pp:noallmultiple" ;;
1171 1) echo '#pragma pp:map "/#(pragma )?defincl>/"' ;;
1174 1) echo '#pragma pp:map "/#(pragma )?eject>/"' ;;
1177 1) echo "#pragma pp:elseif" ;;
1179 case $headerexpand in
1180 1) echo "#pragma pp:headerexpand" ;;
1182 case $headerexpandall in
1183 1) echo "#pragma pp:headerexpandall" ;;
1186 1) echo '#pragma pp:map "/#(pragma )?ident>/" "/#(pragma )?/###/"' ;;
1187 *) echo '#pragma pp:map "/#(pragma )?ident>/"' ;;
1190 1) echo '#pragma pp:map "/#(pragma )?import>/" "/#(pragma )?import(.*)/__STDPP__IMPORT__(\2)/"
1191 #macdef __STDPP__IMPORT__(x)
1192 #pragma pp:noallmultiple
1194 #pragma pp:allmultiple
1197 case $include_next in
1198 1) echo '#pragma pp:map "/#include_next>/" ",[^\<]*\<,#include <.../,"' ;;
1200 echo '#pragma pp:map "/#pragma lint:/" ",#pragma lint:(.*),##/*\1*/,u"'
1201 echo '#pragma pp:map "/#(pragma )?sccs>/"'
1203 case $stdc:$spaceout in
1204 1:) case ' '$reserved' ' in
1205 *' 'asm' '*|*' 'asm=*)
1207 echo "#pragma pp:spaceout"
1216 if $cc -E preinc.$src > preinc.out
1217 then for f in `sed -e 's,\\\\,/,g' -e 's,"[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]:/,"/,g' -e '/^#[line ]*[0123456789][0123456789]*[ ][ ]*"[\\/]/!d' -e 's/^#[line ]*[0123456789][0123456789]*[ ][ ]*".*[\\/]\(.*\)".*/\1/' preinc.out | sort -u`
1221 *) echo "#include <$f>"