Compile Script
Erscheinungsbild
Wer in vielen Programmiersprachen programmiert kennt das Problem, dass man ständig andere Compiler mit anderen Aufrufen braucht. Bei großen Projekten hilft hier Makefile. Da man aber auch kleine Programme mal testen will habe ich ein kleines script geschrieben das anhand der Endung den passenden Compiler aufruft.
Anmerkung: Das "Compile Script" übersetzt Quellcode in einer der Programmiersprachen aber nicht Skripte in Skriptsprachen (BASH, PHP, PYTHON, ...). Statt zu kompilieren werden diese Skripte ausgeführt.
#!/bin/sh
## Hier alle Compiler eintragen und anpassen
ada1="gnat compile"
ada2="gnatmake"
asm1="nasm -f elf"
asm2="ld -s -o"
bash="sh"
c="gcc"
cpp="g++"
fortran="gfortran"
php="php"
python="python"
java="jikes"
# vorher unbedingt anpassen!
CFLAGS="-O3 -march=pentium3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays"
## Programm namen und endung auslesen
name=${1%%.*}
endung=${1##*.}
case $endung in
adb )
echo "Ada File"
echo "$ada1 $1"
$ada1 $1
echo "$ada2 $1"
$ada2 $1
if [ $? -eq 0 ]; then
echo "$name.ali und $name.o löschen? <j/n>"
read ans;
if [ $ans == 'j' ]; then
rm $name.ali $name.o
fi
fi ;;
asm )
echo "ASM File"
echo "$asm1 $1"
$asm1 $1
echo "$asm2 $name $name.o"
$asm2 $name $name.o
;;
c )
echo "C File"
echo "$c $CFLAGS -o $name $1"
$c $CFLAGS -o $name $1 ;;
cpp )
echo "C++ File"
echo "$cpp $CFLAGS -o $name $1"
$cpp $CFLAGS -o $name $1 ;;
f* )
echo "f* File"
echo "$fortran -o $name $1"
$fortran -o $name $1 ;;
php )
echo "php File"
echo "$php $1"
$php $1 ;;
py )
echo "Python File"
echo "$python $1"
$python $1 ;;
sh )
echo "Bash File"
echo "$bash $1"
$bash $1 ;;
java )
echo "Java File"
echo "$java $1"
$java $1;;
* )
echo "Fehler!!! unbekannte endung!"
echo "$endung wurde nicht gefunden" ;;
esac