#
#	Fichier	: $RCSfile: Makefile_idl_shared,v $, v $Revision: 1.36 $
#
#	Date	: $Date: 2021/04/27 09:48:58 $
#
#	Auteur	: $Author: penou $
#
#	Version	: %Z% version %I% de %M% du %G%
#	___________________________________________________
#
#	Fichier makefile des librairies du CLL3 utilisees par IDL
#
#	Partie partagee par les environnements Linux et Solaris

#		Repertoires utilises
#		--------------------
#
BINDIR =	./bin
OBJDIR =	./obj
LIBDIR =	./lib
SRCDIR =	./src
INCDIR =	./inc
RESDIR =	./resource

VPATH =		$(SRCDIR):../LIB/src:../CALIB/src

#		Nom des sources langage C
#		-------------------------
#
SRC =		libascii.c write_ascii.c get_data3d.c interpoler2dxy.c interpoler2dy.c \
		noninterpoler2d.c interpoler2d_points.c \
		file.c filecdf.c util.c lint.c \
		CLUSTER_EXTERNAL.c maglibc.c rocotlibc.c libxml.c

DEP1 =		maglibc.c\
		maglib_geodip.c\
		maglib_geogsm.c\
		maglib_inigeo1.c\
		maglib_julg.c\
		maglib_promal.c\
		maglib_promat.c\
		maglib_rogdip.c\
		maglib_roggsm.c\
		maglib_rogse.c\
		maglib_rogsm.c\
		maglib_roig.c\
		maglib_roise.c\
		maglib_rosmgs.c\
		maglib_segeo.c\
		maglib_solter00.c\
		maglib_solter05.c\
		maglib_solter10.c\
		maglib_sun.c\
		maglib_valfix.c\
		maglib_util_com.c\
		maglib_util2_com.c\
		f2c.c

DEP =		CLUSTER_EXTERNAL.c CATALOG.c CALIB.c ERRORS.c TIMES.c SYMBOLS.c FILES.c IRAP.c

DEP3 =		rocotlibc.c\
		f2c.c

#		Nom des librairies a generer
#		----------------------------
#
LIBS =		$(SRC:%.c=$(LIBDIR)/%.so)


#		Cible de compilation par defaut
#		-------------------------------
#
all:		init $(LIBS) DSP_EXTERNAL IDL

$(LIBDIR)/CLUSTER_EXTERNAL.so :	$(DEP:%.c=obj/%.o)
		$(LD) $(LDFLAGS) -o $@ $(DEP:%.c=obj/%.o)

$(LIBDIR)/libascii.so : obj/libascii.o ../ZLIB/libz.a
		$(LD) $(LDFLAGS) obj/libascii.o ../ZLIB/libz.a -o $@

$(LIBDIR)/file.so :	obj/file.o ../ZLIB/libz.a
		$(LD) $(LDFLAGS) obj/file.o ../ZLIB/libz.a -o $@ 

$(LIBDIR)/filecdf.so :	obj/filecdf.o ../CDFLIB/cdf36_3-dist/src/lib/libcdf.a
		$(LD) $(LDFLAGS) obj/filecdf.o ../CDFLIB/cdf36_3-dist/src/lib/libcdf.a -o $@ 

$(LIBDIR)/maglibc.so :	$(DEP1:%.c=obj/%.o)
		$(LD) $(LDFLAGS) $(DEP1:%.c=obj/%.o) -o $@

$(LIBDIR)/rocotlibc.so : $(DEP3:%.c=obj/%.o)
		$(LD) $(LDFLAGS) $(DEP3:%.c=obj/%.o) -o $@

#		Cible de creation des repertoires
#		---------------------------------
init:
		@if [ ! -d $(OBJDIR) ] ; then \
			echo "Creation repertoire $(OBJDIR)" ; \
			mkdir $(OBJDIR) ; \
		fi

		@if [ ! -d $(LIBDIR) ] ; then \
			echo "Creation repertoire $(LIBDIR)" ; \
			mkdir $(LIBDIR) ; \
		fi

		(cd ../TRIANGLE ; $(MAKE); cd ../CLL3)

#		il faut obligatoirement compiler la zlib avec CFLAGS_LIBS sinon la compil choue sous Linux 64 bits
		(cd ../ZLIB ; $(MAKE) CC="$(CC)" CFLAGS_OPTI="$(CFLAGS_OPTI)" CFLAGS_LIBS="$(CFLAGS_LIBS)"; cd ../CLL3)

		(cd ../CDFLIB/cdf36_3-dist ; $(MAKE) $(CDFLIBFLAGS) all)
		rm -f obj/CLUSTER_EXTERNAL.o obj/CATALOG.o obj/CALIB.o obj/ERRORS.o obj/TIMES.o obj/SYMBOLS.o obj/FILES.o


#		Cible de suppression des fichiers inutiles
#		------------------------------------------
clean:
		@echo	"Suppression des fichiers inutiles"
		rm -rf 	$(OBJDIR)
		rm -rf	.make.state

		(cd ../TRIANGLE ; rm -f triangle; cd ../CLL3)
		(cd ../ZLIB ; $(MAKE)  CC="$(CC)" CFLAGS_OPTI="$(CFLAGS_OPTI)" CFLAGS_LIBS="$(CFLAGS_LIBS)" clean; cd ../CLL3)
		(cd ../CDFLIB/cdf36_3-dist ; $(MAKE) $(CDFLIBFLAGS) clean)


#		Cible de suppression de tous les fichiers generes
#		-------------------------------------------------
raz:	
		@echo	"Suppression de tous les fichiers generes"
		rm -rf	$(OBJDIR)
		rm -rf	$(LIBDIR)
		rm -rf	.make.state
		rm -rf	$(BINDIR)/TABGRGB.tbl
		rm -rf	$(BINDIR)/cluster_cnesonly_codif.cl
		rm -rf	$(BINDIR)/cluster_cnesonly_hia.cl
		rm -rf	$(BINDIR)/SPECTR_IDL.exe
		rm -rf	$(BINDIR)/cl.ivm
		rm -rf	$(BINDIR)/clvm.sav
		rm -rf	$(BINDIR)/cl_getdata


#		Compilation des sources IDL
#		---------------------------
#
IDL:
		($(BINDIR)/COMPILE_ALL_pro cl      COMPILE_ALL.pro $(BINDIR)/cl.ivm ;\
		 $(BINDIR)/COMPILE_ALL_pro clvm    COMPILE_ALL.pro $(BINDIR)/clvm.sav)

		cp $(RESDIR)/TABGRGB.tbl		$(BINDIR)
		cp $(RESDIR)/cluster_cnesonly_codif.cl	$(BINDIR)
		cp $(RESDIR)/cluster_cnesonly_hia.cl	$(BINDIR)

DSP_EXTERNAL:
		@if [ -d $(DSP_ROOT)/SOFT/CALIB ] ; then \
			(rm -rf tmp ; mkdir tmp ; cd tmp ; $(CC) -c -I../inc -I$(DSP_ROOT)/SOFT/LIB/inc -I$(DSP_ROOT)/SOFT/CALIB/inc $(CFLAGS) ../src/DSP_EXTERNAL.c $(DSP_ROOT)/SOFT/LIB/src/ERREURS.c $(DSP_ROOT)/SOFT/LIB/src/ARCH.c $(DSP_ROOT)/SOFT/LIB/src/FILES.c $(DSP_ROOT)/SOFT/LIB/src/HEADER.c $(DSP_ROOT)/SOFT/LIB/src/INTERFACE.c $(DSP_ROOT)/SOFT/LIB/src/LISTS.c $(DSP_ROOT)/SOFT/LIB/src/MATHS.c $(DSP_ROOT)/SOFT/LIB/src/SYMBOLS.c $(DSP_ROOT)/SOFT/LIB/src/TIMES.c $(DSP_ROOT)/SOFT/CALIB/src/CALIB.c $(DSP_ROOT)/SOFT/CALIB/src/HIA.c $(DSP_ROOT)/SOFT/CALIB/src/HSK.c; $(LD) $(LDFLAGS) *.o -o ../lib/DSP_EXTERNAL.so ; cd .. ; rm -rf tmp) ; \
		fi

		


#		PARTIE A NE PAS MODIFIER
#		------------------------
#
.SUFFIXES:
.KEEP_STATE:

$(LIBDIR)/%.so:	$(OBJDIR)/%.o
		$(LD) $(LDFLAGS) $< -o $@

$(OBJDIR)/%.o:	%.c
		$(CC) -c $(CFLAGS) $< -o $@
