1AC_INIT(mdds, 1.7.0, kohei.yoshida@gmail.com) 2AM_INIT_AUTOMAKE([foreign dist-bzip2 dist-xz subdir-objects]) 3AM_MAINTAINER_MODE 4 5VERSION=AC_PACKAGE_VERSION 6API_VERSION=1.5 7 8AC_SUBST(VERSION) 9AC_SUBST(API_VERSION) 10 11PACKAGE_TARNAME=AC_PACKAGE_TARNAME 12AC_SUBST(PACKAGE_TARNAME) 13 14OBJDIR=obj 15SRCDIR=src 16INCDIR=include 17MISCDIR=misc 18QUICKCHECKDIR=quickcheck 19AC_SUBST(OBJDIR) 20AC_SUBST(SRCDIR) 21AC_SUBST(INCDIR) 22AC_SUBST(MISCDIR) 23AC_SUBST(QUICKCHECKDIR) 24 25CPPFLAGS="$CPPFLAGS -Wall -g -pedantic-errors" 26CPPFLAGS="$CPPFLAGS -I/usr/include -I/usr/local/include" 27CXXFLAGS="$CXXFLAGS -Wshadow -std=c++11" 28 29AC_ARG_ENABLE(debug-stdcxx, 30[ 31 --enable-debug-stdcxx Enable libstdc++ debug mode during make check. 32] 33,debug_stdcxx=yes) 34 35AS_IF([test x"$debug_stdcxx" == "xyes"], [ 36 CXXFLAGS="$CXXFLAGS -D_GLIBCXX_DEBUG" 37]) 38 39AC_ARG_ENABLE(release-tests, 40[ 41 --enable-release-tests Enable release builds for unit tests. 42] 43,release_tests=yes) 44 45AS_IF([test x"$release_tests" == "xyes"], [ 46 CXXFLAGS="$CXXFLAGS -DNDEBUG -O2" 47]) 48 49AC_ARG_ENABLE(gcov, 50 AS_HELP_STRING([--enable-gcov], [Enable generation of gcov information.]), 51 [enable_gcov="$enableval"],[enable_gcov=no] 52) 53 54AC_ARG_ENABLE(loop-unrolling, 55 AS_HELP_STRING([--disable-loop-unrolling], [Disable use of loop unrolling.]), 56 [enable_loop_unrolling="$enableval"],[enable_loop_unrolling=yes] 57) 58 59AS_IF([test x"$enable_loop_unrolling" == "xno"], [ 60 CXXFLAGS="$CXXFLAGS -DMDDS_LOOP_UNROLLING=0" 61]) 62 63AS_IF([test x"$enable_gcov" == "xyes"], [ 64 CXXFLAGS="$CXXFLAGS --coverage -O0" 65]) 66 67AC_ARG_ENABLE(openmp, 68 AS_HELP_STRING([--disable-openmp], [Disable use of OpenMP.]), 69 [enable_openmp="$enableval"],[enable_openmp=yes] 70) 71 72AS_IF([test x"$enable_openmp" == "xyes"], [ 73 CXXFLAGS="$CXXFLAGS -fopenmp -DMDDS_USE_OPENMP=1" 74 LDFLAGS="$LDFLAGS -fopenmp" 75]) 76 77AC_ARG_ENABLE(sanitizer-coverage, 78 AS_HELP_STRING([--enable-sanitizer-coverage], [Enable generation of sanitizer coverage information.]), 79 [enable_sanitizer_coverage="$enableval"],[enable_sanitizer_coverage=no] 80) 81 82AS_IF([test x"$enable_sanitizer_coverage" == "xyes"], [ 83 CXXFLAGS="$CXXFLAGS -fprofile-instr-generate -fcoverage-mapping -O0" 84]) 85 86AC_SUBST(CPPFLAGS) 87AC_SUBST(CPPFLAGS_NODEBUG) 88 89AC_PROG_CXX 90AC_PATH_PROG([GDB], [gdb]) 91AC_PATH_PROG([EXPECT], [expect]) 92AC_PATH_PROG([RUNTEST_BIN], [runtest]) 93 94AC_ARG_ENABLE([memory-tests], 95 [AS_HELP_STRING([--enable-memory-tests], [Run memory tests.])], 96 [enable_memory_tests=$enableval], 97 [enable_memory_tests=no] 98) 99AS_IF([test "$enable_memory_tests" = yes], 100 [AC_PATH_PROG([VALGRIND], [valgrind])] 101 AS_IF([test -z "$VALGRIND"], [AC_MSG_ERROR([valgrind not found])]) 102) 103AM_CONDITIONAL([RUN_MEMORY_TESTS], [test "$enable_memory_tests" = yes]) 104 105AC_ARG_ENABLE([docs], 106 [AS_HELP_STRING([--enable-docs], [Generate docs during build.])], 107 [enable_docs=$enableval], 108 [enable_docs=no] 109) 110AS_IF([test "$enable_docs" = yes], 111 [ 112 AC_PATH_PROG([DOXYGEN], [doxygen]) 113 AS_IF([test -z "$DOXYGEN"], [AC_MSG_ERROR([doxygen not found])]) 114 AC_PATH_PROG([SPHINX], [sphinx-build]) 115 AS_IF([test -z "$SPHINX"], [AC_MSG_ERROR([sphinx-build not found])]) 116 ] 117) 118AM_CONDITIONAL([BUILD_DOCS], [test "$enable_docs" = yes]) 119 120AC_ARG_ENABLE([werror], 121 [AS_HELP_STRING([--enable-werror], [Treat all warnings as errors, useful for development])], 122 [enable_werror="$enableval"], 123 [enable_werror=no] 124) 125AS_IF([test x"$enable_werror" == "xyes"], [ 126 CXXFLAGS="$CXXFLAGS -Werror" 127]) 128 129CXXFLAGS_UNITTESTS="-DMDDS_DEBUG_NODE_BASE -DMDDS_UNIT_TEST" 130AC_SUBST(CXXFLAGS_UNITTESTS) 131 132AC_CONFIG_FILES([ 133Makefile 134include/Makefile 135include/mdds/Makefile 136include/mdds/multi_type_vector/Makefile 137example/Makefile 138test/Makefile 139test/gdb/Makefile 140test/gdb/src/Makefile 141flat_segment_tree_test_mem.mem:src/test.mem.in 142misc/mdds-$API_VERSION.pc:misc/mdds.pc.in 143multi_type_matrix_test_mem.mem:src/test.mem.in 144multi_type_matrix_test_walk_mem.mem:src/test.mem.in 145multi_type_vector_test_event_mem.mem:src/test.mem.in 146multi_type_vector_test_custom_mem.mem:src/test.mem.in 147multi_type_vector_test_default_mem.mem:src/test.mem.in 148multi_type_vector_test_collection_mem.mem:src/test.mem.in 149point_quad_tree_test_mem.mem:src/test.mem.in 150rectangle_set_test_mem.mem:src/test.mem.in 151segment_tree_test_mem.mem:src/test.mem.in 152sorted_string_map_test_mem.mem:src/test.mem.in 153trie_map_test_mem.mem:src/test.mem.in 154rtree_test_mem.mem:src/test.mem.in 155rtree_test_bulkload_mem.mem:src/test.mem.in 156]) 157AC_OUTPUT 158 159AC_MSG_NOTICE([ 160============================================================================== 161Build configuration: 162 gcov $enable_gcov 163 openmp $enable_openmp 164 sanitizer-coverage $enable_sanitizer_coverage 165 loop-unrolling $enable_loop_unrolling 166 167 CXXFLAGS $CXXFLAGS 168============================================================================== 169]) 170