Waveform Database Software Package (WFDB) for MATLAB and Octave 0.10.0

File: <base>/dependencies/jni/configure.ac (3,371 bytes)
AC_PREREQ([2.63])
AC_INIT([librdsampjni], [0.9.10], [wfdb-matlab-support@physionet.org])
AC_CONFIG_SRCDIR([rdsampjni.c])

AC_PROG_CC
if test "x$GCC" = "xyes"; then
   CFLAGS="$CFLAGS -W -Wall"
fi

AC_CANONICAL_HOST
AC_DISABLE_STATIC
AC_PROG_LIBTOOL

AC_ARG_VAR([JAVA], [Java interpreter])
AC_ARG_VAR([JAVAH], [JNI header generator])
AC_CHECK_PROGS([JAVA], [java])
AC_CHECK_PROGS([JAVAH], [javah])

# try to guess where JNI headers might be
# (partially inspired by Don Anderson's AC_JNI_INCLUDE_DIR)
AC_ARG_VAR([JAVA_HOME], [JDK installation prefix])
AC_ARG_VAR([JNI_CFLAGS], [C compiler flags for JNI])
if test "x$JNI_CFLAGS" = "x"; then
    if test "x$JAVA_HOME" = "x" && test "x$host_alias" = "x$build_alias"; then
        # If JAVA_HOME not set, and we are not cross-compiling, try to
        # infer it from the location of 'javah' (after following
        # symlinks.)
        AC_PATH_PROG([_JAVAH], [$JAVAH])
        _cur=$_JAVAH
        while ls -ld "$_cur" 2>/dev/null | grep " -> " >/dev/null; do
            AC_MSG_CHECKING(symlink for $_cur)
            _slink=`ls -ld "$_cur" | sed 's/.* -> //'`
            case "$_slink" in
            /*) _cur="$_slink";;
            # 'X' avoids triggering unwanted echo options.
            *) _cur=`echo "X$_cur" | sed -e 's/^X//' -e 's:[[^/]]*$::'`"$_slink";;
            esac
            AC_MSG_RESULT($_cur)
        done
        if test -f "$_cur"; then
            JAVA_HOME=`echo "$_cur" | sed -e 's://*:/:g' -e 's:/[[^/]]*/[[^/]]*$::'`
        fi
    fi
    if test "x$JAVA_HOME" != "x" && test -f "$JAVA_HOME/include/jni.h"; then
        # If JAVA_HOME is known, look for headers there.
        JNI_CFLAGS="-I$JAVA_HOME/include"
        case "$host_os" in
        bsdi*)          subdirs="bsdos";;
        freebsd*)       subdirs="freebsd";;
        darwin*)        subdirs="darwin";;
        linux*)         subdirs="linux genunix";;
        osf*)           subdirs="alpha";;
        solaris*)       subdirs="solaris";;
        mingw*)		subdirs="win32";;
        cygwin*)	subdirs="win32";;
        *)              subdirs="genunix";;
        esac
        for d in $subdirs; do
            if test -d "$JAVA_HOME/include/$d"; then
                JNI_CFLAGS="$JNI_CFLAGS -I$JAVA_HOME/include/$d"
            fi
        done
    else
        # Otherwise try to guess at location for system-provided headers.
        case $host_os in
        darwin*)
            if test "x$cross_compiling" = "xyes"; then
                opt="-iwithsysroot "
            else
                opt="-I"
            fi
            JNI_CFLAGS="$opt/System/Library/Frameworks/JavaVM.framework/Headers/"
            ;;
        esac
    fi
fi

AC_ARG_VAR([WFDB_CFLAGS], [C compiler flags for WFDB])
AC_ARG_VAR([WFDB_LIBS],   [Library flags for WFDB])
if test "x$WFDB_CFLAGS$WFDB_LIBS" = "x"; then
  WFDB_CFLAGS=`wfdb-config --cflags 2>/dev/null`
  WFDB_LIBS=`wfdb-config --libs 2>/dev/null`
fi

cppflags1=$CPPFLAGS
libs1=$LIBS

CPPFLAGS="$cppflags1 $JNI_CFLAGS"
AC_CHECK_HEADER([jni.h], [ : ], [AC_MSG_ERROR([JNI header files not found.])])

CPPFLAGS="$cppflags1 $WFDB_CFLAGS"
LIBS="$WFDB_LIBS $libs1"
AC_CHECK_HEADER([wfdb/wfdb.h], [ : ], [AC_MSG_ERROR([WFDB header files not found.])])
AC_CHECK_FUNC([isigopen], [ : ], [AC_MSG_ERROR([WFDB library not found.])])

CPPFLAGS=$cppflags1
LIBS=$libs1

AC_CONFIG_FILES([Makefile])
AC_OUTPUT