configure.ac 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. # -*- Autoconf -*-
  2. # Process this file with autoconf to produce a configure script.
  3. AC_PREREQ([2.61])
  4. AC_INIT([libsass], m4_esyscmd_s([./version.sh]), [support@moovweb.com])
  5. AC_CONFIG_SRCDIR([src/ast.hpp])
  6. AC_CONFIG_MACRO_DIR([m4])
  7. AC_CONFIG_HEADERS([src/config.h])
  8. AC_CONFIG_FILES([include/sass/version.h])
  9. AC_CONFIG_AUX_DIR([script])
  10. # These are flags passed to automake
  11. # Though they look like gcc flags!
  12. AM_INIT_AUTOMAKE([foreign parallel-tests -Wall])
  13. m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
  14. # Checks for programs.
  15. AC_PROG_CC
  16. AC_PROG_CXX
  17. AC_LANG_PUSH([C])
  18. AC_LANG_PUSH([C++])
  19. AC_GNU_SOURCE
  20. # Check fails on Travis, but it works fine
  21. # AX_CXX_COMPILE_STDCXX_11([ext],[optional])
  22. AC_CHECK_TOOL([AR], [ar], [false])
  23. AC_CHECK_TOOL([DLLTOOL], [dlltool], [false])
  24. AC_CHECK_TOOL([DLLWRAP], [dllwrap], [false])
  25. AC_CHECK_TOOL([WINDRES], [windres], [false])
  26. m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
  27. LT_INIT([dlopen])
  28. # Checks for header files.
  29. AC_CHECK_HEADERS([unistd.h])
  30. # Checks for typedefs, structures, and compiler characteristics.
  31. AC_TYPE_SIZE_T
  32. # Checks for library functions.
  33. AC_FUNC_MALLOC
  34. AC_CHECK_FUNCS([floor getcwd strtol])
  35. # Checks for testing.
  36. AC_ARG_ENABLE(tests, AS_HELP_STRING([--enable-tests], [enable testing the build]),
  37. [enable_tests="$enableval"], [enable_tests=no])
  38. AS_CASE([$host], [*-*-mingw*], [is_mingw32=yes], [is_mingw32=no])
  39. AM_CONDITIONAL(COMPILER_IS_MINGW32, test "x$is_mingw32" = "xyes")
  40. dnl The dlopen() function is in the C library for *BSD and in
  41. dnl libdl on GLIBC-based systems
  42. if test "x$is_mingw32" != "xyes"; then
  43. AC_SEARCH_LIBS([dlopen], [dl dld], [], [
  44. AC_MSG_ERROR([unable to find the dlopen() function])
  45. ])
  46. fi
  47. if test "x$enable_tests" = "xyes"; then
  48. AC_PROG_CC
  49. AC_PROG_AWK
  50. # test need minitest gem
  51. AC_PATH_PROG(RUBY, [ruby])
  52. AC_PATH_PROG(TAPOUT, [tapout])
  53. AC_REQUIRE_AUX_FILE([tap-driver])
  54. AC_REQUIRE_AUX_FILE([tap-runner])
  55. AC_ARG_WITH(sassc-dir,
  56. AS_HELP_STRING([--with-sassc-dir=<dir>], [specify directory of sassc sources for testing (default: sassc)]),
  57. [sassc_dir="$withval"], [sassc_dir="sassc"])
  58. AC_CHECK_FILE([$sassc_dir/sassc.c], [], [
  59. AC_MSG_ERROR([Unable to find sassc directory.
  60. You must clone the sassc repository in this directory or specify
  61. the --with-sassc-dir=<dir> argument.
  62. ])
  63. ])
  64. SASS_SASSC_PATH=$sassc_dir
  65. AC_SUBST(SASS_SASSC_PATH)
  66. AC_ARG_WITH(sass-spec-dir,
  67. AS_HELP_STRING([--with-sass-spec-dir=<dir>], [specify directory of sass-spec for testing (default: sass-spec)]),
  68. [sass_spec_dir="$withval"], [sass_spec_dir="sass-spec"])
  69. AC_CHECK_FILE([$sass_spec_dir/sass-spec.rb], [], [
  70. AC_MSG_ERROR([Unable to find sass-spec directory.
  71. You must clone the sass-spec repository in this directory or specify
  72. the --with-sass-spec-dir=<dir> argument.
  73. ])
  74. ])
  75. # Automake doesn't like its tests in an absolute path, so we make it relative.
  76. case $sass_spec_dir in
  77. /*)
  78. SASS_SPEC_PATH=`$RUBY -e "require 'pathname'; puts Pathname.new('$sass_spec_dir').relative_path_from(Pathname.new('$PWD')).to_s"`
  79. ;;
  80. *)
  81. SASS_SPEC_PATH="$sass_spec_dir"
  82. ;;
  83. esac
  84. AC_SUBST(SASS_SPEC_PATH)
  85. else
  86. # we do not really need these paths for non test build
  87. # but automake may error if we do not define them here
  88. SASS_SPEC_PATH=sass-spec
  89. SASS_SASSC_PATH=sassc
  90. AC_SUBST(SASS_SPEC_PATH)
  91. AC_SUBST(SASS_SASSC_PATH)
  92. fi
  93. AM_CONDITIONAL(ENABLE_TESTS, test "x$enable_tests" = "xyes")
  94. AC_ARG_ENABLE([coverage],
  95. [AS_HELP_STRING([--enable-coverage],
  96. [enable coverage report for test suite])],
  97. [enable_cov=$enableval],
  98. [enable_cov=no])
  99. if test "x$enable_cov" = "xyes"; then
  100. AC_CHECK_PROG(GCOV, gcov, gcov)
  101. # Remove all optimization flags from C[XX]FLAGS
  102. changequote({,})
  103. CFLAGS=`echo "$CFLAGS -O1 -fno-omit-frame-pointer" | $SED -e 's/-O[0-9]*//g'`
  104. CXXFLAGS=`echo "$CXXFLAGS -O1 -fno-omit-frame-pointer" | $SED -e 's/-O[0-9]*//g'`
  105. changequote([,])
  106. AC_SUBST(GCOV)
  107. fi
  108. AM_CONDITIONAL(ENABLE_COVERAGE, test "x$enable_cov" = "xyes")
  109. AC_SUBST(PACKAGE_VERSION)
  110. AC_MSG_NOTICE([Building libsass ($VERSION)])
  111. AC_CONFIG_FILES([GNUmakefile src/GNUmakefile src/support/libsass.pc])
  112. AC_OUTPUT