JOI2008本選・・・の前に(44)

環境整備が面倒臭かった。

CygwinじゃなくてDebian使ってるのでスクリプトの文字コードの変換とかするMakefileを書いた。

やってることは改行コードのCRとcsh呼び出しの/usrプレフィックスと.exe拡張子の取り除き。

#!/bin/make

TARGET = t1
SCRIPTS = compile__$(TARGET) run__$(TARGET) eval__$(TARGET)

.PHONY : all clean scripts
all : scripts
clean :
	$(RM) $(SCRIPTS)

scripts : $(SCRIPTS)

compile__$(TARGET) : compile_$(TARGET)
	nkf -Lu compile_$(TARGET) | sed -e 's/\/usr//g' > compile__$(TARGET)
	chmod a+x $@
run__$(TARGET) : run_$(TARGET)
	nkf -Lu run_$(TARGET) | sed -e 's/\/usr//g;s/\.exe//g' > run__$(TARGET)
	chmod a+x $@
eval__$(TARGET) : eval_$(TARGET)
	nkf -Lu eval_$(TARGET) | sed -e 's/\/usr//g;s/\.exe//g' > eval__$(TARGET)
	chmod a+x $@


次に、本番採点用の簡易プログラムを予選用のを改造して作る。data.zip内に置いて./t1とかの実効ファイルに対して実行する。

#!/bin/sh

exam=2008-ho

for i in 1 2 3 4 5 6 7 8 9 10
do
	echo "validating t$1-$i"
	cp $exam-t$1-in$i input.txt
	./t$1
	diff --unified output.txt $exam-t$1-out$i
done

ふう、これでやっと出来る・・・