mirror of
https://github.com/nasa/trick.git
synced 2024-12-23 15:02:25 +00:00
296 lines
10 KiB
Plaintext
296 lines
10 KiB
Plaintext
dnl To generate a new top level configure script from this autoconf directory
|
|
dnl 1. aclocal
|
|
dnl 2. autoconf -o ../configure
|
|
|
|
AC_INIT([Trick],[19.6+])
|
|
AC_LANG(C++)
|
|
|
|
AC_CONFIG_AUX_DIR([autoconf])
|
|
AC_CONFIG_MACRO_DIRS([m4])
|
|
|
|
dnl get the host and build.
|
|
AC_CANONICAL_HOST
|
|
AC_CANONICAL_BUILD
|
|
|
|
dnl check if we are on a mac
|
|
TR_MAC_DARWIN()
|
|
dnl add x11 libs to environment
|
|
TR_X11()
|
|
|
|
dnl look for X windows libraries and headers we need to compile
|
|
dnl these checks must be done before we force 32bit mode.
|
|
TR_XWINDOWS()
|
|
|
|
dnl TODO Need to check 64bit only!
|
|
AC_CHECK_LIB(xml2, main,
|
|
[LIBXML=-lxml2
|
|
AC_SUBST([LIBXML])]
|
|
)
|
|
AC_CHECK_HEADER([libxml/tree.h],[],AC_MSG_ERROR([could not find libxml development headers]))
|
|
|
|
# If 32bit is specified, set some compilation flags.
|
|
AC_ARG_ENABLE([32bit],
|
|
AS_HELP_STRING([--enable-32bit], [Force Trick and sims to compile 32bit]),
|
|
AS_IF([test "x$enable_32bit" = xyes],
|
|
[
|
|
TRICK_FORCE_32BIT=1
|
|
CFLAGS="${CFLAGS} -m32"
|
|
CXXFLAGS="${CXXFLAGS} -m32"
|
|
LDFLAGS="${LDFLAGS} -m32"
|
|
ARCH="i686"
|
|
], [TRICK_FORCE_32BIT=0]),
|
|
[TRICK_FORCE_32BIT=0]
|
|
)
|
|
AC_SUBST([TRICK_FORCE_32BIT])
|
|
|
|
# If offline is specified, set some compilation flags
|
|
AC_ARG_ENABLE([offline],
|
|
AS_HELP_STRING([--enable-offline], [Compile Trick in offline mode. Un-tar the trick-offline directory in TRICK_HOME to use this feature]),
|
|
AS_IF([test "x$enable_offline" = xyes],
|
|
[
|
|
[TRICK_OFFLINE="1"]
|
|
AC_CHECK_FILE([trick-offline], [], AC_MSG_ERROR([Offline mode requires an uncompressed directory named "trick-offline" in TRICK_HOME]))
|
|
],
|
|
[TRICK_OFFLINE="0"]
|
|
),
|
|
[TRICK_OFFLINE="0"]
|
|
)
|
|
AC_SUBST([TRICK_OFFLINE])
|
|
|
|
# If offline is specified, set some compilation flags
|
|
AC_ARG_ENABLE([offline],
|
|
AS_HELP_STRING([--enable-offline], [Compile Trick in offline mode. Un-tar the trick-offline directory in TRICK_HOME to use this feature]),
|
|
AS_IF([test "x$enable_offline" = xyes],
|
|
[TRICK_OFFLINE="1"],
|
|
[TRICK_OFFLINE="0"]
|
|
),
|
|
[TRICK_OFFLINE="0"]
|
|
)
|
|
AC_SUBST([TRICK_OFFLINE])
|
|
|
|
# AC_ARG_ENABLE([civet],
|
|
# AS_HELP_STRING([--enable-civet], [Compile Trick with webserver capabilites.]),
|
|
# AS_IF([test "x$enable_civet" = xyes],
|
|
# [
|
|
# TRICK_DISABLE_CIVET="0"
|
|
# ],
|
|
# [TRICK_DISABLE_CIVET="1"]
|
|
# ),
|
|
# [TRICK_DISABLE_CIVET="0"]
|
|
# )
|
|
# AC_SUBST([TRICK_DISABLE_CIVET])
|
|
|
|
# If offline is specified, set some compilation flags
|
|
# AC_ARG_ENABLE([offline],
|
|
# AS_HELP_STRING([--enable-offline], [Compile Trick in offline mode. Un-tar the trick-offline directory in TRICK_HOME to use this feature]),
|
|
# AS_IF([test "x$enable_offline" = xyes],
|
|
# [TRICK_DISABLE_CIVET="1"],
|
|
# ),
|
|
# )
|
|
# AC_SUBST([TRICK_OFFLINE])
|
|
|
|
dnl look for programs we need to compile and run
|
|
AC_PROG_AWK
|
|
AC_PROG_CC
|
|
AC_PROG_CXX
|
|
|
|
dnl do not test gcc version on mac. clang as gcc will return version and it's not >= 4.8
|
|
AS_IF([test "$ON_MAC" = "no"],[TR_GCC_VERSION],[])
|
|
dnl if the compiler is gcc, test for gcc >= 4.8
|
|
AS_IF([test "x$GCC_VERSION" = "x"],[],
|
|
[AC_MSG_CHECKING([gcc version >= 4.8])
|
|
AX_COMPARE_VERSION([$GCC_VERSION],[ge],[4.8], [AC_MSG_RESULT([yes])],
|
|
[AC_MSG_RESULT([no])
|
|
AC_MSG_ERROR([Trick requires gcc version >= 4.8])
|
|
])
|
|
])
|
|
dnl Save the full path of the compiler
|
|
CC=`which $CC`
|
|
CXX=`which $CXX`
|
|
|
|
AC_PATH_PROG(TEE, tee, notee)
|
|
AS_IF([test "$ac_cv_path_TEE" = "notee"],AC_MSG_ERROR([could not find tee]),[])
|
|
AC_PATH_PROG(LD, ld, nold)
|
|
AS_IF([test "$ac_cv_path_LD" = "nold"],AC_MSG_ERROR([could not find ld]),[])
|
|
AC_PROG_LEX([noyywrap])
|
|
AS_IF([test "x$LEX" = "x:"],AC_MSG_ERROR([could not find flex]),[])
|
|
AC_PATH_PROG(BISON, bison, nobison)
|
|
AS_IF([test "$ac_cv_path_BISON" = "nobison"],AC_MSG_ERROR([could not find bison]),[])
|
|
AC_PATH_PROG(CURL, curl, nocurl)
|
|
AS_IF([test "$ac_cv_path_CURL" = "nocurl"],AC_MSG_ERROR([could not find curl]),[])
|
|
AC_PATH_PROG(PERL, perl)
|
|
AX_PROG_PERL_VERSION([5.14.0], [], [AC_MSG_ERROR([Trick requires perl version >= 5.14.0])])
|
|
AC_PATH_PROG(ZIP, zip, nozip)
|
|
AS_IF([test "$ac_cv_path_ZIP" = "nozip"],AC_MSG_ERROR([Trick now requires zip but it could not be found. Please install zip. We recommend you use your OS package manager]),[])
|
|
|
|
|
|
dnl add PYTHON_VERSION to influential env variables
|
|
AC_ARG_VAR([PYTHON_VERSION],[Adds suffix to python search e.g. PYTHON_VERSION=3 will look for python3])
|
|
|
|
dnl find python
|
|
AC_ARG_WITH(
|
|
[python],
|
|
AS_HELP_STRING(
|
|
[--with-python@<:@=DIR@:>@],
|
|
[python root directory],
|
|
),
|
|
[
|
|
PYTHON_HOME="$withval"
|
|
AC_PATH_PROGS(PYTHON, python${PYTHON_VERSION} python python3, nopython, "$PYTHON_HOME")
|
|
AS_IF(
|
|
[test "$ac_cv_path_PYTHON" = "" || test "$ac_cv_path_PYTHON" = "nopython"],
|
|
AC_MSG_ERROR([could not find python<version> python or python3 in the specefied path. Please install the python development package]),
|
|
[]
|
|
)
|
|
PYTHON_MAJORMINOR=`${PYTHON} -c 'import sys; print(str(sys.version_info[[0]])+"."+str(sys.version_info[[1]]))'`
|
|
PYTHON_MAJOR=`${PYTHON} -c 'import sys; print(str(sys.version_info[[0]]))'`
|
|
AC_PATH_PROGS(PYTHON_CONFIG, python${PYTHON_MAJORMINOR}-config python${PYTHON_MAJOR}-config python${PYTHON_VERSION}-config python-config, nopython-config, "$PYTHON_HOME")
|
|
AS_IF(
|
|
[test "$ac_cv_path_PYTHON_CONFIG" = "" || test "$ac_cv_path_PYTHON_CONFIG" = "nopython-config"],
|
|
AC_MSG_ERROR([could not find python<major>-config python<major.minor>-config or python-config in the specified path. Please install the python development package]),
|
|
[]
|
|
)
|
|
],
|
|
[
|
|
AC_PATH_PROGS(PYTHON, python${PYTHON_VERSION} python python3, nopython)
|
|
AS_IF(
|
|
[test {"$ac_cv_path_PYTHON" = "" || test "${ac_cv_path_PYTHON}" = "nopython"}],
|
|
AC_MSG_ERROR([could not find python<version> python or python3. Please install the python development package]),
|
|
[]
|
|
)
|
|
PYTHON_MAJORMINOR=`${PYTHON} -c 'import sys; print(str(sys.version_info[[0]])+"."+str(sys.version_info[[1]]))'`
|
|
PYTHON_MAJOR=`${PYTHON} -c 'import sys; print(str(sys.version_info[[0]]))'`
|
|
AC_PATH_PROGS(PYTHON_CONFIG, python${PYTHON_MAJORMINOR}-config python${PYTHON_MAJOR}-config python${PYTHON_VERSION}-config python-config, nopython-config)
|
|
AS_IF(
|
|
[test "$ac_cv_path_PYTHON_CONFIG" = "" || test "$ac_cv_path_PYTHON_CONFIG" = "nopython-config"],
|
|
AC_MSG_ERROR([could not find python<major>-config python<major.minor>-config or python-config. Please install the python development package]),
|
|
[]
|
|
)
|
|
]
|
|
)
|
|
|
|
PYTHON_LIBS_COMMAND="${PYTHON_CONFIG} --ldflags --libs"
|
|
|
|
AX_COMPARE_VERSION(
|
|
[${PYTHON_MAJORMINOR}],
|
|
[ge],
|
|
[3.8],
|
|
[PYTHON_LIBS_COMMAND="${PYTHON_LIBS_COMMAND} --embed"]
|
|
)
|
|
|
|
PYTHON_CPPFLAGS=`${PYTHON_CONFIG} --includes | sed 's/-I/-isystem/g'`
|
|
PYTHON_LIBS=`${PYTHON_LIBS_COMMAND} | tr '\r\n' ' '`
|
|
|
|
|
|
AC_SUBST([PYTHON_CPPFLAGS])
|
|
AC_SUBST([PYTHON_LIBS])
|
|
AC_SUBST([PYTHON_EXTRA_LIBS])
|
|
TR_PREPEND_PATH()
|
|
AC_PATH_PROG(GNUPLOT, gnuplot, nognuplot)
|
|
AS_IF([test "$ac_cv_path_GNUPLOT" = "nognuplot"],AC_MSG_NOTICE([could not find gnuplot]),[])
|
|
TR_SWIG_BIN([3.0])
|
|
TR_JAVA
|
|
|
|
AX_PTHREAD()
|
|
AX_PROG_PERL_MODULES( Text::Balanced ,[],AC_MSG_ERROR([could not find perl modules Text::Balanced]))
|
|
AX_PROG_PERL_MODULES( Digest::MD5,[],AC_MSG_ERROR([could not find perl module Digest::MD5]))
|
|
|
|
dnl process the optional --with-llvm command line arguments
|
|
TR_LLVM_HOME([])
|
|
LLVM_LIB_DIR=`$LLVM_CONFIG --libdir`
|
|
LLVM_BIN_DIR=`$LLVM_CONFIG --bindir`
|
|
LLVM_INCLUDE_DIR=`$LLVM_CONFIG --includedir`
|
|
AC_CHECK_FILE([$LLVM_INCLUDE_DIR/clang/Basic/LLVM.h],[],AC_MSG_ERROR([could not find clang development headers]))
|
|
AC_CHECK_FILE([$LLVM_LIB_DIR/libLLVMSupport.a],
|
|
[],
|
|
AC_MSG_ERROR([could not find clang library files in $LLVM_LIB_DIR])
|
|
)
|
|
AC_PATH_PROG(CLANG, clang, noclang, "$LLVM_BIN_DIR:/bin:/usr/bin:/usr/local/bin:/sw/bin")
|
|
AS_IF([test "$ac_cv_path_CLANG" = "noclang"],AC_MSG_ERROR([could not find clang]),[])
|
|
AC_SUBST([LLVM_HOME])
|
|
|
|
OLD_CLANG_LIBS="-lclangFrontend -lclangDriver -lclangSerialization -lclangParse -lclangSema -lclangAnalysis -lclangEdit -lclangAST -lclangLex -lclangBasic"
|
|
NEW_CLANG_LIBS="-lclang-cpp"
|
|
AC_CHECK_FILE([$LLVM_LIB_DIR/libclangFrontend.a],
|
|
[
|
|
ICG_CLANGLIBS="$OLD_CLANG_LIBS"
|
|
],
|
|
AC_CHECK_FILE([$LLVM_LIB_DIR/libclangFrontend.so],
|
|
[
|
|
ICG_CLANGLIBS="$OLD_CLANG_LIBS"
|
|
],
|
|
AC_CHECK_FILE([$LLVM_LIB_DIR/libclang-cpp.a],
|
|
[
|
|
ICG_CLANGLIBS="$NEW_CLANG_LIBS"
|
|
],
|
|
AC_CHECK_FILE([$LLVM_LIB_DIR/libclang-cpp.so],
|
|
[
|
|
ICG_CLANGLIBS="$NEW_CLANG_LIBS"
|
|
],
|
|
AC_MSG_ERROR([could not find clang libs in LLVM library: "$LLVM_LIB_DIR"])
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
AC_CHECK_FILE([$LLVM_LIB_DIR/libclangSupport.a],[ICG_CLANGLIBS="$ICG_CLANGLIBS -lclangSupport"],[])
|
|
|
|
AC_SUBST([ICG_CLANGLIBS])
|
|
|
|
TR_CLANG_VERSION
|
|
dnl if llvm/clang, test for version >= 3.4.2
|
|
AS_IF([test "x$CLANG_VERSION" = "x"],[],
|
|
[AC_MSG_CHECKING([clang version >= 3.4.2])
|
|
AX_COMPARE_VERSION([$CLANG_VERSION],[ge],[3.4.2], [AC_MSG_RESULT([yes])],
|
|
[AC_MSG_RESULT([no])
|
|
AC_MSG_ERROR([Trick requires llvm/clang version >= 3.4.2])
|
|
])
|
|
])
|
|
|
|
AX_CHECK_ZLIB([],AC_MSG_ERROR([could not find zlib]))
|
|
|
|
dnl look for udunits in /usr/include and /usr/include/udunits2
|
|
TR_UDUNITS_HOME([])
|
|
AS_IF([test "$UDUNITS_HOME" = ""],
|
|
[
|
|
AC_CHECK_HEADER([udunits2.h],
|
|
[UDUNITS_INCLUDES=],
|
|
[AC_CHECK_HEADER([udunits2/udunits2.h],[UDUNITS_INCLUDES=-I/usr/include/udunits2],AC_MSG_ERROR([could not find udunits development headers]))]
|
|
)
|
|
UDUNITS_LDFLAGS=-ludunits2
|
|
],
|
|
[
|
|
UDUNITS_EXCLUDE=$UDUNITS_HOME
|
|
AC_CHECK_FILE([$UDUNITS_HOME/include/udunits2.h],
|
|
[UDUNITS_INCLUDES=-I$UDUNITS_HOME/include
|
|
UDUNITS_LDFLAGS="-Wl,-rpath,$UDUNITS_HOME/lib -L$UDUNITS_HOME/lib -ludunits2"
|
|
],
|
|
[AC_CHECK_FILE([$UDUNITS_HOME/lib/udunits2.h],
|
|
[UDUNITS_INCLUDES=-I$UDUNITS_HOME/lib
|
|
UDUNITS_LDFLAGS="-Wl,-rpath,$UDUNITS_HOME/lib -L$UDUNITS_HOME/lib -ludunits2"
|
|
],
|
|
AC_MSG_ERROR([could not find udunits2]))
|
|
]
|
|
)
|
|
CFLAGS="${CFLAGS} ${UDUNITS_INCLUDES}"
|
|
LDFLAGS="${LDFLAGS} ${UDUNITS_LDFLAGS}"
|
|
]
|
|
)
|
|
AC_CHECK_LIB(udunits2, main, [],AC_MSG_ERROR([could not find libudunits]))
|
|
AC_SUBST([UDUNITS_INCLUDES])
|
|
AC_SUBST([UDUNITS_LDFLAGS])
|
|
AC_SUBST([UDUNITS_EXCLUDE])
|
|
|
|
dnl process the other optional command line arguments
|
|
TR_HDF5_HOME([])
|
|
TR_GSL_HOME([])
|
|
TR_GTEST_HOME([])
|
|
TR_CIVETWEB_HOME([])
|
|
TR_ER7_UTILS([])
|
|
|
|
AC_CONFIG_FILES([share/trick/makefiles/config_user.mk])
|
|
AC_OUTPUT
|
|
|
|
printf "\033@<:@32mconfigure script successfully completed\033@<:@0m\n"
|
|
|