255 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			255 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
| # 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
 | |
| 
 | |
| 
 |