2 # -------- in kernel compilation? (2.5 only) -------------
3 AC_ARG_ENABLE(inkernel, [ --enable-inkernel set up 2.5 kernel makefiles])
4 AM_CONDITIONAL(INKERNEL, test x$enable_inkernel = xyes)
5 echo "Makefile for in kernel build: $INKERNEL"
7 # -------- liblustre compilation --------------
8 AC_ARG_WITH(lib, [ --with-lib compile lustre library], host_cpu="lib")
10 # -------- set linuxdir ------------
12 AC_ARG_WITH(linux, [ --with-linux=[path] set path to Linux source (default=/usr/src/linux)],LINUX=$with_linux,LINUX=/usr/src/linux)
15 # --------- UML? --------------------
16 AC_MSG_CHECKING(if you are running user mode linux for $host_cpu ...)
17 if test $host_cpu = "lib" ; then
19 AC_MSG_RESULT(no building Lustre library)
21 if test -e $LINUX/include/asm-um ; then
22 if test X`ls -id $LINUX/include/asm/ | awk '{print $1}'` = X`ls -id $LINUX/include/asm-um | awk '{print $1}'` ; then
26 AC_MSG_RESULT(no (asm doesn't point at asm-um))
30 AC_MSG_RESULT(no (asm-um missing))
34 # --------- Linux 25 ------------------
36 AC_MSG_CHECKING(if you are running linux 2.5)
37 if test -e $LINUX/include/linux/namei.h ; then
44 AM_CONDITIONAL(LINUX25, test x$linux25 = xyes)
45 echo "Makefiles for in linux 2.5 build: $LINUX25"
47 # ------- Makeflags ------------------
49 AC_MSG_CHECKING(setting make flags system architecture: )
52 AC_MSG_RESULT($host_cpu)
54 KCPPFLAGS='-D__arch_lib__ '
55 libdir='${exec_prefix}/lib/lustre'
59 AC_MSG_RESULT($host_cpu)
60 KCFLAGS='-g -Wall -pipe -Wno-trigraphs -Wstrict-prototypes -fno-strict-aliasing -fno-common '
63 KCPPFLAGS='-D__KERNEL__ -U__i386__ -Ui386 -DUM_FASTCALL -D__arch_um__ -DSUBARCH="i386" -DNESTING=0 -D_LARGEFILE64_SOURCE -Derrno=kernel_errno -DPATCHLEVEL=4 -DMODULE -I$(LINUX)/arch/um/include -I$(LINUX)/arch/um/kernel/tt/include -I$(LINUX)/arch/um/kernel/skas/include -O2 -nostdinc -iwithprefix include -DKBUILD_BASENAME=$(MODULE) -DKBUILD_MODNAME=$(MODULE) '
66 KCPPFLAGS='-D__KERNEL__ -U__i386__ -Ui386 -DUM_FASTCALL -D__arch_um__ -DSUBARCH="i386" -DNESTING=0 -D_LARGEFILE64_SOURCE -Derrno=kernel_errno -DPATCHLEVEL=4 -DMODULE -I$(LINUX)/arch/um/kernel/tt/include -I$(LINUX)/arch/um/include '
73 AC_MSG_RESULT($host_cpu)
74 KCFLAGS='-g -O2 -Wall -Wstrict-prototypes -pipe'
77 KCPPFLAGS='-D__KERNEL__ -DMODULE -march=i686 -I$(LINUX)/include/asm-i386/mach-default -nostdinc -iwithprefix include '
80 KCPPFLAGS='-D__KERNEL__ -DMODULE '
87 AC_MSG_RESULT($host_cpu)
88 KCFLAGS='-g -O2 -Wall -Wstrict-prototypes -Wno-trigraphs -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mno-fp-regs -ffixed-8 -mcpu=ev5 -Wa,-mev6'
89 KCPPFLAGS='-D__KERNEL__ -DMODULE '
94 AC_MSG_RESULT($host_cpu)
95 KCFLAGS='-g -O2 -Wall -Wstrict-prototypes -Wno-trigraphs -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mno-fp-regs -ffixed-8 -mcpu=ev5 -Wa,-mev6'
96 KCPPFLAGS='-D__KERNEL__ -DMODULE '
101 AC_MSG_RESULT($host_cpu)
102 KCFLAGS='-g -O2 -Wall -Wstrict-prototypes -Wno-trigraphs -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mno-fp-regs -ffixed-8 -mcpu=ev5 -Wa,-mev5'
103 KCPPFLAGS='-D__KERNEL__ -DMODULE '
108 AC_MSG_RESULT($host_cpu)
109 KCFLAGS='-g -O2 -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -pipe -ffixed-r13 -mfixed-range=f10-f15,f32-f127 -falign-functions=32 -mb-step'
110 KCPPFLAGS='-D__KERNEL__ -DMODULE'
115 AC_MSG_RESULT($host_cpu)
116 KCFLAGS='-O2 -Wall -Wstrict-prototypes -Wno-trigraphs -fomit-frame-pointer -fno-strict-aliasing -fno-common -Wno-unused -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare -Wa,--undeclared-regs'
117 KCPPFLAGS='-D__KERNEL__'
123 AC_MSG_RESULT($host_cpu)
124 KCFLAGS='-O2 -Wall -Wstrict-prototypes -Wno-trigraphs -fomit-frame-pointer -fno-strict-aliasing -fno-common -D__powerpc__ -fsigned-char -msoft-float -pipe -ffixed-r2 -Wno-uninitialized -mmultiple -mstring'
125 KCPPFLAGS='-D__KERNEL__'
126 MOD_LINK=elf32ppclinux
130 AC_ERROR("Unknown Linux Platform: $host_cpu")
134 # ----------- make dep run? ------------------
136 if test $host_cpu != "lib" ; then
137 AC_MSG_CHECKING(if make dep has been run in kernel source (host $host_cpu) )
138 if test -f $LINUX/include/linux/config.h ; then
141 AC_MSG_ERROR(** cannot find $LINUX/include/linux/config.h. Run make dep in $LINUX.)
145 # ------------ include paths ------------------
147 if test $host_cpu != "lib" ; then
148 KINCFLAGS="-I\$(top_srcdir)/include -I\$(top_srcdir)/portals/include -I$LINUX/include"
150 KINCFLAGS='-I$(top_srcdir)/include -I$(top_srcdir)/portals/include'
152 CPPFLAGS="$KINCFLAGS $ARCHCPPFLAGS"
154 if test $host_cpu != "lib" ; then
155 # ------------ autoconf.h ------------------
156 AC_MSG_CHECKING(if autoconf.h is in kernel source)
157 if test -f $LINUX/include/linux/autoconf.h ; then
160 AC_MSG_ERROR(** cannot find $LINUX/include/linux/autoconf.h. Run make config in $LINUX.)
163 # ------------ RELEASE and moduledir ------------------
164 AC_MSG_CHECKING(for Linux release)
166 dnl We need to rid ourselves of the nasty [ ] quotes.
168 dnl Get release from version.h
169 RELEASE="`sed -ne 's/.*UTS_RELEASE[ \"]*\([0-9.a-zA-Z_-]*\).*/\1/p' $LINUX/include/linux/version.h`"
172 moduledir='$(libdir)/modules/'$RELEASE/kernel
175 modulefsdir='$(moduledir)/fs/$(PACKAGE)'
176 AC_SUBST(modulefsdir)
178 AC_MSG_RESULT($RELEASE)
181 # ---------- modversions? --------------------
182 AC_MSG_CHECKING(for MODVERSIONS)
183 if egrep -e 'MODVERSIONS.*1' $LINUX/include/linux/autoconf.h >/dev/null 2>&1;
185 MFLAGS="-DMODULE -DMODVERSIONS -include $LINUX/include/linux/modversions.h -DEXPORT_SYMTAB"
193 # ---------- Portals flags --------------------
195 #AC_PREFIX_DEFAULT([])
196 #if test "x$prefix" = xNONE || test "x$prefix" = x; then
199 # usrprefix='${prefix}'
203 AC_MSG_CHECKING(if kernel has CPU affinity support)
204 if test "$target_cpu" != ia64 ; then
205 enable_affinity_temp="-DCPU_AFFINITY=1"
208 enable_affinity_temp=""
212 AC_MSG_CHECKING(if kernel has zero-copy TCP support)
213 ZCCD="`grep -c zccd $LINUX/include/linux/skbuff.h`"
214 if test "$ZCCD" != 0 ; then
215 enable_zerocopy_temp="-DSOCKNAL_ZC=1"
218 enable_zerocopy_temp=""
222 AC_ARG_ENABLE(zerocopy, [ --enable-zerocopy enable socknal zerocopy],enable_zerocopy=$enable_zerocopy_temp, enable_zerocopy="")
224 AC_ARG_ENABLE(affinity, [ --enable-affinity enable process/irq affinity],enable_affinity="-DCPU_AFFINITY=1", enable_affinity=$enable_affinity_temp)
225 #####################################
227 AC_MSG_CHECKING(if quadrics kernel headers are present)
228 if test -d $LINUX/drivers/net/qsnet ; then
231 with_quadrics="-I$LINUX/drivers/net/qsnet/include"
233 elif test -d $LINUX/drivers/qsnet1 ; then
236 with_quadrics="-I$LINUX/drivers/qsnet1/include -DPROPRIETARY_ELAN"
238 elif test -d $LINUX/drivers/quadrics ; then
241 with_quadrics="-I$LINUX/drivers/quadrics/include -DPROPRIETARY_ELAN"
243 #elif test -d /usr/include/elan3 ; then
254 AC_SUBST(with_quadrics)
259 echo "checking with-gm=" ${with_gm}
260 if test "${with_gm+set}" = set; then
261 if test "${with_gm}" = yes; then
262 with_gm="-I/usr/local/gm/include"
264 with_gm=-I"$with_gm/include"
268 # default case - no GM
275 def_scamac=/opt/scali/include
276 AC_ARG_WITH(scamac, [ --with-scamac=[yes/no/path] Path to ScaMAC includes (default=/opt/scali/include)], with_scamac=$withval, with_scamac=$def_scamac)
277 AC_MSG_CHECKING(if ScaMAC headers are present)
278 if test "$with_scamac" = yes; then
279 with_scamac=$def_scamac
281 if test "$with_scamac" != no -a -f ${with_scamac}/scamac.h; then
283 SCIMACNAL="scimacnal"
284 with_scamac="-I${with_scamac} -I${with_scamac}/icm"
291 AC_SUBST(with_scamac)
295 CPPFLAGS="$KINCFLAGS $KCPPFLAGS $MFLAGS $enable_zerocopy $enable_affinity $with_quadrics $with_gm $with_scamac "
299 AM_CONDITIONAL(LIBLUSTRE, test x$host_cpu = xlib)
301 # ---------- Red Hat 2.4.20 backports some 2.5 bits --------
302 # This needs to run after we've defined the KCPPFLAGS
304 AC_MSG_CHECKING(for kernel version)
305 AC_TRY_LINK([#define __KERNEL__
306 #include <linux/sched.h>],
307 [struct task_struct p;
312 if test $RH_2_4_20 = 1; then
313 AC_MSG_RESULT(redhat-2.4.20)
314 CPPFLAGS="$CPPFLAGS -DCONFIG_RH_2_4_20"
316 AC_MSG_RESULT($RELEASE)