Annotation of embedaddon/php/ext/ereg/regex/mkh, revision 1.1.1.1
1.1 misho 1: #! /bin/sh
2: # mkh - pull headers out of C source
3: PATH=/bin:/usr/bin ; export PATH
4:
5: # egrep pattern to pick out marked lines
6: egrep='^ =([ ]|$)'
7:
8: # Sed program to process marked lines into lines for the header file.
9: # The markers have already been removed. Two things are done here: removal
10: # of backslashed newlines, and some fudging of comments. The first is done
11: # because -o needs to have prototypes on one line to strip them down.
12: # Getting comments into the output is tricky; we turn C++-style // comments
13: # into /* */ comments, after altering any existing */'s to avoid trouble.
14: peel=' /\\$/N
15: /\\\n[ ]*/s///g
16: /\/\//s;\*/;* /;g
17: /\/\//s;//\(.*\);/*\1 */;'
18:
19: for a
20: do
21: case "$a" in
22: -o) # old (pre-function-prototype) compiler
23: # add code to comment out argument lists
24: peel="$peel
25: "'/^\([^#\/][^\/]*[a-zA-Z0-9_)]\)(\(.*\))/s;;\1(/*\2*/);'
26: shift
27: ;;
28: -b) # funny Berkeley __P macro
29: peel="$peel
30: "'/^\([^#\/][^\/]*[a-zA-Z0-9_)]\)(\(.*\))/s;;\1 __P((\2));'
31: shift
32: ;;
33: -s) # compiler doesn't like `static foo();'
34: # add code to get rid of the `static'
35: peel="$peel
36: "'/^static[ ][^\/]*[a-zA-Z0-9_)](.*)/s;static.;;'
37: shift
38: ;;
39: -p) # private declarations
40: egrep='^ ==([ ]|$)'
41: shift
42: ;;
43: -i) # wrap in #ifndef, argument is name
44: ifndef="$2"
45: shift ; shift
46: ;;
47: *) break
48: ;;
49: esac
50: done
51:
52: if test " $ifndef" != " "
53: then
54: echo "#ifndef $ifndef"
55: echo "#define $ifndef /* never again */"
56: fi
57: echo "/* ========= begin header generated by $0 ========= */"
58: echo '#ifdef __cplusplus'
59: echo 'extern "C" {'
60: echo '#endif'
61: for f
62: do
63: echo
64: echo "/* === $f === */"
65: egrep "$egrep" $f | sed 's/^ ==*[ ]//;s/^ ==*$//' | sed "$peel"
66: echo
67: done
68: echo '#ifdef __cplusplus'
69: echo '}'
70: echo '#endif'
71: echo "/* ========= end header generated by $0 ========= */"
72: if test " $ifndef" != " "
73: then
74: echo "#endif"
75: fi
76: exit 0
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>