source: Sophya/trunk/SophyaLib/Mgr/Makefile@ 306

Last change on this file since 306 was 258, checked in by ansari, 27 years ago

Makefile global avec fabrication de shared-libs sous cxx Reza

File size: 3.9 KB
RevLine 
[218]1include Mgr/Makefile.h
[226]2LIBF = $(LIB)libSysTools.a $(LIB)libNTools.a $(LIB)libSamba.a
3LIBS = -L$(LIB) -lSysTools -lNTools -lSamba -lm
4LIBG = -L$(GLB) -lstdc++
[218]5
[226]6defaut: libs
[218]7
[226]8all: libs PI
[218]9
10
[226]11libs: cxxlibs
[218]12# Dans cet ordre pour les templates de cxx, a cause des dependances
13# pour instantiation automatique/manuels
14
[226]15cxxlibs: Blitz SysTools NTools Samba
[218]16
[226]17.PHONY: Blitz
18Blitz:
19 if [ -d Blitz ] ; then cd Blitz ; $(MAKE) ; fi
[218]20
[226]21.PHONY: SysTools
22SysTools:
23 if [ -d SysTools ] ; then cd SysTools ; $(MAKE) ; fi
[218]24
[226]25.PHONY: NTools
26NTools:
27 if [ -d NTools ] ; then cd NTools ; $(MAKE) ; fi
[218]28
[226]29.PHONY: Samba
30Samba:
31 if [ -d Samba ] ; then cd Samba ; $(MAKE) ; fi
[218]32
33.PHONY: PI
34PI:
35 if [ -d PI ] ; then cd PI ; $(MAKE) ; fi
36 if [ -d PIext ] ; then cd PIext ; $(MAKE) ; fi
[226]37
[218]38ifndef NOSHLIB
39
[226]40PSLB = $(LIB)libSysTools.a $(LIB)libNTools.a $(LIB)libBlitz.a
41slb : $(SLB)libtools.so
[218]42slbpi: slb $(SLB)libPI.so
43
44# Commande de construction de shared-lib
45CMDSHL := ld -partage
46# Flag d'inclusion/fin d'inclusion de tous les points d'entree
47FGSHLA := -tout
48FGSHLN := -rien
49# Librairies specifiques
50LIBLSHL :=
51# Librairie d'instanciation des templates
52TILSHL :=
53TILSHLPI :=
54# Commande de construction de la librairie d'instanciation des templates
55CMDTILSHL := echo 'Cas Non Prevu'
56CMDTILSHLPI := echo 'Cas Non Prevu'
[226]57# Chemin des librairies Motifs / X11 (pour chemin non standard)
58LIBXPATH :=
[218]59
60# Construction de shared-libs sous OSF1
61ifeq ($(MACHEROS),OSF1)
62 override CMDSHL := ld -shared -update_registry $(SLB)so_locations
63 override FGSHLA := -all
64 override FGSHLN := -none
65 override LIBLSHL := -lcxxstd -lcxx -lexc -lm -lc -lrt
66 override TILSHL := $(LIB)libertcxx.a
67 override CMDTILSHL := rm -f $(LIB)libertcxx.a ; cd $(REP); $(AR) $(ARFLAGS) $(LIB)libertcxx.a *.o
68 override TILSHLPI := $(LIB)libertcxxpi.a
69 override CMDTILSHLPI := rm -f $(LIB)libertcxxpi.a ; cd $(REPPI); $(AR) $(ARFLAGS) $(LIB)libertcxxpi.a *.o
70 ifeq ($(CXX),g++)
71 override LIBLSHL := $(LIBG) -lm -lc
72 override TILSHL :=
73 override CMDTILSHL := echo 'No Template instanciation library'
74 override TILSHLPI :=
75 override CMDTILSHLPI := echo 'No Template instanciation library'
76 endif
[258]77 override CMDSHLCXX := $(LINK.cc) -shared
78 override FGSHLACXX :=
79 override FGSHLNCXX :=
[218]80endif
81
82# Construction de shared-libs sous Linux
83ifeq ($(MACHEROS),Linux)
84 override CMDSHL := ld -shared
85 override FGSHLA := --whole-archive
86 override FGSHLN := --no-whole-archiv
[226]87 override CMDSHLCXX := $(LINK.cc) -shared
88 override FGSHLACXX :=
89 override FGSHLNCXX :=
90 override LIBLSHL := $(LIBG) -lm -ldl
[218]91 override TILSHL :=
92 override CMDTILSHL := echo 'No Template instanciation library'
[226]93 override LIBXPATH := -L/usr/X11/lib
[218]94endif
95
[226]96# Liste des .o associes a une librairie
97OBJSysTools = $(shell echo `cat ./SysTools/SysTools.o.list`)
98OBJNTools = $(shell echo `cat ./NTools/NTools.o.list`)
99OBJBlitz = $(shell echo `cat ./Blitz/Blitz.o.list`)
100OBJSamba = $(shell echo `cat ./Samba/Samba.o.list`)
101OBJPI = $(shell echo `cat ./PI/PI.o.list`)
102OBJPIext = $(shell echo `cat ./PIext/PIext.o.list`)
[218]103
[226]104# Creation des librairies partagees
[218]105
106
[226]107#------------------------------------------------------------
108$(SLB)libtools.so : $(PSLB)
[218]109 $(CMDTILSHL)
[226]110 cd $(OBJ); \
111 $(CMDSHLCXX) -o $(SLB)libtools.so \
112 $(FGSHLACXX) $(OBJSysTools) $(OBJNTools) $(OBJSamba) $(OBJBlitz) $(TILSHL) \
113 $(FGSHLNCXX) -L$(SLB) $(LIBLSHL)
[218]114
115
[226]116$(SLB)libPI.so : $(LIB)libPI.a $(LIB)libPIext.a
[218]117 $(CMDTILSHLPI)
[226]118 cd $(OBJ); \
119 $(CMDSHLCXX) -o $(SLB)libPI.so \
120 $(FGSHLACXX) $(OBJPI) $(OBJPIext) $(TILSHLPI) \
121 $(FGSHLN) -L$(SLB) -ltools \
122 $(LIBXPATH) -lXm -lXt -lX11 $(LIBLSHL)
[218]123
124else
125slb :
126endif
127
[226]128
[218]129clean:
130 if [ -d $(LIB) ] ; then cd $(LIB)/. ; rm -f *.a ; fi
131 if [ -d $(SLB) ] ; then cd $(SLB)/. ; rm -f *.so ; fi
132 if [ -d $(OBJ) ] ; then cd $(OBJ)/. ; rm -f *.o ; fi
133 if [ -d $(OBJ)/cxxrep ] ; then cd $(OBJ)/cxxrep/. ; rm -f *.o ; fi
134 if [ -d PI ] ; then cd PI/. ; $(MAKE) clean ; fi
135
Note: See TracBrowser for help on using the repository browser.