aboutsummaryrefslogtreecommitdiff
path: root/util/mkproto
blob: 195bbba62729c014d273b09c385278f2fd43dc7d (plain) (blame)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/bin/bash
#
#  MKPROTO -- Generate the VOS prototype definitions.


vos_dir="sys"
math_dir=""
xtools_dir="pkg/xtools"
ds_dir="pkg/images/tv/display pkg/images/tv/wcslab"

#vosdirs="$vos_dir $math_dir $ds_dir"
vosdirs="$vos_dir $math_dir $xtools_dir $ds_dir"

curdir=`pwd`
tproto=/tmp/_vosproto.$$

# Initialize the $iraf and environment.
if [ -z "$iraf" ]; then
  if [ -e "$HOME/.iraf/setup.sh" ]; then
    source $HOME/.iraf/setup.sh
  else
    source unix/hlib/setup.sh
  fi
else
    source $iraf/unix/hlib/setup.sh
fi


for d in ${vosdirs[@]}; do

    # Process each of the subdirectories.
    #
    sdirs=`find $d -type d -print`
    for sd in ${sdirs[@]}; do

	# Skip the IMFORT library and any documentation directories
	fname=${sd##*/}
	if [ $fname != "doc" -a -n "`/bin/echo $sd | egrep -e imfort`" -a \
			        -n "`/bin/echo $sd | egrep -e osb`"    -a \
			        -n "`/bin/echo $sd | egrep -e memdbg`" -a \
			        -n "`/bin/echo $sd | egrep -e nspp`" ]; then

	    cd $sd					# go to subdirectory

	    nf=`ls -1 | egrep -e "\.f" | wc -l`	# nfiles to process
	    nx=`ls -1 | egrep -e "\.x" | wc -l`	# nfiles to process

	    /bin/echo "Processing: "$nx"	"$nf"	"$sd
	    if (( $nf>0 -o $nx>0 )); then

		# Skip any files beginning with the letters 'zz', e.g. test
		# files like zzdebug.x

	 	fils=( `/bin/ls -1 [a-z][a-y]*.[xf]` )
	 	for f in ${fils[@]}; do
		    if [ $f != "intrp.f" -a   \
		 	 $f != "xtpmmap.x" -a \
		 	 $f != "ytpmmap.x" ]; then
	                    xc -c -/P $f >> /dev/null 2>&1	# make prototype
		    else
		        /bin/echo "    Skipping  " $f
		    fi
		done

	        egrep -h ^extern *.P >> $tproto		# save prototypes
	        /bin/rm -f *.[oP]    >> /dev/null 2>&1	# clean up
	    fi
	    cd $curdir				# back to top
	else
            /bin/echo "    Skipping  " $sd
	fi
    done
done

# Sort the prototype file, exclude certain symbols which are duplicates 
# in the VOS but harmless because they occur in places that never conflict,
# e.g. the stdgraph and imd kernels.

cat $tproto 		| \
    egrep -v arbpix_ 	| \
    egrep -v imdgeg_ 	| \
    egrep -v stxset_ 	| \
    egrep -v stxpas_ 	| \
    egrep -v dgt_ 	| \
    egrep -v sgt_ 	| \
    egrep -v asider_ 	| \
    egrep -v asifit_ 	| \
    egrep -v bndsol_ 	| \
    egrep -v ffa_ 	| \
    egrep -v ffs_ 	| \
    egrep -v fft842_ 	| \
    egrep -v avdrs_ 	| \
    egrep -v asigrl_ 	| \
    egrep -v smooth_ 	| \
    egrep -v sigl2 	| \
    egrep -v sigm2 	| \
    egrep -v impcom_ 	| \
    egrep -v intrp 	| \
    egrep -v srch 	| \
    egrep -v codim 	| \
    egrep -v mrsole 	| \
    egrep -v mreval 	| \
    egrep -v \ icg 	| \
    egrep -v iclisd 	| \
    egrep -v gscr 	| \
    egrep -v imdcom 	| \
    egrep -v getrot 	| \
    egrep -v gtplot 	| \
    egrep -v xev 	| \
    egrep -v ceps 	| \
    egrep -v sgt 	| \
    egrep -v sgt 	| \
    egrep -v U_fp 	| \
    sort >$iraf/unix/hlib/libc/vosproto.h	

#  sigl2* and sigm2* removed because of multiple uses in apps
#  impcom removed because imio$dbc/impcom.x conflicts with plot$t_implot.x 
#	use of 'impcom' as a common
#  intrp*  removed because it's use is xtools$ was commented out
#  srch*  removed because it's use is xtools$ was commented out
#  mrsole/mreval removed because of duplicate use (splot$deblend.x and
#  	xtools$numrecipes)
#  icguag removed duplicate use in noao$imred/dtoi