aboutsummaryrefslogtreecommitdiff
path: root/unix/hlib/util.csh/mkproto
blob: f0fe1dbfc1b16989d90fd96507569e7923f247de (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
#!/bin/csh -f
#
#  MKPROTO -- Generate the VOS prototype definitions.

unalias  chdir ls egrep wc rm


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

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

set curdir	= `echo $cwd`
set tproto	= /tmp/_vosproto.$$


foreach d ($vosdirs)

    # Process each of the subdirectories.
    #
    foreach sd (`find $d -type d -print`)

	# Skip the IMFORT library and any documentation directories
	if ($sd:t != "doc" && "`echo $sd | egrep -e imfort`" == "" && \
			      "`echo $sd | egrep -e osb`" == "" && \
			      "`echo $sd | egrep -e memdbg`" == "" && \
			      "`echo $sd | egrep -e nspp`" == "") then

	    chdir $sd					# go to subdirectory

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

	    echo "Processing: "$nx"	"$nf"	"$sd
	    if ($nf > 0 || $nx > 0) then

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

	 	foreach f ( [a-z][a-y]*.[xf] )
		    if ($f != 'intrp.f' &&   \
		 	$f != 'xtpmmap.x' && \
		 	$f != 'ytpmmap.x') then
	                    xc -c -/P $f  >& /dev/null	# make prototype
		    else
		        echo "    Skipping  " $f
		    endif
		end

	        egrep -h ^extern *.P >> $tproto		# save prototypes
	        /bin/rm -f *.[oP]    >& /dev/null	# clean up
	    endif

	    chdir $curdir				# back to top

	else
            echo "    Skipping  " $sd
	endif
    end
end

# 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