yann@3216: # This file adds the functions to build the ISL library yann@3216: # Copyright 2009 Yann E. MORIN yann@3216: # Licensed under the GPL v2. See COPYING in the root of this package yann@3216: yann@3216: do_isl_get() { :; } yann@3216: do_isl_extract() { :; } yann@3216: do_isl_for_build() { :; } yann@3216: do_isl_for_host() { :; } yann@3216: yann@3216: # Overide functions depending on configuration yann@3216: if [ "${CT_ISL}" = "y" ]; then yann@3216: yann@3216: # Download ISL yann@3216: do_isl_get() { yann@3216: CT_GetFile "isl-${CT_ISL_VERSION}" \ yann@3216: ftp://ftp.linux.student.kuleuven.be/pub/people/skimo/isl/ yann@3216: } yann@3216: yann@3216: # Extract ISL yann@3216: do_isl_extract() { yann@3216: CT_Extract "isl-${CT_ISL_VERSION}" yann@3216: CT_Patch "isl" "${CT_ISL_VERSION}" yann@3216: } yann@3216: yann@3216: # Build ISL for running on build yann@3216: # - always build statically yann@3216: # - we do not have build-specific CFLAGS yann@3216: # - install in build-tools prefix yann@3216: do_isl_for_build() { yann@3216: local -a isl_opts yann@3216: local isl_cflags yann@3216: local isl_cxxflags yann@3216: yann@3216: case "${CT_TOOLCHAIN_TYPE}" in yann@3216: native|cross) return 0;; yann@3216: esac yann@3216: yann@3216: CT_DoStep INFO "Installing ISL for build" yann@3216: CT_mkdir_pushd "${CT_BUILD_DIR}/build-isl-build-${CT_BUILD}" yann@3216: yann@3216: isl_cflags="${CT_CFLAGS_FOR_BUILD}" yann@3216: isl_cxxflags="${CT_CFLAGS_FOR_BUILD}" yann@3216: yann@3216: isl_opts+=( "host=${CT_BUILD}" ) yann@3216: isl_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" ) yann@3216: isl_opts+=( "cflags=${isl_cflags}" ) yann@3216: isl_opts+=( "cxxflags=${isl_cxxflags}" ) yann@3216: isl_opts+=( "ldflags=${CT_LDFLAGS_FOR_BUILD}" ) yann@3216: do_isl_backend "${isl_opts[@]}" yann@3216: yann@3216: CT_Popd yann@3216: CT_EndStep yann@3216: } yann@3216: yann@3216: # Build ISL for running on host yann@3216: do_isl_for_host() { yann@3216: local -a isl_opts yann@3216: local isl_cflags yann@3216: local isl_cxxflags yann@3216: yann@3216: CT_DoStep INFO "Installing ISL for host" yann@3216: CT_mkdir_pushd "${CT_BUILD_DIR}/build-isl-host-${CT_HOST}" yann@3216: yann@3216: isl_cflags="${CT_CFLAGS_FOR_HOST}" yann@3216: isl_cxxflags="${CT_CFLAGS_FOR_HOST}" yann@3216: yann@3216: isl_opts+=( "host=${CT_HOST}" ) yann@3216: isl_opts+=( "prefix=${CT_HOST_COMPLIBS_DIR}" ) yann@3216: isl_opts+=( "cflags=${isl_cflags}" ) yann@3216: isl_opts+=( "cxxflags=${isl_cxxflags}" ) yann@3216: isl_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" ) yann@3216: do_isl_backend "${isl_opts[@]}" yann@3216: yann@3216: CT_Popd yann@3216: CT_EndStep yann@3216: } yann@3216: yann@3216: # Build ISL yann@3216: # Parameter : description : type : default yann@3216: # host : machine to run on : tuple : (none) yann@3216: # prefix : prefix to install into : dir : (none) yann@3216: # cflags : cflags to use : string : (empty) yann@3216: # ldflags : ldflags to use : string : (empty) yann@3216: do_isl_backend() { yann@3216: local host yann@3216: local prefix yann@3216: local cflags yann@3216: local cxxflags yann@3216: local ldflags yann@3216: local arg yann@3216: yann@3216: for arg in "$@"; do yann@3216: eval "${arg// /\\ }" yann@3216: done yann@3216: yann@3216: CT_DoLog EXTRA "Configuring ISL" yann@3216: yann@3216: CT_DoExecLog CFG \ yann@3216: CFLAGS="${cflags}" \ yann@3216: CXXFLAGS="${cxxflags}" \ yann@3216: LDFLAGS="${ldflags}" \ yann@3216: "${CT_SRC_DIR}/isl-${CT_ISL_VERSION}/configure" \ yann@3216: --build=${CT_BUILD} \ yann@3216: --host=${host} \ yann@3216: --prefix="${prefix}" \ yann@3216: --with-libgmp-prefix="${prefix}" \ yann@3216: --with-libgmpxx-prefix="${prefix}" \ yann@3216: --with-gmp-prefix="${prefix}" \ yann@3216: --disable-shared \ yann@3216: --enable-static \ yann@3216: --with-gmp=system \ yann@3216: --with-gmp-prefix="${prefix}" \ yann@3216: --with-piplib=no \ yann@3216: --with-clang=no yann@3216: yann@3216: CT_DoLog EXTRA "Building ISL" yann@3216: CT_DoExecLog ALL make ${JOBSFLAGS} yann@3216: yann@3216: if [ "${CT_COMPLIBS_CHECK}" = "y" ]; then yann@3216: CT_DoLog EXTRA "Checking ISL" yann@3216: CT_DoExecLog ALL make ${JOBSFLAGS} -s check yann@3216: fi yann@3216: yann@3216: CT_DoLog EXTRA "Installing ISL" yann@3216: CT_DoExecLog ALL make install yann@3216: } yann@3216: yann@3216: fi # CT_ISL