source: CPL/oasis3-mct/branches/OASIS3-MCT_2.0_branch/util/make_dir/TopMakefileOasis3 @ 4775

Last change on this file since 4775 was 4775, checked in by aclsce, 4 years ago
  • Imported oasis3-mct from Cerfacs svn server (not suppotred anymore).

The version has been extracted from https://oasis3mct.cerfacs.fr/svn/branches/OASIS3-MCT_2.0_branch/oasis3-mct@1818

  • Property svn:executable set to *
File size: 2.8 KB
Line 
1##############################################################################
2#This is the top makefile for compiling OASIS3-MCT coupling library including
3#  mct/mpeu, scrip and psmile (i.e. interpolation and communication)
4#Platform dependent settings, compiler options, cpp keys,
5#paths and other stuff has to be set in an include file indicated in make.inc.
6#
7# default : mct/mpeu, scrip and psmile
8# oasis3_psmile (for OASIS3 upward compatibility): mct/mpeu, scrip and psmile
9# realclean : Automatic recompilation of all sources
10#
11#######
12include make.inc
13#
14SHELL = /bin/sh
15MAKEf = $(MAKE) -f TopMakefileOasis3
16#
17# Defining path for FORTRAN and C sources
18LIBSRC  = $(COUPLE)/lib
19#
20# Log and error files for compiling
21LOG = $(COUPLE)/util/make_dir/COMP.log
22ERR = $(COUPLE)/util/make_dir/COMP.err
23#
24#######
25default:
26         rm -f $(LOG) $(ERR)
27         $(MAKEf) makedirs
28         $(MAKEf) makemct
29         $(MAKEf) makelibs
30         $(MAKEf) makepsmile
31#
32oasis3_psmile:
33        rm -f $(LOG) $(ERR)
34        $(MAKEf) makedirs
35        $(MAKEf) makemct
36        $(MAKEf) makelibs
37        $(MAKEf) makepsmile
38#
39realclean:
40        $(MAKEf) cleanlibs
41#
42# Rules for creating build and library directories
43#
44makedirs:
45        @mkdir -p $(ARCHDIR)/build/lib/scrip
46        @mkdir -p $(ARCHDIR)/build/lib/mctdir
47        @mkdir -p $(ARCHDIR)/build/lib/mct
48        @mkdir -p $(ARCHDIR)/build/lib/psmile.$(CHAN)
49        @mkdir -p $(ARCHDIR)/lib
50#
51# Rules for compiling mpeu/mct library
52#
53makemct:
54        @echo "=> Compiling library mpeu and mct"
55        (cd $(ARCHDIR)/build/lib/mctdir; cp -f -r -p $(LIBSRC)/mct/* .;\
56         ./configure MPIFC="$(F90)" FC="$(F90)" CC="$(CC)" \
57         1>> $(LOG) 2>> $(ERR) ;\
58         $(MAKE) 1>> $(LOG) 2>> $(ERR) ; \
59         cp -f ./*/lib*.a   $(ARCHDIR)/lib/; \
60         cp -f ./*/*.o    $(ARCHDIR)/build/lib/mct/; \
61         cp -f ./*/*.mod  $(ARCHDIR)/build/lib/mct/;)
62#
63# Rules for compiling the libraries scrip and psmile
64#
65makelibs:
66        @echo "=> Compiling library scrip"
67        (cd $(ARCHDIR)/build/lib/scrip; cp -f $(LIBSRC)/scrip/src/Makefile .;\
68         $(modifmakefile) ; $(MAKE) all 1>> $(LOG) 2>> $(ERR) )
69
70makepsmile:
71        @echo "=> Compiling library psmile"
72        (cd $(ARCHDIR)/build/lib/psmile.$(CHAN) ; \
73         cp -f $(LIBSRC)/psmile/src/Makefile . ; $(modifmakefile) ; \
74         $(MAKE) all 1>> $(LOG) 2>> $(ERR) )
75#
76# Rules for cleaning
77#
78cleanlibs:
79        @echo cleaning oasis3-mct libraries
80        rm -f $(ARCHDIR)/build/lib/scrip/*
81        rm -f $(ARCHDIR)/build/lib/mct/*
82        rm -f -r $(ARCHDIR)/build/lib/mctdir/*
83        rm -f $(ARCHDIR)/build/lib/psmile.$(CHAN)/*
84        rm -f $(ARCHDIR)/lib/libscrip.a
85        rm -f $(ARCHDIR)/lib/libmct.a
86        rm -f $(ARCHDIR)/lib/libmpeu.a
87        rm -f $(ARCHDIR)/lib/libpsmile.$(CHAN).a
88#
89## Some rules to modify/add variables in makefiles
90#
91modifmakefile = ( echo 'include $(COUPLE)/util/make_dir/make.inc' \
92                         > infile; cat Makefile >> infile ; cp -f infile Makefile )
93#
94########################################################################################
Note: See TracBrowser for help on using the repository browser.