configure.ac 3.41 KB
Newer Older
incardon's avatar
incardon committed
1 2 3 4 5 6 7 8 9
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.


AC_PREREQ(2.59)
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
AC_CANONICAL_SYSTEM
AC_CONFIG_SRCDIR([src/main.cpp])
AM_INIT_AUTOMAKE
incardon's avatar
incardon committed
10
AC_CONFIG_HEADER([src/config/config.h])
incardon's avatar
incardon committed
11
m4_ifdef([ACX_PTHREAD],,[m4_include([m4/acx_pthread.m4])])
incardon's avatar
incardon committed
12
m4_ifdef([AX_BOOST],,[m4_include([m4/ax_boost.m4])])
incardon's avatar
incardon committed
13 14 15 16
m4_ifdef([ACX_MPI],,[m4_include([m4/acx_mpi.m4])])
m4_ifdef([AX_OPENMP],,[m4_include([m4/ax_openmp.m4])])
m4_ifdef([AX_CUDA],,[m4_include([m4/ax_cuda.m4])])

incardon's avatar
incardon committed
17
CXXFLAGS+=" --std=c++11 -march=native -mtune=native -Wno-unused-local-typedefs -Wextra -Wno-unused-parameter "
incardon's avatar
incardon committed
18
NVCCFLAGS=" "
incardon's avatar
incardon committed
19
INCLUDES_PATH=" "
incardon's avatar
incardon committed
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

# Checks for programs.
AC_PROG_CXX

# Checks g++ flags

AC_CANONICAL_HOST

###### Check for debug compilation

AC_MSG_CHECKING(whether to build with debug information)
debuger=no
AC_ARG_ENABLE(debug,
	AC_HELP_STRING(
	    [--enable-debug],
	    [enable debug data generation (def=no)]
	),
  	debuger="$enableval"
)



AC_MSG_RESULT($debuger)
if test x"$debuger" = x"yes"; then
	AC_DEFINE([DEBUG_MODE],[],[Debug])
	AC_DEFINE([DEBUG],[],[Debug])
	CXXFLAGS="$CXXFLAGS -g3  -Wall -O0 "
	NVCCFLAGS+="$NVCCFLAGS -g -O0 "
else
incardon's avatar
incardon committed
49
	CXXFLAGS="$CXXFLAGS -Wall -O3 -g3 -funroll-loops "
incardon's avatar
incardon committed
50 51 52
	NVCCFLAGS+="$NVCCFLAGS -O3 "
fi

incardon's avatar
incardon committed
53
####### include OpenFPM_devices include path
incardon's avatar
incardon committed
54

incardon's avatar
incardon committed
55
INCLUDES_PATH+=" -I/usr/local/include -I. -Iconfig -I../../OpenFPM_devices/src -I../../OpenFPM_data/src"
incardon's avatar
incardon committed
56 57

###### Check for memleak check compilation
incardon's avatar
incardon committed
58

incardon's avatar
incardon committed
59 60 61
AC_MSG_CHECKING(whether to build with memory check)
mem_check=no
AC_ARG_ENABLE(memcheck,
incardon's avatar
incardon committed
62
	AC_HELP_STRING(
incardon's avatar
incardon committed
63 64
	    [--enable-memcheck],
	    [enable memory checking (def=no)]
incardon's avatar
incardon committed
65
	),
incardon's avatar
incardon committed
66
  	mem_check="$enableval"
incardon's avatar
incardon committed
67 68 69 70
)



incardon's avatar
incardon committed
71 72 73 74 75 76 77
AC_MSG_RESULT($mem_check)
if test x"$mem_check" = x"yes"; then
	AC_DEFINE([MEMLEAK_CHECK],[],[Memory check])
fi

##### CHECK FOR BOOST ##############

incardon's avatar
incardon committed
78
AX_BOOST([1.41],[],[])
incardon's avatar
incardon committed
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

####### Checking for GPU support

AX_CUDA

if test x"$NVCC_EXIST" = x"yes"; then
  AC_MSG_CHECKING(whether to build with GPU support)
  gpu_support=yes
  AC_ARG_ENABLE(gpu,
        AC_HELP_STRING(
            [--enable-gpu],
            [enable gpu support]
        ),
        gpu_support="$enableval"
  )

  AC_MSG_RESULT($gpu_support)
  if test x"$gpu_support" = x"yes"; then
        AC_DEFINE([CUDA_GPU],[],[CUDA GPU support])
  fi
else
  gpu_support=no
incardon's avatar
incardon committed
101 102 103 104 105
fi


# Set this conditional if cuda is wanted

incardon's avatar
incardon committed
106 107 108 109 110 111 112 113 114
#

AM_CONDITIONAL(BUILDCUDA, test x$gpu_support = x"yes")

##### CHECK FOR BOOST ###

AX_BOOST([1.52],[],[])

##########################
incardon's avatar
incardon committed
115 116

AC_SUBST(NVCCFLAGS)
incardon's avatar
incardon committed
117
AC_SUBST(INCLUDES_PATH)
incardon's avatar
incardon committed
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_CONFIG_FILES([Makefile src/Makefile])
AC_OUTPUT
echo ""
echo   "***********************************"
echo   "*                                 *"
if [ test x"$profiler" = x"yes" ]; then
  echo "*    profiler: yes                *"
else
  echo "*    profiler: no                 *"
fi
incardon's avatar
incardon committed
133 134 135 136 137
if [ test x"$memcheck" = x"yes" ]; then
  echo "*    memcheck: yes                *"
else
  echo "*    memcheck: no                 *"
fi
incardon's avatar
incardon committed
138 139 140 141 142 143 144 145 146 147 148 149 150
if [ test x"$debuger" = x"yes" ]; then
  echo "*    debug: yes                   *"
else
  echo "*    debug: no                    *"
fi
if [ test x"$gpu_support" = x"no" ]; then
  echo "*    gpu: no                      *"
else
  echo "*    gpu: yes                     *"
fi
echo   "*                                 *"
echo   "***********************************"