llvm-project/openmp/testsuite/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