|
|
|
dnl autoconf script for Infer
|
|
|
|
dnl run ./autogen.sh to generate a configure script
|
|
|
|
dnl
|
|
|
|
dnl Copyright (c) 2015 - present Facebook, Inc.
|
|
|
|
dnl All rights reserved.
|
|
|
|
dnl
|
|
|
|
dnl This source code is licensed under the BSD style license found in the
|
|
|
|
dnl LICENSE file in the root directory of this source tree. An additional grant
|
|
|
|
dnl of patent rights can be found in the PATENTS file in the same directory.
|
|
|
|
|
|
|
|
AC_PREREQ([2.63])
|
|
|
|
|
|
|
|
# TODO: use the stuff in infer/src/Makefile and version.ml.in instead
|
|
|
|
# of 0.4.0
|
|
|
|
AC_INIT([Infer],[0.4.0],[https://github.com/facebook/infer/issues/])
|
|
|
|
|
|
|
|
AC_CONFIG_SRCDIR([infer/src/backend/sil.ml])
|
|
|
|
|
|
|
|
# prefer clang over gcc because the plugins makes use of
|
|
|
|
# clang-specific #pragma's
|
|
|
|
AC_PROG_CC(clang gcc)
|
|
|
|
AC_PROG_CXX(clang++ g++)
|
|
|
|
AC_PROG_AWK
|
|
|
|
AC_PROG_CPP
|
|
|
|
AC_PROG_INSTALL
|
|
|
|
AC_PROG_LN_S
|
|
|
|
AC_PROG_MAKE_SET
|
|
|
|
AC_PROG_OBJC
|
|
|
|
|
|
|
|
AC_CHECK_TOOL([PYTHON27], [python2.7], [no])
|
|
|
|
AC_ASSERT_PROG([python2.7], [$PYTHON27])
|
|
|
|
|
|
|
|
AC_CHECK_TOOL([JAVAC], [javac], [no])
|
|
|
|
AC_ASSERT_PROG([javac], [$JAVAC])
|
|
|
|
|
|
|
|
# OCaml dependencies
|
|
|
|
AC_PROG_OCAML
|
|
|
|
AC_ASSERT_PROG([ocamlc], [$OCAMLC])
|
|
|
|
AC_ASSERT_PROG([ocamlopt], [$OCAMLOPT])
|
|
|
|
AC_ASSERT_PROG([ocamlbuild], [$OCAMLBUILD])
|
|
|
|
AC_PROG_FINDLIB
|
|
|
|
AC_ASSERT_PROG([ocamlfind], [$OCAMLFIND])
|
|
|
|
AC_PROG_OCAMLLEX
|
|
|
|
AC_ASSERT_PROG([ocamllex], [$OCAMLLEX])
|
|
|
|
AC_PROG_OCAMLYACC
|
|
|
|
AC_ASSERT_PROG([ocamlyacc], [$OCAMLYACC])
|
|
|
|
AC_ASSERT_OCAML_PKG([atdgen], [], [1.6.0])
|
|
|
|
AC_ASSERT_OCAML_PKG([extlib], [], [1.5.4])
|
|
|
|
AC_ASSERT_OCAML_PKG([javalib], [], [2.3.1])
|
|
|
|
AC_ASSERT_OCAML_PKG([sawja], [], [1.5.1])
|
|
|
|
AC_ASSERT_OCAML_PKG([biniou])
|
|
|
|
AC_ASSERT_OCAML_PKG([camlzip], [zip])
|
|
|
|
AC_ASSERT_OCAML_PKG([easy-format])
|
|
|
|
AC_ASSERT_OCAML_PKG([ptrees])
|
|
|
|
AC_ASSERT_OCAML_PKG([yojson])
|
|
|
|
|
|
|
|
AC_OCAML_CHECK_NATIVE_BYTES
|
|
|
|
AC_OCAMLC_CHECK_SAFE_STRING
|
|
|
|
|
|
|
|
if test "$OCAML_HAS_NATIVE_BYTES" = "no"; then
|
|
|
|
AC_ASSERT_OCAML_PKG([bytes])
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_CHECK_TOOL([ATDGEN], [atdgen], [no])
|
|
|
|
AC_ASSERT_PROG([atdgen], [$ATDGEN])
|
|
|
|
AC_SUBST([ATDGEN])
|
|
|
|
|
|
|
|
AC_CHECK_TOOL([XCODE_SELECT], [xcode-select], [no])
|
|
|
|
AC_SUBST([XCODE_SELECT])
|
|
|
|
|
|
|
|
# to compile the facebook-clang-plugins
|
|
|
|
AC_ARG_VAR([CLANG_PREFIX], [directory where clang is installed (defaults=$PWD/facebook-clang-plugins/clang)])
|
|
|
|
AS_IF([test "x$CLANG_PREFIX" = "x"], [
|
|
|
|
CLANG_PREFIX="$(pwd)/facebook-clang-plugins/clang"
|
|
|
|
])
|
|
|
|
|
|
|
|
AC_ARG_VAR([CLANG_INCLUDES], [clang headers directories (defaults=$CLANG_PREFIX/include)])
|
|
|
|
AS_IF([test "x$CLANG_INCLUDES" = "x"], [
|
|
|
|
CLANG_INCLUDES="$CLANG_PREFIX/include"
|
|
|
|
])
|
|
|
|
|
|
|
|
# Checks for header files.
|
|
|
|
AC_CHECK_HEADERS([fcntl.h inttypes.h limits.h locale.h malloc.h stddef.h stdint.h stdlib.h string.h sys/mount.h sys/param.h sys/socket.h sys/statfs.h sys/time.h unistd.h wchar.h wctype.h])
|
|
|
|
|
|
|
|
AC_CONFIG_FILES([
|
|
|
|
Makefile.config
|
|
|
|
Makefile
|
|
|
|
infer/Makefile
|
|
|
|
infer/models/Makefile
|
|
|
|
infer/models/c/Makefile
|
|
|
|
infer/models/cpp/Makefile
|
|
|
|
infer/models/objc/Makefile
|
|
|
|
infer/models/java/Makefile
|
|
|
|
infer/src/Makefile
|
|
|
|
])
|
|
|
|
AC_OUTPUT
|