# # ------ MAKEFILE FOR GNU/Linux SPIDER using FFTW on 2 or more processors -- # # Note: To create executable: make -f Makefile_osx_mpfftw_xeon # # Non-native mode byte ordering on: Pentium 4/Xeon for Mac OS10 # FFTW must be configured with: --enable-float --enable-type-prefix # We use FFTW without threads as it is usually slower with threads for # multiple processors in our testing (June 05 al) # # Note: You may ignore any undefined QFFLAGS, QLFLAGS & SUFFIX # SHELL = /bin/sh PGM = spider WHICH = mpfftw_xeon # Using: Intel Fortran compiler 9.1 (ifc) COMP = /opt/intel/fc/9.1.024/bin/ifort EXE = $(PGM)_osx_$(WHICH)$(SUFFIX) # -O3 : Invokes level 3 optimization # -openmp : Invokes OMP 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 # -assume byterecl ; Sets units for the OPEN statement RECL specifier # -WB : Sets compile-time bounds check warning not error # -auto : Sets all local, non-SAVEd variables allocated on run-time stack # -parallel : Sets the auto-parallelizer to generate multithreaded code safe loops # -cm : Sets no messages about questionable programming practices # -fast : Sets options -ipo, -O3, -no-prec-div, -static, and -xP (FAILS TO LINK) # -DSP_MP : cpp flag to activate OMP # -DSP_LIBFFTW : cpp flag to activate FFTW instead of native SPIDER FFT # -DSP_IFC : cpp flag to set use of Intel Fortran Compiler FFLAGS = -static -O3 -openmp -cpp -WB -auto -cm -assume byterecl -DSP_MP -DSP_LIBFFTW -DSP_IFC -c # Link with multi processor support LF = $(QLFLAGS) -openmp # FFTW static library location FFTWLIBDIR = ../fftw/fftw-osx/lib LIB = $(EXE).a AFLAGS = -r # Static Link with FFTW libraries without threads and with static Intel compiler library LINKLIBS = -L$(FFTWLIBDIR) -lsrfftw -lsfftw -i-static .PRECIOUS : ../bin/$(EXE) $(LIB) include Makefile.inc include Makebody.inc