File: yorapi.sh

package info (click to toggle)
yorick 2.2.03+dfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 9,620 kB
  • ctags: 9,317
  • sloc: ansic: 85,521; sh: 1,665; cpp: 1,282; lisp: 1,234; makefile: 1,034; fortran: 19
file content (63 lines) | stat: -rwxr-xr-x 1,782 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/sh
# $Id: yorapi.sh,v 1.3 2006-02-02 09:17:06 thiebaut Exp $
# MSWindows and AIX both require lists of all symbols declared as PLUG_API
# in order to properly link plugins.

# MSWindows - when plugin built, need API list to resolve symbols
#             defined in the yorick executable
# AIX - when yorick built, need API list to mark symbols which the
#       yorick executable exports

PLAY_DIRS=`grep '^PLAY_DIRS=' Make.cfg | sed -e 's/^PLAY_DIRS=//'`
if test "$PLAY_DIRS" = "win"; then
  WIN=win
else
  WIN=x11
fi

rm -f cfg.* yorapi.def
# header files containing PLUG_API declarations
grep -h PLUG_API >cfg.00 \
 play/play.h play/phash.h play/pstdlib.h play/pstdio.h play/$WIN/playwin.h \
 yorick/ydata.h yorick/binio.h yorick/yio.h yorick/defmem.h yorick/hash.h \
 yorick/bcast.h yorick/parse.h yorick/yapi.h regexp/yfnmatch.h regexp/yregexp.h \
 matrix/cblasy.h matrix/dg.h fft/cfft.h gist/gist.h gist/hlevel.h gist/draw.h \
 gist/engine.h gist/cgm.h gist/ps.h gist/gtext.h gist/xbasic.h gist/xfancy.h

# splitcmd=`echo one,two,three|sed -e 'y/,/\n/'|wc -l`
# in AIX sed, y recognizes \n but s does not
# splitcmd='y/,/\n/'
# in Linux sed, s recognizes \n but y does not
# splitcmd='s/,/\n/g'
# but both recognize escaped newline in 4th line from bottom in this script:

cat >cfg.01 <<EOF
s/;.*/;/
s/[ 	]*([^*].*)/:/
s/([^*][^)]*/:/
s/)://
s/\[.*\]//
s/;//
s/: *,/:/
s/PLUG_API //
s/volatile //
s/const //
s/unsigned //
s/struct //
s/(\*//
s/^[ 	]*[a-zA-Z0-9_]*[ 	]*//
s/\**//g
s/[ 	]*,[ 	]*/,/g
s/,/\\
/g
s/://g
s/[ 	]*//g
EOF

sed -f cfg.01 cfg.00 >yorapi.def
rm -f cfg.*

# original MSWindows script
# dlltool -z preyor.def libyor.a
# sed -e 's/ @ .*//' -e 's/	//' <preyor.def | tail -n +3 >preyor.def1
# sed -e 's/.*/\0 = yorick.exe.\0/' <preyor.def1 >libyor.def