#!/bin/sh # Par Julien MOREAU ( jmoreau@bigfoot.com ) nbps=1 # Nombre de paramètres souhaités (sans option) nom_cmde=`basename $0` # Nom de la commande usage="Usage: $nom_cmde [-e ] [...]" # Message d'aide usage=$usage"\n\tCompile des programmes C ou C++ suivant leur extension." options="-Wall" # Options de compilation ext_exec="out" # Extension des exécutable par défaut if [ "$1" = "-e" ] ; then ext_exec="$2" ; shift 2 ; fi if test -n "$ext_exec" ; then ext_exec=".$ext_exec" ; fi if [ $# -lt $nbps ] ; then # Si le nombre de paramètres est incorrecte, echo $usage 1>&2 ; exit 2 # Affichage aide puis arrêt. fi for fichier in $* ; do if test ! -r $fichier ; then # Si le fichier n'est pas un lisible echo "Fichier \"$fichier\" illisible ou inexistant !" 1>&2 continue fi fic=`basename $fichier` base=`echo $fic|cut -d'.' -f1` ext=`echo $fic|cut -d'.' -f2` if test -z "$ext" ; then echo "$fic: Ce fichier n'a pas d'extension !" 1>&2 ; exit 3 fi if test "$ext" = "java" ; then compilateur="javac" else for extcpp in c cc cpp C CC CPP ; do if test $extcpp = $ext ; then compilateur="gcc" fi done fi if test -z "$compilateur" ; then echo "$fic: Je ne connais pas cette extension !" 1>&2 continue fi done if test -z "$compilateur" ; then echo "Je ne sais pas quelle compilateur utiliser." 1>&2 exit 1 fi nom_exec="$base$ext_exec" echo "$compilateur $options $* -o $nom_exec" $compilateur $options $* -o "$nom_exec" ; ret=$? if [ $ret -eq 0 ] ; then echo "strip $nom_exec" ; strip "$nom_exec" ; ret=$? if [ $ret -eq 0 ] ; then echo "chmod a+x $nom_exec" ; chmod a+x "$nom_exec" echo "Quels arguments voulez-vous lui passer ?" echo "Tapper exit pour sortir : \c" ; read args if test "$args" != "exit" ; then echo "Exécution : $nom_exec $args\n" "$nom_exec" $args ; ret=$? fi fi fi exit $ret