Добавление нового компилятора!
Тогда покажите вывод команды "bash -x ./gfortran-version.in -r"
Re: Добавление нового компилятора!
root@ubuntu:~# bash -x ./gfortran-version.in -r
bash: ./gfortran-version.in: No such file or directory
bash: ./gfortran-version.in: No such file or directory
Re: Добавление нового компилятора!
#!/bin/sh
# $Id: gfortran-version.in 7104 2012-10-30 05:50:25Z cher $
# Copyright (c) 2008-2012 Alexander Chernov <cher@ejudge.ru>
LANG_CONFIG_DIR="@lang_config_dir@"
common_config() {
echo 'long_name="GNU Fortran"'
echo 'src_sfx=".for"'
# echo 'insecure=1'
}
failure() {
rm -f conftest*
echo 'version='
echo 'arg="'"${arg}"'"'
common_config
echo 'GFORTRANRUN=false'
echo 'GFORTRANDIR='
[ "${verbose}" = 1 ] && echo "no" >&2
exit 1
}
unset LANG
unset LC_ALL
unset LC_MESSAGES
unset LANGUAGE
if [ x"$1" = x-v ]
then
verbose=1
shift
fi
# recheck the language
if [ x"$1" = x-r ]
then
arg="$2"
[ x"$2" != x ] && GFORTRANRUN="$2"
[ "${GFORTRANRUN}" = "" ] && GFORTRANRUN="gfortran"
[ "${verbose}" = 1 ] && echo -n "checking whether GNU Fortran is available..." >&2
"${GFORTRANRUN}" -v >/dev/null 2>/dev/null || failure
version=`"${GFORTRANRUN}" --version | grep "GCC" | gawk '{ print $4; }'` || failure
[ "${version}" != x ] || failure
echo " END" > conftest.for
"${GFORTRANRUN}" conftest.for -o conftest 2>/dev/null >/dev/null || failure
[ -x conftest ] || failure
./conftest > /dev/null 2>/dev/null || failure
rm -f ./conftest*
GFORTRANDIR=`dirname "${GFORTRANRUN}"`
[ "${GFORTRANDIR}" = . ] && GFORTRANDIR=""
echo 'version="'"${version}"'"'
echo 'arg="'"${arg}"'"'
common_config
echo 'GFORTRANRUN="'"${GFORTRANRUN}"'"'
echo 'GFORTRANDIR="'"${GFORTRANDIR}"'"'
[ "${verbose}" = 1 ] && echo "yes, ${GFORTRANRUN}, ${version}" >&2
exit 0
fi
if [ x"$1" = x-l ]
then
echo "GNU Fortran compiler [http://gcc.gnu.org]"
exit 0
fi
[ "${EJUDGE_LANG_CONFIG}" = "" ] && EJUDGE_LANG_CONFIG="${LANG_CONFIG_DIR}/gfortran.cfg"
if [ -f "${EJUDGE_LANG_CONFIG}" ]
then
. "${EJUDGE_LANG_CONFIG}"
else
GFORTRANRUN="gfortran"
GFORTRANDIR=
fi
if [ x"${GFORTRANRUN}" = x -o x"${GFORTRANRUN}" = xfalse ]
then
echo "This language is not supported." >&2
exit 1
fi
if [ x"${GFORTRANDIR}" != x ]
then
PATH="${GFORTRANDIR}:${PATH}"
fi
if [ x"$1" = x-p ]
then
echo "${GFORTRANRUN}"
exit 0
fi
"${GFORTRANRUN}" --version 2>/dev/null >/dev/null || exit 1
[ x"$1" = x-f ] && echo -n "GNU Fortran "
"${GFORTRANRUN}" --version | grep "GNU Fortran" | grep "GCC" | gawk '{ print $4; }'
[ $? != 0 -a $? != 1 ] && exit 1
exit 0
# $Id: gfortran-version.in 7104 2012-10-30 05:50:25Z cher $
# Copyright (c) 2008-2012 Alexander Chernov <cher@ejudge.ru>
LANG_CONFIG_DIR="@lang_config_dir@"
common_config() {
echo 'long_name="GNU Fortran"'
echo 'src_sfx=".for"'
# echo 'insecure=1'
}
failure() {
rm -f conftest*
echo 'version='
echo 'arg="'"${arg}"'"'
common_config
echo 'GFORTRANRUN=false'
echo 'GFORTRANDIR='
[ "${verbose}" = 1 ] && echo "no" >&2
exit 1
}
unset LANG
unset LC_ALL
unset LC_MESSAGES
unset LANGUAGE
if [ x"$1" = x-v ]
then
verbose=1
shift
fi
# recheck the language
if [ x"$1" = x-r ]
then
arg="$2"
[ x"$2" != x ] && GFORTRANRUN="$2"
[ "${GFORTRANRUN}" = "" ] && GFORTRANRUN="gfortran"
[ "${verbose}" = 1 ] && echo -n "checking whether GNU Fortran is available..." >&2
"${GFORTRANRUN}" -v >/dev/null 2>/dev/null || failure
version=`"${GFORTRANRUN}" --version | grep "GCC" | gawk '{ print $4; }'` || failure
[ "${version}" != x ] || failure
echo " END" > conftest.for
"${GFORTRANRUN}" conftest.for -o conftest 2>/dev/null >/dev/null || failure
[ -x conftest ] || failure
./conftest > /dev/null 2>/dev/null || failure
rm -f ./conftest*
GFORTRANDIR=`dirname "${GFORTRANRUN}"`
[ "${GFORTRANDIR}" = . ] && GFORTRANDIR=""
echo 'version="'"${version}"'"'
echo 'arg="'"${arg}"'"'
common_config
echo 'GFORTRANRUN="'"${GFORTRANRUN}"'"'
echo 'GFORTRANDIR="'"${GFORTRANDIR}"'"'
[ "${verbose}" = 1 ] && echo "yes, ${GFORTRANRUN}, ${version}" >&2
exit 0
fi
if [ x"$1" = x-l ]
then
echo "GNU Fortran compiler [http://gcc.gnu.org]"
exit 0
fi
[ "${EJUDGE_LANG_CONFIG}" = "" ] && EJUDGE_LANG_CONFIG="${LANG_CONFIG_DIR}/gfortran.cfg"
if [ -f "${EJUDGE_LANG_CONFIG}" ]
then
. "${EJUDGE_LANG_CONFIG}"
else
GFORTRANRUN="gfortran"
GFORTRANDIR=
fi
if [ x"${GFORTRANRUN}" = x -o x"${GFORTRANRUN}" = xfalse ]
then
echo "This language is not supported." >&2
exit 1
fi
if [ x"${GFORTRANDIR}" != x ]
then
PATH="${GFORTRANDIR}:${PATH}"
fi
if [ x"$1" = x-p ]
then
echo "${GFORTRANRUN}"
exit 0
fi
"${GFORTRANRUN}" --version 2>/dev/null >/dev/null || exit 1
[ x"$1" = x-f ] && echo -n "GNU Fortran "
"${GFORTRANRUN}" --version | grep "GNU Fortran" | grep "GCC" | gawk '{ print $4; }'
[ $? != 0 -a $? != 1 ] && exit 1
exit 0
Re: Добавление нового компилятора!
ejudge@ubuntu:~/ejudge/scripts$ bash -x ./gfortran-version.in -r
+ LANG_CONFIG_DIR=@lang_config_dir@
+ unset LANG
+ unset LC_ALL
+ unset LC_MESSAGES
+ unset LANGUAGE
+ '[' x-r = x-v ']'
+ '[' x-r = x-r ']'
+ arg=
+ '[' x '!=' x ']'
+ '[' '' = '' ']'
+ GFORTRANRUN=gfortran
+ '[' '' = 1 ']'
+ gfortran -v
++ gawk '{ print $4; }'
++ grep GCC
++ gfortran --version
+ version=
+ '[' '' '!=' x ']'
+ echo ' END'
+ gfortran conftest.for -o conftest
+ '[' -x conftest ']'
+ ./conftest
+ rm -f ./conftest ./conftest.for
++ dirname gfortran
+ GFORTRANDIR=.
+ '[' . = . ']'
+ GFORTRANDIR=
+ echo 'version=""'
version=""
+ echo 'arg=""'
arg=""
+ common_config
+ echo 'long_name="GNU Fortran"'
long_name="GNU Fortran"
+ echo 'src_sfx=".for"'
src_sfx=".for"
+ echo 'GFORTRANRUN="gfortran"'
GFORTRANRUN="gfortran"
+ echo 'GFORTRANDIR=""'
GFORTRANDIR=""
+ '[' '' = 1 ']'
+ exit 0
ejudge@ubuntu:~/ejudge/scripts$
+ LANG_CONFIG_DIR=@lang_config_dir@
+ unset LANG
+ unset LC_ALL
+ unset LC_MESSAGES
+ unset LANGUAGE
+ '[' x-r = x-v ']'
+ '[' x-r = x-r ']'
+ arg=
+ '[' x '!=' x ']'
+ '[' '' = '' ']'
+ GFORTRANRUN=gfortran
+ '[' '' = 1 ']'
+ gfortran -v
++ gawk '{ print $4; }'
++ grep GCC
++ gfortran --version
+ version=
+ '[' '' '!=' x ']'
+ echo ' END'
+ gfortran conftest.for -o conftest
+ '[' -x conftest ']'
+ ./conftest
+ rm -f ./conftest ./conftest.for
++ dirname gfortran
+ GFORTRANDIR=.
+ '[' . = . ']'
+ GFORTRANDIR=
+ echo 'version=""'
version=""
+ echo 'arg=""'
arg=""
+ common_config
+ echo 'long_name="GNU Fortran"'
long_name="GNU Fortran"
+ echo 'src_sfx=".for"'
src_sfx=".for"
+ echo 'GFORTRANRUN="gfortran"'
GFORTRANRUN="gfortran"
+ echo 'GFORTRANDIR=""'
GFORTRANDIR=""
+ '[' '' = 1 ']'
+ exit 0
ejudge@ubuntu:~/ejudge/scripts$
Re: Добавление нового компилятора!
что выводит команда "gfortran --version"
Re: Добавление нового компилятора!
ejudge@ubuntu:~/ejudge/scripts$ gfortran --version
GNU Fortran (Ubuntu 4.8.2-19ubuntu1) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
GNU Fortran comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of GNU Fortran
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING
GNU Fortran (Ubuntu 4.8.2-19ubuntu1) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
GNU Fortran comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of GNU Fortran
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING
Re: Добавление нового компилятора!
Попробуйте вот эту версию gfortran-version.in
Re: Добавление нового компилятора!
Спасибо Вам большое.
Для того чтобы контест заработал пришлось в Вашем файле gfortran-version.in *.for заменить на *.f90 ("Это я тем, кто в дальнейшем будут руководствоваться этим разделом форума"). Я думаю с расширением *.for должен работать gf77 (Попробую потом настроить и этот компилятор)
Желаю дальнейшего процветания проекту ejudge. Дай Вам бог здоровья ребята!
Для того чтобы контест заработал пришлось в Вашем файле gfortran-version.in *.for заменить на *.f90 ("Это я тем, кто в дальнейшем будут руководствоваться этим разделом форума"). Я думаю с расширением *.for должен работать gf77 (Попробую потом настроить и этот компилятор)
Желаю дальнейшего процветания проекту ejudge. Дай Вам бог здоровья ребята!
Re: Добавление нового компилятора!
Хотел бы добавить свои пять копеек в обсуждение. С недавнего времени использую на сервере несколько самописных скриптов для работы с новыми языками программирования. Они сделаны частичной копипастой из имеющихся, но, может быть, будут кому-то полезны, или даже включены в апстрим. Работают с патчем к ядру хорошо (кстати, когда выйдет свежий?).
Архив со скриптами.
Внутри скрипты для:
1. Digital Mars D Compiler (dmd), язык программирования D
2. GNU Octave (octave)
3. Lua
Архив со скриптами.
Внутри скрипты для:
1. Digital Mars D Compiler (dmd), язык программирования D
2. GNU Octave (octave)
3. Lua
Re: Добавление нового компилятора!
спасибо. добавлю в следующую версию