# IMPORTANT : # Variable BTREE must have been set to the build directory # ( export BTREE=/home/daniau/sources/build ) # It is possible to build with the same sources under win32 with PGI Compiler # For Windows : use a cygwin bash shell and set BTREE using cygwin path ex: # export BTREE=/c/dev/build # Location of qmake utility for qt3 and qt4, this is specific to each linux distribution QMAKE3=/usr/lib/qt3/bin/qmake QMAKE4=/usr/bin/qmake # How many thread for Make Qt programs #NBTHREAD=2 ############################################################################### # # Extensions # # This define the extension names for : # + static libraries : libext # + dynamic libraries : soext # + executable : exext # # Uncomment the following according to your platform # Windows #libext=.lib #exext=.exe # Linux # libext=.a soext=.so exext= ############################################################################### # # Dynamic libraries # # Set BUILDSO to y to build dynamic versions of libraries if available # # This has been only tested with gfortran under linux for now ############################################################################### BUILDSO=n ############################################################################### # # OpenMP setup # # The variable OMP contains either nothing, either the compiler switch to # enable OpenMP # # If you want to build a pure serial version leave OMP empty # OMP = # for PGI : # OMP = -mp # for gfortran : # OMP = -fopenmp ############################################################################### OMP = -fopenmp ############################################################################### # # C Compiler Configuration # ############################################################################### # # CC = C compiler # CFLAGS = flags that are used for compiling C files # # Debug setting : # CC = gcc # CFLAGS = -g -fpic -m64 # # Production setting : # CC = gcc # CFLAGS = -O2 -fpic -m64 # # Or for pgcc : # CC = pgcc # CFLAGS = -g -fpic # or CFLAGS = -O2 -fpic # For Compiling under Windows 32bits with PGI add -DPGIW32 to CFLAGS #CC = pgcc #CFLAGS = -O2 -Bstatic -DPGIW32 CC = gcc CFLAGS = -O2 -fpic ############################################################################### # # Fortran 95 Compiler Configuration # ############################################################################### # # F95 = fortran 95 compiler # F95FLAGS = flags to be used when building objects # # Debug settings # F95 = pgf95 # F95FLAGS = -g -fpic -I$(BTREE)/modules # # Production settings # F95 = pgf95 # F95FLAGS = -fastsse -Mipa=fast -fpic -I$(BTREE)/modules # # Note that .mod files will be put in $(BTREE)/modules by makefiles # this is the reason for -I$(BTREE)/modules # # An other note for portland compiler at least : by default the compiler will use # all possible optimisations for the current processor, so the binaries may or may not # work on another one. For example a binary compiled on an Opteron64 may not work # on an Intel x86_64. If you plan to use your binaries on different platforms, # you should use the -tp option # # -tp k8-64 => produce a binary optimized for AMD Opteron family # -tp p7-64 => produce a binary optimized for Intel x64 processors # -tp x64 => produce an unified binary which will run on both AMD and Intel # no -tp option => produce a binary optimized for the running processor #F95 = pgf95 #F95FLAGS = -g -fpic -I$(BTREE)/modules #F95FLAGS = -fastsse -fpic -I$(BTREE)/modules F95 = gfortran F95FLAGS = -ffree-line-length-none -O2 -fpic -I$(BTREE)/modules # For Compiling under Windows 32bits with PGI # Paths for -I must be specified in a windows way (not cygwin way) # that is -I"c:\dev\build\modules" and not -I/c/dev/build/modules #F95 = pgf95 #F95FLAGS = -g -Munix -Bstatic -I"c:\dev\build\modules" # Win32 production setting : #F95FLAGS = -fastsse -Munix -Bstatic -I"c:\dev\build\modules" ############################################################################### # # Linking Configuration # ############################################################################### # # LINK = linker program, usually same as compiler # LINKFLAGS = flags to be used when linking programs # # Debug settings # LINK = pgf95 # LINKFLAGS = -g -L$(BTREE)/lib # # Production settings # LINK = pgf95 # LINKFLAGS = -fastsse -Mipa=fast -L$(BTREE)/lib # # Note that .a files will be put in $(BTREE)/lib by makefiles # this is the reason for -L$(BTREE)/lib #LINK = pgf95 #LINKFLAGS = -g -L$(BTREE)/lib #LINKFLAGS = -fastsse -L$(BTREE)/lib LINK = gfortran LINKFLAGS = -ffree-line-length-none -O2 -L$(BTREE)/lib # For Compiling under Windows 32bits with PGI # Paths for -I must be specified in a windows way (not cygwin way) # that is -L"c:\dev\build\lib" and not -I/c/dev/build/lib #LINK = pgf95 #LINKFLAGS = -g -Munix -Bstatic -L"c:\dev\build\lib" # Win32 production setting : #LINKFLAGS = -fastsse -Munix -Bstatic -L"c:\dev\build\lib" ############################################################################### # # BLAS/LAPACK/ACML Configuration # ############################################################################### # # Location of blas and lapack # # Commercial fortran compilers comes with their own optimized versions of blas # and lapack. If you're running on an AMD processor, you should use acml # http://developer.amd.com/acml.jsp , which is an optimized version of both # blas and lapack (and also some more functionnalities). # # Our Portland Fortran compiler comes with the 3 libraries. As we're running # AMD processors, we use acml. # # EXTERNALLIBPATH may contain a -Ldirectory directive # LAPACK = directive for lapack # BLAS = directive for blas # ACML = directive for acml # # Example 1: # EXTERNALLIBPATH = -L/usr/local/pgi/linux86-64/6.1/lib/ # LAPACK = -llapack # BLAS = -lblas # ACML = # # Example 2: # EXTERNALLIBPATH = # LAPACK = /usr/local/pgi/linux86-64/6.1/lib/liblapack.a # BLAS = /usr/local/pgi/linux86-64/6.1/lib/libblas.a # ACML = # # Example 3: # EXTERNALLIBPATH = -L/usr/local/pgi/linux86-64/6.1/lib/ # LAPACK = # BLAS = # ACML = -lacml # # Example 4: # EXTERNALLIBPATH = # LAPACK = # BLAS = # ACML = /usr/local/pgi/linux86-64/6.1/lib/libacml.a # # Simple rule is that if you set ACML then leave BLAS and LAPACK empty. # # #EXTERNALLIBPATH = #LAPACK = #BLAS = #ACML = /usr/local/pgi/linux86-64/7.0/lib/libacml.a # With gfortran and reference implementation #EXTERNALLIBPATH = #LAPACK = $(BTREE)/lib/lapack_LINUX.a #BLAS = $(BTREE)/lib/blas_LINUX.a #ACML = # With gfortran and acml #EXTERNALLIBPATH = #LAPACK = #BLAS = #ACML = /usr/local/acml4.1.0/gfortran64/lib/libacml.a # With atlas compiled with gfortran and gcc #EXTERNALLIBPATH = #LAPACK = $(BTREE)/lib/liblapack.a #BLAS = $(BTREE)/lib/libf77blas.a $(BTREE)/lib/libcblas.a $(BTREE)/lib/libatlas.a #PTBLAS = $(BTREE)/lib/libptf77blas.a $(BTREE)/lib/libptcblas.a $(BTREE)/lib/libatlas.a #ACML = # With dynamic versions of atlas compiled with gfortran and gcc EXTERNALLIBPATH = LAPACK = $(BTREE)/lib/liblapack.so BLAS = $(BTREE)/lib/libf77blas.so $(BTREE)/lib/libcblas.so $(BTREE)/lib/libatlas.so ACML = # Libs that may be necessary for compiling umfpack, for exemple # EXTRALIBS = -lm -L/usr/local/pgi/linux86-64/7.0/lib -lpgftnrtl -lpgc -lrt # is necessary for using portland fortran blas # #EXTRALIBS = -lm -L/usr/local/pgi/linux86-64/7.0/lib -lpgftnrtl -lpgc -lrt #EXTRALIBS = -lm # Win32 settings #EXTERNALLIBPATH = #LAPACK = -llapack #BLAS = -lblas #ACML = #EXTRALIBS = -llapack -lpgftnrtl ############################################################################### # # FVN Configuration # ############################################################################### # # LINKFVN should not be changed, it defines the linking directives to link # with fvn as it needs both blas and lapack, and also umfpack and amd # which are both compiled within fvn # #LINKFVN = -lfvn -lfvn_fnlib -lumfpack -lamd $(EXTERNALLIBPATH) $(LAPACK) $(BLAS) $(ACML) LINKFVN = -lfvn $(EXTERNALLIBPATH) $(LAPACK) $(BLAS) $(ACML) # # AR = archive utility # AR = ar RANLIB = ranlib