Compile Script: Unterschied zwischen den Versionen
/bin/sh ist nicht immer zu bash verlinkt. Abgeändert zu #!/bin/bash. Ruby unterstützung hinzugefügt. |
K Rechtschreibung verbessert. |
||
Zeile 9: | Zeile 9: | ||
<pre> | <pre> | ||
#!/bin/bash | #!/bin/bash | ||
# Hier alle Compiler eintragen und anpassen | |||
ada1="gnat compile" | ada1="gnat compile" | ||
ada2="gnatmake" | ada2="gnatmake" | ||
Zeile 23: | Zeile 23: | ||
ruby="ruby" | ruby="ruby" | ||
# | # Vor verwenden des Scriptes an das System anpassen! | ||
CFLAGS="-O3 -march=pentium3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays" | CFLAGS="-O3 -march=pentium3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays" | ||
# | # Programmnamen und Endung auslesen | ||
name=${1%%.*} | name=${1%%.*} | ||
endung=${1##*.} | endung=${1##*.} | ||
Zeile 84: | Zeile 84: | ||
$java $1;; | $java $1;; | ||
* ) | * ) | ||
echo "Fehler!!! | echo "Fehler!!! Unbekannte Endung!" | ||
echo "$endung | echo "Konnte kein Programm zum Ausführen von $endung finden." ;; | ||
esac | esac | ||
</pre> | </pre> |
Aktuelle Version vom 7. Mai 2016, 21:42 Uhr
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/bash # 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" java="jikes" php="php" python="python" ruby="ruby" # Vor verwenden des Scriptes an das System anpassen! CFLAGS="-O3 -march=pentium3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays" # Programmnamen 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 ;; ruby ) echo "Ruby File" echo "$ruby $1" $ruby $1 ;; sh ) echo "Bash File" echo "$bash $1" $bash $1 ;; java ) echo "Java File" echo "$java $1" $java $1;; * ) echo "Fehler!!! Unbekannte Endung!" echo "Konnte kein Programm zum Ausführen von $endung finden." ;; esac