Mercurial > remote-gamepad-server
view configure @ 9:5e15d64a2d24 default tip
If somebody closed stdin, fd could be both valid and 0, don’t check for that.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Tue, 18 Aug 2015 02:09:55 +0100 |
parents | f362b20de51e |
children |
line wrap: on
line source
#!/bin/sh #----------------- Fichiers et librairies ----------- TARGET='dspad_server' #FILESdspad='dspad.c ds.c uinput.c service.c' FILESdspad_server=`ls *.c` LDFLAGSdspad_server='' #----------------- Options de compilation ----------- INCDIR='.' CCFLAGS='-I$(INCDIR) -D_REENTRANT -g' #------- Options de compilation propres au systeme ----------- systeme=`uname` if test $systeme = "IRIX" then #---- SGI - IRIX ---- CCFLAGS='-fullwarn '$CCFLAGS LDFLAGS='-Wl,-woff,15,-woff,84,-woff,85' DEPOPT='-M' CCC='cc' elif test $systeme = "Linux" then #---- Linux ---- CCFLAGS='-W -Wall -Werror '$CCFLAGS #CCFLAGS=$CCFLAGS' -pedantic' LDFLAGS='' DEPOPT='-MM' CCC='cc' else echo "System $systeme inconnu" exit 1 fi #----------------- L'option -e de echo existe ? ---------------- recho=`echo -e` if test "$recho" = "-e" then echoOptionForTab='' # echo "\t" permet d'afficher tab else echoOptionForTab='-e' # echo -e "\t" permet d'afficher tab fi #----------------- Nom du fichier genere ------------------------ makefile=Makefile #----------------- Extension des fichiers ----------------------- extension=".c" #----------------- Au moins une cible existe ? ------------------ if test -z "$TARGET" then echo echo "Attention, aucune cible (TARGET) n'est indiquee !" exit 1; fi #----------------- INCDIR (ou trouver les .h) ? ----------------- if test -z "$INCDIR" then echo echo "Attention, INCDIR non indique, par defaut : INCDIR='.'" INCDIR='.' fi #-------- Il ne faut pas de cible avec extension .c ----------- error=0 for i in $TARGET do if test $i != `basename $i $extension` then echo "Attention, la cible $i est un fichier source !!" error=1 fi done if test $error -ne 0 then exit 1 fi #--- Pour chaque cible, #--- il faut verifier si la variable FILEScible est vide --- #--- ET #--- il faut verifier la variable FILEScible n'est composee que de .c --- printFilesList() { #nbEspaces=`expr index $1 =` strLocal=`expr $1 : '\(.*\)='` nbEspaces=`expr length $strLocal` nbEspaces=`expr $nbEspaces + 1` strLocalEspaces=" " iLocal=0 while test $iLocal -ne $nbEspaces do strLocalEspaces=$strLocalEspaces" " iLocal=`expr $iLocal + 1` done echo $1 shift while test $# -ne 0 do echo "$strLocalEspaces"$1 # Il faut mettre les "" !! shift done } # Fin de printFilesList() for i in $TARGET do echo "--------------- FILES$i ---------------" findFileList="echo \$`echo FILES$i`" fileList=`eval $findFileList` if test -z "$fileList" then echo "Attention, FILES$i est vide => FILES$i=$i$extension" com="FILES$i=$i$extension" eval $com fi findFileList="echo \$`echo FILES$i`" fileList=`eval $findFileList` realFileList="" for j in $fileList do if test $j = `basename $j $extension` then echo "Attention, dans FILES$i, $j est ignore (!= $extension)... " else if test -z "$realFileList" then realFileList=$j else realFileList=$realFileList" "$j fi fi done if test -z "$realFileList" then echo "... Donc , FILES$i est vide => FILES$i=$i$extension" realFileList="$i$extension" fi echo com="FILES$i=\"$realFileList\"" printFilesList $com # Avant : echo $com echo echo "---------------------------------------" eval $com done #-------- Pour generer les dependances, il faut des fichiers ! -------------- sourceList=`ls *$extension` if test -z "$sourceList" then echo "Il n'y a aucun source ($extension) dans le repertoire courant" exit 1 fi #----------------- generation automatique ------------------- putFilesListInMakefile() { strLocal="" for iLocal in $1 do strLocal=$strLocal" "$iLocal done set $strLocal echo -n $1 >> $makefile shift while test $# -ne 0 do echo " \\" >> $makefile echo $echoOptionForTab -n "\t$1" >> $makefile shift done echo >> $makefile } # Fin de printFilesList() if test -f $makefile then make -f $makefile clear fi rm -f $makefile echo echo "============= GENERATION D'UN FICHIER $makefile ============" echo echo Generation pour $systeme echo echo "#----- Fichier genere automatiquement sous `uname` ------" >> $makefile echo "#----- `date`" >> $makefile echo >> $makefile echo "#-----" >> $makefile echo "INCDIR=$INCDIR" >> $makefile echo "CCFLAGS=$CCFLAGS" >> $makefile echo "LDFLAGS=$LDFLAGS" >> $makefile echo "DEPOPT=$DEPOPT" >> $makefile echo "CCC=$CCC" >> $makefile echo "#-----" >> $makefile echo >> $makefile echo "#------------- Appli --------------" >> $makefile echo >> $makefile putFilesListInMakefile "TARGET=$TARGET" echo >> $makefile for i in $TARGET do findFileList="echo \$`echo FILES$i`" fileList=`eval $findFileList` putFilesListInMakefile "FILES$i=$fileList" >> $makefile echo >> $makefile findFalgList="echo \$`echo LDFLAGS$i`" falgList=`eval $findFalgList` echo "LDFLAGS$i=\$(LDFLAGS) $falgList" >> $makefile echo >> $makefile done for i in $TARGET do echo "OBJECTS$i=\$(FILES$i:$extension=.o)" >> $makefile echo >> $makefile done echo "#------------- Appli --------------" >> $makefile echo >> $makefile echo "all: \$(TARGET)" >> $makefile echo >> $makefile echo "#------------- Appli --------------" >> $makefile echo >> $makefile for i in $TARGET do cat << ! >> $makefile $i : \$(OBJECTS$i) \$(CCC) \$(OBJECTS$i) \\ -o $i \$(LDFLAGS$i) ! done echo "#------------------------------------" >> $makefile echo >> $makefile cat << ! >> $makefile .c.o : \$(CCC) \$(CCFLAGS) -c \$< \\ -o \$*.o dep : @echo "======== Mise a jour des dependances : .depend ========" @rm -f .depend @for i in *$extension ; do \\ echo \$\$i ; \\ \$(CCC) \$(DEPOPT) \$(CCFLAGS) \$\$i > .tmpdepend ; \\ OBJNAME=\`echo \$\$i | sed -e s%\\\\\\$extension%.o% \` ; \\ cat .tmpdepend | \\ sed -e s%\`basename \$\$i $extension\`\\\\\.o%\$\$OBJNAME% \ >> .depend ; \\ echo >> .depend ; \\ done @rm -f .tmpdepend CLEANING=rm -f *.o core a.out \$(TARGET) .depend CONSEIL=echo Penser a faire : make -f $makefile dep clear : @\$(CLEANING) @echo @\$(CONSEIL) @echo clean : \$(CLEANING) @echo @\$(CONSEIL) @echo sinclude .depend ! echo echo "Et execution de : make -f $makefile dep" echo make -f $makefile dep