Добавление нового компилятора!

Обсуждение вопросов, связанных с системой проведения турниров ejudge.
cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:
Re: Добавление нового компилятора!

Post by cher » 25 February 2015, 11:56

Тогда покажите вывод команды "bash -x ./gfortran-version.in -r"

galeke
Posts:14
Joined:23 February 2015, 15:00

Re: Добавление нового компилятора!

Post by galeke » 25 February 2015, 13:43

root@ubuntu:~# bash -x ./gfortran-version.in -r
bash: ./gfortran-version.in: No such file or directory

galeke
Posts:14
Joined:23 February 2015, 15:00

Re: Добавление нового компилятора!

Post by galeke » 25 February 2015, 13:48

#!/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

galeke
Posts:14
Joined:23 February 2015, 15:00

Re: Добавление нового компилятора!

Post by galeke » 25 February 2015, 13:56

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$

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Добавление нового компилятора!

Post by cher » 25 February 2015, 14:22

что выводит команда "gfortran --version"

galeke
Posts:14
Joined:23 February 2015, 15:00

Re: Добавление нового компилятора!

Post by galeke » 25 February 2015, 15:32

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

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Добавление нового компилятора!

Post by cher » 25 February 2015, 22:17

Попробуйте вот эту версию gfortran-version.in

galeke
Posts:14
Joined:23 February 2015, 15:00

Re: Добавление нового компилятора!

Post by galeke » 26 February 2015, 06:37

Спасибо Вам большое.
Для того чтобы контест заработал пришлось в Вашем файле gfortran-version.in *.for заменить на *.f90 ("Это я тем, кто в дальнейшем будут руководствоваться этим разделом форума"). Я думаю с расширением *.for должен работать gf77 (Попробую потом настроить и этот компилятор)
Желаю дальнейшего процветания проекту ejudge. Дай Вам бог здоровья ребята!

apathism
Posts:64
Joined:09 January 2009, 22:54
Location:Мытищи, Россия

Re: Добавление нового компилятора!

Post by apathism » 28 February 2015, 03:43

Хотел бы добавить свои пять копеек в обсуждение. С недавнего времени использую на сервере несколько самописных скриптов для работы с новыми языками программирования. Они сделаны частичной копипастой из имеющихся, но, может быть, будут кому-то полезны, или даже включены в апстрим. Работают с патчем к ядру хорошо (кстати, когда выйдет свежий?).

Архив со скриптами.

Внутри скрипты для:
1. Digital Mars D Compiler (dmd), язык программирования D
2. GNU Octave (octave)
3. Lua

cher
Posts:1153
Joined:13 March 2004, 17:00
Contact:

Re: Добавление нового компилятора!

Post by cher » 04 March 2015, 17:40

спасибо. добавлю в следующую версию

Post Reply