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

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

petites correction ds configure gestion linux64/32, Reza 10/08/2010

  • Property svn:executable set to *
File size: 22.3 KB
RevLine 
[2720]1#!/bin/csh
2# SOPHYA configuration managment script
3# C. Magneville / R. Ansari - Mai 2005
[3843]4# Updated : 2006, Avr/Mai , Oct 2007 , 2010
[2720]5# Exemple: ./configure -sbase /laltmp/ansari/sbase/ -scxx cxx -extp /exp/planck/ExtLibs/Include/ \
6# -extp /exp/planck/ExtLibs/OSF1-cxx/
7
[2724]8#----------------------------------------------------------------------
9#### liste des modules
[2910]10set SOPMODOK = ( 1 1 1 1 1 1 1 1 1 )
[2720]11set SOPMOD = ( BaseTools SysTools SUtils TArray NTools HiStats SkyMap Samba SkyT )
[2910]12set ALLSOPLIBS = ( '-lBaseTools' '-lSysTools' '-lSUtils' '-lTArray' '-lNTools' '-lHiStats' '-lSkyMap' '-lSamba' '-lSkyT' )
13
14set SOPPIOK = ( 1 1 1 )
[2720]15set SOPPI = ( PI PIext PIGcont )
[2910]16set ALLPILIBS = ( '-lPI' '-lPIext' '-lPIGcont' )
[2720]17
[3180]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' )
[2720]24
[3180]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' )
[2720]28
[3001]29set defextinc = ( /usr/include /usr/local/include )
30set defextlib = ( /usr/lib /usr/local/lib )
[2724]31
[3840]32set defepiinc = ( /usr/X11R6/include )
33set defepilib = ( /usr/X11R6/lib )
[3001]34
[2724]35#----------------------------------------------------------------------
36#### Decodage arguments
[2720]37set cmdline = "$0 $*"
38set extpath
[2724]39set extpathinc
40set extpathlib
[3843]41set followlink
[3840]42set avecEXT
[2720]43unset incln
44unset mincname
[3818]45set compopt
46unset arch32
[3202]47unset arch64
48unset sasz64
[3753]49unset ssldble128
[3202]50unset nofpic
[3210]51unset nothsafe
[3202]52unset boundcheck
53unset sodebug
[3001]54unset usefftw2
55unset uselapack2
[3357]56unset alsofftwfloat
[3210]57unset slballinone
[3840]58## variables pour PI (librairie motif, GNU-readline ...)
59set epipath
60unset wgrdl
61set avecPI
62
63#### boucle de decodage des arguments :
[2720]64while ( $#argv > 0 )
65
66if( "$1" == "-h" ) then
[3210]67 echo 'configure [-sbase SOPHYABASE] [-scxx SOPHYACXX] [-incln] '
68 echo " [-minc mymake.inc] [-compopt 'cc/cxxOptions'] "
[3843]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] '
[3210]73 echo ' [-noextlib] [-noext fits] [-noext fftw] [-noext lapack] [-noext astro]'
[3357]74 echo ' [-alsofftwfloat] [-usefftw2] [-uselapack2] '
[3840]75 echo ' [-wgrdl] [-epip mdir1 -motp mdir2 ...] [-noPI] [-slballinone]'
[3210]76 echo ' (See SOPHYA manual/web pages for a detailed description of configure options)'
[2720]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
[2724]90if( "$1" == "-minc" ) then
91 set mincname = ( $2 )
92 shift
93endif
[3210]94if( "$1" == "-compopt" ) then
[3223]95 set compopt = ( $2 )
[3210]96 shift
97endif
[2720]98if( "$1" == "-extp" ) then
99 set extpath = ( $extpath $2 )
100 shift
101endif
[2724]102if( "$1" == "-extip" ) then
103 set extpathinc = ( $extpathinc $2 )
[2720]104 shift
105endif
[2724]106if( "$1" == "-extlp" ) then
107 set extpathlib = ( $extpathlib $2 )
108 shift
109endif
[3843]110if( "$1" == "-followlink" ) then
111 set followlink = '-L '
112endif
[2739]113if( "$1" == "-noextlib" ) then
114 set i = 0
115 while ( $i < $#SOPEXTOK )
116 @ i += 1
117 set SOPEXTOK[$i] = 0
118 end
[3840]119 unset avecEXT
[2739]120endif
[2724]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
[3357]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
[3001]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
[3840]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
[3210]171if( "$1" == "-slballinone" ) then
[3001]172# Pour utiliser une seule librairie libsophyaPIext.so au lieu
173# des 3 libsophya.so libextsophya.so libPI.so
[3210]174 set slballinone
[3001]175endif
[3202]176# Decodage options pour flags de machdefs.h
[3753]177# Liste de flags : SO_ARCH64 SO_NOFPIC SO_SASIZET64 SO_LDBLE128 SO_BOUNDCHECKING SOPHYA_DEBUG
[3202]178if( "$1" == "-arch64" ) then
179 set arch64
[3818]180 unset arch32
[3202]181endif
[3818]182if( "$1" == "-arch32" ) then
183 set arch32
184 unset arch64
185 unset sasz64
186endif
[3202]187if( "$1" == "-sasz64" ) then
188 set sasz64
189endif
[3753]190if( "$1" == "-ldble128" ) then
191 set ssldble128
192endif
[3202]193if( "$1" == "-nofpic" ) then
194 set nofpic
195endif
[3210]196if( "$1" == "-nothsafe" ) then
197 set nothsafe
198endif
[3202]199if( "$1" == "-boundcheck" ) then
200 set boundcheck
201endif
202if( "$1" == "-sodebug" ) then
203 set sodebug
204endif
[2720]205
[3202]206
[2720]207shift
208end
209
[3840]210## ------ Detection linux 64 bits, AIX, IRIX ---
[3397]211unset linux64
[3398]212if ( `uname` == "Linux" ) then
[3397]213 if ( `uname -m` == "x86_64" ) then
214 echo ' ... Linux x86_64 (64 bits) ---> -arch64 '
215 set linux64
[3845]216 if ( $?arch32 ) set arch64
[3397]217 endif
218endif
[3840]219set sname = `uname`
[3845]220if ( ( "$sname" == "IRIX64" ) || ( "$sname" == "AIX" ) ) then
221 if ( $?arch32 ) set arch64
222endif
[2724]223
[3397]224
[2724]225#----------------------------------------------------------------------
226#### Verification generale
[2720]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
[2724]243rm -f $TMPDIR/tmp_test
[2720]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
[2724]255echo SOPEXTOK: $SOPEXTOK
[2720]256
[3845]257## Chemin de recherche en fonction de 64/32 bits sur linux
258if ( $?linux64 ) then
259 if ( $?arch64 )
260 set defextlib = ( /usr/lib /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
[2724]269#----------------------------------------------------------------------
270#### creation des variables chemins sophya core
[2720]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
[2724]296
297#----------------------------------------------------------------------
[3843]298#### Fichier confinfo - log de configure
[2720]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
[2724]306
307#----------------------------------------------------------------------
308#### liens ou copie des *.h
[2720]309echo " "
[3001]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
[2724]316cd ../ > /dev/null
[2720]317set srcd = `pwd`
[2724]318set cpln = "cp -p "
319if( $?incln ) set cpln = "ln -s -f "
[2720]320foreach d ( $SOPMOD $SOPEXT $SOPPI )
[2724]321 if ( -d $srcd/$d ) then
[2726]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
[2724]328 cd $srcd/$d;
[2720]329 set file = ( *.h )
[2724]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 )
[2739]337 grep -q "$f:r\.h" excludeinc
[2724]338 if( $status != 0 ) set file = ( $file $f )
339 end
340 endif
[2720]341 endif
[2724]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
[2720]348 echo $file >> $inclistf
349 endif
350end
[3001]351rm -f $sinc/machdefs_ac.h $sinc/machdefs_mkmf.h
[2724]352cd $srcd/BuildMgr/.
[2720]353
354
[2724]355#----------------------------------------------------------------------
356#### lien des .h des librairies externes
[2720]357echo " "
[3840]358echo ">>>>>> 3.1/ Include files for external libraries "
[2720]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] ..."
[2724]368 foreach d ( $extpathinc $extpath $defextinc )
[3843]369 set duminc = `find $followlink $d -name $nom -print | head -1 `
[2720]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
[3840]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 "
[3844]391 foreach d ( $epipath /usr/X11R6/include $extpathinc $extpath $defextinc )
[3843]392 set duminc = `find $followlink $d -name Xm -print | head -1 `
[3840]393 set dumrep = $duminc:h
394 if ( "$dumrep" != "" ) then
[3843]395 set piextinc = "-I$dumrep"
396 echo Includes for Motif found in $dumrep
397 break
[3840]398 endif
[3843]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 ... '
[3840]403 endif
404 if ( $?wgrdl ) then
405 echo ">>>>>> 3.3/ searching include files for GNU readline "
[3844]406 foreach d ( $epipath /usr/local $extpathinc $extpath $defextinc )
[3843]407 set duminc = `find $followlink $d -name readline -print | head -1 `
408 set dumrep2 = $duminc:h
409 if ( "$dumrep2" != "" ) then
[3840]410 if ( "$dumrep2" != "$dumrep" ) set piextinc = "-I$dumrep2 $piextinc"
[3844]411 echo Includes for readline found in $dumrep2
[3840]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
[2724]422#----------------------------------------------------------------------
423#### liens des librairies externes
[2720]424echo " "
[2910]425echo ">>>>>> 4.1/ External libraries "
[2720]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] ..."
[2724]437 foreach d ( $extpathlib $extpath $defextlib )
[3843]438 set dumlib = `find $followlink $d -name $nom -print | head -1 `
[2720]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
[2724]454rm -f $fpath
[2720]455
[3840]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) "
[3844]461 foreach d ( $epipath /usr/X11R6/lib $extpathlib $extpath $defextlib )
[3843]462 set dumlib = `find $followlink $d -name libXm.a -print | head -1 `
[3840]463 set dumrep = $dumlib:h
464 if ( "$dumrep" != "" ) then
[3843]465 set piextlib = "-L$dumrep -lXm"
466 echo Motif library found in $dumrep
467 break
468 endif
[3840]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 "
[3844]476 foreach d ( $epipath /usr/local $extpathlib $extpath $defextlib )
[3843]477 set dumlib = `find $followlink $d -name libreadline.a -print | head -1 `
[3840]478 set dumrep2 = $dumlib:h
479 if ( "$dumrep2" != "" ) then
[3843]480 if ( "$dumrep2" != "$dumrep" ) then
481 set piextlib = "$piextlib -L$dumrep -lreadline -lhistory "
482 else
483 set piextlib = "$piextlib -lreadline -lhistory "
[3840]484 endif
[3844]485 echo Libraries for readline found in $dumrep2
[3843]486 break
487 endif
[3840]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
[2724]495
496#----------------------------------------------------------------------
[2910]497#### Identification des librairies archives Sophya
498echo " "
[3840]499echo ">>>>>> 4.4/ Sophya libraries archives "
[2910]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#----------------------------------------------------------------------
[2724]529#### Generation de sophyamake.inc
530# On le cree dans le repertoire temporaire d'abord
[2720]531set mfile = $sinc/sophyamake.inc
[2724]532rm -f $mfile
[2720]533echo " "
[2724]534echo ">>>>>> 5/ Creating $mfile from $mincname "
[2720]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
[2910]551echo "# module libraries " >> $mfile
552echo "SOPMODLIBLIST = $sopmodlib" >> $mfile
553
554echo " " >> $mfile
[2720]555echo "# External libraries PATH " >> $mfile
556echo "SOPEXTLIBP = $extlibpath" >> $mfile
557echo "SOPEXTLIBLIST = $extliblib" >> $mfile
558
559echo " " >> $mfile
[2910]560echo "# PI libraries " >> $mfile
561echo "SOPPILIBLIST = $soppilib" >> $mfile
[3840]562echo "PIEXTINC = $piextinc" >> $mfile
563echo "PIEXTLIB = $piextlib" >> $mfile
564echo "PIEXTINC = $piextinc"
565echo "PIEXTLIB = $piextlib"
[2910]566
567echo " " >> $mfile
[3210]568cat $mincname >> $mfile
[2720]569
[3210]570# --- Gestion des flags modifiants les options de compilation et liste de librairies (par sed)
[3670]571set sprgfile = $TMPDIR/compop.scom
572rm -f $sprgfile
[3398]573echo '{' > $sprgfile
[3223]574set scmd = "/FLAGS/s/CNFPHFLF/ $compopt/g"
[3224]575if ( $?arch64 ) then
[3210]576 set a64cf = ' '
[3224]577 if ( ( "$sname" == "IRIX64" ) && ("$SOPHYACXX" == "CC" ) ) set a64cf = '-64'
[3227]578 if ( "$sname" == "AIX" ) then
579 if ( ("$SOPHYACXX" == "xlC" ) || ("$SOPHYACXX" == "xlc" ) ) set a64cf = '-q64'
[3230]580 echo "/ARFLAGS/s/-rcs/-rcs -X 64/" >> $sprgfile
[3227]581 endif
[3223]582 set scmd = "/FLAGS/s/CNFPHFLF/$a64cf $compopt/g"
[3210]583endif
[3818]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
[3398]593echo $scmd >> $sprgfile
[3210]594if ( $?nofpic ) echo "s/-fPIC/ /g" >> $sprgfile
595if( $?slballinone ) then
[3223]596 echo "/SOPHYAALLSLBLIST/s/-lPI -lextsophya -lsophya/-lAsophyaextPI/" >> $sprgfile
597 echo "/SOPHYAEXTSLBLIST/s/-lextsophya -lsophya/-lAsophyaextPI/" >> $sprgfile
[3210]598endif
[3840]599if ( ! $?avecEXT ) then
[3843]600 echo "/SOPHYAEXTSLBLIST/s/-lextsophya / /" >> $sprgfile
601 echo "/SOPHYAALLSLBLIST/s/-lextsophya / /" >> $sprgfile
[3840]602endif
603if ( ! $?avecPI ) then
[3843]604 echo "/SOPHYAALLSLBLIST/s/-lPI / /" >> $sprgfile
[3840]605endif
606if ( ( $?linux64 ) && ( $?arch64) ) then
[3398]607 echo "s?-L/usr/X11R6/lib?-L/usr/X11R6/lib64?g" >> $sprgfile
[3397]608endif
[3398]609echo '}' >> $sprgfile
[3210]610set mftmp = $TMPDIR/sopmake.inc
611cp $mfile $mftmp
[3670]612rm -f $mfile
[3210]613sed -f $sprgfile $mftmp > $mfile
614rm -f $sprgfile $mftmp
615# --- FIN de gestion des flags modifiants les options de compilation (par sed)
616
[2724]617rm -f $mfile:t
[2720]618ln -s $mfile $mfile:t
619
[2724]620
621#----------------------------------------------------------------------
622#### Copie de machdefs.h
[2720]623set mdefname = $TMPDIR/machdefs.h
624echo " "
[3001]625echo ">>>>>> 6.a/ Creating machdefs.h from BaseTools/machdefs_mkmf.h"
[2720]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
[3224]632# Fait avant - set sname = `uname`
[2720]633echo "#ifndef $sname" >> $mdefname
634echo "#define $sname 1 " >> $mdefname
635echo "#endif" >> $mdefname
[3202]636
[3210]637## Definition de flags de compilation en fonction des options de configure
[3202]638if ( $?arch64 ) echo "#define SO_ARCH64 1" >> $mdefname
[3210]639if ( $?sasz64 ) echo "#define SO_SASIZET64 1" >> $mdefname
[3753]640if ( $?ssldble128 ) echo "#define SO_LDBLE128 1" >> $mdefname
[3202]641if ( $?nofpic ) echo "#define SO_NOFPIC 1" >> $mdefname
[3210]642if ( $?nothsafe ) echo "#define SO_NOTHSAFE 1" >> $mdefname
[3202]643if ( $?boundcheck ) echo "#define SO_BOUNDCHECKING 1" >> $mdefname
644if ( $?sodebug ) echo "#define SOPHYA_DEBUG 1" >> $mdefname
645
[2772]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
[2724]652
[2720]653
[2724]654echo " " >> $mdefname
655grep -v -e '#ifndef *MACHDEFS_SEEN' -e '#define *MACHDEFS_SEEN' ../BaseTools/machdefs_mkmf.h >> $mdefname
[2720]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
[2724]669rm -f $mdefname
[2720]670
671
[3001]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
[3357]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
[3001]695if( $?usefftw2 ) then
[3357]696 echo "/*-- Use FFTW V2 instead of V3 -- */" >> $sinc/sspvflags.h
[3001]697 echo "#define FFTW_V2_EXTSOP" >> $sinc/sspvflags.h
698endif
699if( $?uselapack2 ) then
[3357]700 echo "/*-- Use LAPACK V2 instead of V3 -- */" >> $sinc/sspvflags.h
[3001]701 echo "#define LAPACK_V2_EXTSOP" >> $sinc/sspvflags.h
702endif
[3840]703if( $?wgrdl ) then
704 echo "/*-- Compile piapp with GNU-readline -- */" >> $sinc/sspvflags.h
705 echo "#define PIA_WITH_GNUREADLINE" >> $sinc/sspvflags.h
706endif
[3210]707if( $?slballinone ) then
[3357]708 echo "/*------ Use of single shared lib for SOPHYA+extlibs+PI ---- */" >> $sinc/sspvflags.h
[3210]709 echo "#define SO_SLBALLINONE " >> $sinc/sspvflags.h
[3001]710endif
711echo " " >> $sinc/sspvflags.h
712echo "#endif " >> $sinc/sspvflags.h
713
714
[2724]715#----------------------------------------------------------------------
716#### Creation des fichiers contenant les listes d'objets et d'includes
[2720]717echo " "
718echo ">>>>>> 7/ Creating object list files for shared library creation "
719set objlistname = $sconf/libsophya.objlist
720echo " 7.a/ Creating $objlistname "
[2724]721rm -f $objlistname ; touch $objlistname
[2751]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
[2720]727end
728
729set objlistname = $sconf/libextsophya.objlist
730echo " 7.b/ Creating $objlistname "
[2724]731rm -f $objlistname ; touch $objlistname
[2739]732set i = 0
733while ( $i < $#SOPEXT )
734 @ i += 1
[2751]735 set d = $SOPEXT[$i]
736 rm -f $sconf/$d.conf
[2739]737 if( $SOPEXTOK[$i] <= 0 ) continue
738 if ( ! -d ../$d ) continue
739 cat ../$d/objlist.list >> $objlistname
[2751]740 touch $sconf/$d.conf
[2739]741end
[2720]742
743set objlistname = $sconf/libPI.objlist
744echo " 7.c/ Creating $objlistname "
[2724]745rm -f $objlistname ; touch $objlistname
[3210]746set i = 0
747while ( $i < $#SOPPI )
748 @ i += 1
749 set d = $SOPPI[$i]
[2751]750 rm -f $sconf/$d.conf
[3210]751 if( $SOPPIOK[$i] <= 0 ) continue
[2751]752 if ( ! -d ../$d ) continue
753 cat ../$d/objlist.list >> $objlistname
754 touch $sconf/$d.conf
[2720]755end
[2724]756
757
758#----------------------------------------------------------------------
759exit 0
Note: See TracBrowser for help on using the repository browser.