include Mgr/Makefile.h
LIBF =  $(LIB)libSysTools.a $(LIB)libNTools.a $(LIB)libSamba.a $(LIB)libFitsIOServer.a
LIBS = -L$(LIB) -lSysTools -lNTools -lSamba -lFitsIOServer -lm
LIBG = -L$(GLB) -lstdc++
ifeq ($(HOSTTYPE), powerpc)
  LIBG = -L$(GLB)
endif

defaut: libs

all: libs PI


libs: cxxlibs
# Dans cet ordre pour les templates de cxx, a cause des dependances
# pour instantiation automatique/manuels

cxxlibs: Blitz SysTools NTools Samba FitsIOServer

.PHONY:  Blitz
Blitz:
	if [ -d Blitz ] ; then cd  Blitz ; $(MAKE) ; fi
 
.PHONY:  SysTools
SysTools:
	if [ -d SysTools ] ; then cd  SysTools ; $(MAKE) ; fi
 
.PHONY:  NTools
NTools:
	if [ -d NTools ] ; then cd  NTools ; $(MAKE) ; fi
 
.PHONY:  Samba
Samba:
	if [ -d Samba ] ; then cd  Samba ; $(MAKE) ; fi
 
.PHONY:  FitsIOServer
FitsIOServer:
	if [ -d FitsIOServer ] ; then cd  FitsIOServer ; $(MAKE) ; fi
 
.PHONY: PI
PI:
	if [ -d PI ] ; then cd PI ; $(MAKE) ; fi
	if [ -d PIext ] ; then cd PIext ; $(MAKE) ; fi

ifndef NOSHLIB

PSLB = $(LIB)libSysTools.a $(LIB)libNTools.a $(LIB)libBlitz.a 
slb : $(SLB)libtools.so
slbpi: slb $(SLB)libPI.so

#  Chemin des librairies Motifs / X11 (pour chemin non standard)
LIBXPATH :=
#  Commande de construction de shared-lib 
CMDSHL := ld -partage
#  Flag d'inclusion/fin d'inclusion de tous les points  d'entree
FGSHLA := -tout
FGSHLN := -rien
#  Librairies specifiques 
LIBLSHL := 
#  Librairie d'instanciation des templates 
TILSHL := 
TILSHLPI := 
#   Commande de construction de la librairie d'instanciation des templates 
CMDTILSHL := echo 'Cas Non Prevu'
CMDTILSHLPI := echo 'Cas Non Prevu'
# Utilisation du compilo C++ comme driver pour fabrication des shared-libs
CMDSHLCXX := $(LINK.cc) 
FGSHLACXX :=  
FGSHLNCXX := 
#  S'il faut utiliser $(CMDSHLCXX) pour fabrication des shared-libs
USECXX4SO := N
# On utilise le compilo g++ pour la fabrication des shared libs
ifeq ($(EROSCXX), g++)
  override USECXX4SO := Y
  override CMDSHLCXX := $(LINK.cc) -shared
endif

# On utilise le compilo KCC pour la fabrication des shared libs
ifeq ($(EROSCXX), KCC)
  override USECXX4SO := Y
  override CMDSHLCXX := $(LINK.cc)
endif

# On utilise le compilo aCC (HP) pour la fabrication des shared libs
ifeq ($(EROSCXX), aCC)
  override USECXX4SO := Y
  override CMDSHLCXX := $(LINK.cc) -b
endif

# Construction de shared-libs sous OSF1
ifeq ($(MACHEROS),OSF1)
  override CMDSHL := ld -shared -update_registry $(SLB)so_locations
  override FGSHLA := -all
  override FGSHLN := -none 
  override LIBLSHL := -lcxxstd -lcxx -lexc -lm -lc -lrt
  override TILSHL := $(LIB)libertcxx.a
  override CMDTILSHL := rm -f $(LIB)libertcxx.a ; cd $(REP); $(AR) $(ARFLAGS) $(LIB)libertcxx.a *.o
  override TILSHLPI := $(LIB)libertcxxpi.a
  override CMDTILSHLPI := rm -f $(LIB)libertcxxpi.a ; cd $(REPPI); $(AR) $(ARFLAGS) $(LIB)libertcxxpi.a *.o
  ifeq ($(CXX),g++)
    override LIBLSHL := $(LIBG) -lm -lc
    override TILSHL := 
    override CMDTILSHL := echo 'No Template instanciation library'
    override TILSHLPI := 
    override CMDTILSHLPI := echo 'No Template instanciation library'
    override USECXX4SO := N
  endif
#  Attention - Dangereux de mettre -expect_unresolved , $CHECK$  Reza 20/10/99
  override CMDSHLCXX := $(LINK.cc) -shared -expect_unresolved '*' 
  override FGSHLACXX := 
  override FGSHLNCXX := 
endif

# Construction de shared-libs sous Linux
ifeq ($(MACHEROS),Linux)
  override CMDSHL := ld -shared 
  override FGSHLA := --whole-archive
  override FGSHLN := --no-whole-archiv
  override CMDSHLCXX := $(LINK.cc) -shared 
  ifeq ($(EROSCXX), KCC)
    override CMDSHLCXX := $(LINK.cc)
  endif
  override FGSHLACXX := 
  override FGSHLNCXX := 
  override LIBLSHL := $(LIBG) -lm -ldl
  override TILSHL := 
  override CMDTILSHL := echo 'No Template instanciation library'
  override LIBXPATH := -L/usr/X11/lib -L/usr/X11R6/lib
endif

# Construction de shared-libs sous Sun-OS
ifeq ($(MACHEROS),SunOS)
  override CMDSHL := ld -G
  override FGSHLA := -z allextract
  override FGSHLN := -z weakextract
  override LIBLSHL := $(LIBG) -lm -lc
  override TILSHL := 
  override CMDTILSHL := echo 'No Template instanciation library'
  override LIBXPATH := -L/usr/X11/lib
  override USECXX4SO := Y
endif

# Construction de shared-libs sous SGI
ifeq ($(MACHEROS), IRIX64)
  override CMDSHL := ld -shared
  override FGSHLA := -all
  override FGSHLN := -notall
  override LIBLSHL := $(LIBG) -lm -lc
  override TILSHL := 
  override CMDTILSHL := echo 'No Template instanciation library'
  ifeq ($(EROSCXX), CC)
    override CMDSHLCXX := CC -shared 
    override LIBLSHL := -lm -lc
  endif
  override LIBXPATH := -L/usr/X11/lib
  override USECXX4SO := Y
endif

# Liste des .o associes a une librairie
OBJSysTools = $(shell echo `cat ./SysTools/SysTools.o.list`)
OBJNTools = $(shell echo `cat ./NTools/NTools.o.list`)
OBJBlitz = $(shell echo `cat ./Blitz/Blitz.o.list`)
OBJSamba = $(shell echo `cat ./Samba/Samba.o.list`)
OBJFitsIOServer = $(shell echo `cat ./FitsIOServer/FitsIOServer.o.list`)
OBJPI         = $(shell echo `cat ./PI/PI.o.list`)
OBJPIext      = $(shell echo `cat ./PIext/PIext.o.list`)

# Creation des librairies partagees


#------------------------------------------------------------
$(SLB)libtools.so : $(PSLB) 
	$(CMDTILSHL)
	cd $(OBJ); \
	$(CMDSHLCXX) -o $(SLB)libtools.so \
	$(FGSHLACXX) $(OBJSysTools) $(OBJNTools) $(OBJSamba) $(OBJFitsIOServer) $(OBJBlitz) $(TILSHL) \
	$(FGSHLNCXX) -L$(SLB) $(LIBLSHL)   $(FITSIOLIB) 


$(SLB)libPI.so : $(LIB)libPI.a $(LIB)libPIext.a
	$(CMDTILSHLPI)
	cd $(OBJ); \
	$(CMDSHLCXX) -o $(SLB)libPI.so \
	$(FGSHLACXX) $(OBJPI) $(OBJPIext) $(TILSHLPI) \
	$(FGSHLN) -L$(SLB) -ltools \
	$(LIBXPATH) -lXm -lXt -lX11 $(LIBLSHL)

else
slb :
endif


clean:
	if [ -d $(LIB) ] ; then cd $(LIB)/. ; rm -f *.a  ; fi
	if [ -d $(SLB) ] ; then cd $(SLB)/. ; rm -f *.so ; fi
	if [ -d $(OBJ) ] ; then cd $(OBJ)/. ; rm -f *.o  ; fi
	if [ -d $(OBJ)/cxxrep ] ; then cd $(OBJ)/cxxrep/. ; rm -f *.o  ; fi
	if [ -d PI ]     ; then cd PI/.     ; $(MAKE) clean ; fi

