#===-- Makefile.config - Local configuration for LLVM ------*- Makefile -*--===#
#
#                     The LLVM Compiler Infrastructure
#
# This file is distributed under the University of Illinois Open Source
# License. See LICENSE.TXT for details.
#
#===------------------------------------------------------------------------===#
#
# This file is included by Makefile.common.  It defines paths and other
# values specific to a particular installation of LLVM.
#
#===------------------------------------------------------------------------===#

# Set the root directory of this polly's object files
POLLY_SRC_ROOT := $(subst //,/,@abs_top_srcdir@)

# Set this variable to the top level directory where LLVM was built
POLLY_OBJ_ROOT := $(subst //,/,@abs_top_builddir@)

# Set the root directory of this project's install prefix
PROJ_INSTALL_ROOT := @prefix@

# Set the C++ flags
ifeq (@GXX@,yes)
POLLY_CXXFLAGS := "-fno-common -Woverloaded-virtual -Wno-long-long -Wall -W -Wno-unused-parameter -Wwrite-strings"
endif

POLLY_CXXFLAGS += "-fno-rtti -fno-exceptions"

# Define the FLAGS for the compilation of isl and imath
#
# Those are the only C files we have in the repository. Hence, we can just use
# the CFLAGS to identify them.
#
# We first set the visibility of all isl functions to hidden to ensure we do
# not clash with other isl versions that got linked into a program that uses
# Polly. (This happens e.g when linking Polly with dragonegg)
#
# We also disable all warnings, as these should be fixed upstream. There is
# no value in reporting them here.
#
# ISL with activated small integer optimization use C99 extern inline
# semantics. In order to work, we need to enable C99 mode (instead the default
# -std=gnu89 in case of gcc)
POLLY_CFLAGS := -fvisibility=hidden
POLLY_CFLAGS += -w
POLLY_CFLAGS += -std=gnu99

CUDALIB_FOUND := @cuda_found@

# Set include directories
POLLY_INC :=  @cuda_inc@ \
              -I$(POLLY_OBJ_ROOT)/lib/External/isl/include \
              -I$(POLLY_OBJ_ROOT)/lib/External/isl \
              -I$(POLLY_SRC_ROOT)/lib/JSON/include \
              -I$(POLLY_SRC_ROOT)/lib/External/isl/include \
              -I$(POLLY_SRC_ROOT)/lib/External/isl/imath \
              -I$(POLLY_SRC_ROOT)/lib/External/isl

POLLY_LD := @cuda_ld@

POLLY_LIB := @cuda_lib@
