comparison 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
comparison
equal deleted inserted replaced
-1:000000000000 0:e70ea46d6073
1 #!/bin/sh
2
3 #----------------- Fichiers et librairies -----------
4
5 TARGET='dspad_server'
6
7 #FILESdspad='dspad.c ds.c uinput.c service.c'
8 FILESdspad_server=`ls *.c`
9 LDFLAGSdspad_server=''
10
11 #----------------- Options de compilation -----------
12
13 INCDIR='.'
14 CCFLAGS='-I$(INCDIR) -D_REENTRANT -g'
15
16 #------- Options de compilation propres au systeme -----------
17
18 systeme=`uname`
19
20 if test $systeme = "IRIX"
21 then
22
23 #---- SGI - IRIX ----
24
25 CCFLAGS='-fullwarn '$CCFLAGS
26
27 LDFLAGS='-Wl,-woff,15,-woff,84,-woff,85'
28
29 DEPOPT='-M'
30
31 CCC='cc'
32
33 elif test $systeme = "Linux"
34 then
35
36 #---- Linux ----
37
38 CCFLAGS='-W -Wall -Werror '$CCFLAGS
39 #CCFLAGS=$CCFLAGS' -pedantic'
40
41 LDFLAGS=''
42
43 DEPOPT='-MM'
44
45 CCC='cc'
46
47 else echo "System $systeme inconnu"
48 exit 1
49 fi
50
51 #----------------- L'option -e de echo existe ? ----------------
52
53 recho=`echo -e`
54
55 if test "$recho" = "-e"
56 then echoOptionForTab='' # echo "\t" permet d'afficher tab
57 else echoOptionForTab='-e' # echo -e "\t" permet d'afficher tab
58 fi
59
60 #----------------- Nom du fichier genere ------------------------
61
62 makefile=makefile
63
64 #----------------- Extension des fichiers -----------------------
65
66 extension=".c"
67
68 #----------------- Au moins une cible existe ? ------------------
69
70 if test -z "$TARGET"
71 then echo
72 echo "Attention, aucune cible (TARGET) n'est indiquee !"
73 exit 1;
74 fi
75
76 #----------------- INCDIR (ou trouver les .h) ? -----------------
77 if test -z "$INCDIR"
78 then echo
79 echo "Attention, INCDIR non indique, par defaut : INCDIR='.'"
80 INCDIR='.'
81 fi
82
83 #-------- Il ne faut pas de cible avec extension .c -----------
84
85 error=0
86 for i in $TARGET
87 do
88 if test $i != `basename $i $extension`
89 then echo "Attention, la cible $i est un fichier source !!"
90 error=1
91 fi
92 done
93 if test $error -ne 0
94 then exit 1
95 fi
96
97 #--- Pour chaque cible,
98 #--- il faut verifier si la variable FILEScible est vide ---
99 #--- ET
100 #--- il faut verifier la variable FILEScible n'est composee que de .c ---
101 printFilesList()
102 {
103 #nbEspaces=`expr index $1 =`
104 strLocal=`expr $1 : '\(.*\)='`
105 nbEspaces=`expr length $strLocal`
106 nbEspaces=`expr $nbEspaces + 1`
107
108 strLocalEspaces=" "
109 iLocal=0
110
111 while test $iLocal -ne $nbEspaces
112 do
113 strLocalEspaces=$strLocalEspaces" "
114 iLocal=`expr $iLocal + 1`
115 done
116
117 echo $1
118 shift
119 while test $# -ne 0
120 do
121 echo "$strLocalEspaces"$1 # Il faut mettre les "" !!
122 shift
123 done
124 } # Fin de printFilesList()
125
126 for i in $TARGET
127 do
128 echo "--------------- FILES$i ---------------"
129
130 findFileList="echo \$`echo FILES$i`"
131 fileList=`eval $findFileList`
132
133 if test -z "$fileList"
134 then echo "Attention, FILES$i est vide => FILES$i=$i$extension"
135 com="FILES$i=$i$extension"
136 eval $com
137 fi
138
139 findFileList="echo \$`echo FILES$i`"
140 fileList=`eval $findFileList`
141
142 realFileList=""
143 for j in $fileList
144 do
145 if test $j = `basename $j $extension`
146 then echo "Attention, dans FILES$i, $j est ignore (!= $extension)... "
147 else
148 if test -z "$realFileList"
149 then realFileList=$j
150 else realFileList=$realFileList" "$j
151 fi
152 fi
153 done
154 if test -z "$realFileList"
155 then
156 echo "... Donc , FILES$i est vide => FILES$i=$i$extension"
157 realFileList="$i$extension"
158 fi
159
160 echo
161 com="FILES$i=\"$realFileList\""
162 printFilesList $com # Avant : echo $com
163 echo
164 echo "---------------------------------------"
165 eval $com
166 done
167
168 #-------- Pour generer les dependances, il faut des fichiers ! --------------
169
170 sourceList=`ls *$extension`
171
172 if test -z "$sourceList"
173 then echo "Il n'y a aucun source ($extension) dans le repertoire courant"
174 exit 1
175 fi
176
177 #----------------- generation automatique -------------------
178 putFilesListInMakefile()
179 {
180 strLocal=""
181 for iLocal in $1
182 do
183 strLocal=$strLocal" "$iLocal
184 done
185 set $strLocal
186 echo -n $1 >> $makefile
187 shift
188 while test $# -ne 0
189 do
190 echo " \\" >> $makefile
191 echo $echoOptionForTab -n "\t$1" >> $makefile
192 shift
193 done
194 echo >> $makefile
195 } # Fin de printFilesList()
196
197 if test -f $makefile
198 then make -f $makefile clear
199 fi
200 rm -f $makefile
201
202 echo
203 echo "============= GENERATION D'UN FICHIER $makefile ============"
204 echo
205 echo Generation pour $systeme
206 echo
207
208
209 echo "#----- Fichier genere automatiquement sous `uname` ------" >> $makefile
210 echo "#----- `date`" >> $makefile
211 echo >> $makefile
212
213 echo "#-----" >> $makefile
214 echo "INCDIR=$INCDIR" >> $makefile
215 echo "CCFLAGS=$CCFLAGS" >> $makefile
216 echo "LDFLAGS=$LDFLAGS" >> $makefile
217 echo "DEPOPT=$DEPOPT" >> $makefile
218 echo "CCC=$CCC" >> $makefile
219 echo "#-----" >> $makefile
220 echo >> $makefile
221
222 echo "#------------- Appli --------------" >> $makefile
223 echo >> $makefile
224
225
226 putFilesListInMakefile "TARGET=$TARGET"
227 echo >> $makefile
228
229 for i in $TARGET
230 do
231 findFileList="echo \$`echo FILES$i`"
232 fileList=`eval $findFileList`
233
234 putFilesListInMakefile "FILES$i=$fileList" >> $makefile
235 echo >> $makefile
236 findFalgList="echo \$`echo LDFLAGS$i`"
237 falgList=`eval $findFalgList`
238 echo "LDFLAGS$i=\$(LDFLAGS) $falgList" >> $makefile
239 echo >> $makefile
240 done
241
242 for i in $TARGET
243 do
244 echo "OBJECTS$i=\$(FILES$i:$extension=.o)" >> $makefile
245 echo >> $makefile
246 done
247
248 echo "#------------- Appli --------------" >> $makefile
249 echo >> $makefile
250
251 echo "all: \$(TARGET)" >> $makefile
252 echo >> $makefile
253
254 echo "#------------- Appli --------------" >> $makefile
255 echo >> $makefile
256
257 for i in $TARGET
258 do
259
260 cat << ! >> $makefile
261 $i : \$(OBJECTS$i)
262 \$(CCC) \$(OBJECTS$i) \\
263 -o $i \$(LDFLAGS$i)
264 !
265
266 done
267
268 echo "#------------------------------------" >> $makefile
269 echo >> $makefile
270
271 cat << ! >> $makefile
272 .c.o :
273 \$(CCC) \$(CCFLAGS) -c \$< \\
274 -o \$*.o
275
276 dep :
277 @echo "======== Mise a jour des dependances : .depend ========"
278 @rm -f .depend
279 @for i in *$extension ; do \\
280 echo \$\$i ; \\
281 \$(CCC) \$(DEPOPT) \$(CCFLAGS) \$\$i > .tmpdepend ; \\
282 OBJNAME=\`echo \$\$i | sed -e s%\\\\\\$extension%.o% \` ; \\
283 cat .tmpdepend | \\
284 sed -e s%\`basename \$\$i $extension\`\\\\\.o%\$\$OBJNAME% \
285 >> .depend ; \\
286 echo >> .depend ; \\
287 done
288 @rm -f .tmpdepend
289
290 CLEANING=rm -f *.o core a.out \$(TARGET) .depend
291 CONSEIL=echo Penser a faire : make -f $makefile dep
292
293 clear :
294 @\$(CLEANING)
295 @echo
296 @\$(CONSEIL)
297 @echo
298 clean :
299 \$(CLEANING)
300 @echo
301 @\$(CONSEIL)
302 @echo
303
304 sinclude .depend
305
306 !
307
308 echo
309 echo "Et execution de : make -f $makefile dep"
310 echo
311 make -f $makefile dep