File: cl.sh

package info (click to toggle)
iraf 2.17-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 95,288 kB
  • sloc: ansic: 228,894; fortran: 75,606; lisp: 18,369; xml: 8,401; sh: 6,111; yacc: 5,648; lex: 596; makefile: 575; asm: 153; csh: 95; sed: 4
file content (156 lines) | stat: -rwxr-xr-x 3,949 bytes parent folder | download | duplicates (2)
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#!/bin/sh
#
# CL.SH -- Startup the version of the CL executable compiled for the
# architecture or floating point hardware appropriate for the current
# machine.  This script can be used to invoke a number of CL flavors 
# depending on how it is called.  The install script will create a 'cl'
# and 'ecl' command link to this script with the intent that a different
# binary would be started for each command.  


# Determine CL binary to run based on how we were called.

nm=${0##*/}
cl_binary="ecl.e"

case "$nm" in
    "cl" | "cl.sh")
        cl_binary="cl.e"
        ;;
    "ecl" | "ecl.sh")
        cl_binary="ecl.e"
        ;;
    "vocl" | "vocl.sh")
        cl_binary="vocl.e"
        ;;
    *)
	if [ $# -gt 1 ]; then
	    if [ "$1" = "-old" ] || [ "$1" = "-o" ]; then
        	cl_binary="cl.e"
	    elif [ "$1" = "-ecl" ] || [ "$1" = "-e" ]; then
        	cl_binary="ecl.e"
	    elif [ "$1" = "-vo" ]; then
        	cl_binary="vocl.e"
	    elif [ "${1##*.}" = "c" ]; then
		# Workaround for autoconf scripts attempting to use this 
		# command as a valid compiler option.  On some systems (mostly
		# Debian) a valid CC command can't be found and eventually 
		# the 'cl' (lisp) compiler is tried.  It will always apparently
		# have the conftest.c test file, so simply exit with a code to
		# tell autoconf it won't work.
		exit 1
	    fi
	fi
esac

# Determine IRAF root directory (value set in install script).
d_iraf="/iraf/iraf/"
if [ -n "$iraf" ]; then
    if [ ! -e "$iraf" ]; then
        echo "Warning: iraf=$iraf does not exist (check .cshrc or .login)"
        echo "Session will default to iraf=$d_iraf"
        unset iraf ; sleep 3
    fi
fi
if [ -z "$iraf" ]; then
    export iraf="$d_iraf"
fi

# Check for a version query.
if [ $# -gt 1 ]; then
    case "$1" in
	"-v" | "-V" | "-version" | "--version")
            head -1 $iraf/unix/hlib/motd
	    exit 0
	    ;;
	*)
	    ;;
    esac
fi


# Determine platform architecture.
if [ -e $iraf/unix/hlib/irafarch.sh ]; then
    ACTUAL_ARCH=$($iraf/unix/hlib/irafarch.sh -actual)
else
    ACTUAL_ARCH=$IRAFARCH
fi

if [ -n "$IRAFARCH" ]; then
    if [ -e "$iraf/bin.${IRAFARCH}/${cl_binary}" ]; then
	MACH=$IRAFARCH
    else
        echo "ERROR:  No $iraf/bin.${IRAFARCH}/${cl_binary} binary found."
	if [ "$ACTUAL_ARCH" != "$IRAFARCH" ]; then
            echo "ERROR:  IRAFARCH set to '$IRAFARCH', should be '$ACTUAL_ARCH'"
	fi
	exit 1
    fi
    export arch=".$MACH"

else
    os_mach=$(uname -s | tr '[:upper:]' '[:lower:]' | cut -c1-6)
 
    if [ -e $iraf/unix/hlib/irafarch.sh ]; then
        MACH=$($iraf/unix/hlib/irafarch.sh)
    else
        MACH=$os_mach
    fi

    if [ "$os_mach" = "linux" ]; then		# handle linux systems
        if [ "$(uname -m)" = "x86_64" ]; then
            export mach="linux64"
        else
            export mach="linux"
        fi
    elif [ "$os_mach" = "darwin" ]; then	# handle Mac systems
        if [ "$(uname -m)" = "x86_64" ]; then
	     if [ "$(uname -m)" = "x86_64" ] ; then
	         export mach="macintel"
             else
                 export mach="macos64"
	     fi
        else
            export mach="macosx"
        fi
    else
        mach=$(uname -s | tr '[:upper:]' '[:lower:]')
    fi

    export arch=".$MACH"
    if [ -z "$IRAFARCH" ]; then
        export IRAFARCH="$MACH"
    fi

    if [ ! -e "$iraf/bin.${MACH}/${cl_binary}" ]; then
        echo "ERROR:  No $iraf/bin.${IRAFARCH}/${cl_binary} binary found."
	exit 1
    fi
fi


# Just run the CL if IRAFARCH already defined.
if [ -n "$IRAFARCH" ]; then
    if [ -z "$IRAFARCH" ]; then
	export arch=""
    else
	export arch=".$IRAFARCH"
    fi

    export IRAFBIN="${iraf}bin$arch/"
    file=${IRAFBIN}$cl_binary
    if [ -e "$file" ]; then
	exec "$file"
    else
	echo "$file not found"
    fi
fi


# Set the architecture to be used.
export IRAFARCH=$MACH
export arch=.$IRAFARCH
export IRAFBIN=${iraf}bin$arch/

# Run the desired CL.
exec  "${IRAFBIN}$cl_binary"