#!/bin/sh # Execute a C# program. # Copyright (C) 2003-2023 Free Software Foundation, Inc. # Written by Bruno Haible , 2003. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # This uses the same choices as csharpexec.c, but instead of relying on the # environment settings at run time, it uses the environment variables # present at configuration time. # # This is a separate shell script, because the various C# interpreters have # different command line options. # # Usage: /bin/sh csharpexec.sh [OPTION] program.exe [ARGUMENTS] # Options: # -L DIRECTORY search for C# libraries also in DIRECTORY sed_quote_subst='s/\([|&;<>()$`"'"'"'*?[#~=% \\]\)/\\\1/g' libdirs_mono= prog= while test $# != 0; do case "$1" in -L) libdirs_mono="${libdirs_mono:+$libdirs_mono@MONO_PATH_SEPARATOR@}$2" shift ;; -*) echo "csharpexec: unknown option '$1'" 1>&2 exit 1 ;; *) prog="$1" break ;; esac shift done if test -z "$prog"; then echo "csharpexec: no program specified" 1>&2 exit 1 fi case "$prog" in *.exe) ;; *) echo "csharpexec: program is not a .exe" 1>&2 exit 1 ;; esac if test -n "@HAVE_MONO@"; then CONF_MONO_PATH='@MONO_PATH@' if test -n "$libdirs_mono"; then MONO_PATH="$libdirs_mono${CONF_MONO_PATH:+@MONO_PATH_SEPARATOR@$CONF_MONO_PATH}" else MONO_PATH="$CONF_MONO_PATH" fi export MONO_PATH test -z "$CSHARP_VERBOSE" || echo mono "$@" exec mono "$@" else if test -n "@HAVE_CLIX@"; then CONF_CLIX_PATH='@CLIX_PATH@' if test -n "$libdirs_mono"; then @CLIX_PATH_VAR@="$libdirs_mono${CONF_CLIX_PATH:+@MONO_PATH_SEPARATOR@$CONF_CLIX_PATH}" else @CLIX_PATH_VAR@="$CONF_CLIX_PATH" fi export @CLIX_PATH_VAR@ test -z "$CSHARP_VERBOSE" || echo clix "$@" exec clix "$@" else echo 'C# virtual machine not found, try installing mono, then reconfigure' 1>&2 exit 1 fi fi