forked from OSchip/llvm-project
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
|
|
|
|
|