Changeset 143


Ignore:
Timestamp:
03/22/11 16:33:29 (11 years ago)
Author:
hozdoba
Message:
 
Location:
XMLIO_V2/dev/dev_rv
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/dev_rv/Makefile.wk

    r142 r143  
     1<<<<<<< .mine 
    12################################################################################ 
    23###################        Projet xios - xmlioserver       ##################### 
    34#                                                                              # 
    4 #         * Copyright © OZDOBA Hervé (herve.ozdoba@lsce.ipsl.fr) *           # 
    5 #                   * ©MEURDESOIF Yann (yann.meurdesoif@cea.fr) *             # 
     5#         * Copyright © OZDOBA Hervé (herve.ozdoba@lsce.ipsl.fr) *             # 
     6#                   * ©        MEURDESOIF Yann (yann.meurdesoif@cea.fr) *             # 
    67#                                    * Avril 2010 - Octobre 2011 *             # 
    78#                                                                              # 
     
    1112 
    1213DEBUG     = yes 
    13 MCOLOR    = no 
     14MCOLOR    = yes 
    1415SHOWCMD   = yes 
    1516VTK       = no 
    1617GUI       = no 
    1718NPROC     = 2 
    18 CSUITE    = intel 
    19 PFORME    = platine-wk 
     19CSUITE    = gnu 
     20PFORME    = fedora-wk 
    2021FORTEXT   = .f90 
    2122DEV_PATH  = $(PWD) 
     
    2627 
    2728#################################### Chemins ################################### 
    28  
    29 ifeq ($(PFORME), platine-wk) 
    30         NETCDF_PATH = /applications/netcdf-4.1.1 
    31         INTEL_PATH  =  
    32         BOOST_PATH  = /applications/boost-1.37.0/gnu/include/boost-1_37 
    33         HDF5_PATH   = /applications/hdf5-1.8.5 
    34         MPI_PATH    = /applications/openmpi-1.2.9 
    35 endif 
    3629 
    3730ifeq ($(PFORME), fedora-wk) 
     
    4841VERSTR   = version $(CSUITE) 
    4942 
    50 ifeq ($(COMPTOOL), intel-platine-wk) 
    51    CCPP   = $(A)icc 
    52    CFORT  = $(A)ifort 
    53    LINK   = $(A)$(MPI_PATH)/bin/mpif90 -nofor-main 
    54    AR     = $(A)ar 
    55    T2F    = # indisponible 
    56    RMDIR  = $(A)rm -rf 
    57    REMOVE = $(A)rm -f 
    58    COPY   = $(A)cp 
    59    DOX    = # indisponible 
    60    TAR    = # indisponible 
    61    GZIP   = # indisponible 
    62    EXNET  = # indisponible 
    63    MPIRUN = $(A)$(MPI_PATH)/bin/mpirun 
    64 endif 
    65  
    6643ifeq ($(COMPTOOL), gnu-fedora-wk) 
    6744   CCPP   = $(A)g++ 
    6845   CFORT  = $(A)gfortran 
    69    LINK   = $(A)$(MPI_PATH)/bin/mpif90 
     46   LINK   = $(A)/usr/lib/openmpi/bin/mpif90 
    7047   AR     = $(A)ar 
    7148   T2F    = $(A)txt2tags 
     
    8360   CCPP   = $(A)icc 
    8461   CFORT  = $(A)ifort 
    85    LINK   = $(A)$(MPI_PATH)/bin/mpif90 
     62   LINK   = $(A)mpif90 
    8663   AR     = $(A)ar 
    8764   T2F    = $(A)txt2tags 
     
    167144####################### Chemins vers la bibliothÚque VTK ####################### 
    168145 
     146INCLUDE   += -I /usr/include/vtk 
     147 
     148####################### Chemins vers la bibliothÚque NETCDF #################### 
     149 
     150NETCDF_BIN  = $(NETCDF_PATH)/bin 
     151NETCDF_LIB  = $(NETCDF_PATH)/lib 
     152NETCDF_INCL = $(NETCDF_PATH)/include 
     153 
     154HDF5_INCL   = $(HDF5_PATH)/include 
     155HDF5_LIB    = $(HDF5_PATH)/lib 
     156 
     157LIBS_PATH += -L $(NETCDF_LIB) -L $(HDF5_LIB) 
     158LIBS      += -lnetcdf -lhdf5_hl -lhdf5 -lz 
     159INCLUDE   += -I $(NETCDF_INCL) 
     160 
     161####################### Chemins vers la bibliothÚque MPI ####################### 
     162 
     163MPI_LIB  = $(MPI_PATH)/bin/ 
     164MPI_LIB  = $(MPI_PATH)/lib 
     165MPI_INCL = /usr/include/openmpi-i386/ 
     166 
     167LIBS_PATH += -L $(MPI_LIB) 
     168LIBS      += -lmpi_cxx -lmpi 
     169INCLUDE   += -I $(MPI_INCL) 
     170FFLAGS    += -I $(MPI_INCL) 
     171 
     172################################ VARIABLES ##################################### 
     173 
     174LIBS    += -lstdc++ 
     175INCLUDE += -I $(SRC_PATH) 
     176DEFINE   = -D XIOS_LIBRARY 
     177 
     178ifeq ($(VTK), yes) 
     179        LIBS += -lvtkCommon -lvtkIO -lvtkFiltering -lvtkRendering -lvtkHybrid 
     180endif 
     181 
     182ifeq ($(COMPTOOL), intel-fedora-wk) 
     183        LIBS_PATH += -L $(INTEL_PATH)/lib 
     184        LIBS      += -lifcore -lintlc 
     185endif 
     186 
     187NODEPS   = clean clean-all 
     188 
     189FFLAGS  += -D XIOS_LIBRARY 
     190CFLAGS   = -ansi $(DEFINE) $(INCLUDE) 
     191LDFLAGS  = $(LIBS_PATH) $(LIBS) 
     192 
     193ifeq ($(CSUITE), intel) 
     194        FFLAGS += -module $(LIB_PATH) 
     195        CFLAGS += -diag-disable 1125 
     196endif 
     197ifeq ($(CSUITE), gnu) 
     198        FFLAGS += -J $(LIB_PATH) 
     199        CFLAGS += -W -Wall -Wno-unused-parameter -Wno-long-long -Wno-deprecated 
     200endif 
     201 
     202ifeq ($(DEBUG), yes) 
     203        CFLAGS += -D XIOS_DEBUG -g 
     204endif 
     205 
     206EXENAME   = $(BIN_PATH)/xmlioserver.exe 
     207LIBSTATIC = $(LIB_PATH)/libxmlioserver.a 
     208 
     209################################### SOURCES #################################### 
     210 
     211# Source de l'interface C (contenue dans dans le dossier src/iface) 
     212ICSOURCE = interface 
     213 
     214# Sources de l'interface fortran (contenues dans le dossier src/fortran) 
     215IFSOURCE = ixmlioserver 
     216 
     217# Sources de la bibliothÚque (contenues dans le dossier src) 
     218LSOURCE  = object exception                                 \ 
     219           date calendar duration calendar_util             \ 
     220           attribute attribute_map attribute_template       \ 
     221           object_factory group_factory                     \ 
     222           indent xml_node xml_parser                       \ 
     223           buffer linear_buffer circular_buffer             \ 
     224           buffer_list buffer_pair                          \ 
     225           data_treatment data_output                       \ 
     226           rebuild functor mask configure 
     227 
     228# Sources des gestionnaires (contenues dans le dossier manager) 
     229MSOURCE  = tree_manager mpi_manager xios_manager 
     230 
     231# Sources pour le traitement des noeuds xml (contenues dans le dossier node) 
     232NSOURCE  = axis domain field file grid context 
     233 
     234# Sources pour les opérations à effectuer sur les champs (contenues dans le dossier functor) 
     235FSOURCE  = once instant average 
     236 
     237# Sources contenant les différents type de calendriers (contenues dans le dossier date) 
     238DSOURCE = julian gregorian noleap allleap d360 
     239 
     240# Sources pour l'interface graphique (contenues dans le dossier qt) 
     241ifeq ($(GUI), yes) 
     242        QSOURCE = # vidé # 
     243endif 
     244 
     245# Sources pour le lecteur vtk (contenues dans le dossier vtk) 
     246ifeq ($(VTK), yes) 
     247        VSOURCE = lscereader 
     248endif 
     249 
     250# Sources pour les entrées (contenues dans le dossier input) 
     251ISOURCE = inetcdf4 nc4_data_input 
     252 
     253# Sources pour les sorties (contenues dans le dossier output) 
     254OSOURCE = onetcdf4 nc4_data_output 
     255 
     256# Source des faux client 
     257TSOURCE = fake_nemo fake_lmdz fake_orchidee 
     258 
     259# Nom du fichier contenant les points d'entrée des programmes 
     260MAINNAME = main 
     261 
     262DOC_T2T = $(wildcard *.t2t) 
     263COM_T2T = $(patsubst %.t2t,%.html,$(DOC_T2T)) 
     264 
     265##############################  Modifications ################################## 
     266 
     267ELEMS_FOR = $(TSOURCE) $(IFSOURCE)  
     268             
     269ELEMS_CPP = $(ICSOURCE) $(OSOURCE) $(ISOURCE) $(LSOURCE) \ 
     270            $(VSOURCE)  $(QSOURCE) $(DSOURCE) $(FSOURCE) \ 
     271            $(NSOURCE)  $(MSOURCE)  
     272 
     273ELEMS_ALL = $(ELEMS_CPP) $(ELEMS_FOR) 
     274               
     275OBJECTS = $(addprefix $(OBJ_PATH)/, $(addsuffix .o, $(ELEMS_ALL))) $(OBJ_PATH)/impi_interface.o 
     276DEPENDS = $(addprefix $(DEP_PATH)/, $(addsuffix .d, $(ELEMS_CPP))) 
     277 
     278################################### RÚgles ##################################### 
     279 
     280all: depend build 
     281 
     282build: preproc $(EXENAME) 
     283 
     284.PHONY: t2t 
     285t2t: $(COM_T2T) 
     286 
     287.PHONY: run 
     288run: all clean-dat 
     289        $(call COLORMSG, $(C_White),"Exécution du serveur d'E/S de l'IPSL ($(VERSTR) C++) ...") 
     290        $(MPIRUN) -np $(NPROC) $(EXENAME) 
     291 
     292.PHONY: depend 
     293depend: preproc $(DEPENDS) 
     294 
     295.PHONY: preproc 
     296preproc : $(FSRC_PATH)/$(IFSOURCE)$(FORTEXT) $(CSRC_PATH)/$(ICSOURCE).cpp 
     297 
     298.PHONY: clean-depend 
     299clean-depend: 
     300        $(REMOVE) $(DEP_PATH)/*.d 
     301 
     302clean-t2t: 
     303#$(REMOVE) $(COM_T2T) 
     304 
     305clean-doc: clean-t2t 
     306        $(RMDIR)  $(DOC_PATH)/html 
     307        $(REMOVE) $(DEV_PATH)/doxygen.log 
     308 
     309clean-exe: 
     310        $(REMOVE) $(BIN_PATH)/*.exe 
     311 
     312clean-lib: 
     313        $(REMOVE) $(LIB_PATH)/*.a 
     314 
     315clean-mod: 
     316        $(REMOVE) $(LIB_PATH)/*.mod 
     317 
     318clean-dll: 
     319        $(REMOVE) $(BIN_PATH)/*.dll 
     320 
     321clean-gen: 
     322        $(REMOVE) $(SRC_PATH)/iface/interface.cpp 
     323        $(REMOVE) $(SRC_PATH)/fortran/ixmlioserver$(FORTEXT) 
     324 
     325clean-obj: 
     326        $(REMOVE) $(OBJ_PATH)/*.o 
     327 
     328clean-dat: 
     329        $(REMOVE) $(DATA_PATH)/*.dat 
     330        $(REMOVE) $(DATA_PATH)/*.nc 
     331        $(REMOVE) $(DATA_PATH)/def/* 
     332 
     333.PHONY: clean 
     334clean : clean-obj    \ 
     335        clean-mod    \ 
     336        clean-gen    \ 
     337        clean-depend 
     338 
     339.PHONY: clean-all 
     340clean-all : clean     \ 
     341            clean-exe \ 
     342            clean-dll \ 
     343            clean-dat \ 
     344            clean-lib \ 
     345            clean-doc 
     346 
     347.PHONY: doc 
     348doc: t2t 
     349        $(DOX) 
     350        $(REMOVE) $(DOC_PATH)/doc.tar.gz 
     351        $(TAR)    $(DOC_PATH)/doc/doc.tar doc/html > $(DEV_PATH)/tar_output 
     352        $(REMOVE) $(DEV_PATH)/tar_output 
     353        $(GZIP)   $(DOC_PATH)/doc/doc.tar 
     354 
     355.PHONY: show-doc 
     356show-doc: doc 
     357        $(EXNET) $(DOC_PATH)/doc/html/index.html 
     358 
     359################################ Compilation ################################### 
     360 
     361$(OBJ_PATH)/$(MAINNAME)_server.o: $(DEP_PATH)/$(MAINNAME)_server.d 
     362 
     363$(EXENAME): $(OBJ_PATH)/$(MAINNAME)_server.o $(LIBSTATIC)  
     364        $(call COLORMSG, $(C_Purple),"Génération du serveur d'E/S de l'IPSL ($(VERSTR) C++) ...") 
     365        $(LINK) -o $@ $^ $(LDFLAGS) 
     366 
     367$(LIBSTATIC) : $(OBJECTS) 
     368        $(call COLORMSG, $(C_Green),"Génération de l'archive de la bibliothÚque d'E/S de l'IPSL...") 
     369        $(AR) crs $@ $^ 
     370 
     371################################ Dépendances ################################### 
     372 
     373 
     374ifeq (0, $(words $(findstring $(MAKECMDGOALS), $(NODEPS)))) 
     375-include $(DEPENDS) 
     376endif 
     377 
     378 
     379################################################################################ 
     380 
     381%.html: %.t2t 
     382        $(T2F) -t html $< 
     383 
     384# Preproc 
     385$(FSRC_PATH)/%$(FORTEXT): %.f03.in $(FSRC_PATH)/macro.inc 
     386        $(F90ROC) $@ $< 
     387 
     388$(CSRC_PATH)/%.cpp: %.cpp.in $(CSRC_PATH)/macro.inc 
     389        $(CPPROC) $@ $< 
     390 
     391# Dépendances 
     392$(DEP_PATH)/%.d: %.cpp 
     393        $(CCPP) $(CFLAGS) -D XIOS_NO_EXTERN -MT $(OBJ_PATH)/$(patsubst %.d,%.o,$(@F)) -MM -MF $@ $< 
     394 
     395# Objets cpp 
     396$(OBJ_PATH)/%.o: %.cpp %.d 
     397        $(CCPP) $(CFLAGS) -o $@ -c $< 
     398 
     399# Objets fortran 
     400 
     401$(FSRC_PATH)/%.f03: %.f90 
     402        $(COPY) $< $@ 
     403 
     404$(FAKE_PATH)/%.f03: %.f90 
     405        $(COPY) $< $@ 
     406 
     407$(LIB_PATH)/%.mod: $(OBJ_PATH)/%.o 
     408 
     409$(OBJ_PATH)/%.o: $(FSRC_PATH)/%$(FORTEXT)   
     410        $(CFORT) $(FFLAGS) -o $@ -c $< 
     411 
     412$(OBJ_PATH)/%.o: $(FAKE_PATH)/%$(FORTEXT) $(OBJ_PATH)/ixmlioserver.o 
     413        $(CFORT) $(FFLAGS) -o $@ -c $< 
     414 
     415#################################### FIN ####################################### 
     416======= 
     417################################################################################ 
     418###################        Projet xios - xmlioserver       ##################### 
     419#                                                                              # 
     420#         * Copyright © OZDOBA Hervé (herve.ozdoba@lsce.ipsl.fr) *           # 
     421#                   * ©MEURDESOIF Yann (yann.meurdesoif@cea.fr) *             # 
     422#                                    * Avril 2010 - Octobre 2011 *             # 
     423#                                                                              # 
     424################################################################################ 
     425 
     426################################# Configuration ################################ 
     427 
     428DEBUG     = yes 
     429MCOLOR    = no 
     430SHOWCMD   = yes 
     431VTK       = no 
     432GUI       = no 
     433NPROC     = 2 
     434CSUITE    = intel 
     435PFORME    = platine-wk 
     436FORTEXT   = .f90 
     437DEV_PATH  = $(PWD) 
     438 
     439ifeq ($(SHOWCMD), no) 
     440   A = @ 
     441endif 
     442 
     443#################################### Chemins ################################### 
     444 
     445ifeq ($(PFORME), platine-wk) 
     446        NETCDF_PATH = /applications/netcdf-4.1.1 
     447        INTEL_PATH  =  
     448        BOOST_PATH  = /applications/boost-1.37.0/gnu/include/boost-1_37 
     449        HDF5_PATH   = /applications/hdf5-1.8.5 
     450        MPI_PATH    = /applications/openmpi-1.2.9 
     451endif 
     452 
     453ifeq ($(PFORME), fedora-wk) 
     454        NETCDF_PATH = $(DEV_PATH)/netcdf4 
     455        INTEL_PATH  = /work/intel/composerxe 
     456        BOOST_PATH  = /usr/include 
     457        HDF5_PATH   = $(DEV_PATH)/hdf5 
     458        MPI_PATH    = /usr/lib/openmpi 
     459endif 
     460 
     461######################## Outils de compilations standard ####################### 
     462 
     463COMPTOOL = $(CSUITE)-$(PFORME) 
     464VERSTR   = version $(CSUITE) 
     465 
     466ifeq ($(COMPTOOL), intel-platine-wk) 
     467   CCPP   = $(A)icc 
     468   CFORT  = $(A)ifort 
     469   LINK   = $(A)$(MPI_PATH)/bin/mpif90 -nofor-main 
     470   AR     = $(A)ar 
     471   T2F    = # indisponible 
     472   RMDIR  = $(A)rm -rf 
     473   REMOVE = $(A)rm -f 
     474   COPY   = $(A)cp 
     475   DOX    = # indisponible 
     476   TAR    = # indisponible 
     477   GZIP   = # indisponible 
     478   EXNET  = # indisponible 
     479   MPIRUN = $(A)$(MPI_PATH)/bin/mpirun 
     480endif 
     481 
     482ifeq ($(COMPTOOL), gnu-fedora-wk) 
     483   CCPP   = $(A)g++ 
     484   CFORT  = $(A)gfortran 
     485   LINK   = $(A)$(MPI_PATH)/bin/mpif90 
     486   AR     = $(A)ar 
     487   T2F    = $(A)txt2tags 
     488   RMDIR  = $(A)rm -rf 
     489   REMOVE = $(A)rm -f   
     490   COPY   = $(A)cp 
     491   DOX    = $(A)doxygen -s 
     492   TAR    = $(A)tar -cvf 
     493   GZIP   = $(A)gzip -9 -q 
     494   EXNET  = $(A)firefox 
     495   MPIRUN = $(A)$(MPI_PATH)/bin/mpirun 
     496endif 
     497 
     498ifeq ($(COMPTOOL), intel-fedora-wk) 
     499   CCPP   = $(A)icc 
     500   CFORT  = $(A)ifort 
     501   LINK   = $(A)$(MPI_PATH)/bin/mpif90 
     502   AR     = $(A)ar 
     503   T2F    = $(A)txt2tags 
     504   RMDIR  = $(A)rm -rf 
     505   REMOVE = $(A)rm -f 
     506   COPY   = $(A)cp 
     507   DOX    = $(A)doxygen -s 
     508   TAR    = $(A)tar -cvf 
     509   GZIP   = $(A)gzip -9 -q 
     510   EXNET  = $(A)firefox 
     511   MPIRUN = $(A)$(MPI_PATH)/bin/mpirun 
     512endif 
     513 
     514################################ Sortie couleur ################################ 
     515 
     516C_Black         = "\033[0;30m" 
     517C_Blue          = "\033[0;34m" 
     518C_Green         = "\033[0;32m" 
     519C_Cyan          = "\033[0;36m" 
     520C_Red           = "\033[0;31m" 
     521C_Purple        = "\033[0;35m" 
     522C_Brown         = "\033[0;33m" 
     523C_Light_Gray    = "\033[0;37m" 
     524C_Dark_Gray     = "\033[1;30m" 
     525C_Light_Blue    = "\033[1;34m" 
     526C_Light_Green   = "\033[1;32m" 
     527C_Light_Cyan    = "\033[1;36m" 
     528C_Light_Red     = "\033[1;31m" 
     529C_Light_Purple  = "\033[1;35m" 
     530C_Yellow        = "\033[1;33m" 
     531C_White         = "\033[1;37m" 
     532NO_COLOUR       = "\033[0m" 
     533 
     534ifeq ($(MCOLOR), yes) 
     535        COLORMSG = @echo -e "\033[1m" $1 $2 $(NO_COLOUR) 
     536else 
     537        COLORMSG = @echo $2 
     538endif 
     539 
     540############################# Répertoire du projet ############################# 
     541 
     542OBJ_PATH  = $(DEV_PATH)/obj 
     543BIN_PATH  = $(DEV_PATH)/bin 
     544LIB_PATH  = $(DEV_PATH)/lib 
     545SRC_PATH  = $(DEV_PATH)/src 
     546DOC_PATH  = $(DEV_PATH)/doc 
     547DEP_PATH  = $(DEV_PATH)/dep 
     548DATA_PATH = $(DEV_PATH)/data 
     549CONF_PATH = $(DEV_PATH)/conf 
     550SCRT_PATH = $(DEV_PATH)/script 
     551 
     552# Sous-répertoires des sources : 
     553 
     554FSRC_PATH = $(SRC_PATH)/fortran 
     555CSRC_PATH = $(SRC_PATH)/iface 
     556 
     557NODE_PATH = $(SRC_PATH)/node 
     558FUNC_PATH = $(SRC_PATH)/functor 
     559DATE_PATH = $(SRC_PATH)/date 
     560GUI_PATH  = $(SRC_PATH)/qt 
     561VTK_PATH  = $(SRC_PATH)/vtk 
     562INPT_PATH = $(SRC_PATH)/input 
     563OUPT_PATH = $(SRC_PATH)/output 
     564MNGR_PATH = $(SRC_PATH)/manager 
     565 
     566FAKE_PATH = $(SRC_PATH)/fake_client 
     567 
     568################################################################################ 
     569 
     570VPATH = $(DEP_PATH):$(SRC_PATH):$(CSRC_PATH):$(NODE_PATH)\ 
     571:$(FUNC_PATH):$(DATE_PATH):$(GUI_PATH):$(VTK_PATH):$(INPT_PATH)\ 
     572:$(OUPT_PATH):$(MNGR_PATH):$(FAKE_PATH):$(FSRC_PATH) 
     573 
     574######################## Outils de traitements internes ######################## 
     575 
     576CPPROC  = $(SCRT_PATH)/preprocess_cpp.sh 
     577F90ROC  = $(SCRT_PATH)/preprocess_f03.sh 
     578 
     579####################### Chemins vers la bibliothÚque BOOST ##################### 
     580 
     581INCLUDE    = -I $(BOOST_PATH) 
     582 
     583####################### Chemins vers la bibliothÚque VTK ####################### 
     584 
    169585ifeq ($(VTK), yes) 
    170586        INCLUDE   += -I /usr/include/vtk 
     
    447863 
    448864#################################### FIN ####################################### 
     865>>>>>>> .r142 
  • XMLIO_V2/dev/dev_rv/xmlioserver.geany

    r141 r143  
    1919 
    2020[files] 
    21 current_page=0 
     21current_page=4 
     22FILE_NAME_0=9872;Make;0;16;1;1;0;/work/dev_rv/Makefile.wk;0;3 
     23FILE_NAME_1=0;C++;0;16;0;1;0;/work/dev_rv/src/output/onetcdf4.hpp;0;3 
     24FILE_NAME_2=0;C++;0;16;0;1;0;/work/dev_rv/src/manager/mpi_manager.hpp;0;3 
     25FILE_NAME_3=0;C++;0;16;0;1;0;/work/dev_rv/src/output/nc4_data_output.hpp;0;3 
     26FILE_NAME_4=687;C++;0;16;0;1;0;/work/dev_rv/src/output/onetcdf4.cpp;0;3 
    2227 
    2328[build-menu] 
Note: See TracChangeset for help on using the changeset viewer.