source: Sophya/trunk/SophyaLib/BuildMgr/configure@ 3847

Last change on this file since 3847 was 3847, checked in by ansari, 15 years ago

suite corrections ds configure gestion linux64/32, Reza 10/08/2010

  • Property svn:executable set to *
File size: 22.3 KB
Line 
1#!/bin/csh
2# SOPHYA configuration managment script
3# C. Magneville / R. Ansari - Mai 2005
4# Updated : 2006, Avr/Mai , Oct 2007 , 2010
5# Exemple: ./configure -sbase /laltmp/ansari/sbase/ -scxx cxx -extp /exp/planck/ExtLibs/Include/ \
6# -extp /exp/planck/ExtLibs/OSF1-cxx/
7
8#----------------------------------------------------------------------
9#### liste des modules
10set SOPMODOK = ( 1 1 1 1 1 1 1 1 1 )
11set SOPMOD = ( BaseTools SysTools SUtils TArray NTools HiStats SkyMap Samba SkyT )
12set ALLSOPLIBS = ( '-lBaseTools' '-lSysTools' '-lSUtils' '-lTArray' '-lNTools' '-lHiStats' '-lSkyMap' '-lSamba' '-lSkyT' )
13
14set SOPPIOK = ( 1 1 1 )
15set SOPPI = ( PI PIext PIGcont )
16set ALLPILIBS = ( '-lPI' '-lPIext' '-lPIGcont' )
17
18set SOPEXT = ( FitsIOServer IFFTW LinAlg XAstroPack )
19set EXTCURNAME = ( fits fftw lapack astro )
20set SOPEXTOK = ( 1 1 1 1 )
21set EXTINCNAME = ( FitsIO/fitsio.h FFTW/fftw3.h PASDEINC XAstro/astro.h )
22set EXTLIBNAME = ( libcfitsio.a libfftw3.a liblapack.a libxastro.a )
23set ALLEXTLIBS = ( '-lcfitsio' '-lfftw3' '-llapack -lblas' '-lxastro' )
24
25#FFTW2: set EXTINCNAME = ( FitsIO/fitsio.h FFTW/fftw.h PASDEINC XAstro/astro.h )
26#FFTW2: set EXTLIBNAME = ( libcfitsio.a libfftw.a liblapack.a libxastro.a )
27#FFTW2: set ALLEXTLIBS = ( '-lcfitsio' '-lfftw -lrfftw' '-llapack -lblas' '-lxastro' )
28
29set defextinc = ( /usr/include /usr/local/include )
30set defextlib = ( /usr/lib /usr/local/lib )
31
32set defepiinc = ( /usr/X11R6/include )
33set defepilib = ( /usr/X11R6/lib )
34
35#----------------------------------------------------------------------
36#### Decodage arguments
37set cmdline = "$0 $*"
38set extpath
39set extpathinc
40set extpathlib
41set followlink
42set avecEXT
43unset incln
44unset mincname
45set compopt
46unset arch32
47unset arch64
48unset sasz64
49unset ssldble128
50unset nofpic
51unset nothsafe
52unset boundcheck
53unset sodebug
54unset usefftw2
55unset uselapack2
56unset alsofftwfloat
57unset slballinone
58## variables pour PI (librairie motif, GNU-readline ...)
59set epipath
60unset wgrdl
61set avecPI
62
63#### boucle de decodage des arguments :
64while ( $#argv > 0 )
65
66if( "$1" == "-h" ) then
67 echo 'configure [-sbase SOPHYABASE] [-scxx SOPHYACXX] [-incln] '
68 echo " [-minc mymake.inc] [-compopt 'cc/cxxOptions'] "
69 echo ' [-arch64] [-arch32] [-sasz64] [-ldble128] '
70 echo ' [-nofpic] [-nothsafe] [-boundcheck] [-sodebug]'
71 echo ' [-extp dir1 -extp dir2 ...] [-extip dir1 -extip dir2 ... ]'
72 echo ' [-extlp dir1 -extlp dir2 ... ] [-followlink] '
73 echo ' [-noextlib] [-noext fits] [-noext fftw] [-noext lapack] [-noext astro]'
74 echo ' [-alsofftwfloat] [-usefftw2] [-uselapack2] '
75 echo ' [-wgrdl] [-epip mdir1 -motp mdir2 ...] [-noPI] [-slballinone]'
76 echo ' (See SOPHYA manual/web pages for a detailed description of configure options)'
77 exit -1
78endif
79if( "$1" == "-sbase" ) then
80 setenv SOPHYABASE $2
81 shift
82endif
83if( "$1" == "-scxx" ) then
84 setenv SOPHYACXX $2
85 shift
86endif
87if( "$1" == "-incln" ) then
88 set incln
89endif
90if( "$1" == "-minc" ) then
91 set mincname = ( $2 )
92 shift
93endif
94if( "$1" == "-compopt" ) then
95 set compopt = ( $2 )
96 shift
97endif
98if( "$1" == "-extp" ) then
99 set extpath = ( $extpath $2 )
100 shift
101endif
102if( "$1" == "-extip" ) then
103 set extpathinc = ( $extpathinc $2 )
104 shift
105endif
106if( "$1" == "-extlp" ) then
107 set extpathlib = ( $extpathlib $2 )
108 shift
109endif
110if( "$1" == "-followlink" ) then
111 set followlink = '-L '
112endif
113if( "$1" == "-noextlib" ) then
114 set i = 0
115 while ( $i < $#SOPEXTOK )
116 @ i += 1
117 set SOPEXTOK[$i] = 0
118 end
119 unset avecEXT
120endif
121if( "$1" == "-noext" ) then
122 set i = 0
123 while ( $i < $#EXTCURNAME )
124 @ i += 1
125 if( "$2" == "$EXTCURNAME[$i]" ) set SOPEXTOK[$i] = 0
126 end
127 shift
128endif
129if( "$1" == "-alsofftwfloat" ) then
130# On veut la version float de FFTW, en plus de double
131 set alsofftwfloat
132 set i = 0
133 while ( $i < $#EXTCURNAME )
134 @ i += 1
135 if( "fftw" == "$EXTCURNAME[$i]" ) then
136 set ALLEXTLIBS[$i] = '-lfftw3 -lfftw3f'
137 endif
138 end
139endif
140if( "$1" == "-usefftw2" ) then
141# version FFTW 2 au lieu de V3
142 set usefftw2
143 set i = 0
144 while ( $i < $#EXTCURNAME )
145 @ i += 1
146 if( "fftw" == "$EXTCURNAME[$i]" ) then
147 set EXTINCNAME[$i] = 'FFTW/fftw.h'
148 set EXTLIBNAME[$i] = 'libfftw.a'
149 set ALLEXTLIBS[$i] = '-lfftw -lrfftw'
150 endif
151 end
152endif
153if( "$1" == "-uselapack2" ) then
154# version LAPACK 2 au lieu de V3
155 set uselapack2
156endif
157## Decodage arguments specifique PI
158if( "$1" == "-noPI" ) then
159 set SOPPIOK = ( 0 0 0 )
160 unset avecPI
161endif
162## compil piapp avec GNU-readline
163if( "$1" == "-wgrdl" ) then
164 set wgrdl
165endif
166## Chemin motif , readline ...
167if( "$1" == "-epip" ) then
168 set epipath = ( $epipath $2 )
169 shift
170endif
171if( "$1" == "-slballinone" ) then
172# Pour utiliser une seule librairie libsophyaPIext.so au lieu
173# des 3 libsophya.so libextsophya.so libPI.so
174 set slballinone
175endif
176# Decodage options pour flags de machdefs.h
177# Liste de flags : SO_ARCH64 SO_NOFPIC SO_SASIZET64 SO_LDBLE128 SO_BOUNDCHECKING SOPHYA_DEBUG
178if( "$1" == "-arch64" ) then
179 set arch64
180 unset arch32
181endif
182if( "$1" == "-arch32" ) then
183 set arch32
184 unset arch64
185 unset sasz64
186endif
187if( "$1" == "-sasz64" ) then
188 set sasz64
189endif
190if( "$1" == "-ldble128" ) then
191 set ssldble128
192endif
193if( "$1" == "-nofpic" ) then
194 set nofpic
195endif
196if( "$1" == "-nothsafe" ) then
197 set nothsafe
198endif
199if( "$1" == "-boundcheck" ) then
200 set boundcheck
201endif
202if( "$1" == "-sodebug" ) then
203 set sodebug
204endif
205
206
207shift
208end
209
210## ------ Detection linux 64 bits, AIX, IRIX ---
211unset linux64
212if ( `uname` == "Linux" ) then
213 if ( `uname -m` == "x86_64" ) then
214 echo ' ... Linux x86_64 (64 bits) ---> -arch64 '
215 set linux64
216 if ( ! $?arch32 ) set arch64
217 endif
218endif
219set sname = `uname`
220if ( ( "$sname" == "IRIX64" ) || ( "$sname" == "AIX" ) ) then
221 if ( ! $?arch32 ) set arch64
222endif
223
224
225#----------------------------------------------------------------------
226#### Verification generale
227if( ! $?SOPHYABASE ) then
228 echo ERROR: define SOPHYABASE or use script arguments
229 exit -2
230endif
231if( ! $?SOPHYACXX ) then
232 echo ERROR: define SOPHYACXX or use script arguments
233 echo " SOPHYACXX define the name of the C++ compiler (ex: g++ cxx ...)"
234 exit -2
235endif
236if( ! $?TMPDIR ) setenv TMPDIR /tmp
237touch $TMPDIR/tmp_test
238if( $status != 0 ) then
239 echo ERROR: no write acces in temporary directory: $TMPDIR
240 echo '----> define TMPDIR environment variable: "setenv TMPDIR ..."'
241 exit -2
242endif
243rm -f $TMPDIR/tmp_test
244if( ! $?mincname ) then
245 set mincname = `uname`_${SOPHYACXX}_make.inc
246endif
247if( ! -e $mincname ) then
248 echo ERROR: file $mincname NOT found
249 exit -2
250endif
251if( ! -e ../BaseTools/machdefs_mkmf.h ) then
252 echo ERROR: file machdefs_mkmf.h NOT found in BaseTools
253 exit -2
254endif
255echo SOPEXTOK: $SOPEXTOK
256
257## Chemin de recherche en fonction de 64/32 bits sur linux
258if ( $?linux64 ) then
259 if ( $?arch64 ) then
260 set defextlib = ( /usr/lib64 /usr/local/lib )
261 set defepilib = ( /usr/X11R6/lib64 )
262 echo ' linux 64 , arch64 defextlib = ' $defextlib ' defepilib=' $defepilib
263 else
264 echo ' linux 64 , arch32 defextlib = ' $defextlib ' defepilib=' $defepilib
265 endif
266endif
267
268
269#----------------------------------------------------------------------
270#### creation des variables chemins sophya core
271echo " "
272echo ">>>>>> 1/ Creating directory tree under $SOPHYABASE "
273set sinc = $SOPHYABASE/include
274set slib = $SOPHYABASE/lib
275set sslb = $SOPHYABASE/slb
276set sobj = $SOPHYABASE/obj
277set sexe = $SOPHYABASE/exe
278set sconf = $sinc/SophyaConfInfo
279foreach d ( $sinc $slib $sslb $sobj $sexe $sconf )
280 if( ! -d $d ) then
281 mkdir $d
282 if( $status ) then
283 echo ERROR: creation of $d failed
284 exit -3
285 endif
286 echo Directory $d created
287 endif
288 touch $d/tmp_test
289 if( $status ) then
290 echo ERROR: no write acces to $d
291 exit -4
292 endif
293 rm -f $d/tmp_test
294end
295
296
297#----------------------------------------------------------------------
298#### Fichier confinfo - log de configure
299set conflog = $sconf/conf.log
300rm -f $conflog ; touch $conflog
301echo ' --- Log of SOPHYA configure script - Date= ' `date` >> $conflog
302echo "$cmdline" >> $conflog
303set inclistf = $sconf/include.list
304rm -f $inclistf ; touch $inclistf
305
306
307#----------------------------------------------------------------------
308#### liens ou copie des *.h
309echo " "
310if( $?incln ) then
311 echo ">>>>>> 2/ Creating symbolic link for include files in $sinc "
312else
313 echo ">>>>>> 2/ Copying include files to $sinc "
314endif
315
316cd ../ > /dev/null
317set srcd = `pwd`
318set cpln = "cp -p "
319if( $?incln ) set cpln = "ln -s -f "
320foreach d ( $SOPMOD $SOPEXT $SOPPI )
321 if ( -d $srcd/$d ) then
322 if ( $?incln ) then
323 echo Creating link to include files for module $d
324 else
325 echo Copying include files for module $d
326 endif
327
328 cd $srcd/$d;
329 set file = ( *.h )
330 cd $sinc; if( $status == 0 ) rm -f $file
331 # on vire le .h de $file si .h dans excludeinc du module
332 cd $srcd/$d
333 if( -e excludeinc ) then
334 if( `cat excludeinc | wc -l` > 0 ) then
335 set file
336 foreach f ( *.h )
337 grep -q "$f:r\.h" excludeinc
338 if( $status != 0 ) set file = ( $file $f )
339 end
340 endif
341 endif
342 # on copie ou link dans $sinc
343 if( `echo $file | wc -w` > 0 ) then
344 foreach f ( $file )
345 $cpln $srcd/$d/$f $sinc/$f
346 end
347 endif
348 echo $file >> $inclistf
349 endif
350end
351rm -f $sinc/machdefs_ac.h $sinc/machdefs_mkmf.h
352cd $srcd/BuildMgr/.
353
354
355#----------------------------------------------------------------------
356#### lien des .h des librairies externes
357echo " "
358echo ">>>>>> 3.1/ Include files for external libraries "
359set i = 0
360while ( $i < $#SOPEXT )
361 @ i += 1
362 if( "$EXTINCNAME[$i]" == "PASDEINC" ) continue
363 if( $SOPEXTOK[$i] <= 0 ) continue
364 set nom = $EXTINCNAME[$i]:t
365 set rac = $EXTINCNAME[$i]:h
366 if( -d ../$SOPEXT[$i] ) then
367 echo "Searching include file for $SOPEXT[$i] ..."
368 foreach d ( $extpathinc $extpath $defextinc )
369 set duminc = `find $followlink $d -name $nom -print | head -1 `
370 set dumrep = $duminc:h
371 if ( "$dumrep" != "" ) then
372 rm -f $sinc/$rac
373 ln -f -s $dumrep $sinc/$rac
374 echo Includes for $SOPEXT[$i] found in $dumrep
375 break
376 endif
377 end
378 if ( "$dumrep" == "" ) then
379 echo WARNING: Includes for $SOPEXT[$i] NOT found
380 echo " Compilation of module $SOPEXT[$i] disabled"
381 set SOPEXTOK[$i] = 0
382 endif
383 endif
384end
385
386### recherche des .h Motif et si besoin readline
387set piextinc
388if ( $?avecPI ) then
389 echo " "
390 echo ">>>>>> 3.2/ searching include files for Motif "
391 foreach d ( $epipath $defepiinc $extpathinc $extpath $defextinc )
392 set duminc = `find $followlink $d -name Xm -print | head -1 `
393 set dumrep = $duminc:h
394 if ( "$dumrep" != "" ) then
395 set piextinc = "-I$dumrep"
396 echo Includes for Motif found in $dumrep
397 break
398 endif
399 end
400 if ( "$dumrep" == "" ) then
401 echo WARNING: Includes for Motif NOT found
402 echo ' expect problems when compiling PI modules, check sophyamake.inc ... '
403 endif
404 if ( $?wgrdl ) then
405 echo ">>>>>> 3.3/ searching include files for GNU readline "
406 foreach d ( $epipath $extpathinc $extpath $defextinc )
407 set duminc = `find $followlink $d -name readline -print | head -1 `
408 set dumrep2 = $duminc:h
409 if ( "$dumrep2" != "" ) then
410 if ( "$dumrep2" != "$dumrep" ) set piextinc = "-I$dumrep2 $piextinc"
411 echo Includes for readline found in $dumrep2
412 break
413 endif
414 end
415 if ( "$dumrep2" == "" ) then
416 echo WARNING: Includes for readline NOT found
417 echo ' expect problems when compiling piapp, check sophyamake.inc ... '
418 endif
419 endif
420endif
421
422#----------------------------------------------------------------------
423#### liens des librairies externes
424echo " "
425echo ">>>>>> 4.1/ External libraries "
426set fpath = $TMPDIR/fpath
427rm -f $fpath; touch $fpath
428set extliblib
429set i = 0
430while ( $i < $#SOPEXT )
431 @ i += 1
432 if( "$EXTLIBNAME[$i]" == "PASDELIB" ) continue
433 if( $SOPEXTOK[$i] <= 0 ) continue
434 set nom = $EXTLIBNAME[$i]
435 if( -d ../$SOPEXT[$i] ) then
436 echo "Searching libraries path for $SOPEXT[$i] ..."
437 foreach d ( $extpathlib $extpath $defextlib )
438 set dumlib = `find $followlink $d -name $nom -print | head -1 `
439 if ( "$dumlib" != "" ) then
440 echo "-L$dumlib:h" >> $fpath
441 set extliblib = ( $extliblib $ALLEXTLIBS[$i] )
442 break
443 endif
444 end
445 if ( "$dumlib" == "" ) then
446 echo WARNING: Libraries for $SOPEXT[$i] NOT found
447 echo " Check the generated make.inc file"
448 endif
449 endif
450end
451set extlibpath = `cat $fpath | sort -u`
452echo extlibpath= $extlibpath
453echo extliblib= $extliblib
454rm -f $fpath
455
456### recherche des librairies Motif et si besoin readline
457set piextlib = '-L/usr/X11R6/lib -lXm'
458if ( $?avecPI ) then
459 echo " "
460 echo ">>>>>> 4.2/ searching library Motif (libXm.a) "
461 foreach d ( $epipath $defepilib $extpathlib $extpath $defextlib )
462 set dumlib = `find $followlink $d -name libXm.a -print | head -1 `
463 set dumrep = $dumlib:h
464 if ( "$dumrep" != "" ) then
465 set piextlib = "-L$dumrep -lXm"
466 echo Motif library found in $dumrep
467 break
468 endif
469 end
470 if ( "$dumrep" == "" ) then
471 echo WARNING: Motif library NOT found
472 echo ' expect problems when for linking with PI, check sophyamake.inc ... '
473 endif
474 if ( $?wgrdl ) then
475 echo ">>>>>> 4.3/ searching libraries for GNU readline "
476 foreach d ( $epipath $extpathlib $extpath $defextlib )
477 set dumlib = `find $followlink $d -name libreadline.a -print | head -1 `
478 set dumrep2 = $dumlib:h
479 if ( "$dumrep2" != "" ) then
480 if ( "$dumrep2" != "$dumrep" ) then
481 set piextlib = "$piextlib -L$dumrep2 -lreadline -lhistory "
482 else
483 set piextlib = "$piextlib -lreadline -lhistory "
484 endif
485 echo Libraries for readline found in $dumrep2
486 break
487 endif
488 end
489 if ( "$dumrep" == "" ) then
490 echo WARNING: libraries for readline NOT found
491 echo ' expect problems for linking piapp, check sophyamake.inc ... '
492 endif
493 endif
494endif
495
496#----------------------------------------------------------------------
497#### Identification des librairies archives Sophya
498echo " "
499echo ">>>>>> 4.4/ Sophya libraries archives "
500set sopmodlib
501set i = 0
502while ( $i < $#SOPMOD )
503 @ i += 1
504 if( $SOPMODOK[$i] <= 0 ) continue
505 if( -d ../$SOPMOD[$i] ) then
506 set sopmodlib = ( $sopmodlib $ALLSOPLIBS[$i] )
507 else
508 echo "WARNING: module "$SOPMOD[$i]" not found"
509 endif
510end
511echo sopmodlib= $sopmodlib
512
513echo " "
514echo ">>>>>> 4.3/ PI-Sophya libraries archives "
515set soppilib
516set i = 0
517while ( $i < $#SOPPI )
518 @ i += 1
519 if( $SOPPIOK[$i] <= 0 ) continue
520 if( -d ../$SOPPI[$i] ) then
521 set soppilib = ( $soppilib $ALLPILIBS[$i] )
522 else
523 echo "WARNING: module "$SOPPI[$i]" not found"
524 endif
525end
526echo soppilib= $soppilib
527
528#----------------------------------------------------------------------
529#### Generation de sophyamake.inc
530# On le cree dans le repertoire temporaire d'abord
531set mfile = $sinc/sophyamake.inc
532rm -f $mfile
533echo " "
534echo ">>>>>> 5/ Creating $mfile from $mincname "
535echo "# -----------------------------------------------" > $mfile
536echo "# File make.inc - generated by SOPHYA configure" >> $mfile
537echo "# Date" `date` >> $mfile
538echo "# Seed file : $mincname " >> $mfile
539echo "# -----------------------------------------------" >> $mfile
540echo " " >> $mfile
541echo "# SOPHYA Base installation directory " >> $mfile
542echo "SOPHYABASE = $SOPHYABASE" >> $mfile
543echo " " >> $mfile
544echo 'SOPHYAINCP = $(SOPHYABASE)/include/' >> $mfile
545echo 'SOPHYAOBJP = $(SOPHYABASE)/obj/' >> $mfile
546echo 'SOPHYALIBP = $(SOPHYABASE)/lib/' >> $mfile
547echo 'SOPHYASLBP = $(SOPHYABASE)/slb/' >> $mfile
548echo 'SOPHYAEXEP = $(SOPHYABASE)/exe/' >> $mfile
549
550echo " " >> $mfile
551echo "# module libraries " >> $mfile
552echo "SOPMODLIBLIST = $sopmodlib" >> $mfile
553
554echo " " >> $mfile
555echo "# External libraries PATH " >> $mfile
556echo "SOPEXTLIBP = $extlibpath" >> $mfile
557echo "SOPEXTLIBLIST = $extliblib" >> $mfile
558
559echo " " >> $mfile
560echo "# PI libraries " >> $mfile
561echo "SOPPILIBLIST = $soppilib" >> $mfile
562echo "PIEXTINC = $piextinc" >> $mfile
563echo "PIEXTLIB = $piextlib" >> $mfile
564echo "PIEXTINC = $piextinc"
565echo "PIEXTLIB = $piextlib"
566
567echo " " >> $mfile
568cat $mincname >> $mfile
569
570# --- Gestion des flags modifiants les options de compilation et liste de librairies (par sed)
571set sprgfile = $TMPDIR/compop.scom
572rm -f $sprgfile
573echo '{' > $sprgfile
574set scmd = "/FLAGS/s/CNFPHFLF/ $compopt/g"
575if ( $?arch64 ) then
576 set a64cf = ' '
577 if ( ( "$sname" == "IRIX64" ) && ("$SOPHYACXX" == "CC" ) ) set a64cf = '-64'
578 if ( "$sname" == "AIX" ) then
579 if ( ("$SOPHYACXX" == "xlC" ) || ("$SOPHYACXX" == "xlc" ) ) set a64cf = '-q64'
580 echo "/ARFLAGS/s/-rcs/-rcs -X 64/" >> $sprgfile
581 endif
582 set scmd = "/FLAGS/s/CNFPHFLF/$a64cf $compopt/g"
583endif
584if ( $?arch32 ) then
585 set a32cf = ' '
586 if ( ( "$sname" == "Linux" ) && ("$SOPHYACXX" == "g++" ) ) set a32cf = '-m32'
587 if ( "$sname" == "AIX" ) then
588 if ( ("$SOPHYACXX" == "xlC" ) || ("$SOPHYACXX" == "xlc" ) ) set a32cf = '-q32'
589 endif
590 set scmd = "/FLAGS/s/CNFPHFLF/$a32cf $compopt/g"
591endif
592
593echo $scmd >> $sprgfile
594if ( $?nofpic ) echo "s/-fPIC/ /g" >> $sprgfile
595if( $?slballinone ) then
596 echo "/SOPHYAALLSLBLIST/s/-lPI -lextsophya -lsophya/-lAsophyaextPI/" >> $sprgfile
597 echo "/SOPHYAEXTSLBLIST/s/-lextsophya -lsophya/-lAsophyaextPI/" >> $sprgfile
598endif
599if ( ! $?avecEXT ) then
600 echo "/SOPHYAEXTSLBLIST/s/-lextsophya / /" >> $sprgfile
601 echo "/SOPHYAALLSLBLIST/s/-lextsophya / /" >> $sprgfile
602endif
603if ( ! $?avecPI ) then
604 echo "/SOPHYAALLSLBLIST/s/-lPI / /" >> $sprgfile
605endif
606if ( ( $?linux64 ) && ( $?arch64) ) then
607 echo "s?-L/usr/X11R6/lib?-L/usr/X11R6/lib64?g" >> $sprgfile
608endif
609echo '}' >> $sprgfile
610set mftmp = $TMPDIR/sopmake.inc
611cp $mfile $mftmp
612rm -f $mfile
613sed -f $sprgfile $mftmp > $mfile
614rm -f $sprgfile $mftmp
615# --- FIN de gestion des flags modifiants les options de compilation (par sed)
616
617rm -f $mfile:t
618ln -s $mfile $mfile:t
619
620
621#----------------------------------------------------------------------
622#### Copie de machdefs.h
623set mdefname = $TMPDIR/machdefs.h
624echo " "
625echo ">>>>>> 6.a/ Creating machdefs.h from BaseTools/machdefs_mkmf.h"
626rm -f $mdefname; touch $mdefname
627echo "/*** machdefs.h generated by SOPHYA configure ***/" >> $mdefname
628echo "#ifndef MACHDEFS_SEEN" >> $mdefname
629echo "#define MACHDEFS_SEEN" >> $mdefname
630echo "/*------ Code generation switch ---- */" >> $mdefname
631echo "/* System selector (uname) */" >> $mdefname
632# Fait avant - set sname = `uname`
633echo "#ifndef $sname" >> $mdefname
634echo "#define $sname 1 " >> $mdefname
635echo "#endif" >> $mdefname
636
637## Definition de flags de compilation en fonction des options de configure
638if ( $?arch64 ) echo "#define SO_ARCH64 1" >> $mdefname
639if ( $?sasz64 ) echo "#define SO_SASIZET64 1" >> $mdefname
640if ( $?ssldble128 ) echo "#define SO_LDBLE128 1" >> $mdefname
641if ( $?nofpic ) echo "#define SO_NOFPIC 1" >> $mdefname
642if ( $?nothsafe ) echo "#define SO_NOTHSAFE 1" >> $mdefname
643if ( $?boundcheck ) echo "#define SO_BOUNDCHECKING 1" >> $mdefname
644if ( $?sodebug ) echo "#define SOPHYA_DEBUG 1" >> $mdefname
645
646if ( "$sname" == "IRIX64" ) then
647 if ( "$SOPHYACXX" == "CC" ) then
648# __SGICC__ : flag indiquant que c'est le compilo CC de SGI
649 echo "#define __SGICC__ 1" >> $mdefname
650 endif
651endif
652
653
654echo " " >> $mdefname
655grep -v -e '#ifndef *MACHDEFS_SEEN' -e '#define *MACHDEFS_SEEN' ../BaseTools/machdefs_mkmf.h >> $mdefname
656# On ne copie que si machdefs.h est different
657if (-e $sinc/machdefs.h ) then
658 diff $mdefname $sinc/machdefs.h >& /dev/null
659 if ($status != 0) then
660 cp -f -p $mdefname $sinc/machdefs.h
661 echo " file $sinc/machdefs.h changed -> replaced"
662 else
663 echo " file $sinc/machdefs.h has not changed -> kept"
664 endif
665else
666 cp -f -p $mdefname $sinc/machdefs.h
667 echo " file $sinc/machdefs.h created"
668endif
669rm -f $mdefname
670
671
672#### Creation de sspvflags.h
673echo " "
674echo ">>>>>> 6.b/ Creating $sinc/sspvflags.h "
675rm -f $sinc/sspvflags.h; touch $sinc/sspvflags.h
676
677echo "#ifndef SSPVFLAGS_SEEN" >> $sinc/sspvflags.h
678echo "#define SSPVFLAGS_SEEN" >> $sinc/sspvflags.h
679echo " " >> $sinc/sspvflags.h
680echo "/*------ External libraries no-use flag ---- */" >> $sinc/sspvflags.h
681set i = 0
682while ( $i < $#SOPEXTOK )
683 @ i += 1
684 if( $SOPEXTOK[$i] > 0 ) continue
685 echo "#define SOPHYA_NO_$SOPEXT[$i]" >> $sinc/sspvflags.h
686end
687
688echo " " >> $sinc/sspvflags.h
689echo "/*------ SOPOHYA/ExtLibsvVersion selection flags ---- */" >> $sinc/sspvflags.h
690echo " " >> $sinc/sspvflags.h
691if( $?alsofftwfloat ) then
692 echo "/*-- Compile ALSO float version of FFTWServer methods -- */" >> $sinc/sspvflags.h
693 echo "#define ALSO_FFTW_FLOAT_EXTSOP" >> $sinc/sspvflags.h
694endif
695if( $?usefftw2 ) then
696 echo "/*-- Use FFTW V2 instead of V3 -- */" >> $sinc/sspvflags.h
697 echo "#define FFTW_V2_EXTSOP" >> $sinc/sspvflags.h
698endif
699if( $?uselapack2 ) then
700 echo "/*-- Use LAPACK V2 instead of V3 -- */" >> $sinc/sspvflags.h
701 echo "#define LAPACK_V2_EXTSOP" >> $sinc/sspvflags.h
702endif
703if( $?wgrdl ) then
704 echo "/*-- Compile piapp with GNU-readline -- */" >> $sinc/sspvflags.h
705 echo "#define PIA_WITH_GNUREADLINE" >> $sinc/sspvflags.h
706endif
707if( $?slballinone ) then
708 echo "/*------ Use of single shared lib for SOPHYA+extlibs+PI ---- */" >> $sinc/sspvflags.h
709 echo "#define SO_SLBALLINONE " >> $sinc/sspvflags.h
710endif
711echo " " >> $sinc/sspvflags.h
712echo "#endif " >> $sinc/sspvflags.h
713
714
715#----------------------------------------------------------------------
716#### Creation des fichiers contenant les listes d'objets et d'includes
717echo " "
718echo ">>>>>> 7/ Creating object list files for shared library creation "
719set objlistname = $sconf/libsophya.objlist
720echo " 7.a/ Creating $objlistname "
721rm -f $objlistname ; touch $objlistname
722foreach d ( $SOPMOD )
723 rm -f $sconf/$d.conf
724 if ( ! -d ../$d ) continue
725 cat ../$d/objlist.list >> $objlistname
726 touch $sconf/$d.conf
727end
728
729set objlistname = $sconf/libextsophya.objlist
730echo " 7.b/ Creating $objlistname "
731rm -f $objlistname ; touch $objlistname
732set i = 0
733while ( $i < $#SOPEXT )
734 @ i += 1
735 set d = $SOPEXT[$i]
736 rm -f $sconf/$d.conf
737 if( $SOPEXTOK[$i] <= 0 ) continue
738 if ( ! -d ../$d ) continue
739 cat ../$d/objlist.list >> $objlistname
740 touch $sconf/$d.conf
741end
742
743set objlistname = $sconf/libPI.objlist
744echo " 7.c/ Creating $objlistname "
745rm -f $objlistname ; touch $objlistname
746set i = 0
747while ( $i < $#SOPPI )
748 @ i += 1
749 set d = $SOPPI[$i]
750 rm -f $sconf/$d.conf
751 if( $SOPPIOK[$i] <= 0 ) continue
752 if ( ! -d ../$d ) continue
753 cat ../$d/objlist.list >> $objlistname
754 touch $sconf/$d.conf
755end
756
757
758#----------------------------------------------------------------------
759exit 0
Note: See TracBrowser for help on using the repository browser.