Changeset 740 in Sophya for trunk/SophyaLib


Ignore:
Timestamp:
Feb 25, 2000, 7:34:49 PM (26 years ago)
Author:
ansari
Message:

Mise en place nouveau schema de creation des Makefile et shared-libs , Reza 25/02/2000

Location:
trunk/SophyaLib/Mgr
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/Mgr/Makefile.h

    r737 r740  
    11#  -*- makefile -*-
    2 # ######################### PEIDA++ #############################
     2# #########################  Sophya #############################
    33# ##### LAL (Orsay) / IN2P3-CNRS  DAPNIA/SPP (Saclay) / CEA #####
    44# ###############################################################
    5 # General setup GNU Makefile for EROS. To be included in all makefiles. 
     5# General setup GNU Makefile for Sopyha/Planck. To be included in all makefiles. 
    66# Define  makefile variables according to CPU
    77# MACHEROSD = `uname | sed 's/-//'`   i.e. { AIX HPUX OSF1 Linux ... }
     
    153153endif
    154154
    155 
    156 # Chemin pour la librairie cfitsio
    157 # les *.h doivent etre sous $CFITSIODIR
    158 # la librairie *.a sous $CFITSIODIR
    159 # ifdef CFITSIODIR
    160 #  FITSIOREP := -I$(CFITSIODIR)
    161 #  FITSIOLIB := -L$(CFITSIODIR)/$(MACHDIR) -lcfitsio
    162 # endif
    163 
    164155# Chemin pour les include et fichiers d'autres librairies
    165 EXTINC :=
    166 EXTLIB :=
    167 EXTSLB :=
     156EXTINCPI :=
     157EXTLIBPL :=
     158EXTSLBPL :=
     159EXTINCPATH :=
     160EXTLIBPATH :=
     161EXTSLBPATH :=
    168162
    169163ifdef EXTLIBDIR
    170  EXTINC := $(EXTLIBDIR)/Include/
    171  EXTLIB := $(EXTLIBDIR)/$(MACHDIR)/Libs/
    172  EXTSLB := $(EXTLIBDIR)/$(MACHDIR)/ShLibs/
     164 EXTINCPI := -I$(EXTLIBDIR)/Include/
     165 EXTLIBPL := -L$(EXTLIBDIR)/$(MACHDIR)/Libs/
     166 EXTSLBPL := -L$(EXTLIBDIR)/$(MACHDIR)/ShLibs/
     167 EXTINCPATH := $(EXTLIBDIR)/Include/
     168 EXTLIBPATH := $(EXTLIBDIR)/$(MACHDIR)/Libs/
     169 EXTSLBPATH := $(EXTLIBDIR)/$(MACHDIR)/ShLibs/
    173170endif
    174171
     
    178175#endif
    179176
    180 CPPFLAGS     :=  -I${INC} -I$(EXTINC) -D${MACHEROSD} $(MODULECPPFLAGS)
     177CPPFLAGS     :=  -I${INC} $(EXTINCPI) -D${MACHEROSD} $(MODULECPPFLAGS)
    181178
    182179# Les options selon les divers compilateurs
  • trunk/SophyaLib/Mgr/Makefile.slb

    r663 r740  
    1 
    2 ifndef NOSHLIB
    3 
    4 ifdef CFITSIODIR
    5 PSLB = $(LIB)libSysTools.a $(LIB)libNTools.a $(LIB)libSamba.a $(LIB)libSkyT.a $(LIB)libFitsIOServer.a
    6 else
    7 PSLB = $(LIB)libSysTools.a $(LIB)libNTools.a $(LIB)libSamba.a $(LIB)libSkyT.a
    8 endif
    9 slb : $(SLB)libtools.so
    10 slbpi: slb $(SLB)libPI.so
     1#  -*- makefile -*-
     2# #########################  Sophya #############################
     3# ##### LAL (Orsay) / IN2P3-CNRS  DAPNIA/SPP (Saclay) / CEA #####
     4# ###############################################################
     5# General setup GNU Makefile for Sopyha/Planck. To be included
     6# for building shared libraries
     7#---------------------------------------------------------------------------
    118
    129#  Chemin des librairies Motifs / X11 (pour chemin non standard)
    13 LIBXPATH :=
     10LIBXPIPATH :=
     11# et liste des librairies pour PI (X11, Motif)
     12LIBXPILIST := -lXm -lXt -lX11
     13
     14#  External libraries
     15EXTLIB :=
     16EXTSLB :=
     17
    1418#  Commande de construction de shared-lib
    1519CMDSHL := ld -partage
     
    1822FGSHLN := -rien
    1923#  Librairies specifiques
    20 LIBLSHL :=
     24LIBLSHL := -lm -lc
    2125#  Librairie d'instanciation des templates
    2226TILSHL :=
    2327TILSHLPI :=
    2428#   Commande de construction de la librairie d'instanciation des templates
    25 CMDTILSHL := echo 'Cas Non Prevu'
    26 CMDTILSHLPI := echo 'Cas Non Prevu'
     29CMDTILSHL := echo 'No Template instanciation library (.a)'
     30CMDTILSHLPI  := echo 'No Template instanciation library (.a)'
    2731# Utilisation du compilo C++ comme driver pour fabrication des shared-libs
    2832CMDSHLCXX := $(LINK.cc)
     
    3034FGSHLNCXX :=
    3135#  S'il faut utiliser $(CMDSHLCXX) pour fabrication des shared-libs
    32 USECXX4SO := N
     36USECXX4SO := Y
    3337# On utilise le compilo g++ pour la fabrication des shared libs
    3438ifeq ($(EROSCXX), g++)
     
    5660  override LIBLSHL := -lcxxstd -lcxx -lexc -lm -lc -lrt
    5761  override TILSHL := $(LIB)libertcxx.a
    58   override CMDTILSHL := rm -f $(LIB)libertcxx.a ; cd $(REP); $(AR) $(ARFLAGS) $(LIB)libertcxx.a *.o
    59   override TILSHLPI := $(LIB)libertcxxpi.a
    60   override CMDTILSHLPI := rm -f $(LIB)libertcxxpi.a ; cd $(REPPI); $(AR) $(ARFLAGS) $(LIB)libertcxxpi.a *.o
     62  override CMDTILSHL := rm -f $(LIB)libsotcxx.a ; cd $(REP); $(AR) $(ARFLAGS) $(LIB)libsotcxx.a *.o
     63  override TILSHLPI := $(LIB)libsotcxxpi.a
     64  override CMDTILSHLPI := rm -f $(LIB)libsotcxxpi.a ; cd $(REPPI); $(AR) $(ARFLAGS) $(LIB)libsotcxxpi.a *.o
    6165  ifeq ($(CXX),g++)
    6266    override LIBLSHL := $(LIBG) -lm -lc
    6367    override TILSHL :=
    64     override CMDTILSHL := echo 'No Template instanciation library'
    6568    override TILSHLPI :=
    66     override CMDTILSHLPI := echo 'No Template instanciation library'
    67     override USECXX4SO := N
    6869  endif
    6970#  Attention - Dangereux de mettre -expect_unresolved , enleve  Reza 17/11/99
    70   override CMDSHLCXX := $(LINK.cc) -shared
     71  override CMDSHLCXX :=  $(CXX) $(CXXFLAGS) -shared
    7172  override FGSHLACXX :=
    7273  override FGSHLNCXX :=
     
    8687  override LIBLSHL := $(LIBG) -lm -ldl
    8788  override TILSHL :=
    88   override CMDTILSHL := echo 'No Template instanciation library'
    89   override LIBXPATH := -L/usr/X11/lib -L/usr/X11R6/lib
     89  override LIBXPIPATH := -L/usr/X11/lib
     90  override LIBXPILIST := -lXm -lXt -lXext -lX11
    9091endif
    9192
     
    9798  override LIBLSHL := $(LIBG) -lm -lc
    9899  override TILSHL :=
    99   override CMDTILSHL := echo 'No Template instanciation library'
    100   override LIBXPATH := -L/usr/X11/lib
     100  override LIBXPIPATH := -L/usr/X11/lib
    101101  override USECXX4SO := Y
    102102endif
     
    109109  override LIBLSHL := $(LIBG) -lm -lc
    110110  override TILSHL :=
    111   override CMDTILSHL := echo 'No Template instanciation library'
    112111  ifeq ($(EROSCXX), CC)
    113112    override CMDSHLCXX := CC -shared
    114113    override LIBLSHL := -lm -lc
    115114  endif
    116   override LIBXPATH := -L/usr/X11/lib
     115  override LIBXPIPATH := -L/usr/X11/lib
    117116  override USECXX4SO := Y
    118117endif
    119118
    120 # Liste des .o associes a une librairie
    121 OBJSysTools = $(shell echo `cat ./SysTools/SysTools.o.list`)
    122 OBJNTools = $(shell echo `cat ./NTools/NTools.o.list`)
    123 # OBJBlitz = $(shell echo `cat ./Blitz/Blitz.o.list`)
    124 OBJSamba = $(shell echo `cat ./Samba/Samba.o.list`)
    125 OBJSkyT = $(shell echo `cat ./SkyT/SkyT.o.list`)
    126 OBJFitsIOServer = $(shell echo `cat ./FitsIOServer/FitsIOServer.o.list`)
    127 OBJPI         = $(shell echo `cat ./PI/PI.o.list`)
    128 OBJPIext      = $(shell echo `cat ./PIext/PIext.o.list`)
    129 
    130 ifdef CFITSIODIR
    131 AllObjs := $(OBJSysTools) $(OBJNTools) $(OBJSamba) $(OBJSkyT) $(OBJFitsIOServer)
    132 else
    133 AllObjs := $(OBJSysTools) $(OBJNTools) $(OBJSamba) $(OBJSkyT)
    134 endif
    135 
    136 # Creation des librairies partagees
    137 
    138 
    139 #------------------------------------------------------------
    140 $(SLB)libtools.so : $(PSLB)
    141         $(CMDTILSHL)
    142         cd $(OBJ); \
    143         $(CMDSHLCXX) -o $(SLB)libtools.so \
    144         $(FGSHLACXX) $(AllObjs)  $(TILSHL) \
    145         $(FGSHLNCXX) -L$(SLB) $(LIBLSHL)  $(FITSIOLIB)
    146 
    147 
    148 $(SLB)libPI.so : $(LIB)libPI.a $(LIB)libPIext.a
    149         $(CMDTILSHLPI)
    150         cd $(OBJ); \
    151         $(CMDSHLCXX) -o $(SLB)libPI.so \
    152         $(FGSHLACXX) $(OBJPI) $(OBJPIext) $(TILSHLPI) \
    153         $(FGSHLN) -L$(SLB) -ltools \
    154         $(LIBXPATH) -lXm -lXt -lX11 $(LIBLSHL)
    155 
    156 else
    157 slb :
    158 endif
    159 
  • trunk/SophyaLib/Mgr/libdirs

    r663 r740  
    33Samba
    44SkyT
    5 FitsIOServer
  • trunk/SophyaLib/Mgr/mkmf

    r737 r740  
    11#!/bin/csh
    2 # $Id: mkmf,v 1.7 2000-02-22 16:31:26 ansari Exp $
    3 
    4 # Librairie cfitsio
     2# $Id: mkmf,v 1.8 2000-02-25 18:34:48 ansari Exp $
     3
     4#  Pour debugger
     5set DODBG = 'echo'
     6
     7# Librairies externe
    58if( ! $?EXTLIBDIR ) then
    6  echo 'EXTLIBDIR library: EXTLIBDIR variable need to be set'
     9  echo 'mkmf- WARNING (External libraries) EXTLIBDIR variable not set'
    710endif
    811
     
    1316# creation des liens pour les includes
    1417echo 'mkmf: Creating links for *.h (call mkmflien)'
    15 ./mkmflien
     18$DODBG ./mkmflien
     19
     20# Liste des modules a construire
     21# modules : Liste de module SOPHYA, sans dependance exterieure
     22# extmodules : Liste de modules avec dependance exterieures
     23#        _pres : Liste des modules presents
     24
     25set modules = `cat libdirs`
     26set extmodules = `cat extlibdirs`
     27set modules_pres = ''
     28set extmodules_pres = ''
     29
     30set module_libnames = ''
     31set extmodule_libnames = ''
     32set extlib_list = ''
     33set extslb_list = ''
     34#  Constitution de la liste de modules present
     35foreach f ($modules)
     36  if (-d ../$f ) then
     37    set modules_pres = ( $modules_pres $f )
     38    set module_libnames = ( $module_libnames '$(LIB)lib'$f.a )
     39  endif
     40end
     41foreach f ($extmodules)
     42  if (-d ../$f ) then
     43    set extmodules_pres = ( $extmodules_pres $f )
     44    set extmodule_libnames = ( $extmodule_libnames '$(LIB)lib'$f.a )
     45    set lil = "../$f/extlib_list"
     46    if (-f $lil ) set extlib_list = ($extlib_list `sed -e 's/.*/-l&/' $lil`)
     47    set lil = "../$f/extslb_list"
     48    if (-f $lil ) set extslb_list = ($extslb_list `sed -e 's/.*/-l&/' $lil`)
     49  endif
     50end
     51
     52echo 'mkmf: List of modules '
     53echo '  ... modules= ' $modules_pres
     54echo $module_libnames
     55echo '  ... extmodules= ' $extmodules_pres
     56echo $extmodule_libnames
    1657
    1758echo 'mkmf: Creating makefile global :'
    1859rm -f GNUmakefile
    1960
     61echo '# include files defining compiler/linker options '  >> GNUmakefile
     62echo 'MODULECXXREPNAME := PI'  >> GNUmakefile
    2063echo 'include Mgr/Makefile.h' >> GNUmakefile
     64echo 'include Mgr/Makefile.slb' >> GNUmakefile
     65echo ''   >> GNUmakefile
    2166
    2267echo 'LIBF = ' `sed -e 's/.*/$(LIB)lib&.a/' libdirs` >> GNUmakefile
     
    3176defaut: libs
    3277
    33 all: libs PI
    34 
     78all: libs extlibs PI
    3579
    3680libs: cxxlibs
     81
     82extlibs: cxxextlibs
     83
     84EOF
     85
    3786# Dans cet ordre pour les templates de cxx, a cause des dependances
    3887# pour instantiation automatique/manuels
    3988
    40 cxxlibs: FitsIOServer SkyT Samba NTools SysTools Blitz
    41 
    42 EOF
     89echo 'cxxlibs: ' $modules_pres >>    GNUmakefile
     90echo ' ' >> GNUmakefile
     91echo 'cxxextlibs: ' $extmodules_pres >> GNUmakefile
    4392
    4493
    4594#  Attention, ne pas changer l'ordre de libnames dependances cxx
    46 set libnames = (FitsIOServer SkyT Samba NTools SysTools Blitz )
     95set libnames = ($modules_pres $extmodules_pres)
    4796set i = 1
    4897set j = $#libnames ; @ j--
     
    54103    echo "mkmf: Creation makefile lib $f"
    55104    echo "   execution $cmd"
    56     $cmd
     105    $DODBG $cmd
    57106  endif
    58107  echo '.PHONY: ' $f >> GNUmakefile
     
    68117  echo "mkmf: Creation makefile lib PI"
    69118  echo "   execution $cmd"
    70   $cmd
     119  $DODBG  $cmd
    71120endif
    72121if ( -d ../PIext ) then
    73   set cmd = './mkmfPI PIext SysTools NTools Samba SkyT PI'
     122  set cmd = "./mkmfPI PIext $libnames PI"
    74123  echo "mkmf: Creation makefile lib PIext"
    75124  echo "   execution $cmd"
    76   $cmd
     125  $DODBG $cmd
    77126endif
    78127echo '.PHONY: PI' >> GNUmakefile
     
    81130echo '  if [ -d PIext ] ; then cd PIext ; $(MAKE) ; fi' >> GNUmakefile
    82131
    83 cat Makefile.slb >> GNUmakefile
     132
     133
     134echo '#  Shared library creation part of the Makefile'       >> GNUmakefile
     135echo ' '                                 >> GNUmakefile
     136echo '#  List of libraries (.a)'         >> GNUmakefile
     137echo 'PSLB = ' $module_libnames          >> GNUmakefile
     138echo 'EXTPSLB = ' $extmodule_libnames    >> GNUmakefile
     139echo 'PIPSLB =  $(LIB)libPI.a  $(LIB)libPIext.a'   >> GNUmakefile
     140echo '#  List of external library references'       >> GNUmakefile
     141echo 'EXTLIB  = -L$(EXTLIBPATH)' $extlib_list       >> GNUmakefile
     142echo 'EXTSLB  = -L$(EXTSLBPATH)' $extlib_list       >> GNUmakefile
     143echo 'XPILIBS = $(LIBXPIPATH) $(LIBXPILIST)'        >> GNUmakefile
     144echo ''                                  >> GNUmakefile
     145echo '#  main dependence list'           >> GNUmakefile
     146echo 'slball : slb slbext slbpi '        >> GNUmakefile
     147echo 'slb : $(SLB)libsophya.so '         >> GNUmakefile
     148echo 'slbext : $(SLB)libextsophya.so   ' >> GNUmakefile
     149echo 'slbpi : $(SLB)libPI.so'            >> GNUmakefile
     150echo ' '                                 >> GNUmakefile
     151
     152echo '# List of .o files for each module'  >> GNUmakefile
     153set objalls =  ''
     154foreach f ($modules_pres)
     155  echo 'OBJ'$f '= $(shell echo' '`cat' "./$f/$f.o.list" '`)'  >> GNUmakefile
     156  set objalls = ( $objalls '$(OBJ'$f')' )
     157end
     158echo 'ALLOBJS =' $objalls                >> GNUmakefile
     159echo ' '                                 >> GNUmakefile
     160
     161echo '# List of .o files modules with reference to external libraries'  >> GNUmakefile
     162set objalls =  ''
     163foreach f ($extmodules_pres)
     164  echo 'OBJ'$f '= $(shell echo' '`cat' "./$f/$f.o.list" '`)'  >> GNUmakefile
     165  set objalls = ( $objalls '$(OBJ'$f')' )
     166end
     167echo 'ALLEXTOBJS =' $objalls             >> GNUmakefile
     168echo ' '                                 >> GNUmakefile
     169
     170echo '# List of .o files for PI modules '  >> GNUmakefile
     171set objalls =  ''
     172foreach f (PI PIext)
     173  echo 'OBJ'$f '= $(shell echo' '`cat' "./$f/$f.o.list" '`)'  >> GNUmakefile
     174  set objalls = ( $objalls '$(OBJ'$f')' )
     175end
     176echo 'ALLPIOBJS =' $objalls              >> GNUmakefile
     177echo ' '                                 >> GNUmakefile
     178
     179echo '# Building Sophya shared library'  >> GNUmakefile
     180echo '$(SLB)libsophya.so : $(PSLB)'                             >> GNUmakefile
     181echo '  $(CMDTILSHL) '                                          >> GNUmakefile
     182echo '  cd  $(OBJ); \'                                          >> GNUmakefile
     183echo '  $(CMDSHLCXX) -o $(SLB)libsophya.so  \'                  >> GNUmakefile
     184echo '  $(FGSHLACXX) $(ALLOBJS)  $(FGSHLNCXX)\'                 >> GNUmakefile
     185echo '  -L$(SLB) $(LIBLSHL)'                                    >> GNUmakefile
     186echo ' '                                                        >> GNUmakefile
     187
     188echo '# Building ExtSophya shared library'  >> GNUmakefile
     189echo '$(SLB)libextsophya.so : $(EXTPSLB)'                       >> GNUmakefile
     190echo '  $(CMDTILSHL) '                                          >> GNUmakefile
     191echo '  cd  $(OBJ); \'                                          >> GNUmakefile
     192echo '  $(CMDSHLCXX) -o $(SLB)libextsophya.so  \'               >> GNUmakefile
     193echo '  $(FGSHLACXX) $(ALLEXTOBJS)  $(FGSHLNCXX)\'              >> GNUmakefile
     194echo '  -L$(SLB) -lsophya $(EXTSLB) $(LIBLSHL)'                 >> GNUmakefile
     195echo ' '                                                        >> GNUmakefile
     196
     197echo '# Building PI shared library'  >> GNUmakefile
     198echo '$(SLB)libPI.so : $(PIPSLB)'                               >> GNUmakefile
     199echo '  $(CMDTILSHL) '                                          >> GNUmakefile
     200echo '  cd  $(OBJ); \'                                          >> GNUmakefile
     201echo '  $(CMDSHLCXX) -o $(SLB)libPI.so  \'                      >> GNUmakefile
     202echo '  $(FGSHLACXX) $(ALLPIOBJS) $(FGSHLNCXX) \'                >> GNUmakefile
     203echo '  -L$(SLB) -lsophya -lextsophya $(EXTSLB) $(XPILIBS) $(LIBLSHL)'      >> GNUmakefile
     204echo ' '                                                        >> GNUmakefile
     205
    84206
    85207cat >> GNUmakefile << __END__
     
    88210        if [ -d \$(LIB) ] ; then cd \$(LIB)/. ; rm -f *.a  ; fi
    89211        if [ -d \$(SLB) ] ; then cd \$(SLB)/. ; rm -f *.so ; fi
    90         if [ -d \$(OBJ) ] ; then cd \$(OBJ)/. ; rm -f *.o  ; fi
    91         if [ -d \$(OBJ)/cxxrep ] ; then cd \$(OBJ)/cxxrep/. ; rm -f *.o  ; fi
    92         if [ -d PI ]     ; then cd PI/.     ; \$(MAKE) clean ; fi
     212        if [ -d \$(OBJ) ] ; then cd \$(OBJ)/. ; rm -f *.o  rm -rf cxxrep* ; fi
     213#       if [ -d PI ]     ; then cd PI/.     ; \$(MAKE) clean ; fi
    93214
    94215__END__
  • trunk/SophyaLib/Mgr/mkmflib

    r511 r740  
    11#!/bin/csh
    2 # $Id: mkmflib,v 1.3 1999-10-25 16:24:49 ansari Exp $
     2# $Id: mkmflib,v 1.4 2000-02-25 18:34:49 ansari Exp $
    33
    44cd ../$1
    55
    66if ( ! -f exclude ) touch exclude
     7if ( ! -f flags_compil ) touch flags_compil
     8if ( ! -f extlib_list ) touch extlib_list
     9if ( ! -f extslb_list ) touch extslb_list
     10
    711if ( ! $?TMPDIR ) set TMPDIR = /tmp
    812sort exclude >! $TMPDIR/exclude.sort
     
    3034end
    3135
     36set extlib_list = `cat extlib_list`
     37set hfcxxlibs = ($hfcxxlibs '-L$(EXTLIBPATH)' $extlib_list)
    3238
    3339rm -f GNUmakefile
    3440
     41cat flags_compil >> GNUmakefile
    3542echo 'include ../Mgr/Makefile.h' >> GNUmakefile
    3643
  • trunk/SophyaLib/Mgr/mkmflien

    r737 r740  
    11#!/bin/csh
    2 # $Id: mkmflien,v 1.4 2000-02-22 16:31:27 ansari Exp $
     2# $Id: mkmflien,v 1.5 2000-02-25 18:34:49 ansari Exp $
    33
    44#########################################################
     
    5252####  Les includes du code C++ a mettre dans Include
    5353####################################################
    54 foreach d (`cat libdirs` PI PIext  )
     54foreach d (`cat libdirs` `cat extlibdirs` PI PIext  )
    5555  if ( -d $src/$d ) then
    5656    echo $src/$d
Note: See TracChangeset for help on using the changeset viewer.