2 AC_DEFUN([DS_LINUX_DIR],
5 [AC_HELP_STRING([--with-linux=DIR],
6 [path to Linux patched source directory])],
7 [LINUX_DIR="${withval}"],
20 AC_MSG_CHECKING([Linux version])
22 if test "${LINUX_DIR}" != "default" ; then
24 if [[ ! -f "${LINUX_DIR}/.config" ]];then
26 The kernel source tree at ${LINUX_DIR} is not configured.
27 Fix before continuing.])
30 if [[ ! -f "${LINUX_DIR}/include/linux/version.h" ]];then
31 AC_MSG_ERROR([The header file include/linux/version.h does not exist.
32 For 2.6 kernels, it can be generated by running 'make prepare' in
33 the kernel source directory.])
36 LINUX_VERSION=$(grep UTS_RELEASE ${LINUX_DIR}/include/linux/version.h | \
37 sed 's/[[^"]]*"\(.*\)\{1\}"/\1/')
39 AC_MSG_RESULT([$LINUX_VERSION])
41 LINUX_VERSION_MAJOR=$(echo ${LINUX_VERSION} | cut -d. -f1)
42 LINUX_VERSION_MINOR=$(echo ${LINUX_VERSION} | cut -d. -f2)
44 case $LINUX_VERSION_MAJOR.$LINUX_VERSION_MINOR in
52 AC_MSG_ERROR([Unknown Linux major.minor $LINUX_VERSION_MAJOR.$LINUX_VERSION_MINOR])
56 CONFIG_ORTE_KERNEL=yes
57 AC_DEFINE([CONFIG_ORTE_KERNEL],[1],[Define if linux kernel is found])
66 AC_SUBST(CONFIG_ORTE_KERNEL)
67 AM_CONDITIONAL([CONFIG_ORTE_KERNEL],[test ${CONFIG_ORTE_KERNEL} == "yes"])
72 AC_DEFUN([DS_LINUX_2_6],
74 AC_MSG_CHECKING(for Linux CFLAGS)
76 tmpdir="`pwd`/tmp-noicrwa"
81 cat >${tmpdir}/Makefile <<EOF
89 echo LINUX_ARCH=\"\$(ARCH)\" >>\$(obj)/flags
90 echo LINUX_AFLAGS=\"\$(AFLAGS)\" | sed 's_Iinclude_I"\$(LINUXDIR)/include"_g'>>\$(obj)/flags
91 echo LINUX_LDFLAGS=\"\" >>\$(obj)/flags
92 echo LINUX_ARFLAGS=\"\$(ARFLAGS)\" >>\$(obj)/flags
93 echo LINUX_CROSS_COMPILE=\"\$(CROSS_COMPILE)\" >>\$(obj)/flags
94 echo LINUX_KERNELRELEASE=\"\$(KERNELRELEASE)\" >>\$(obj)/flags
95 echo LINUX_CFLAGS=\"\$(CFLAGS)\" | sed 's_Iinclude_I"\$(LINUXDIR)/include"_g'>>\$(obj)/flags
96 echo LINUX_CC=\"\$(CC)\" >>\$(obj)/flags
97 echo LINUX_LD=\"\$(LD) \$(LDFLAGS)\" >>\$(obj)/flags
98 echo LINUX_AS=\"\$(AS)\" >>\$(obj)/flags
101 echo ${MAKE-make} -C ${LINUX_DIR} V=1 SUBDIRS=${tmpdir} LINUXDIR=${LINUX_DIR} MODVERDIR=${tmpdir} modules >&5 2>&5
102 ${MAKE-make} -C ${LINUX_DIR} V=1 SUBDIRS=${tmpdir} LINUXDIR=${LINUX_DIR} MODVERDIR=${tmpdir} modules >&5 2>&5
106 LINUX_MODULE_EXT=".ko"
109 AC_SUBST(LINUX_AFLAGS)
110 AC_SUBST(LINUX_LDFLAGS)
111 AC_SUBST(LINUX_ARFLAGS)
112 AC_SUBST(LINUX_CROSS_COMPILE)
113 AC_SUBST(LINUX_KERNELRELEASE)
114 AC_SUBST(LINUX_CFLAGS)
118 AC_SUBST(LINUX_MODULE_EXT)
124 AC_DEFUN([DS_LINUX_2_4],
126 AC_MSG_CHECKING(for Linux CFLAGS)
128 if [[ ! -f "${LINUX_DIR}/.hdepend" ]];then
130 You need to run 'make dep' on the kernel source before continuing.])
133 tmpdir="`pwd`/tmp-noicrwa"
138 cat >${tmpdir}/Makefile <<EOF
142 echo LINUX_ARCH=\"\$(ARCH)\" >>flags
143 echo LINUX_AFLAGS=\"\$(AFLAGS)\" | sed 's_Iinclude_I\"\$(LINUXDIR)/include\"_g'>>flags
144 echo LINUX_LDFLAGS=\"\" >>flags
145 echo LINUX_ARFLAGS=\"\$(ARFLAGS)\" >>flags
146 echo LINUX_CROSS_COMPILE=\"\$(CROSS_COMPILE)\" >>flags
147 echo LINUX_KERNELRELEASE=\"\$(KERNELRELEASE)\" >>flags
148 echo LINUX_CFLAGS=\"\$(CFLAGS)\" | sed 's_Iinclude_I\"\$(LINUXDIR)/include\"_g'>>flags
149 echo LINUX_CC=\"\$(CC)\" >>flags
150 echo LINUX_LD=\"\$(LD) \$(LDFLAGS)\" >>flags
151 echo LINUX_AS=\"\$(AS)\" >>flags
154 echo ${MAKE-make} -C ${LINUX_DIR} SUBDIRS=${tmpdir} modules >&5 2>&5
155 ${MAKE-make} -C ${LINUX_DIR} SUBDIRS=${tmpdir} modules >&5 2>&5
159 LINUX_MODULE_EXT=".o"
162 AC_SUBST(LINUX_AFLAGS)
163 AC_SUBST(LINUX_LDFLAGS)
164 AC_SUBST(LINUX_ARFLAGS)
165 AC_SUBST(LINUX_CROSS_COMPILE)
166 AC_SUBST(LINUX_KERNELRELEASE)
167 AC_SUBST(LINUX_CFLAGS)
171 AC_SUBST(LINUX_MODULE_EXT)
176 AC_DEFUN([DS_CHECK_LINUX_CONFIG_OPTION],
178 AC_MSG_CHECKING([Linux config option $1])
180 if grep '^$1=y$' ${LINUX_DIR}/.config >/dev/null 2>/dev/null; then
183 else if grep '^$1=m$' ${LINUX_DIR}/.config >/dev/null 2>/dev/null; then
192 AC_MSG_RESULT([$result])
195 AC_DEFUN([DS_LINUX_CONFIG_OPTION],
197 DS_CHECK_LINUX_CONFIG_OPTION([$1],
202 AM_CONDITIONAL([$1],[test "${$1}" = yes])
205 AC_DEFUN([DS_LINUX_CONFIG_OPTION_MODULE],
207 DS_CHECK_LINUX_CONFIG_OPTION([$1],
212 AM_CONDITIONAL([$1],[test "${$1}" = yes -o "${$1}" = module])
218 [AC_HELP_STRING([--with-rtai=DIR],
219 [path to configured RTAI 24.1.X sources, or RTAI 3 installation])],
220 [RTAI_DIR="${withval}"],
221 [RTAI_DIR=/usr/src/rtai])
224 [AC_HELP_STRING([--with-rtnet=DIR],
225 [path to RTnet installation directory])],
226 [RTNET_DIR="${withval}"],
227 [RTNET_DIR=/usr/src/rtnet])
229 DS_LINUX_CONFIG_OPTION_MODULE([CONFIG_RTHAL])
230 DS_LINUX_CONFIG_OPTION_MODULE([CONFIG_ADEOS])
232 if test "${CONFIG_RTHAL}" != "no" -o "${CONFIG_ADEOS}" != "no"; then
233 AC_MSG_CHECKING([RTAI directory ${RTAI_DIR}])
234 if [[ -d ${RTAI_DIR}/include ]] ; then
235 RTAI_CFLAGS="-I${RTAI_DIR}/include"
237 if [ -d ${RTAI_DIR}/rtai-core/include ] ; then
238 RTAI_CFLAGS="-I${RTAI_DIR}/rtai-core/include"
240 AC_MSG_ERROR([incorrect RTAI directory?])
243 AC_MSG_RESULT([found])
244 AC_MSG_CHECKING([RTnet directory ${RTNET_DIR}])
245 if [[ -d ${RTNET_DIR}/include ]] ; then
246 RTAI_CFLAGS="${RTAI_CFLAGS} -I${RTNET_DIR}/include"
248 AC_MSG_ERROR([incorrect RTnet directory?])
250 AC_MSG_RESULT([found])
252 RT_GCCLIB_DIR=`gcc -print-search-dirs | sed -n -e 's/^install: \(.*\)$/\1/p'`
253 RTAI_CFLAGS="${RTAI_CFLAGS} -idirafter ${RT_GCCLIB_DIR}/include -nostdinc"
254 AC_DEFINE([CONFIG_ORTE_RTAI],[1],[Define if kernel is RTAI patched])
258 AC_SUBST(RTAI_CFLAGS)
262 AC_DEFUN([DS_RTLINUX],
264 AC_ARG_WITH([rtlinux],
265 [AC_HELP_STRING([--with-rtlinux=DIR],
266 [path to RTLinux source directory])],
267 [RTLINUX_DIR="${withval}"],
268 [RTLINUX_DIR=/usr/src/rtlinux])
270 AC_ARG_WITH([rtlinuxwip],
271 [AC_HELP_STRING([--with-rtlinuxwip=DIR],
272 [path to RTLinux wIP source directory])],
273 [RTLINUXWIP_DIR="${withval}"],
274 [RTLINUXWIP_DIR="${RTLINUX_DIR}"])
276 AC_ARG_WITH([rtlinuxonetd],
277 [AC_HELP_STRING([--with-rtlinuxonetd=DIR],
278 [path to RTLinux onetd source directory])],
279 [RTLINUXONETD_DIR="${withval}"],
280 [RTLINUXONETD_DIR="${RTLINUX_DIR}"])
282 DS_LINUX_CONFIG_OPTION_MODULE([CONFIG_RTLINUX])
284 if test "${CONFIG_RTLINUX}" != "no" ; then
285 AC_MSG_CHECKING([RTLinux directory ${RTLINUX_DIR} for rtl.mk])
286 if [[ -d ${RTLINUX_DIR}/include ]] ; then
287 RTLINUX_CFLAGS=`sed -n -e 's/^CFLAGS *=\(.*\)$/\1/p' ${RTLINUX_DIR}/rtl.mk`
288 RTLINUX_CC=`sed -n -e 's/^CC *=\(.*\)$/\1/p' ${RTLINUX_DIR}/rtl.mk`
290 AC_MSG_ERROR([incorrect RTLinux directory?])
292 AC_MSG_RESULT([found])
293 AC_DEFINE([CONFIG_ORTE_RTL],[1],[Define if kernel is RTLinux patched])
295 AC_MSG_CHECKING([RTLinux for a UDP stack])
298 if [[ -e "${RTLINUXWIP_DIR}/include/udp.h" -a \
299 -e "${RTLINUXWIP_DIR}/include/nic.h" -a \
300 -e "${RTLINUXWIP_DIR}/include/ip.h" -a \
301 -e "${RTLINUXWIP_DIR}/include/ethernet.h" -a \
302 -e "${RTLINUXWIP_DIR}/include/nictab.h" ]] ; then
303 AC_MSG_RESULT([found wIP])
304 AC_DEFINE([CONFIG_ORTE_RTL_WIP],[1],[Define if wIP stack is found])
308 if [[ -e "${RTLINUXONETD_DIR}/onetd.h" ]] ; then
309 AC_MSG_RESULT([found onetd])
310 AC_DEFINE([CONFIG_ORTE_RTL_ONETD],[1],[Define if onetd stack is found])
314 if test "${RTL_STACK}" == "no" ; then
315 AC_MSG_ERROR([incorrect a RTLinux UDP directory.])
318 RT_GCCLIB_DIR=`${RTLINUX_CC} -print-search-dirs | sed -n -e 's/^install: \(.*\)$/\1/p'`
319 RTLINUX_CFLAGS="${RTLINUX_CFLAGS} -I${RTLINUXWIP_DIR}/include -I${RTLINUXONETD_DIR} -idirafter ${RT_GCCLIB_DIR}/include -nostdinc"
324 AC_SUBST(RTLINUX_CFLAGS)
330 DS_RTAI([USE_RTAI=yes],[USE_RTAI=no])
331 DS_RTLINUX([USE_RTLINUX=yes],[USE_RTLINUX=no])
332 if test ${USE_RTAI} == "yes" -o ${USE_RTLINUX} == "yes" ; then
333 AC_DEFINE([CONFIG_ORTE_RT],[1],[Define to enable ORTE's RT support])
336 AC_SUBST(CONFIG_ORTE_RT)
337 AM_CONDITIONAL([USE_RTAI],[test ${USE_RTAI} == "yes"])
338 AM_CONDITIONAL([USE_RTLINUX],[test ${USE_RTLINUX} == "yes"])
339 AM_CONDITIONAL([CONFIG_ORTE_RT],[test ${USE_RTAI} == "yes" -o ${USE_RTLINUX} == "yes"])