Mercurial > remote-gamepad-server
diff configure @ 0:e70ea46d6073
Initial import from http://wouhanegaine.free.fr/dev/DSPad02b_neo07.zip
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Sun, 22 Feb 2015 01:38:06 +0100 |
parents | |
children | 05c8e0aef77d |
line wrap: on
line diff
new file mode 100755 --- /dev/null +++ b/configure @@ -0,0 +1,311 @@ +#!/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