From 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 Mon Sep 17 00:00:00 2001 From: Joe Hunkeler Date: Tue, 11 Aug 2015 16:51:37 -0400 Subject: Repatch (from linux) of OSX IRAF --- util/mkproto | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100755 util/mkproto (limited to 'util/mkproto') diff --git a/util/mkproto b/util/mkproto new file mode 100755 index 00000000..71493df4 --- /dev/null +++ b/util/mkproto @@ -0,0 +1,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 "$FAKEHOME/setup.sh" ]; then + source $FAKEHOME/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 -- cgit