# setup: replace vcvars call in iccvars.bat with VC9 vcvars.bat # replace vcvars in ifortvars.bat by iclvars.bat # set CLOCK_RATE to cpu clock speed of benchmark platform #remove -Qx[PB] for 64-bit CXXIFLAGS = -O3 -Qrestrict -Qopenmp -Qopenmp-lib:compat -Qansi_alias -QxB # cl /openmp fails in VC Express; add for full VC CXXMFLAGS = /Ox /EHsc /GL- /Drestrict= /openmp /favor:EM64T /fp:fast #VS2008 requires MT option, such as openmp # add /favor:EM64T for 64-bit FFLAGS = -O3 -Qopenmp -assume:protect_parens -QxP -Qopenmp-lib:compat -Qfpp -Qlowercase -us -D__i386__ LDFLAGS = CXXM = cl CXXI = icl CC = cl FC = ifort .SUFFIXES: .obj all: lcd_f90 lcd_cxxi lcd_cxxm lcd_f90: mains.obj loops90.obj f90_msrdtsc.obj $(FC) $(FFLAGS) mains.obj loops90.obj f90_msrdtsc.obj mv mains.exe $@.exe lcd_ffast: mains.obj loopsfv.obj $(FC) $(FFLAGS) mains.obj loopsfv.obj f90_msrdtsc.obj mv mains.exe $@.exe lcd_cxxi: mains.obj loopstli.obj f90_msrdtsc.obj $(FC) $(FFLAGS) mains.obj loopstli.obj f90_msrdtsc.obj mv mains.exe $@.exe lcd_cxxm: mains.obj loopstlm.obj f90_msrdtsc.obj $(FC) $(FFLAGS) mains.obj loopstlm.obj f90_msrdtsc.obj mv mains.exe $@.exe lcd_cfast: mains.obj loopsv.obj f90_msrdtsc.obj $(FC) $(FFLAGS) mains.obj loopsv.obj f90_msrdtsc.obj mv mains.exe $@.exe mains.obj: mains.F $(FC) -c $(FFLAGS) -Op $*.F loopstli.obj: loopstl.cpp $(CXXI) $(CXXIFLAGS) -c loopstl.cpp mv loopstl.obj $@ loopstlm.obj: loopstl.cpp $(CXXM) $(CXXMFLAGS) -c loopstl.cpp mv loopstl.obj $@ f90_msrdtsc.obj: $(CC) $(CXXFLAGS) -c -DCLOCK_RATE=2001000000 $*.c .F.obj: $(FC) $(FFLAGS) -c $*.F .f.obj: $(FC) $(FFLAGS) -c $*.f .cpp.obj: $(CXX) $(CXXFLAGS) -c $*.cpp .c.obj: $(CXXI) $(CXXIFLAGS) -c $*.c