# $FreeBSD: ports/science/ncs/files/patch-bin_macros_FreeBSD.mk,v 1.1 2007/06/17 21:04:53 thierry Exp $ #============================================================================ # # Code_Saturne version 1.3 # ------------------------ # # # This file is part of the Code_Saturne Kernel, element of the # Code_Saturne CFD tool. # # Copyright (C) 1998-2007 EDF S.A., France # # contact: saturne-support@edf.fr # # The Code_Saturne Kernel is free software; you can redistribute it # and/or modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # The Code_Saturne Kernel is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with the Code_Saturne Kernel; if not, write to the # Free Software Foundation, Inc., # 51 Franklin St, Fifth Floor, # Boston, MA 02110-1301 USA # #============================================================================ # # Macros du Makefile Code_Saturne pour FreeBSD ############################################## # # Macro pour BFT #--------------- BFT_HOME =${LOCALBASE} BFT_INC =-I$(BFT_HOME)/include BFT_LDFLAGS =-L$(BFT_HOME)/lib -lbft # Macro pour FVM #--------------- FVM_HOME =${LOCALBASE} FVM_INC =-I$(FVM_HOME)/include FVM_LDFLAGS =-L$(FVM_HOME)/lib -lfvm # Macro pour MPI #--------------- # Option MPI MPI =1 MPE =0 MPE_COMM =1 # Pour Open MPI sur saturne MPI_INC =-I$(MPI_HOME)/include MPI_LIB =-L$(MPI_HOME)/lib ${MPI_LIBS} $(PTHREAD_LIBS) # Macro pour Sockets #------------------- # Option Socket SOCKET =1 SOCKET_INC = SOCKET_LIB = # Macro pour XML #--------------- # Option XML XML =1 XML_HOME =${LOCALBASE} XML_INC =-I$(XML_HOME)/include/libxml2 XML_LIB =-L$(XML_HOME)/lib -lxml2 # Macro pour BLAS #---------------- # Option BLAS BLAS =0 BLAS_INC = BLAS_LDFLAGS = # Preprocesseur #-------------- PREPROC = PREPROCFLAGS = # Compilateur C natif #-------------------- CCOMP = $(CC) CCOMPFLAGSDEF = -std=c99 -funsigned-char -pedantic -W -Wall -Wshadow \ -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings \ -Wstrict-prototypes -Wmissing-prototypes \ -Wmissing-declarations -Wnested-externs -Wno-uninitialized CCOMPFLAGS = $(CCOMPFLAGSDEF) $(CFLAGS) -Wno-unused CCOMPFLAGSOPTPART1 = $(CCOMPFLAGSDEF) $(CFLAGS) CCOMPFLAGSOPTPART2 = $(CCOMPFLAGSDEF) $(CFLAGS) CCOMPFLAGSOPTPART3 = $(CCOMPFLAGSDEF) $(CFLAGS) CCOMPFLAGSLO = $(CCOMPFLAGSDEF) -O0 CCOMPFLAGSDBG = $(CCOMPFLAGSDEF) -g CCOMPFLAGSPROF = -pg CCOMPFLAGSVERS = -v # Compilateur FORTRAN #-------------------- # Profiling gprof : -pg -a FTNCOMP = $(FC) FTNCOMPFLAGSDEF = -I. FTNCOMPFLAGS = $(FTNCOMPFLAGSDEF) $(FFLAGS) FTNCOMPFLAGSOPTPART1 = $(FTNCOMPFLAGSDEF) $(FFLAGS) FTNCOMPFLAGSOPTPART2 = $(FTNCOMPFLAGSDEF) $(FFLAGS) FTNCOMPFLAGSOPTPART3 = $(FTNCOMPFLAGSDEF) $(FFLAGS) FTNCOMPFLAGSLO = $(FTNCOMPFLAGSDEF) $(FFLAGS) FTNCOMPFLAGSDBG = $(FTNCOMPFLAGSDEF) -g FTNCOMPFLAGSPROF = -pg FTNCOMPFLAGSVERS = -v # Linker #------- # Linker LDEDL = $(FC) LDEDLFLAGS = $(LDFLAGS) LDEDLFLAGSLO = $(LDFLAGS) LDEDLFLAGSDBG = -g LDEDLFLAGSPROF = -pg LDEDLFLAGSVERS = -v LDEDLRPATH = -rdynamic -Wl,-rpath -Wl, # Positionnement des variables pour le pre-processeur #---------------------------------------------------- # # _POSIX_SOURCE : utilisation des fonctions standard POSIX VARDEF = -D_POSIX_SOURCE # Librairies a "linker" #---------------------- # Librairies de base toujours prises en compte LIBBASIC = $(BFT_LDFLAGS) $(FVM_LDFLAGS) -lm $(PTHREAD_LIBS) # Librairies en mode sans option LIBOPT = # Librairies en mode optimisation reduite LIBLO = # Librairies en mode DEBUG LIBDBG = # Librairie en mode ElectricFence (malloc debugger) LIBEF =-L${LOCALBASE}/lib -lefence # Liste eventuelle des fichiers a compiler avec des options particulieres #------------------------------------------------------------------------ # Sous la forme : # LISTE_OPT_PART = fic_1.c fic_2.c \ # fic_3.F # # # paquet 70% cpu promav gradrc gradco prodsc # paquet 10% cpu jacobi prcpol bilsc2 ; # prodsc est 4 fois plus rapide en O6 qu'en O2 # bilsc2 plus rapide en O1 # pour les autres, on privilegie l'O2, qui est suppose plus fiable # mais fait perdre un peu de temps (2% de perte par rapport a # gradco O3, gradrc jacobi prcpol promav O5) # # Pour les fortrans, les listes ci-dessous servent a differencier # les options d'optimisation # # # Temporairement, gradmc en O1 pour eviter un bug d'optim potentiel # avec gcc 3.3.2 (resolu en 3.3.3) # LISTE_OPT_PART1 = gradco.F gradrc.F jacobi.F prcpol.F promav.F LISTE_OPT_PART2 = prodsc.F prods2.F prods3.F LISTE_OPT_PART3 = gradmc.F