]> rtime.felk.cvut.cz Git - orte.git/blobdiff - admin/linux.m4
JORTE: ignore 'int-to-pointer' and 'pointer-to-int' compiler warnings
[orte.git] / admin / linux.m4
index c8c126aea737673cabb53d786631313a0dbbeb3b..77eb2cf5bc9e91fc34fd531c0feebcb05099bd01 100644 (file)
@@ -1,57 +1,24 @@
 
-
-AC_DEFUN(DS_LINUX_DIR,
+AC_DEFUN([DS_LINUX_DIR],
 [
-       AC_ARG_WITH([linuxdir],
-               [AC_HELP_STRING([--with-linuxdir=DIR],
-                       [specify path to Linux source directory])],
+       AC_ARG_WITH([linux],
+               [AC_HELP_STRING([--with-linux=DIR],
+                       [path to Linux patched source directory])],
                [LINUX_DIR="${withval}"],
                [LINUX_DIR=default])
 
-       if test "${LINUX_DIR}" != "default" ; then
-               DS_TRY_LINUX_DIR([${LINUX_DIR}], , AC_MSG_ERROR([Linux dir not found]) )
-       fi
-
-       if test "${LINUX_DIR}" = "default" ; then
-               dir="/lib/modules/`uname -r`/build";
-               DS_TRY_LINUX_DIR([${dir}], [LINUX_DIR=${dir}], )
-       fi
-       if test "${LINUX_DIR}" = "default" ; then
-               dir="../linux";
-               DS_TRY_LINUX_DIR([${dir}], [LINUX_DIR=${dir}], )
-       fi
-       if test "${LINUX_DIR}" = "default" ; then
-               dir="/usr/src/linux";
-               DS_TRY_LINUX_DIR([${dir}], [LINUX_DIR=${dir}], )
-       fi
-
-#      if test "${LINUX_DIR}" = "default" ; then
-#              AC_MSG_ERROR([Linux source directory not found])
-#      fi
 
        AC_SUBST(LINUX_DIR)
 ])
 
-AC_DEFUN(DS_TRY_LINUX_DIR,
-       [AC_MSG_CHECKING(for Linux in $1)
 
-       if test -f "$1/Makefile" ; then
-               result=yes
-               $2
-       else
-               result="not found"
-               $3
-       fi
-
-       AC_MSG_RESULT($result)
-])
-
-AC_DEFUN(DS_LINUX,
+AC_DEFUN([DS_LINUX],
 [
+
        DS_LINUX_DIR()
        
         AC_MSG_CHECKING([Linux version])
-       
+       
        if test "${LINUX_DIR}" != "default" ; then
 
           if [[ ! -f "${LINUX_DIR}/.config" ]];then
@@ -85,14 +52,24 @@ AC_DEFUN(DS_LINUX,
                AC_MSG_ERROR([Unknown Linux major.minor $LINUX_VERSION_MAJOR.$LINUX_VERSION_MINOR])
                ;;
          esac
+
+         CONFIG_ORTE_KERNEL=yes
+          AC_DEFINE([CONFIG_ORTE_KERNEL],[1],[Define if linux kernel is found])          
+
        else
-          AC_MSG_RESULT(["none"])      
+          AC_MSG_RESULT([no])  
+         
+         CONFIG_ORTE_KERNEL=no
+                 
        fi
   
-  DS_RT()
+        AC_SUBST(CONFIG_ORTE_KERNEL)   
+       AM_CONDITIONAL([CONFIG_ORTE_KERNEL],[test ${CONFIG_ORTE_KERNEL} == "yes"])
+    
+        DS_RT()
 ])
 
-AC_DEFUN(DS_LINUX_2_6,
+AC_DEFUN([DS_LINUX_2_6],
 [
        AC_MSG_CHECKING(for Linux CFLAGS)
 
@@ -144,7 +121,7 @@ EOF
 ])
 
 
-AC_DEFUN(DS_LINUX_2_4,
+AC_DEFUN([DS_LINUX_2_4],
 [
        AC_MSG_CHECKING(for Linux CFLAGS)
 
@@ -196,7 +173,7 @@ EOF
        AC_MSG_RESULT([ok])
 ])
 
-AC_DEFUN(DS_CHECK_LINUX_CONFIG_OPTION,
+AC_DEFUN([DS_CHECK_LINUX_CONFIG_OPTION],
 [
        AC_MSG_CHECKING([Linux config option $1])
 
@@ -215,7 +192,7 @@ AC_DEFUN(DS_CHECK_LINUX_CONFIG_OPTION,
        AC_MSG_RESULT([$result])
 ])
 
-AC_DEFUN(DS_LINUX_CONFIG_OPTION,
+AC_DEFUN([DS_LINUX_CONFIG_OPTION],
 [
        DS_CHECK_LINUX_CONFIG_OPTION([$1],
                [$1=yes],
@@ -225,7 +202,7 @@ AC_DEFUN(DS_LINUX_CONFIG_OPTION,
        AM_CONDITIONAL([$1],[test "${$1}" = yes])
 ])
 
-AC_DEFUN(DS_LINUX_CONFIG_OPTION_MODULE,
+AC_DEFUN([DS_LINUX_CONFIG_OPTION_MODULE],
 [
        DS_CHECK_LINUX_CONFIG_OPTION([$1],
                [$1=yes],
@@ -235,17 +212,24 @@ AC_DEFUN(DS_LINUX_CONFIG_OPTION_MODULE,
        AM_CONDITIONAL([$1],[test "${$1}" = yes -o "${$1}" = module])
 ])
 
-AC_DEFUN(DS_RTAI,
+AC_DEFUN([DS_RTAI],
 [
-       AC_ARG_WITH([rtaidir],
-               [AC_HELP_STRING([--with-rtaidir=DIR],
-                       [specify path to RTAI source directory])],
+       AC_ARG_WITH([rtai],
+               [AC_HELP_STRING([--with-rtai=DIR],
+                   [path to configured RTAI 24.1.X sources, or RTAI 3 installation])],
                [RTAI_DIR="${withval}"],
                [RTAI_DIR=/usr/src/rtai])
 
+       AC_ARG_WITH([rtnet],
+               [AC_HELP_STRING([--with-rtnet=DIR],
+                       [path to RTnet installation directory])],
+               [RTNET_DIR="${withval}"],
+               [RTNET_DIR=/usr/src/rtnet])
+
        DS_LINUX_CONFIG_OPTION_MODULE([CONFIG_RTHAL])
+       DS_LINUX_CONFIG_OPTION_MODULE([CONFIG_ADEOS])
 
-       if test "${CONFIG_RTHAL}" != "no" ; then
+       if test "${CONFIG_RTHAL}" != "no" -o "${CONFIG_ADEOS}" != "no"; then
                AC_MSG_CHECKING([RTAI directory ${RTAI_DIR}])
                if [[ -d ${RTAI_DIR}/include ]] ; then
                        RTAI_CFLAGS="-I${RTAI_DIR}/include"
@@ -256,8 +240,17 @@ AC_DEFUN(DS_RTAI,
                                AC_MSG_ERROR([incorrect RTAI directory?])
                        fi
                fi
-               $1
                AC_MSG_RESULT([found])
+               AC_MSG_CHECKING([RTnet directory ${RTNET_DIR}])
+               if [[ -d ${RTNET_DIR}/include ]] ; then
+                       RTAI_CFLAGS="${RTAI_CFLAGS} -I${RTNET_DIR}/include"
+               else
+                       AC_MSG_ERROR([incorrect RTnet directory?])
+               fi
+               AC_MSG_RESULT([found])
+               $1
+               RT_GCCLIB_DIR=`gcc -print-search-dirs | sed -n -e 's/^install: \(.*\)$/\1/p'`
+               RTAI_CFLAGS="${RTAI_CFLAGS} -idirafter ${RT_GCCLIB_DIR}/include -nostdinc"
                AC_DEFINE([CONFIG_ORTE_RTAI],[1],[Define if kernel is RTAI patched])
        else
                $2
@@ -266,33 +259,73 @@ AC_DEFUN(DS_RTAI,
 
 ])
 
-AC_DEFUN(DS_RTLINUX,
+AC_DEFUN([DS_RTLINUX],
 [
-       AC_ARG_WITH([rtlinuxdir],
-               [AC_HELP_STRING([--with-rtlinuxdir=DIR],
-                       [specify path to RTLinux source directory])],
-               [RTL_DIR="${withval}"],
-               [RTL_DIR=/usr/src/rtlinux])
+       AC_ARG_WITH([rtlinux],
+               [AC_HELP_STRING([--with-rtlinux=DIR],
+                       [path to RTLinux source directory])],
+               [RTLINUX_DIR="${withval}"],
+               [RTLINUX_DIR=/usr/src/rtlinux])
+               
+       AC_ARG_WITH([rtlinuxwip],
+               [AC_HELP_STRING([--with-rtlinuxwip=DIR],
+                       [path to RTLinux wIP source directory])],
+               [RTLINUXWIP_DIR="${withval}"],
+               [RTLINUXWIP_DIR="${RTLINUX_DIR}"])
+
+       AC_ARG_WITH([rtlinuxonetd],
+               [AC_HELP_STRING([--with-rtlinuxonetd=DIR],
+                       [path to RTLinux onetd source directory])],
+               [RTLINUXONETD_DIR="${withval}"],
+               [RTLINUXONETD_DIR="${RTLINUX_DIR}"])
 
        DS_LINUX_CONFIG_OPTION_MODULE([CONFIG_RTLINUX])
 
        if test "${CONFIG_RTLINUX}" != "no" ; then
-               AC_MSG_CHECKING([RTLinux directory ${RTL_DIR} for rtl.mk])
-               if [[ -d ${RTL_DIR}/include ]] ; then
-                        RTLINUX_CFLAGS=`sed -n -e 's/^CFLAGS *=\(.*\)$/\1/p' ${RTL_DIR}/rtl.mk`
+               AC_MSG_CHECKING([RTLinux directory ${RTLINUX_DIR} for rtl.mk])
+               if [[ -d ${RTLINUX_DIR}/include ]] ; then
+                        RTLINUX_CFLAGS=`sed -n -e 's/^CFLAGS *=\(.*\)$/\1/p' ${RTLINUX_DIR}/rtl.mk`
+                        RTLINUX_CC=`sed -n -e 's/^CC *=\(.*\)$/\1/p' ${RTLINUX_DIR}/rtl.mk`
                else
                        AC_MSG_ERROR([incorrect RTLinux directory?])
                fi
                AC_MSG_RESULT([found])
                AC_DEFINE([CONFIG_ORTE_RTL],[1],[Define if kernel is RTLinux patched])
+
+               AC_MSG_CHECKING([RTLinux for a UDP stack])
+               RTL_STACK="no"
+
+                if [[ -e "${RTLINUXWIP_DIR}/include/udp.h" -a \
+                     -e "${RTLINUXWIP_DIR}/include/nic.h" -a \ 
+                     -e "${RTLINUXWIP_DIR}/include/ip.h" -a \ 
+                     -e "${RTLINUXWIP_DIR}/include/ethernet.h" -a \ 
+                     -e "${RTLINUXWIP_DIR}/include/nictab.h" ]] ; then 
+                       AC_MSG_RESULT([found wIP])
+                       AC_DEFINE([CONFIG_ORTE_RTL_WIP],[1],[Define if wIP stack is found])
+                       RTL_STACK="yes"
+               fi
+
+                if [[ -e "${RTLINUXONETD_DIR}/onetd.h" ]] ; then 
+                       AC_MSG_RESULT([found onetd])
+                       AC_DEFINE([CONFIG_ORTE_RTL_ONETD],[1],[Define if onetd stack is found])
+                       RTL_STACK="yes"
+               fi
+
+               if test "${RTL_STACK}" == "no" ; then
+                       AC_MSG_ERROR([incorrect a RTLinux UDP directory.])
+               fi
+
+                RT_GCCLIB_DIR=`${RTLINUX_CC} -print-search-dirs | sed -n -e 's/^install: \(.*\)$/\1/p'`
+               RTLINUX_CFLAGS="${RTLINUX_CFLAGS} -I${RTLINUXWIP_DIR}/include -I${RTLINUXONETD_DIR} -idirafter ${RT_GCCLIB_DIR}/include -nostdinc"
                $1
        else
                $2
        fi
        AC_SUBST(RTLINUX_CFLAGS)
+       AC_SUBST(RTLINUX_CC)
 ])
 
-AC_DEFUN(DS_RT,
+AC_DEFUN([DS_RT],
 [
        DS_RTAI([USE_RTAI=yes],[USE_RTAI=no])
        DS_RTLINUX([USE_RTLINUX=yes],[USE_RTLINUX=no])