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

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

petite amelioration, suppression des chemins en double -I -L ds configure, Reza 12/08/2010

  • Property svn:executable set to *
File size: 23.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] '
[3854]75 echo ' [-wgrdl] [-epip mdir1 -epip 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
[3846]216 if ( ! $?arch32 ) set arch64
[3397]217 endif
218endif
[3840]219set sname = `uname`
[3845]220if ( ( "$sname" == "IRIX64" ) || ( "$sname" == "AIX" ) ) then
[3846]221 if ( ! $?arch32 ) set arch64
[3845]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
[3846]259 if ( $?arch64 ) then
[3867]260 set defextlib = ( /usr/lib64 /usr/local/ )
[3845]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 "
[3847]391 foreach d ( $epipath $defepiinc $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 echo Includes for Motif found in $dumrep
[3867]396 if ( ( "$dumrep" != "/usr/include" ) && ( "$dumrep" != "/usr/include/" ) ) set piextinc = "-I$dumrep"
[3843]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 "
[3847]406 foreach d ( $epipath $extpathinc $extpath $defextinc )
[3843]407 set duminc = `find $followlink $d -name readline -print | head -1 `
408 set dumrep2 = $duminc:h
409 if ( "$dumrep2" != "" ) then
[3844]410 echo Includes for readline found in $dumrep2
[3867]411 if ( "$dumrep2" != "$dumrep" ) then
412 if ( ( "$dumrep2" != "/usr/include" ) && ( "$dumrep2" != "/usr/include/" ) ) set piextinc = "-I$dumrep2 $piextinc"
413 endif
[3840]414 break
415 endif
416 end
417 if ( "$dumrep2" == "" ) then
418 echo WARNING: Includes for readline NOT found
419 echo ' expect problems when compiling piapp, check sophyamake.inc ... '
420 endif
421 endif
422endif
423
[2724]424#----------------------------------------------------------------------
425#### liens des librairies externes
[2720]426echo " "
[2910]427echo ">>>>>> 4.1/ External libraries "
[2720]428set fpath = $TMPDIR/fpath
429rm -f $fpath; touch $fpath
430set extliblib
431set i = 0
432while ( $i < $#SOPEXT )
433 @ i += 1
434 if( "$EXTLIBNAME[$i]" == "PASDELIB" ) continue
435 if( $SOPEXTOK[$i] <= 0 ) continue
436 set nom = $EXTLIBNAME[$i]
437 if( -d ../$SOPEXT[$i] ) then
438 echo "Searching libraries path for $SOPEXT[$i] ..."
[2724]439 foreach d ( $extpathlib $extpath $defextlib )
[3843]440 set dumlib = `find $followlink $d -name $nom -print | head -1 `
[2720]441 if ( "$dumlib" != "" ) then
442 echo "-L$dumlib:h" >> $fpath
443 set extliblib = ( $extliblib $ALLEXTLIBS[$i] )
444 break
445 endif
446 end
447 if ( "$dumlib" == "" ) then
448 echo WARNING: Libraries for $SOPEXT[$i] NOT found
449 echo " Check the generated make.inc file"
450 endif
451 endif
452end
453set extlibpath = `cat $fpath | sort -u`
454echo extlibpath= $extlibpath
455echo extliblib= $extliblib
[2724]456rm -f $fpath
[2720]457
[3840]458### recherche des librairies Motif et si besoin readline
[3867]459set piextlib = "-L$defepilib -lXm"
[3840]460if ( $?avecPI ) then
461 echo " "
462 echo ">>>>>> 4.2/ searching library Motif (libXm.a) "
[3847]463 foreach d ( $epipath $defepilib $extpathlib $extpath $defextlib )
[3843]464 set dumlib = `find $followlink $d -name libXm.a -print | head -1 `
[3840]465 set dumrep = $dumlib:h
466 if ( "$dumrep" != "" ) then
[3843]467 echo Motif library found in $dumrep
[3867]468 if ( ( "$dumrep" != "/usr/lib" ) && ( "$dumrep" != "/usr/lib/" ) && \
469 ( "$dumrep" != "/usr/lib64" ) && ( "$dumrep" != "/usr/lib64/" ) && \
470 ( "$dumrep" != "/usr/X11R6/lib" ) && ( "$dumrep" != "/usr/X11R6/lib/" ) && \
471 ( "$dumrep" != "/usr/X11R6/lib64" ) && ( "$dumrep" != "/usr/X11R6/lib64/" ) ) set piextlib = "-L$dumrep -lXm"
[3843]472 break
473 endif
[3840]474 end
475 if ( "$dumrep" == "" ) then
476 echo WARNING: Motif library NOT found
477 echo ' expect problems when for linking with PI, check sophyamake.inc ... '
478 endif
479 if ( $?wgrdl ) then
480 echo ">>>>>> 4.3/ searching libraries for GNU readline "
[3847]481 foreach d ( $epipath $extpathlib $extpath $defextlib )
[3843]482 set dumlib = `find $followlink $d -name libreadline.a -print | head -1 `
[3840]483 set dumrep2 = $dumlib:h
484 if ( "$dumrep2" != "" ) then
[3867]485 if ( ( "$dumrep2" != "$dumrep" ) && \
486 ( "$dumrep2" != "/usr/lib" ) && ( "$dumrep2" != "/usr/lib/" ) && \
487 ( "$dumrep2" != "/usr/lib64" ) && ( "$dumrep2" != "/usr/lib64/" ) && \
488 ( "$dumrep2" != "/usr/X11R6/lib" ) && ( "$dumrep2" != "/usr/X11R6/lib/" ) && \
489 ( "$dumrep2" != "/usr/X11R6/lib64" ) && ( "$dumrep2" != "/usr/X11R6/lib64/" ) ) then
[3848]490 set piextlib = "-L$dumrep2 -lreadline -lhistory -lcurses $piextlib "
[3843]491 else
[3848]492 set piextlib = "$piextlib -lreadline -lhistory -lcurses "
[3840]493 endif
[3844]494 echo Libraries for readline found in $dumrep2
[3843]495 break
496 endif
[3840]497 end
[3867]498 if ( "$dumrep2" == "" ) then
499 set piextlib = "$piextlib -lreadline -lhistory -lcurses "
[3840]500 echo WARNING: libraries for readline NOT found
[3867]501 echo ' expect problems when linking piapp, check sophyamake.inc ... '
[3840]502 endif
503 endif
504endif
[2724]505
506#----------------------------------------------------------------------
[2910]507#### Identification des librairies archives Sophya
508echo " "
[3840]509echo ">>>>>> 4.4/ Sophya libraries archives "
[2910]510set sopmodlib
511set i = 0
512while ( $i < $#SOPMOD )
513 @ i += 1
514 if( $SOPMODOK[$i] <= 0 ) continue
515 if( -d ../$SOPMOD[$i] ) then
516 set sopmodlib = ( $sopmodlib $ALLSOPLIBS[$i] )
517 else
518 echo "WARNING: module "$SOPMOD[$i]" not found"
519 endif
520end
521echo sopmodlib= $sopmodlib
522
523echo " "
524echo ">>>>>> 4.3/ PI-Sophya libraries archives "
525set soppilib
526set i = 0
527while ( $i < $#SOPPI )
528 @ i += 1
529 if( $SOPPIOK[$i] <= 0 ) continue
530 if( -d ../$SOPPI[$i] ) then
531 set soppilib = ( $soppilib $ALLPILIBS[$i] )
532 else
533 echo "WARNING: module "$SOPPI[$i]" not found"
534 endif
535end
536echo soppilib= $soppilib
537
538#----------------------------------------------------------------------
[2724]539#### Generation de sophyamake.inc
540# On le cree dans le repertoire temporaire d'abord
[2720]541set mfile = $sinc/sophyamake.inc
[2724]542rm -f $mfile
[2720]543echo " "
[2724]544echo ">>>>>> 5/ Creating $mfile from $mincname "
[2720]545echo "# -----------------------------------------------" > $mfile
546echo "# File make.inc - generated by SOPHYA configure" >> $mfile
547echo "# Date" `date` >> $mfile
548echo "# Seed file : $mincname " >> $mfile
549echo "# -----------------------------------------------" >> $mfile
550echo " " >> $mfile
551echo "# SOPHYA Base installation directory " >> $mfile
552echo "SOPHYABASE = $SOPHYABASE" >> $mfile
553echo " " >> $mfile
554echo 'SOPHYAINCP = $(SOPHYABASE)/include/' >> $mfile
555echo 'SOPHYAOBJP = $(SOPHYABASE)/obj/' >> $mfile
556echo 'SOPHYALIBP = $(SOPHYABASE)/lib/' >> $mfile
557echo 'SOPHYASLBP = $(SOPHYABASE)/slb/' >> $mfile
558echo 'SOPHYAEXEP = $(SOPHYABASE)/exe/' >> $mfile
559
560echo " " >> $mfile
[2910]561echo "# module libraries " >> $mfile
562echo "SOPMODLIBLIST = $sopmodlib" >> $mfile
563
564echo " " >> $mfile
[2720]565echo "# External libraries PATH " >> $mfile
566echo "SOPEXTLIBP = $extlibpath" >> $mfile
567echo "SOPEXTLIBLIST = $extliblib" >> $mfile
568
569echo " " >> $mfile
[2910]570echo "# PI libraries " >> $mfile
571echo "SOPPILIBLIST = $soppilib" >> $mfile
[3840]572echo "PIEXTINC = $piextinc" >> $mfile
573echo "PIEXTLIB = $piextlib" >> $mfile
574echo "PIEXTINC = $piextinc"
575echo "PIEXTLIB = $piextlib"
[2910]576
577echo " " >> $mfile
[3210]578cat $mincname >> $mfile
[2720]579
[3210]580# --- Gestion des flags modifiants les options de compilation et liste de librairies (par sed)
[3670]581set sprgfile = $TMPDIR/compop.scom
582rm -f $sprgfile
[3398]583echo '{' > $sprgfile
[3223]584set scmd = "/FLAGS/s/CNFPHFLF/ $compopt/g"
[3224]585if ( $?arch64 ) then
[3210]586 set a64cf = ' '
[3224]587 if ( ( "$sname" == "IRIX64" ) && ("$SOPHYACXX" == "CC" ) ) set a64cf = '-64'
[3227]588 if ( "$sname" == "AIX" ) then
589 if ( ("$SOPHYACXX" == "xlC" ) || ("$SOPHYACXX" == "xlc" ) ) set a64cf = '-q64'
[3230]590 echo "/ARFLAGS/s/-rcs/-rcs -X 64/" >> $sprgfile
[3227]591 endif
[3223]592 set scmd = "/FLAGS/s/CNFPHFLF/$a64cf $compopt/g"
[3210]593endif
[3818]594if ( $?arch32 ) then
595 set a32cf = ' '
596 if ( ( "$sname" == "Linux" ) && ("$SOPHYACXX" == "g++" ) ) set a32cf = '-m32'
597 if ( "$sname" == "AIX" ) then
598 if ( ("$SOPHYACXX" == "xlC" ) || ("$SOPHYACXX" == "xlc" ) ) set a32cf = '-q32'
599 endif
600 set scmd = "/FLAGS/s/CNFPHFLF/$a32cf $compopt/g"
601endif
602
[3398]603echo $scmd >> $sprgfile
[3210]604if ( $?nofpic ) echo "s/-fPIC/ /g" >> $sprgfile
605if( $?slballinone ) then
[3223]606 echo "/SOPHYAALLSLBLIST/s/-lPI -lextsophya -lsophya/-lAsophyaextPI/" >> $sprgfile
607 echo "/SOPHYAEXTSLBLIST/s/-lextsophya -lsophya/-lAsophyaextPI/" >> $sprgfile
[3210]608endif
[3840]609if ( ! $?avecEXT ) then
[3843]610 echo "/SOPHYAEXTSLBLIST/s/-lextsophya / /" >> $sprgfile
611 echo "/SOPHYAALLSLBLIST/s/-lextsophya / /" >> $sprgfile
[3840]612endif
613if ( ! $?avecPI ) then
[3843]614 echo "/SOPHYAALLSLBLIST/s/-lPI / /" >> $sprgfile
[3840]615endif
616if ( ( $?linux64 ) && ( $?arch64) ) then
[3867]617 echo "s?-L/usr/lib?-L/usr/lib64?g" >> $sprgfile
[3398]618 echo "s?-L/usr/X11R6/lib?-L/usr/X11R6/lib64?g" >> $sprgfile
[3397]619endif
[3398]620echo '}' >> $sprgfile
[3210]621set mftmp = $TMPDIR/sopmake.inc
622cp $mfile $mftmp
[3670]623rm -f $mfile
[3210]624sed -f $sprgfile $mftmp > $mfile
625rm -f $sprgfile $mftmp
626# --- FIN de gestion des flags modifiants les options de compilation (par sed)
627
[2724]628rm -f $mfile:t
[2720]629ln -s $mfile $mfile:t
630
[2724]631
632#----------------------------------------------------------------------
633#### Copie de machdefs.h
[2720]634set mdefname = $TMPDIR/machdefs.h
635echo " "
[3001]636echo ">>>>>> 6.a/ Creating machdefs.h from BaseTools/machdefs_mkmf.h"
[2720]637rm -f $mdefname; touch $mdefname
638echo "/*** machdefs.h generated by SOPHYA configure ***/" >> $mdefname
639echo "#ifndef MACHDEFS_SEEN" >> $mdefname
640echo "#define MACHDEFS_SEEN" >> $mdefname
641echo "/*------ Code generation switch ---- */" >> $mdefname
642echo "/* System selector (uname) */" >> $mdefname
[3224]643# Fait avant - set sname = `uname`
[2720]644echo "#ifndef $sname" >> $mdefname
645echo "#define $sname 1 " >> $mdefname
646echo "#endif" >> $mdefname
[3202]647
[3210]648## Definition de flags de compilation en fonction des options de configure
[3202]649if ( $?arch64 ) echo "#define SO_ARCH64 1" >> $mdefname
[3210]650if ( $?sasz64 ) echo "#define SO_SASIZET64 1" >> $mdefname
[3753]651if ( $?ssldble128 ) echo "#define SO_LDBLE128 1" >> $mdefname
[3202]652if ( $?nofpic ) echo "#define SO_NOFPIC 1" >> $mdefname
[3210]653if ( $?nothsafe ) echo "#define SO_NOTHSAFE 1" >> $mdefname
[3202]654if ( $?boundcheck ) echo "#define SO_BOUNDCHECKING 1" >> $mdefname
655if ( $?sodebug ) echo "#define SOPHYA_DEBUG 1" >> $mdefname
656
[2772]657if ( "$sname" == "IRIX64" ) then
658 if ( "$SOPHYACXX" == "CC" ) then
659# __SGICC__ : flag indiquant que c'est le compilo CC de SGI
660 echo "#define __SGICC__ 1" >> $mdefname
661 endif
662endif
[2724]663
[2720]664
[2724]665echo " " >> $mdefname
666grep -v -e '#ifndef *MACHDEFS_SEEN' -e '#define *MACHDEFS_SEEN' ../BaseTools/machdefs_mkmf.h >> $mdefname
[2720]667# On ne copie que si machdefs.h est different
668if (-e $sinc/machdefs.h ) then
669 diff $mdefname $sinc/machdefs.h >& /dev/null
670 if ($status != 0) then
671 cp -f -p $mdefname $sinc/machdefs.h
672 echo " file $sinc/machdefs.h changed -> replaced"
673 else
674 echo " file $sinc/machdefs.h has not changed -> kept"
675 endif
676else
677 cp -f -p $mdefname $sinc/machdefs.h
678 echo " file $sinc/machdefs.h created"
679endif
[2724]680rm -f $mdefname
[2720]681
682
[3001]683#### Creation de sspvflags.h
684echo " "
685echo ">>>>>> 6.b/ Creating $sinc/sspvflags.h "
686rm -f $sinc/sspvflags.h; touch $sinc/sspvflags.h
687
688echo "#ifndef SSPVFLAGS_SEEN" >> $sinc/sspvflags.h
689echo "#define SSPVFLAGS_SEEN" >> $sinc/sspvflags.h
690echo " " >> $sinc/sspvflags.h
691echo "/*------ External libraries no-use flag ---- */" >> $sinc/sspvflags.h
692set i = 0
693while ( $i < $#SOPEXTOK )
694 @ i += 1
695 if( $SOPEXTOK[$i] > 0 ) continue
696 echo "#define SOPHYA_NO_$SOPEXT[$i]" >> $sinc/sspvflags.h
697end
698
699echo " " >> $sinc/sspvflags.h
[3357]700echo "/*------ SOPOHYA/ExtLibsvVersion selection flags ---- */" >> $sinc/sspvflags.h
701echo " " >> $sinc/sspvflags.h
702if( $?alsofftwfloat ) then
703 echo "/*-- Compile ALSO float version of FFTWServer methods -- */" >> $sinc/sspvflags.h
704 echo "#define ALSO_FFTW_FLOAT_EXTSOP" >> $sinc/sspvflags.h
705endif
[3001]706if( $?usefftw2 ) then
[3357]707 echo "/*-- Use FFTW V2 instead of V3 -- */" >> $sinc/sspvflags.h
[3001]708 echo "#define FFTW_V2_EXTSOP" >> $sinc/sspvflags.h
709endif
710if( $?uselapack2 ) then
[3357]711 echo "/*-- Use LAPACK V2 instead of V3 -- */" >> $sinc/sspvflags.h
[3001]712 echo "#define LAPACK_V2_EXTSOP" >> $sinc/sspvflags.h
713endif
[3840]714if( $?wgrdl ) then
715 echo "/*-- Compile piapp with GNU-readline -- */" >> $sinc/sspvflags.h
716 echo "#define PIA_WITH_GNUREADLINE" >> $sinc/sspvflags.h
717endif
[3210]718if( $?slballinone ) then
[3357]719 echo "/*------ Use of single shared lib for SOPHYA+extlibs+PI ---- */" >> $sinc/sspvflags.h
[3210]720 echo "#define SO_SLBALLINONE " >> $sinc/sspvflags.h
[3001]721endif
722echo " " >> $sinc/sspvflags.h
723echo "#endif " >> $sinc/sspvflags.h
724
725
[2724]726#----------------------------------------------------------------------
727#### Creation des fichiers contenant les listes d'objets et d'includes
[2720]728echo " "
729echo ">>>>>> 7/ Creating object list files for shared library creation "
730set objlistname = $sconf/libsophya.objlist
731echo " 7.a/ Creating $objlistname "
[2724]732rm -f $objlistname ; touch $objlistname
[2751]733foreach d ( $SOPMOD )
734 rm -f $sconf/$d.conf
735 if ( ! -d ../$d ) continue
736 cat ../$d/objlist.list >> $objlistname
737 touch $sconf/$d.conf
[2720]738end
739
740set objlistname = $sconf/libextsophya.objlist
741echo " 7.b/ Creating $objlistname "
[2724]742rm -f $objlistname ; touch $objlistname
[2739]743set i = 0
744while ( $i < $#SOPEXT )
745 @ i += 1
[2751]746 set d = $SOPEXT[$i]
747 rm -f $sconf/$d.conf
[2739]748 if( $SOPEXTOK[$i] <= 0 ) continue
749 if ( ! -d ../$d ) continue
750 cat ../$d/objlist.list >> $objlistname
[2751]751 touch $sconf/$d.conf
[2739]752end
[2720]753
754set objlistname = $sconf/libPI.objlist
755echo " 7.c/ Creating $objlistname "
[2724]756rm -f $objlistname ; touch $objlistname
[3210]757set i = 0
758while ( $i < $#SOPPI )
759 @ i += 1
760 set d = $SOPPI[$i]
[2751]761 rm -f $sconf/$d.conf
[3210]762 if( $SOPPIOK[$i] <= 0 ) continue
[2751]763 if ( ! -d ../$d ) continue
764 cat ../$d/objlist.list >> $objlistname
765 touch $sconf/$d.conf
[2720]766end
[2724]767
768
769#----------------------------------------------------------------------
770exit 0
Note: See TracBrowser for help on using the repository browser.