# General Makefile containing all the necessary compiler flags for the tests # modify CC and CFLAGS for OpenMP C compilers # modify FC and FFLAGS for OpenMP Fortran compilers # Content: ######################################################### # 1. Basic usage # 2. General testsuite settings # 3. Compiler selection and Flags ######################################################### ######################################################### # 1. Basic usage ######################################################### # make ctest generate c test "ctest" # make ftest generate fortran test "ftest" # make clean removes all sources and binaries # make cleanall removes sources,binaries and logfiles ######################################################### # 2. General testsuite settings ######################################################### # For general testsuite settings see the configuration file # ompts.conf ######################################################### # 3. Compiler selection and Flags ######################################################### # CLANG Compiler CC = clang CFLAGS = -fopenmp -S -emit-llvm FC = gfortran FFLAGS = -fopenmp -lm FFLAGS = -fopenmp -lm -O3 # GNU Compiler # CC = gcc # CFLAGS = -fopenmp -lm -O3 # FC = gfortran # FFLAGS = -fopenmp -lm # FFLAGS = -fopenmp -lm -O3 # Fujitsu Compilers: #CC = fcc #CFLAGS = -KOMP,fast_GP2=2 #FC=frt #FFLAGS=-KOMP,fast_GP2=2 -w -Am -X9 -Fixed # PGI compilers #CC = pgcc #CFLAGS = -mp #CFLAGS = -mp -DVERBOSE #CFLAGS = -fast -mp #FC = pgf90 #FFLAGS = -fast -mp #FFLAGS = -mp -g # Intel compilers: #CC = icc #CFLAGS = -O3 -ip -openmp #CFLAGS = -Wall -O0 -openmp #CFLAGS = -openmp -lm #CFLAGS = -openmp -lm -DVERBOSE #FC = ifort #FFLAGS = -openmp -lm -fpp # Omni compilers: #CC = ompcc #CFLAGS = -O3 -lm # Assure compilers: #CC = assurec #CFLAGS = -O3 -WApname=project -DUSE_ASSURE=1 #FC = #FFLAGS = # NEC: #CC = c++ #CC = sxc++ #CFLAGS = -Popenmp #FC=sxf90 #FFLAGS= -Popenmp # Hitachi: #CC = xcc #CFLAGS = -O4 -pvec +Op -parallel -omp #FC = #FFLAGS = # SGI: #CC = cc #CFLAGS = -mp -lm #FC = #FFLAGS = # IBM compilers: #CC = xlc_r #CFLAGS = -qsmp=omp -lm #FC=xlf90_r #FFLAGS=-qsmp=omp -qfixed=132 -qlanglvl=extended # SUN compilers #CC = cc #CFLAGS = -fast -xopenmp -lm #FC =f90 #FFLAGS = -xopenmp -fast -lm # open64 compilers # remark: -I. was a workaround because the installation came without omp.h file #CC = opencc #CFLAGS = -O0 -openmp -lm -I. -lomp -lpthread #CFLAGS = -O0 -openmp -lm -I /home/matthew/opt/usr/include -lpthread #CFLAGS = -openmp -lm #FC = openf90 #FFLAGS = -O0 -openmp -lm -lomp -lpthread #Pathscale Compiler #CC = pathcc #CFLAGS = -mp -Ofast -lm #FC=pathf90 #FFLAGS= -mp -Ofast -lm #OpenUH Compiler #CC = uhcc #CFLAGS = -mp #FC = uhf90 #FFLAGS = -mp # Check path FILE=LLVM-IR/lit.tmp CHECK_PATH=`cat $(FILE)` ######################################################################### help: @echo "OpenMP Validation Suite, v3.0" @echo "(C) University of Stuttgart, University of Houston" @echo "" @echo "Do make [rule], where rule may be one of:" @echo " ctest" @echo " Build and run the OpenMP/C validation tests." @echo " ftest" @echo " Build and run the OpenMP/Fortran validation tests." @echo " print_compile_options" @echo " Display the default compiler and compiler options being tested" @echo " cleansrcs" @echo " Remove sources generated from the templates" @echo " cleanbins" @echo " Remove executables from bin/ directory" @echo " cleanouts" @echo " Remove all *.out files from bin/ directory" @echo " cleanlogs" @echo " Remove all *.log files from bin/ directory" @echo " clean" @echo " Clean out and log files" @echo " distclean" @echo " Clean arch test directory with clean" @echo " veryclean" @echo " Remove the entire bin/c directory with distclean" omp_my_sleep: mkdir -p bin/c cp omp_my_sleep.h bin/c/ omp_testsuite: omp_testsuite.h mkdir -p bin/c cp omp_testsuite.h bin/c/ omp_testsuite.h: ompts-c.conf c/* ./ompts_makeHeader.pl -f=ompts-c.conf -t=c .c.o: omp_testsuite omp_my_sleep $(CC) $(CFLAGS) -c $< ctest: omp_my_sleep omp_testsuite ./runtest.pl --lang=c testlist-c.txt cd bin/; make -j ftest: mkdir -p bin/fortran cp omp_testsuite.f bin/fortran cp omp_my_sleep.f bin/fortran ./runtest.pl --lang=fortran testlist-f.txt print_compile_options: @echo "-------------------" @echo "C compiler" @echo "-------------------" @echo "compilation: $(CC) $(CFLAGS)" @$(CC) --version @echo "-------------------" @echo "Fortran compiler" @echo "-------------------" @echo "compilation: $(FC) $(FFLAGS)" @$(FC) --version path_to_arch=$(shell ../runtime/tools/check-openmp-test.pl) cleansrcs: find bin/ -iname "*.[cf]" -exec rm -rf {} \; cleanbins: find bin/c -perm /a+x -type f -exec rm -rf {} \; find ./bin/c -not -name "*.c" -a -not -name "*.ll" -type f -exec rm -rf {} \; cleanouts: find bin/ -iname "*.out" -exec rm -rf {} \; cleanlogs: find bin/ -iname "*.log" -exec rm -rf {} \; rm -rf ./$(path_to_arch) clean: cleanouts cleanlogs cleanbins cleansrcs distclean: clean rm -rf bin/c/* rm -rf LLVM-IR/$(CHECK_PATH) veryclean: distclean rm -rf bin/c/ rm -rf bin/fortran/ cleanall: rm -rf ./bin/c/ rm -rf ./bin/fortran/ rm -rf ./LLVM-IR/$(path_to_arch) rm -rf ./$(path_to_arch) rm -rf ./*.log