5 AC_ARG_WITH([linuxdir],
6 [AC_HELP_STRING([--with-linuxdir=DIR],
7 [specify path to Linux source directory])],
8 [LINUX_DIR="${withval}"],
11 if test "${LINUX_DIR}" != "default" ; then
12 DS_TRY_LINUX_DIR([${LINUX_DIR}], , AC_MSG_ERROR([Linux dir not found]) )
15 if test "${LINUX_DIR}" = "default" ; then
16 dir="/lib/modules/`uname -r`/build";
17 DS_TRY_LINUX_DIR([${dir}], [LINUX_DIR=${dir}], )
19 if test "${LINUX_DIR}" = "default" ; then
21 DS_TRY_LINUX_DIR([${dir}], [LINUX_DIR=${dir}], )
23 if test "${LINUX_DIR}" = "default" ; then
25 DS_TRY_LINUX_DIR([${dir}], [LINUX_DIR=${dir}], )
28 # if test "${LINUX_DIR}" = "default" ; then
29 # AC_MSG_ERROR([Linux source directory not found])
35 AC_DEFUN(DS_TRY_LINUX_DIR,
36 [AC_MSG_CHECKING(for Linux in $1)
38 if test -f "$1/Makefile" ; then
46 AC_MSG_RESULT($result)
53 AC_MSG_CHECKING([Linux version])
55 if test "${LINUX_DIR}" != "default" ; then
57 if [[ ! -f "${LINUX_DIR}/.config" ]];then
59 The kernel source tree at ${LINUX_DIR} is not configured.
60 Fix before continuing.])
63 if [[ ! -f "${LINUX_DIR}/include/linux/version.h" ]];then
64 AC_MSG_ERROR([The header file include/linux/version.h does not exist.
65 For 2.6 kernels, it can be generated by running 'make prepare' in
66 the kernel source directory.])
69 LINUX_VERSION=$(grep UTS_RELEASE ${LINUX_DIR}/include/linux/version.h | \
70 sed 's/[[^"]]*"\(.*\)\{1\}"/\1/')
72 AC_MSG_RESULT([$LINUX_VERSION])
74 LINUX_VERSION_MAJOR=$(echo ${LINUX_VERSION} | cut -d. -f1)
75 LINUX_VERSION_MINOR=$(echo ${LINUX_VERSION} | cut -d. -f2)
77 case $LINUX_VERSION_MAJOR.$LINUX_VERSION_MINOR in
85 AC_MSG_ERROR([Unknown Linux major.minor $LINUX_VERSION_MAJOR.$LINUX_VERSION_MINOR])
89 AC_MSG_RESULT(["none"])
95 AC_DEFUN(DS_LINUX_2_6,
97 AC_MSG_CHECKING(for Linux CFLAGS)
99 tmpdir="`pwd`/tmp-noicrwa"
104 cat >${tmpdir}/Makefile <<EOF
107 \$(obj)/fake.c: flags
112 echo LINUX_ARCH=\"\$(ARCH)\" >>\$(obj)/flags
113 echo LINUX_AFLAGS=\"\$(AFLAGS)\" | sed 's_Iinclude_I"\$(LINUXDIR)/include"_g'>>\$(obj)/flags
114 echo LINUX_LDFLAGS=\"\" >>\$(obj)/flags
115 echo LINUX_ARFLAGS=\"\$(ARFLAGS)\" >>\$(obj)/flags
116 echo LINUX_CROSS_COMPILE=\"\$(CROSS_COMPILE)\" >>\$(obj)/flags
117 echo LINUX_KERNELRELEASE=\"\$(KERNELRELEASE)\" >>\$(obj)/flags
118 echo LINUX_CFLAGS=\"\$(CFLAGS)\" | sed 's_Iinclude_I"\$(LINUXDIR)/include"_g'>>\$(obj)/flags
119 echo LINUX_CC=\"\$(CC)\" >>\$(obj)/flags
120 echo LINUX_LD=\"\$(LD) \$(LDFLAGS)\" >>\$(obj)/flags
121 echo LINUX_AS=\"\$(AS)\" >>\$(obj)/flags
124 echo ${MAKE-make} -C ${LINUX_DIR} V=1 SUBDIRS=${tmpdir} LINUXDIR=${LINUX_DIR} MODVERDIR=${tmpdir} modules >&5 2>&5
125 ${MAKE-make} -C ${LINUX_DIR} V=1 SUBDIRS=${tmpdir} LINUXDIR=${LINUX_DIR} MODVERDIR=${tmpdir} modules >&5 2>&5
129 LINUX_MODULE_EXT=".ko"
132 AC_SUBST(LINUX_AFLAGS)
133 AC_SUBST(LINUX_LDFLAGS)
134 AC_SUBST(LINUX_ARFLAGS)
135 AC_SUBST(LINUX_CROSS_COMPILE)
136 AC_SUBST(LINUX_KERNELRELEASE)
137 AC_SUBST(LINUX_CFLAGS)
141 AC_SUBST(LINUX_MODULE_EXT)
147 AC_DEFUN(DS_LINUX_2_4,
149 AC_MSG_CHECKING(for Linux CFLAGS)
151 if [[ ! -f "${LINUX_DIR}/.hdepend" ]];then
153 You need to run 'make dep' on the kernel source before continuing.])
156 tmpdir="`pwd`/tmp-noicrwa"
161 cat >${tmpdir}/Makefile <<EOF
165 echo LINUX_ARCH=\"\$(ARCH)\" >>flags
166 echo LINUX_AFLAGS=\"\$(AFLAGS)\" | sed 's_Iinclude_I\"\$(LINUXDIR)/include\"_g'>>flags
167 echo LINUX_LDFLAGS=\"\" >>flags
168 echo LINUX_ARFLAGS=\"\$(ARFLAGS)\" >>flags
169 echo LINUX_CROSS_COMPILE=\"\$(CROSS_COMPILE)\" >>flags
170 echo LINUX_KERNELRELEASE=\"\$(KERNELRELEASE)\" >>flags
171 echo LINUX_CFLAGS=\"\$(CFLAGS)\" | sed 's_Iinclude_I\"\$(LINUXDIR)/include\"_g'>>flags
172 echo LINUX_CC=\"\$(CC)\" >>flags
173 echo LINUX_LD=\"\$(LD) \$(LDFLAGS)\" >>flags
174 echo LINUX_AS=\"\$(AS)\" >>flags
177 echo ${MAKE-make} -C ${LINUX_DIR} SUBDIRS=${tmpdir} modules >&5 2>&5
178 ${MAKE-make} -C ${LINUX_DIR} SUBDIRS=${tmpdir} modules >&5 2>&5
182 LINUX_MODULE_EXT=".o"
185 AC_SUBST(LINUX_AFLAGS)
186 AC_SUBST(LINUX_LDFLAGS)
187 AC_SUBST(LINUX_ARFLAGS)
188 AC_SUBST(LINUX_CROSS_COMPILE)
189 AC_SUBST(LINUX_KERNELRELEASE)
190 AC_SUBST(LINUX_CFLAGS)
194 AC_SUBST(LINUX_MODULE_EXT)
199 AC_DEFUN(DS_CHECK_LINUX_CONFIG_OPTION,
201 AC_MSG_CHECKING([Linux config option $1])
203 if grep '^$1=y$' ${LINUX_DIR}/.config >/dev/null 2>/dev/null; then
206 else if grep '^$1=m$' ${LINUX_DIR}/.config >/dev/null 2>/dev/null; then
215 AC_MSG_RESULT([$result])
218 AC_DEFUN(DS_LINUX_CONFIG_OPTION,
220 DS_CHECK_LINUX_CONFIG_OPTION([$1],
225 AM_CONDITIONAL([$1],[test "${$1}" = yes])
228 AC_DEFUN(DS_LINUX_CONFIG_OPTION_MODULE,
230 DS_CHECK_LINUX_CONFIG_OPTION([$1],
235 AM_CONDITIONAL([$1],[test "${$1}" = yes -o "${$1}" = module])
240 AC_ARG_WITH([rtaidir],
241 [AC_HELP_STRING([--with-rtaidir=DIR],
242 [specify path to RTAI source directory])],
243 [RTAI_DIR="${withval}"],
244 [RTAI_DIR=/usr/src/rtai])
246 DS_LINUX_CONFIG_OPTION_MODULE([CONFIG_RTHAL])
248 if test "${CONFIG_RTHAL}" != "no" ; then
249 AC_MSG_CHECKING([RTAI directory ${RTAI_DIR}])
250 if [[ -d ${RTAI_DIR}/include ]] ; then
251 RTAI_CFLAGS="-I${RTAI_DIR}/include"
253 if [ -d ${RTAI_DIR}/rtai-core/include ] ; then
254 RTAI_CFLAGS="-I${RTAI_DIR}/rtai-core/include"
256 AC_MSG_ERROR([incorrect RTAI directory?])
260 AC_MSG_RESULT([found])
261 AC_DEFINE([CONFIG_ORTE_RTAI],[1],[Define if kernel is RTAI patched])
265 AC_SUBST(RTAI_CFLAGS)
271 AC_ARG_WITH([rtlinuxdir],
272 [AC_HELP_STRING([--with-rtlinuxdir=DIR],
273 [specify path to RTLinux source directory])],
274 [RTLINUX_DIR="${withval}"],
275 [RTLINUX_DIR=/usr/src/rtlinux])
277 DS_LINUX_CONFIG_OPTION_MODULE([CONFIG_RTLINUX])
279 if test "${CONFIG_RTLINUX}" != "no" ; then
280 AC_MSG_CHECKING([RTLinux directory ${RTLINUX_DIR} for rtl.mk])
281 if [[ -d ${RTLINUX_DIR}/include ]] ; then
282 RTLINUX_CFLAGS=`sed -n -e 's/^CFLAGS *=\(.*\)$/\1/p' ${RTLINUX_DIR}/rtl.mk`
284 AC_MSG_ERROR([incorrect RTLinux directory?])
286 AC_MSG_RESULT([found])
287 AC_DEFINE([CONFIG_ORTE_RTL],[1],[Define if kernel is RTLinux patched])
292 AC_SUBST(RTLINUX_CFLAGS)
297 DS_RTAI([USE_RTAI=yes],[USE_RTAI=no])
298 DS_RTLINUX([USE_RTLINUX=yes],[USE_RTLINUX=no])
299 if test ${USE_RTAI} == "yes" -o ${USE_RTLINUX} == "yes" ; then
300 AC_DEFINE([CONFIG_ORTE_RT],[1],[Define to enable comedi's RT support])
302 AM_CONDITIONAL([USE_RTAI],[test ${USE_RTAI} == "yes"])
303 AM_CONDITIONAL([USE_RTLINUX],[test ${USE_RTLINUX} == "yes"])
304 AM_CONDITIONAL([CONFIG_ORTE_RT],[test ${USE_RTAI} == "yes" -o ${USE_RTLINUX} == "yes"])