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

Last change on this file since 4083 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
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 -epip 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/ )
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 echo Includes for Motif found in $dumrep
396 if ( ( "$dumrep" != "/usr/include" ) && ( "$dumrep" != "/usr/include/" ) ) set piextinc = "-I$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 echo Includes for readline found in $dumrep2
411 if ( "$dumrep2" != "$dumrep" ) then
412 if ( ( "$dumrep2" != "/usr/include" ) && ( "$dumrep2" != "/usr/include/" ) ) set piextinc = "-I$dumrep2 $piextinc"
413 endif
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
424#----------------------------------------------------------------------
425#### liens des librairies externes
426echo " "
427echo ">>>>>> 4.1/ External libraries "
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] ..."
439 foreach d ( $extpathlib $extpath $defextlib )
440 set dumlib = `find $followlink $d -name $nom -print | head -1 `
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
456rm -f $fpath
457
458### recherche des librairies Motif et si besoin readline
459set piextlib = "-L$defepilib -lXm"
460if ( $?avecPI ) then
461 echo " "
462 echo ">>>>>> 4.2/ searching library Motif (libXm.a) "
463 foreach d ( $epipath $defepilib $extpathlib $extpath $defextlib )
464 set dumlib = `find $followlink $d -name libXm.a -print | head -1 `
465 set dumrep = $dumlib:h
466 if ( "$dumrep" != "" ) then
467 echo Motif library found in $dumrep
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"
472 break
473 endif
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 "
481 foreach d ( $epipath $extpathlib $extpath $defextlib )
482 set dumlib = `find $followlink $d -name libreadline.a -print | head -1 `
483 set dumrep2 = $dumlib:h
484 if ( "$dumrep2" != "" ) then
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
490 set piextlib = "-L$dumrep2 -lreadline -lhistory -lcurses $piextlib "
491 else
492 set piextlib = "$piextlib -lreadline -lhistory -lcurses "
493 endif
494 echo Libraries for readline found in $dumrep2
495 break
496 endif
497 end
498 if ( "$dumrep2" == "" ) then
499 set piextlib = "$piextlib -lreadline -lhistory -lcurses "
500 echo WARNING: libraries for readline NOT found
501 echo ' expect problems when linking piapp, check sophyamake.inc ... '
502 endif
503 endif
504endif
505
506#----------------------------------------------------------------------
507#### Identification des librairies archives Sophya
508echo " "
509echo ">>>>>> 4.4/ Sophya libraries archives "
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#----------------------------------------------------------------------
539#### Generation de sophyamake.inc
540# On le cree dans le repertoire temporaire d'abord
541set mfile = $sinc/sophyamake.inc
542rm -f $mfile
543echo " "
544echo ">>>>>> 5/ Creating $mfile from $mincname "
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
561echo "# module libraries " >> $mfile
562echo "SOPMODLIBLIST = $sopmodlib" >> $mfile
563
564echo " " >> $mfile
565echo "# External libraries PATH " >> $mfile
566echo "SOPEXTLIBP = $extlibpath" >> $mfile
567echo "SOPEXTLIBLIST = $extliblib" >> $mfile
568
569echo " " >> $mfile
570echo "# PI libraries " >> $mfile
571echo "SOPPILIBLIST = $soppilib" >> $mfile
572echo "PIEXTINC = $piextinc" >> $mfile
573echo "PIEXTLIB = $piextlib" >> $mfile
574echo "PIEXTINC = $piextinc"
575echo "PIEXTLIB = $piextlib"
576
577echo " " >> $mfile
578cat $mincname >> $mfile
579
580# --- Gestion des flags modifiants les options de compilation et liste de librairies (par sed)
581set sprgfile = $TMPDIR/compop.scom
582rm -f $sprgfile
583echo '{' > $sprgfile
584set scmd = "/FLAGS/s/CNFPHFLF/ $compopt/g"
585if ( $?arch64 ) then
586 set a64cf = ' '
587 if ( ( "$sname" == "IRIX64" ) && ("$SOPHYACXX" == "CC" ) ) set a64cf = '-64'
588 if ( "$sname" == "AIX" ) then
589 if ( ("$SOPHYACXX" == "xlC" ) || ("$SOPHYACXX" == "xlc" ) ) set a64cf = '-q64'
590 echo "/ARFLAGS/s/-rcs/-rcs -X 64/" >> $sprgfile
591 endif
592 set scmd = "/FLAGS/s/CNFPHFLF/$a64cf $compopt/g"
593endif
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
603echo $scmd >> $sprgfile
604if ( $?nofpic ) echo "s/-fPIC/ /g" >> $sprgfile
605if( $?slballinone ) then
606 echo "/SOPHYAALLSLBLIST/s/-lPI -lextsophya -lsophya/-lAsophyaextPI/" >> $sprgfile
607 echo "/SOPHYAEXTSLBLIST/s/-lextsophya -lsophya/-lAsophyaextPI/" >> $sprgfile
608endif
609if ( ! $?avecEXT ) then
610 echo "/SOPHYAEXTSLBLIST/s/-lextsophya / /" >> $sprgfile
611 echo "/SOPHYAALLSLBLIST/s/-lextsophya / /" >> $sprgfile
612endif
613if ( ! $?avecPI ) then
614 echo "/SOPHYAALLSLBLIST/s/-lPI / /" >> $sprgfile
615endif
616if ( ( $?linux64 ) && ( $?arch64) ) then
617 echo "s?-L/usr/lib?-L/usr/lib64?g" >> $sprgfile
618 echo "s?-L/usr/X11R6/lib?-L/usr/X11R6/lib64?g" >> $sprgfile
619endif
620echo '}' >> $sprgfile
621set mftmp = $TMPDIR/sopmake.inc
622cp $mfile $mftmp
623rm -f $mfile
624sed -f $sprgfile $mftmp > $mfile
625rm -f $sprgfile $mftmp
626# --- FIN de gestion des flags modifiants les options de compilation (par sed)
627
628rm -f $mfile:t
629ln -s $mfile $mfile:t
630
631
632#----------------------------------------------------------------------
633#### Copie de machdefs.h
634set mdefname = $TMPDIR/machdefs.h
635echo " "
636echo ">>>>>> 6.a/ Creating machdefs.h from BaseTools/machdefs_mkmf.h"
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
643# Fait avant - set sname = `uname`
644echo "#ifndef $sname" >> $mdefname
645echo "#define $sname 1 " >> $mdefname
646echo "#endif" >> $mdefname
647
648## Definition de flags de compilation en fonction des options de configure
649if ( $?arch64 ) echo "#define SO_ARCH64 1" >> $mdefname
650if ( $?sasz64 ) echo "#define SO_SASIZET64 1" >> $mdefname
651if ( $?ssldble128 ) echo "#define SO_LDBLE128 1" >> $mdefname
652if ( $?nofpic ) echo "#define SO_NOFPIC 1" >> $mdefname
653if ( $?nothsafe ) echo "#define SO_NOTHSAFE 1" >> $mdefname
654if ( $?boundcheck ) echo "#define SO_BOUNDCHECKING 1" >> $mdefname
655if ( $?sodebug ) echo "#define SOPHYA_DEBUG 1" >> $mdefname
656
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
663
664
665echo " " >> $mdefname
666grep -v -e '#ifndef *MACHDEFS_SEEN' -e '#define *MACHDEFS_SEEN' ../BaseTools/machdefs_mkmf.h >> $mdefname
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
680rm -f $mdefname
681
682
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
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
706if( $?usefftw2 ) then
707 echo "/*-- Use FFTW V2 instead of V3 -- */" >> $sinc/sspvflags.h
708 echo "#define FFTW_V2_EXTSOP" >> $sinc/sspvflags.h
709endif
710if( $?uselapack2 ) then
711 echo "/*-- Use LAPACK V2 instead of V3 -- */" >> $sinc/sspvflags.h
712 echo "#define LAPACK_V2_EXTSOP" >> $sinc/sspvflags.h
713endif
714if( $?wgrdl ) then
715 echo "/*-- Compile piapp with GNU-readline -- */" >> $sinc/sspvflags.h
716 echo "#define PIA_WITH_GNUREADLINE" >> $sinc/sspvflags.h
717endif
718if( $?slballinone ) then
719 echo "/*------ Use of single shared lib for SOPHYA+extlibs+PI ---- */" >> $sinc/sspvflags.h
720 echo "#define SO_SLBALLINONE " >> $sinc/sspvflags.h
721endif
722echo " " >> $sinc/sspvflags.h
723echo "#endif " >> $sinc/sspvflags.h
724
725
726#----------------------------------------------------------------------
727#### Creation des fichiers contenant les listes d'objets et d'includes
728echo " "
729echo ">>>>>> 7/ Creating object list files for shared library creation "
730set objlistname = $sconf/libsophya.objlist
731echo " 7.a/ Creating $objlistname "
732rm -f $objlistname ; touch $objlistname
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
738end
739
740set objlistname = $sconf/libextsophya.objlist
741echo " 7.b/ Creating $objlistname "
742rm -f $objlistname ; touch $objlistname
743set i = 0
744while ( $i < $#SOPEXT )
745 @ i += 1
746 set d = $SOPEXT[$i]
747 rm -f $sconf/$d.conf
748 if( $SOPEXTOK[$i] <= 0 ) continue
749 if ( ! -d ../$d ) continue
750 cat ../$d/objlist.list >> $objlistname
751 touch $sconf/$d.conf
752end
753
754set objlistname = $sconf/libPI.objlist
755echo " 7.c/ Creating $objlistname "
756rm -f $objlistname ; touch $objlistname
757set i = 0
758while ( $i < $#SOPPI )
759 @ i += 1
760 set d = $SOPPI[$i]
761 rm -f $sconf/$d.conf
762 if( $SOPPIOK[$i] <= 0 ) continue
763 if ( ! -d ../$d ) continue
764 cat ../$d/objlist.list >> $objlistname
765 touch $sconf/$d.conf
766end
767
768
769#----------------------------------------------------------------------
770exit 0
Note: See TracBrowser for help on using the repository browser.