# # MAKEFILE FOR GNU/Linux SPIDER using FFTW on 2 or more processors Intel/AMD 32 bit # FOR: Intel/AMD IA32 GNU/Linux # # Note: To create executable use: make -f Makefile_linux_mpfftw # # Using: Portland Group F90 compiler # Non-native mode byte ordering on: Intel/AMD IA32 GNU/Linux # FFTW3 must be configured with: --enable-float --enable-type-prefix # Use FFTW3 with OMP threads # # Note: You may ignore any undefined: QFFLAGS, QLFLAGS, or SUFFIX # SHELL = /bin/sh PGM = spider WHICH = mpfftw COMP = /usr/pgi/linux86-64/7.1/bin/pgf95 EXE = $(PGM)_linux_$(WHICH)$(SUFFIX) # O3 seems to cause some problems with PGI compiler on SPIDER code # -O2 : Invokes level 2 optimization (-O3 causes some run time problems with PGI compiler on SPIDER code) # -mp : Invokes multi processor support # -tp p6 : Targets 32 bit Pentium Pro/II/III with 32 bit memory addresses, supports x87 FP # -tp p7 : Targets 32 or 64 bit Pentium4 with 32 bit memory addresses, supports SSE1 & SSE2 FP # -Mipa=fast : Invokes interprocedural analysis (some routines may fail to compile) # -fast : Selects an appropriate set of optimization flags usually including -O2 -Munroll -Mnoframe # -fastsse : Selects an appropriate set of flags including SSE support usually including -O2 -Munroll -Mnoframe -Mvect=sse -Mcache_align # -pc 64 : Sets precision of FPU operations FFLAGS = -O2 -Mpreprocess -mp -tp p6 -fast -Kieee -Minfo -byteswapio -Dosf_ieee -DSP_MP -DSP_LIBFFTW3 -c # FFTW library location FFTWLIBDIR = ../fftw/fftw3-32/lib # Link with multi processor support LF = -tp p6 $(QLFLAGS) LIB = $(EXE).a AFLAGS = r # Link with Multiprocessing, FFTW3 , and math libraries LINKLIBS = -Bstatic -L$(FFTWLIBDIR) -lfftw3f -lfftw3f_threads -mp -lm .PRECIOUS : ../bin/$(EXE) $(LIB) include Makefile.inc include Makebody.inc