# # Constructions, mises à jour des bibliothèques et des exécutables # Dans le .bashrc le compilateur F95 doit être déclaré "FORTRAN" et exportable #Ex: FORTRAN = lf95 export FORTRAN #<<<<<<<<<<<<< # Pour l'installation voir README_installation #>>>>>>>>>>>>> #-----------------Pour l'exploitatio,---------------------------- # Utilisation pour la construction des programmes d'exploitation (cesam2k-dbg.out) # construction de la bibliothèque libcesam2k-dbg.a, saisir: # make -Bf Make DBG=2k-dbg # (construction de l'exécutable cesam2k-dbg.out) # Utilisation pour la création de l'exécutable cesam2k.out (optimiseur niveau 2) # construction de la bibliothèque libcesam2k.a, saisir: # make -Bf Make DBG=2k #--------------------------------------------------------------- #------------POUR le développement---------------------- # Utilisation pour la construction des programmes de développement # construction de la bibliothèque libcesamT-dbg.a en saisissant # make -Bf Make DBG=T-dbg # création de l'exécutable de déveloopement cesamT-dbg.out # Utilisation pour la construction des programmes de développement # construction de la bibliothèque libcesamT.a en saisissant # make -Bf Make DBG=T #-------------------------------------------------------------- # Auteur: P.Morel laboratoire Lagrange OCA, inspiré de Th.Corbard # #.PHONY : all #-------ordre des opérations all: ech cesam$(DBG).out libcesam$(DBG).a propre SHELL = /bin/sh RM = rm -f AR = ar ruv RANL = ranlib ifeq ($(DBG),T-dbg) DB = T else ifeq ($(DBG),T) DB = T else ifeq ($(DBG),2k-dbg) DB = 2k else ifeq ($(DBG),2k) DB = 2k endif #-----arguments pour compilation F95 pour divers compilateurs ifeq ($(FORTRAN),lf95) # pour lf95 FLAD = --block 16384 --chk -g --maxfatals 5 --pca \ --nsav --swm 2315,2702 --tp4 --warn --wide \ -I ~/CESAM$(DB)/SOURCE # flag -dbg FLA = --block 16384 --maxfatals 5 --o2 --tp4 --warn --wide \ -I ~/CESAM$(DB)/SOURCE # flag opt else ifeq ($(FORTRAN),ifort) # pour ifort FLAD = -extend-source 132 -O0 -g \ -I ~/CESAM$(DB)/SOURCE # flag -dbg FLA = -extend_source 132 -O3 -override-limits \ -I ~/CESAM$(DB)/SOURCE # flag opt else ifeq ($(FORTRAN),gfortran) # pour gfortran FLAD = -ffixed-line-length-132 -fmax-errors=5 -O0 \ -I ~/CESAM$(DB)/SOURCE # flag -dbg FLA = -ffixed-line-length-132 -O2 \ -I ~/CESAM$(DB)/SOURCE # flag -dbg endif #-----------Options de link #-------------pour Aurora ifeq ($(OSnom),Aurora) LDFLAG = -L ~/CESAM$(DB)/SOURCE -lcesam$(DBG) -L ~/SUN_STAR_DATA -leos -lutils \ -L ~/SUN_STAR_DATA/H12/lib -lopint \ -L /usr/lib/pgplot5 -lpgplot \ -llapack -lblas #-----------pour bbking else ifeq ($(OSnom),bbking) LDFLAG = -L ~/CESAM$(DB)/SOURCE -lcesam$(DBG) -L ~/SUN_STAR_DATA -leos -lutils \ -L ~/SUN_STAR_DATA/H12/lib -lopint \ -llapack -lblas -lpgplot #-----------pour grieg else ifeq ($(OSnom),grieg) LDFLAG = -L ~/CESAM$(DB)/SOURCE -lcesam$(DBG) -L ~/SUN_STAR_DATA -leos -lutils \ -L ~/SUN_STAR_DATA/H12/lib -lopint \ -llapack -lblas -lpgplot #----------pour licallo else ifeq ($(OSnom),gurney.cluster) LDFLAG = -L ~/CESAM$(DB)/SOURCE -lcesam$(DBG) -L ~/SUN_STAR_DATA -leos -lutils \ -L ~/SUN_STAR_DATA/H12/lib -lopint \ -L /opt/softs/pgplot -llapack -lblas -lpgplot -lX11 #---------------pour taurus else ifeq ($(OSnom),hal) LDFLAG = -L ~/CESAM$(DB)/SOURCE -lcesam$(DBG) -L ~/SUN_STAR_DATA -leos -lutils \ -L ~/SUN_STAR_DATA/H12/lib -lopint -L /opt/softs/pgplot \ -llapack -lblas -lpgplot -lX11 #---------------pour Acer else ifeq ($(OSnom),Acer) LDFLAG = -L ~/CESAM$(DB)/SOURCE -lcesam$(DBG) -L ~/SUN_STAR_DATA -leos -lutils \ -L ~/SUN_STAR_DATA/H12/lib -lopint \ -L /usr/lib/pgplot5 -lpgplot \ -L /usr/lib -llapack -lblas \ -L /usr/lib/x86_64-linux-gnu -lm -lpng -lX11 #---------------pour Pc-0 else ifeq ($(OSnom),Pc-0) LDFLAG = -L ~/CESAM$(DB)/SOURCE -lcesam$(DBG) -L ~/SUN_STAR_DATA -leos -lutils \ -L ~/SUN_STAR_DATA/H12/lib -lopint \ -L /usr/lib/pgplot5 -lpgplot \ -llapack -lblas #-------------pour Latitude else ifeq ($(OSnom),Latitude) LDFLAG = -L ~/CESAM$(DB)/SOURCE -lcesam$(DBG) -L ~/SUN_STAR_DATA -leos -lutils \ -L ~/SUN_STAR_DATA/H12/lib -lopint \ -L /usr/lib/pgplot5 -lpgplot \ -L /usr/lib -lpng \ -lm -llapackmt -lblasmt #-----------pour la plupart des machines else LDFLAG = -L ~/CESAM$(DB)/SOURCE -lcesam$(DBG) -L ~/SUN_STAR_DATA -leos -lutils \ -L ~/SUN_STAR_DATA/H12/lib -lopint \ -llapack -lblas -lpgplot -lX11 endif #--------------- flags automatiques pour compilation Fortran95 ifeq ($(DBG),T) FFLAGS = $(FLA) else ifeq ($(DBG),T-dbg) FFLAGS = $(FLAD) else ifeq ($(DBG),2k) FFLAGS = $(FLA) else ifeq ($(DBG),2k-dbg) FFLAGS = $(FLAD) endif #----------------modules à mettre dans la bibliothèque LIST = mod_kind mod_numerique mod_numres mod_donnees mod_variables \ mod_opa mod_etat_saha mod_etat mod_conv mod_atm mod_nuc \ mod_bp_for_alecian_new mod_evol mod_static mod_cesam mod_exploit \ mod_sismo mod_spectro mod_photo #----------------ajout de suffixes SRCS = $(addsuffix .f,$(LIST)) OBJS = $(addsuffix .o,$(LIST)) MODS = $(addsuffix .mod,$(LIST)) #-----------------écritures ech: # @echo $(LIST) # @echo $(SRCS) # @echo $(OBJS) # @echo $(MODS) # @echo $(DBG) # @echo $(FLA) # @echo $(FLAD) @echo $(FFLAGS) @echo construction de la bibliothèque libcesam$(DBG).a @echo construction de cesam$(DBG).out @echo machine utilisée: $(OSnom) @echo compilateur utilisé: $(FORTRAN) #----nettoyage (on conserve les modules pour les exploitations) propre: $(RANL) libcesam$(DBG).a $(RM) $(OBJS) #---construction de l'exécutable en utilisant cesam2k.f cesam$(DBG).out: cesam2k.f libcesam$(DBG).a $(FORTRAN) $(FFLAGS) -o cesam$(DBG).out cesam2k.f $(LDFLAG) #----------------construction de la bibliothèque libcesam$(DBG).a: $(MODS) $(AR) libcesam$(DBG).a $(OBJS) # -----------------compilation # création implicite de toutes les cibles (*.mod), # en utilisant ($<) les pré-requis de même nom (*.f) %.mod : %.f $(FORTRAN) $(FFLAGS) $< -c clean: $(RM) cesam$(DBG).out libcesam$(DBG).a