\section{Exemple de MAKEFILE}\label{sec:makefile}\index{makefile}
Le {\tt MAKEFILE} suivant, créé par Th. Corbard O.C.A., est placé dans le
sous-directory {\tt EXPLOIT}. Les paramètres correspondent au compilateur
{\tt ifc} d'Intell et les chemin à une implantation standard.
Son utilisation est décrite au \paragr{sec:make}.

\begin{tt}\begin{verbatim}

RM=rm -f

AR=ar ruv

FC90 = ifort 

mod_ext=mod #extension for module files

FFLAGS90  =  -extend_source -O -xW -traceback -save -nbs  

OPA_HOUDEK_PATH=../SUN_STAR_DATA/v9/lib

LIBLINK=   -L. -lcesam2k -L$(OPA_HOUDEK_PATH) -lopint -lpgplot -lX11

#Adapt the following if you need to specify the location of X11 and pgplot lib
#PGPLOT_DIR=/usr/local/pgplot
#X11_DIR=/usr/lib64
#LIBLINK=  -L. -lcesam2k -L$(PGPLOT_DIR) -lpgplot -L$(X11_DIR) -lX11
#Mis à jour pour SOURCE et EXPLOIT du 01.03.06, P.Morel

SRCS =  \
mod_kind.f\
mod_numerique.f\
mod_donnees.f\
mod_variables.f\
mod_etat.f\
mod_opa.f\
mod_conv.f\
mod_atm.f\
mod_nuc.f\
mod_bp_for_alecian.f\
mod_evol.f\
mod_static.f\
mod_cesam.f\
mod_exploit.f

OBJS =   \
mod_kind.o\
mod_numerique.o\
mod_donnees.o\
mod_variables.o\
mod_etat.o\
mod_opa.o\
mod_conv.o\
mod_atm.o\
mod_nuc.o\
mod_bp_for_alecian.o\
mod_evol.o\
mod_static.o\
mod_cesam.o\
mod_exploit.o

MODS =    \
mod_kind.$(mod_ext)\
mod_numerique.$(mod_ext)\
mod_donnees.$(mod_ext)\
mod_variables.$(mod_ext)\
mod_etat.$(mod_ext)\
mod_opa.$(mod_ext)\
mod_conv.$(mod_ext)\
mod_atm.$(mod_ext)\
mod_nuc.$(mod_ext)\
mod_bp_for_alecian.$(mod_ext)\
mod_evol.$(mod_ext)\
mod_static.$(mod_ext)\
mod_cesam.$(mod_ext)\
mod_exploit.$(mod_ext)

cesam2k.out: cesam2k.f libcesam2k.a
	$(FC90) $(FFLAGS90) -o cesam2k.out cesam2k.f $(LIBLINK)

libcesam2k.a:  $(MODS)  
	$(AR) libcesam2k.a $(OBJS) 
	$(RM) $(OBJS)

mod_kind.o mod_kind.$(mod_ext): mod_kind.f
	$(FC90) $(FFLAGS90) -c $*.f  

mod_numerique.o mod_numerique.$(mod_ext): \
        arb_rom.f\
        boite.f \
        box.f \
        bsp1dn.f\
        bsp1ddn.f\
        bsp_dis.f\
        bval0.f\
        bval1.f\
        bvald.f\
        coll.f\
        colpnt.f\
        difdiv.f\
        fermi_dirac.f\
        gauss_band.f\
        horner.f\
        intgauss.f\
        linf.f\
        matinv.f\
        neville.f\
        newspl.f\
        newton.f\
        noedif.f\
        noein.f\
        noeud.f\
        noeu_dis.f\
        pause.f\
        polyder.f\
        schu58_n.f\
        shell.f\
        sum_n.f\
        zoning.f\
	mod_kind.$(mod_ext)\
	mod_numerique.f
	$(FC90) $(FFLAGS90) -c $*.f  

mod_donnees.o mod_donnees.$(mod_ext): \
        ctes_85.f\
        ctes_94.f\
        ini_ctes.f\
        lit_nl.f\
        print_ctes.f\
        mod_kind.$(mod_ext)\
        mod_numerique.$(mod_ext)\
        mod_donnees.f
	$(FC90) $(FFLAGS90) -c $*.f

mod_variables.o mod_variables.$(mod_ext): \
        chim_gram.f\
        inter.f\
        sortie.f\
        mod_kind.$(mod_ext)\
        mod_numerique.$(mod_ext)\
        mod_donnees.$(mod_ext)\
        mod_variables.f
	$(FC90) $(FFLAGS90) -c $*.f

mod_etat.o mod_etat.$(mod_ext): \
         df_rotx.f\
         etat.f\
         etat_ceff.f\
         etat_eff.f\
         etat_gong1.f\
         etat_gong2.f\
         etat_mhd.f\
         etat_opal.f\
         etat_opalX.f\
         etat_opalZ.f\
         saha.f\
         mod_kind.$(mod_ext)\
         mod_numerique.$(mod_ext)\
         mod_donnees.$(mod_ext)\
         mod_etat.f
	$(FC90) $(FFLAGS90) -c $*.f

mod_opa.o mod_opa.$(mod_ext): \
         kappa_cond.f\
         opa.f\
         opa_gong.f\
         opa_houdek9.f\
         opa_int_zsx.f\
         opa_opalCO.f\
         opa_opal2.f\
         opa_yveline.f\
         opa_yveline_lisse.f\
         z14xcotrin21.f\
         mod_kind.$(mod_ext)\
         mod_numerique.$(mod_ext)\
         mod_donnees.$(mod_ext)\
         mod_variables.$(mod_ext)\
         mod_opa.f
	$(FC90) $(FFLAGS90) -c $*.f

mod_conv.o mod_conv.$(mod_ext): \
         conv.f\
         conv_a0.f\
         conv_cgm_reza.f\
         conv_cm.f\
         conv_cml.f\
         conv_cm_reza.f\
         conv_jmj.f\
         mod_kind.$(mod_ext)\
         mod_donnees.$(mod_ext)\
         mod_variables.$(mod_ext)\
         mod_conv.f
	$(FC90) $(FFLAGS90) -c $*.f

mod_atm.o mod_atm.$(mod_ext): \
         atm.f\
         coll_atm.f\
         edding.f\
         eq_atm.f\
         hopf.f\
         k5750.f\
         k5777.f\
         lim_atm.f\
         lim_gong1.f\
         lim_tau1.f\
         roger00.f\
         roger02.f\
         roger05.f\
         roger10a.f\
         taueff.f\
         tdetau.f\
         thermo_atm.f\
         trho.f\
         mod_kind.$(mod_ext)\
         mod_numerique.$(mod_ext)\
         mod_donnees.$(mod_ext)\
         mod_variables.$(mod_ext)\
         mod_etat.$(mod_ext)\
         mod_opa.$(mod_ext)\
         mod_conv.$(mod_ext)\
         mod_atm.f
	$(FC90) $(FFLAGS90) -c $*.f

mod_nuc.o mod_nuc.$(mod_ext): \
         abon_ini.f\
         iben.f\
         nuc.f\
	 planetoides.f\
         pp1.f\
         pp3.f\
         ppcno10BeBFe.f\
         ppcno10Fe.f\
         ppcno10K.f\
         ppcno10.f\
         ppcno11.f\
         ppcno12Be.f\
         ppcno12BeBFe.f\
         ppcno12Li.f\
         ppcno12.f\
         ppcno3a12Ne.f\
         ppcno3a9.f\
         ppcno3ac10.f\
         ppcno9.f\
         ppcno9Fe.f\
         rq_reac.f\
         tabul_nuc.f\
         taux_nuc.f\
         vent.f\
         mod_kind.$(mod_ext)\
         mod_numerique.$(mod_ext)\
         mod_donnees.$(mod_ext)\
         mod_variables.$(mod_ext)\
         mod_nuc.f
	$(FC90) $(FFLAGS90) -c $*.f

mod_bp_for_alecian.o mod_bp_for_alecian.$(mod_ext): \
         mod_donnees.$(mod_ext)\
         mod_variables.$(mod_ext)\
         mod_bp_for_alecian.f
	$(FC90) $(FFLAGS90) -c $*.f

mod_evol.o mod_evol.$(mod_ext): \
         alecian1.f\
         coeff_rota.f\
         coeff_rota_saha.f\
         coeff_rota_z16.f\
         collision.f\
         coulomb.f\
         diffm.f\
         diffm_br.f\
         diffm_mp.f\
         difft.f\
         difft_gab.f\
         difft_nu.f\
         diffus.f\
         diffw.f\
         diffw_mpz.f\
	 diffw_p03.f\
         eq_diff_chim.f\
         eq_diff_rota.f\
         evol.f\
         f_rad.f\
	 lmix.f\
         pertw.f\
         pertw_loc.f\
         pertw_ptm.f\
         pertw_sch.f\
         resout_chim.f\
         resout_rota.f\
         rk_imps.f\
         mod_kind.$(mod_ext)\
         mod_numerique.$(mod_ext)\
         mod_donnees.$(mod_ext)\
         mod_variables.$(mod_ext)\
         mod_etat.$(mod_ext)\
         mod_nuc.$(mod_ext)\
         mod_bp_for_alecian.$(mod_ext)\
         mod_evol.f
	$(FC90) $(FFLAGS90) -c $*.f

mod_static.o mod_static.$(mod_ext): \
         coll_qs.f\
         dgrad.f\
         lim_zc.f\
         pertm.f\
         pertm_ext.f\
         pertm_msol.f\
         pertm_tot.f\
         pertm_waldron.f\
         resout.f\
         static.f\
         static_m.f\
         static_r.f\
         thermo.f\
         update.f\
         mod_kind.$(mod_ext)\
         mod_numerique.$(mod_ext)\
         mod_donnees.$(mod_ext)\
         mod_variables.$(mod_ext)\
         mod_etat.$(mod_ext)\
         mod_opa.$(mod_ext)\
         mod_conv.$(mod_ext)\
         mod_atm.$(mod_ext)\
         mod_nuc.$(mod_ext)\
         mod_evol.$(mod_ext)\
         mod_static.f
	$(FC90) $(FFLAGS90) -c $*.f

mod_cesam.o mod_cesam.$(mod_ext): \
         add_ascii.f\
         ascii.f\
         cesam.f\
         des.f\
         des_m.f\
         des_r.f\
         dnunl.f\
         initialise_rota.f\
         list.f\
         output.f\
         osc_adia.f\
         osc_invers.f\
         osc_nadia.f\
         u_initial.f\
         w_initial.f\
         mod_kind.$(mod_ext)\
         mod_numerique.$(mod_ext)\
         mod_donnees.$(mod_ext)\
         mod_variables.$(mod_ext)\
         mod_etat.$(mod_ext)\
         mod_opa.$(mod_ext)\
         mod_atm.$(mod_ext)\
         mod_nuc.$(mod_ext)\
         mod_static.$(mod_ext)\
         mod_cesam.f
	$(FC90) $(FFLAGS90) -c $*.f

mod_exploit.o mod_exploit.$(mod_ext): \
         add_ascii.f\
         ascii.f\
         ctes_85.f\
         ctes_94.f\
         diffw.f\
         diffw_mpz.f\
	 diffw_p03.f\
         ini_ctes.f\
         inter_atm.f\
         lit_binaire.f\
         lit_hr.f\
         lit_nl.f\
         min_max.f\
	 min_max_cond.f\
         osc_adia.f\
         osc_invers.f\
         osc_nadia.f\
         output.f\
         read_ascii.f\
         write_nl.f\
         mod_kind.$(mod_ext)\
         mod_numerique.$(mod_ext)\
         mod_donnees.$(mod_ext)\
         mod_variables.$(mod_ext)\
         mod_etat.$(mod_ext)\
         mod_opa.$(mod_ext)\
         mod_nuc.$(mod_ext)\
         mod_exploit.f
	$(FC90) $(FFLAGS90) -c $*.f


clean:
	$(RM) cesam2k.out libcesam2k.a $(OBJS)  $(MODS) 

touch:
	touch $(SRCS)

\end{verbatim}\end{tt}
