# arg $1 is cross_compiling (yes, no, maybe) # sets: # * toolchain (bool) - if cross compiling is on # * KL_AM_DEPS - default search path for external libs when compiling with # automate build system. # * KL_DEFAULT_LIBS - search path for pre-built libraries. Default is $prefix # or $toolchain-dir/lib when cross compiling # * KL_DEFAULT_DEPS - default search path for build dependencies (srcdir/..) # * KL_TOOLCHAIN - the toolchain dir, if any # AC_DEFUN([KL_TOOLCHAIN_RULES],[dnl AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_CANONICAL_BUILD]) # toolchain host dir if test "$1" != "no"; then toolchain=true echo "NOTICE: Cross compiling is $1. TOOLCHAIN ENABLED!" else toolchain=false fi AC_ARG_ENABLE(automake, [ --enable-automake Compile with KL Automake (default off) ], [ case "${enableval}" in yes)kl_automake=true toolchain=true;; *) kl_automake=false;; esac ],[kl_automake=false]) AM_CONDITIONAL(KLAUTOMAKE, test x$kl_automake = xtrue) AM_CONDITIONAL(TOOLCHAIN, test x$toolchain = xtrue) KL_AM_DEPS=${srcdir}/libs/contrib KL_DEFAULT_DEPS=${ac_default_prefix} KL_DEFAULT_LIBS=$KL_DEFAULT_DEPS/lib KL_TOOLCHAIN= TC_HOST_DIR= case "${host}" in *-*-freebsd*) FBSD_VER= if $toolchain then AC_CHECK_LIB([pthread], [pthread_create]) case "${host}" in *freebsd4*) TC_HOST_DIR=freebsd44 FBSD_VER=4;; *freebsd5*) TC_HOST_DIR=freebsd53 FBSD_VER=5;; *freebsd6*) TC_HOST_DIR=freebsd60 FBSD_VER=6;; esac fi CXXFLAGS="${CXXFLAGS} -D__BSD__ -D__FREEBSD__ -D__FREEBSD${FBSD_VER}__" CFLAGS="${CFLAGS} -D__BSD__ -D__FREEBSD__ -D__FREEBSD${FBSD_VER}__" ;; *-*-linux*) AC_CHECK_LIB([pthread], [pthread_create]) if $toolchain then compiler="$(which ${host}-gcc 2>/dev/null)" if test -x $compiler then # from /path/toolchain/$TC_HOST_DIR/bin/$host-gcc compiler="$(dirname $compiler)" compiler="$(dirname $compiler)" TC_HOST_DIR="$(basename $compiler)" else AC_ERROR(Could not find ${host}-gcc in $PATH) fi fi ;; *) AC_WARN(Unknown host! Build may be broken.) ;; esac if $toolchain then TC_DIR=${TC_DIR:=/usr/toolchain} KL_TOOLCHAIN="$TC_DIR/$TC_HOST_DIR" if test ! -d "$KL_TOOLCHAIN"; then AC_ERROR("Where's this toolchain from? Cannot find ${KL_TOOLCHAIN}...") fi KL_DEFAULT_LIBS="$KL_TOOLCHAIN/lib" KL_DEFAULT_DEPS="${srcdir}/.." test "$(basename `pwd`)" = "devel" && KL_DEFAULT_DEPS="${srcdir}/../.." CFLAGS="${CFLAGS} -DBROKEN_BACKTRACE -nostdinc -nostdinc++" CXXFLAGS="${CXXFLAGS} -DBROKEN_BACKTRACE -nostdinc -nostdinc++" TC_CPPFLAGS= TC_LDFLAGS= for d in "include" "${host}/include" "include/c++/3.3.2" \ "include/c++/3.3.2/${host}" "lib/gcc-lib/${host}/3.3.2/include" do TC_CPPFLAGS="$TC_CPPFLAGS -I$TC_DIR/$TC_HOST_DIR/$d" done for d in "lib" "${host}/lib" do TC_LDFLAGS="$TC_LDFLAGS -L$TC_DIR/$TC_HOST_DIR/$d" done CFLAGS="$CFLAGS $TC_CPPFLAGS $TC_LDFLAGS" CXXFLAGS="$CXXFLAGS $TC_CPPFLAGS $TC_LDFLAGS" PATH="$TC_DIR/$TC_HOST_DIR/bin:$PATH" export PATH else CFLAGS="${CFLAGS} -pthread" CXXFLAGS="${CXXFLAGS} -pthread" fi ])