Commit 0f87998d authored by Dany Dumont's avatar Dany Dumont

Ajout du fichier Rules.make

parent b9e7fd9a
#$Id: Rules.make,v 1.17 2006-10-26 13:12:46 kbk Exp $
SHELL = /bin/sh
# The compilation mode is obtained from $COMPILATION_MODE -
# default production - else debug or profiling
ifndef COMPILATION_MODE
compilation=production
else
compilation=$(COMPILATION_MODE)
endif
# Force this here. Could be done in bashrc.
#FORTRAN_COMPILER=PGF90
#FORTRAN_COMPILER=GFORTRAN
FORTRAN_COMPILER=IFORT
DEFINES=-DNUDGE_VEL
DEFINES=-D$(FORTRAN_COMPILER)
# What do we include in this compilation
NetCDF = true
SEDIMENT = false
SEAGRASS = false
BIO = true
FEATURES =
FEATURE_LIBS =
EXTRA_LIBS =
INCDIRS =
LDFLAGS =
# If we want NetCDF - where are the include files and the library
NETCDFINC = /usr/include
NETCDFLIBDIR = /usr/lib64
ifdef NETCDFINC
INCDIRS += -I$(NETCDFINC)
endif
ifdef NETCDFLIBNAME
NETCDFLIB = $(NETCDFLIBNAME)
else
NETCDFLIB = -lnetcdff
endif
ifdef NETCDFLIBDIR
LDFLAGS += -L$(NETCDFLIBDIR)
endif
# phony targets
.PHONY: clean realclean distclean dummy
# Top of this version of GOTM.
ifndef GOTMDIR
GOTMDIR := $(HOME)/git/gotm_ismer
endif
CPP = /usr/bin/cpp
# Here you can put defines for the [c|f]pp - some will also be set depending
# on compilation mode.
ifeq ($(NetCDF),true)
DEFINES += -DNETCDF_FMT
EXTRA_LIBS += $(NETCDFLIB)
endif
ifeq ($(SEDIMENT),true)
DEFINES += -DSEDIMENT
FEATURES += extras/sediment
FEATURE_LIBS += -lsediment$(buildtype)
endif
ifeq ($(SEAGRASS),true)
DEFINES += -DSEAGRASS
FEATURES += extras/seagrass
FEATURE_LIBS += -lseagrass$(buildtype)
endif
ifeq ($(BIO),true)
DEFINES += -DBIO
FEATURES += extras/bio
FEATURE_LIBS += -lbio$(buildtype)
endif
# Directory related settings.
ifndef BINDIR
BINDIR = $(GOTMDIR)/bin
endif
ifndef LIBDIR
LIBDIR += $(GOTMDIR)/lib/$(FORTRAN_COMPILER)
endif
ifndef MODDIR
#MODDIR = $(GOTMDIR)/modules
MODDIR = $(GOTMDIR)/modules/$(FORTRAN_COMPILER)
endif
INCDIRS += -I/usr/local/include -I$(GOTMDIR)/include -I$(MODDIR)
# Normaly this should not be changed - unless you want something very specific.
# The Fortran compiler is determined from the EV FORTRAN_COMPILER - options
# sofar NAG(linux), FUJITSU(Linux), DECF90 (OSF1 and likely Linux on alpha),
# SunOS, PGF90 - Portland Group Fortran Compiler (on Intel Linux).
# Sets options for debug compilation
ifeq ($(compilation),debug)
buildtype = _debug
DEFINES += -DDEBUG $(STATIC)
FLAGS = $(DEBUG_FLAGS)
endif
# Sets options for profiling compilation
ifeq ($(compilation),profiling)
buildtype = _prof
DEFINES += -DPROFILING $(STATIC)
FLAGS = $(PROF_FLAGS)
endif
# Sets options for production compilation
ifeq ($(compilation),production)
buildtype = _prod
DEFINES += -DPRODUCTION $(STATIC)
FLAGS = $(PROD_FLAGS)
endif
include $(GOTMDIR)/compilers/compiler.$(FORTRAN_COMPILER)
#DEFINES += -DREAL_4B=$(REAL_4B)
#ifeq ($(FORTRAN_COMPILER),XLF)
#DEFINES:=-WF,"$(DEFINES)"
#DEFINES=-WF,"-DXLF -DNETCDF_FMT -DSEAGRASS -DFORTRAN95 -DPRODUCTION -DREAL_4B=real\(4\)"
#endif
# For making the source code documentation.
PROTEX = protex -b -n -s
.SUFFIXES:
.SUFFIXES: .F90
LINKDIR = -L$(LIBDIR)
CPPFLAGS = $(DEFINES) $(INCDIRS)
FFLAGS = $(DEFINES) $(FLAGS) $(MODULES) $(INCDIRS) $(EXTRAS)
F90FLAGS = $(FFLAGS)
LDFLAGS += $(FFLAGS) $(LINKDIR)
#
# Common rules
#
ifeq ($(can_do_F90),true)
%.o: %.F90
$(FC) $(F90FLAGS) $(EXTRA_FFLAGS) -c $< -o $@
else
%.f90: %.F90
# $(CPP) $(CPPFLAGS) $< -o $@
$(F90_to_f90)
%.o: %.f90
$(FC) $(F90FLAGS) $(EXTRA_FFLAGS) -c $< -o $@
endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment