Whamcloud - gitweb
Branch b_hd_kdmu
[fs/lustre-release.git] / build / autoconf / lustre-build.m4
1 #
2 # LB_CHECK_VERSION
3 #
4 # Verify that LUSTRE_VERSION was defined properly
5 #
6 AC_DEFUN([LB_CHECK_VERSION],
7 [if test "LUSTRE_VERSION" = "LUSTRE""_VERSION" ; then
8         AC_MSG_ERROR([This script was not built with a version number.])
9 fi
10 ])
11
12 #
13 # LB_CANONICAL_SYSTEM
14 #
15 # fixup $target_os for use in other places
16 #
17 AC_DEFUN([LB_CANONICAL_SYSTEM],
18 [case $target_os in
19         linux*)
20                 lb_target_os="linux"
21                 ;;
22         darwin*)
23                 lb_target_os="darwin"
24                 ;;
25         solaris*)
26                 lb_target_os="SunOS"
27                 ;;esac
28 AC_SUBST(lb_target_os)
29 ])
30
31 #
32 # LB_CHECK_FILE
33 #
34 # Check for file existance even when cross compiling
35 #
36 AC_DEFUN([LB_CHECK_FILE],
37 [AS_VAR_PUSHDEF([lb_File], [lb_cv_file_$1])dnl
38 AC_CACHE_CHECK([for $1], lb_File,
39 [if test -r "$1"; then
40   AS_VAR_SET(lb_File, yes)
41 else
42   AS_VAR_SET(lb_File, no)
43 fi])
44 AS_IF([test AS_VAR_GET(lb_File) = yes], [$2], [$3])[]dnl
45 AS_VAR_POPDEF([lb_File])dnl
46 ])# LB_CHECK_FILE
47
48 #
49 # LB_CHECK_FILES
50 #
51 # LB_CHECK_FILE over multiple files
52 #
53 AC_DEFUN([LB_CHECK_FILES],
54 [AC_FOREACH([AC_FILE_NAME], [$1],
55   [LB_CHECK_FILE(AC_FILE_NAME,
56                  [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_[]AC_FILE_NAME), 1,
57                                     [Define to 1 if you have the
58                                      file `]AC_File['.])
59 $2],
60                  [$3])])])
61
62 #
63 # LB_ARG_LIBS_INCLUDES
64 #
65 # support for --with-foo, --with-foo-includes, and --with-foo-libs in
66 # a single magical macro
67 #
68 AC_DEFUN([LB_ARG_LIBS_INCLUDES],
69 [lb_pathvar="m4_bpatsubst([$2], -, _)"
70 AC_MSG_CHECKING([for $1])
71 AC_ARG_WITH([$2],
72         AC_HELP_STRING([--with-$2=path],
73                 [path to $1]),
74         [],[withval=$4])
75
76 if test x$withval = xyes ; then
77         eval "$lb_pathvar='$3'"
78 else
79         eval "$lb_pathvar='$withval'"
80 fi
81 AC_MSG_RESULT([${!lb_pathvar:-no}])
82
83 if test x${!lb_pathvar} != x -a x${!lb_pathvar} != xno ; then
84         AC_MSG_CHECKING([for $1 includes])
85         AC_ARG_WITH([$2-includes],
86                 AC_HELP_STRING([--with-$2-includes=path],
87                         [path to $1 includes]),
88                 [],[withval='yes'])
89
90         lb_includevar="${lb_pathvar}_includes"
91         if test x$withval = xyes ; then
92                 eval "${lb_includevar}='${!lb_pathvar}/include'"
93         else
94                 eval "${lb_includevar}='$withval'"
95         fi
96         AC_MSG_RESULT([${!lb_includevar}])
97
98         AC_MSG_CHECKING([for $1 libs])
99         AC_ARG_WITH([$2-libs],
100                 AC_HELP_STRING([--with-$2-libs=path],
101                         [path to $1 libs]),
102                 [],[withval='yes'])
103
104         lb_libvar="${lb_pathvar}_libs"
105         if test x$withval = xyes ; then
106                 eval "${lb_libvar}='${!lb_pathvar}/lib'"
107         else
108                 eval "${lb_libvar}='$withval'"
109         fi
110         AC_MSG_RESULT([${!lb_libvar}])
111 fi
112 ])
113 ])
114
115 #
116 # LB_PATH_LIBSYSIO
117 #
118 # Handle internal/external libsysio
119 #
120 AC_DEFUN([LB_PATH_LIBSYSIO],
121 [AC_ARG_WITH([sysio],
122         AC_HELP_STRING([--with-sysio=path],
123                         [set path to libsysio source (default is included libsysio)]),
124         [],[
125                 case $lb_target_os in
126                         linux)
127                                 with_sysio='yes'
128                                 ;;
129                         *)
130                                 with_sysio='no'
131                                 ;;
132                 esac
133         ])
134 AC_MSG_CHECKING([location of libsysio])
135 enable_sysio="$with_sysio"
136 case x$with_sysio in
137         xyes)
138                 AC_MSG_RESULT([internal])
139                 LB_CHECK_FILE([$srcdir/libsysio/src/rmdir.c],[],[
140                         AC_MSG_ERROR([A complete internal libsysio was not found.])
141                 ])
142                 LIBSYSIO_SUBDIR="libsysio"
143                 SYSIO="$PWD/libsysio"
144                 ;;
145         xno)
146                 AC_MSG_RESULT([disabled])
147                 ;;
148         *)
149                 AC_MSG_RESULT([$with_sysio])
150                 LB_CHECK_FILE([$with_sysio/lib/libsysio.a],[],[
151                         AC_MSG_ERROR([A complete (built) external libsysio was not found.])
152                 ])
153                 SYSIO=$with_sysio
154                 with_sysio="yes"
155                 ;;
156 esac
157
158 # We have to configure even if we don't build here for make dist to work
159 AC_CONFIG_SUBDIRS(libsysio)
160 ])
161
162 #
163 # LB_PATH_LUSTREIOKIT
164 #
165 # Handle internal/external lustre-iokit
166 #
167 AC_DEFUN([LB_PATH_LUSTREIOKIT],
168 [AC_ARG_WITH([],
169         AC_HELP_STRING([--with-lustre-iokit=path],
170                         [set path to lustre-iokit source (default is included lustre-iokit)]),
171         [],[
172                         with_lustre_iokit='yes'
173         ])
174 AC_MSG_CHECKING([location of lustre-iokit])
175 enable_lustre_iokit="$with_lustre_iokit"
176 case x$with_lustre_iokit in
177         xyes)
178                 AC_MSG_RESULT([internal])
179                 LB_CHECK_FILE([$srcdir/lustre-iokit/ior-survey/ior-survey],[],[
180                         AC_MSG_ERROR([A complete internal lustre-iokit was not found.])
181                 ])
182                 LUSTREIOKIT_SUBDIR="lustre-iokit"
183                 LUSTREIOKIT="$PWD/lustre-iokit"
184                 ;;
185         xno)
186                 AC_MSG_RESULT([disabled])
187                 ;;
188         *)
189                 AC_MSG_RESULT([$with_lustre_iokit])
190                 LB_CHECK_FILE([$with_lustre_iokit/ior-survey/ior_survey],[],[
191                         AC_MSG_ERROR([A complete (built) external lustre-iokit was not found.])
192                 ])
193                 LUSTREIOKIT="$with_lustre_iokit"
194                 with_lustre_iokit="yes"
195                 ;;
196 esac
197 AC_SUBST(LUSTREIOKIT_SUBDIR)
198 # We have to configure even if we don't build here for make dist to work
199 AC_CONFIG_SUBDIRS(lustre-iokit)
200 ])
201
202 #
203 # LB_PATH_LDISKFS
204 #
205 # Handle internal/external ldiskfs
206 #
207 AC_DEFUN([LB_PATH_LDISKFS],
208 [AC_ARG_WITH([ldiskfs],
209         AC_HELP_STRING([--with-ldiskfs=path],
210                         [set path to ldiskfs source (default is included ldiskfs)]),
211         [],[
212                 if test x$linux25$enable_server = xyesyes ; then
213                         with_ldiskfs=yes
214                 else
215                         with_ldiskfs=no
216                 fi
217         ])
218 AC_MSG_CHECKING([location of ldiskfs])
219 case x$with_ldiskfs in
220         xyes)
221                 AC_MSG_RESULT([internal])
222                 LB_CHECK_FILE([$srcdir/ldiskfs/lustre-ldiskfs.spec.in],[],[
223                         AC_MSG_ERROR([A complete internal ldiskfs was not found.])
224                 ])
225                 LDISKFS_SUBDIR="ldiskfs"
226                 LDISKFS_DIR="$PWD/ldiskfs"
227                 ;;
228         xno)
229                 AC_MSG_RESULT([disabled])
230                 ;;
231         *)
232                 AC_MSG_RESULT([$with_ldiskfs])
233                 LB_CHECK_FILE([$with_ldiskfs/ldiskfs/linux/ldiskfs_fs.h],[],[
234                         AC_MSG_ERROR([A complete (built) external ldiskfs was not found.])
235                 ])
236                 LDISKFS_DIR=$with_ldiskfs
237                 ;;
238 esac
239 AC_SUBST(LDISKFS_DIR)
240 AC_SUBST(LDISKFS_SUBDIR)
241 AM_CONDITIONAL(LDISKFS_ENABLED, test x$with_ldiskfs != xno)
242
243 # We have to configure even if we don't build here for make dist to work
244 AC_CONFIG_SUBDIRS(ldiskfs)
245 ])
246
247 # Define no libcfs by default.
248 AC_DEFUN([LB_LIBCFS_DIR],
249 [
250 case x$libcfs_is_module in
251         xyes)
252           LIBCFS_INCLUDE_DIR="libcfs/include"
253           LIBCFS_SUBDIR="libcfs"
254           ;;
255         x*)
256           LIBCFS_INCLUDE_DIR="lnet/include"
257           LIBCFS_SUBDIR=""
258           ;;
259 esac
260 AC_SUBST(LIBCFS_SUBDIR)
261 AC_SUBST(LIBCFS_INCLUDE_DIR)
262 ])
263
264 #
265 # LB_DEFINE_LDISKFS_OPTIONS
266 #
267 # Enable config options related to ldiskfs.  These are used both by ldiskfs
268 # and lvfs (which includes ldiskfs headers.)
269 #
270 AC_DEFUN([LB_DEFINE_LDISKFS_OPTIONS],
271 [
272         AC_DEFINE(CONFIG_LDISKFS_FS_MODULE, 1, [build ldiskfs as a module])
273         AC_DEFINE(CONFIG_LDISKFS_FS_XATTR, 1, [enable extended attributes for ldiskfs])
274         AC_DEFINE(CONFIG_LDISKFS_FS_POSIX_ACL, 1, [enable posix acls for ldiskfs])
275         AC_DEFINE(CONFIG_LDISKFS_FS_SECURITY, 1, [enable fs security for ldiskfs])
276 ])
277
278 #
279 # LB_CONFIG_CRAY_XT3
280 #
281 # Enable Cray XT3 features
282 #
283 AC_DEFUN([LB_CONFIG_CRAY_XT3],
284 [AC_MSG_CHECKING([whether to build Cray XT3 features])
285 AC_ARG_ENABLE([cray_xt3],
286         AC_HELP_STRING([--enable-cray-xt3],
287                         [enable building of Cray XT3 features]),
288         [enable_cray_xt3='yes'],[enable_cray_xt3='no'])
289 AC_MSG_RESULT([$enable_cray_xt3])
290 if test x$enable_cray_xt3 != xno; then
291         AC_DEFINE(CRAY_XT3, 1, Enable Cray XT3 Features)
292 fi
293 ])
294
295 #
296 # LB_CONFIG_BGL
297 #
298 # Enable BGL features
299 #
300 AC_DEFUN([LB_CONFIG_BGL],
301 [AC_MSG_CHECKING([whether to build BGL features])
302 AC_ARG_ENABLE([bgl],
303         AC_HELP_STRING([--enable-bgl],
304                         [enable building of BGL features]),
305         [enable_bgl='yes'],[enable_bgl='no'])
306 AC_MSG_RESULT([$enable_bgl])
307 if test x$enable_bgl != xno; then
308         AC_DEFINE(HAVE_BGL_SUPPORT, 1, Enable BGL Features)
309         enable_doc='no'
310         enable_tests='no'
311         enable_server='no'
312         enable_liblustre='no'
313         enable_libreadline='no'
314 fi
315 ])
316
317 #
318 # Support for --enable-uoss
319 #
320 AC_DEFUN([LB_UOSS],
321 [AC_MSG_CHECKING([whether to enable uoss])
322 AC_ARG_ENABLE([uoss],
323         AC_HELP_STRING([--enable-uoss],
324                         [enable userspace OSS]),
325         [enable_uoss='yes'],[enable_uoss='no'])
326 AC_MSG_RESULT([$enable_uoss])
327 if test x$enable_uoss = xyes; then
328         AC_DEFINE(UOSS_SUPPORT, 1, Enable user-level OSS)
329         AC_DEFINE(LUSTRE_ULEVEL_MT, 1, Multi-threaded user-level lustre port)
330         enable_uoss='yes'
331         enable_ulevel_mt='yes'
332         enable_modules='no'
333         enable_client='no'
334         enable_tests='no'
335         enable_liblustre='no'
336         with_ldiskfs='no'
337 fi
338 AC_SUBST(enable_uoss)
339 ])
340
341 #
342 # Support for --enable-posix-osd
343 #
344 AC_DEFUN([LB_POSIX_OSD],
345 [AC_MSG_CHECKING([whether to enable posix osd])
346 AC_ARG_ENABLE([posix-osd],
347         AC_HELP_STRING([--enable-posix-osd],
348                         [enable using of posix osd]),
349         [enable_posix_osd='yes'],[enable_posix_osd='no'])
350 AC_MSG_RESULT([$enable_posix_osd])
351 if test x$enable_uoss = xyes -a x$enable_posix_osd = xyes ; then
352         AC_DEFINE(POSIX_OSD, 1, Enable POSIX OSD)
353         posix_osd='yes'
354 fi
355 AM_CONDITIONAL(POSIX_OSD_ENABLED, test x$posix_osd = xyes)
356 ])
357
358 #
359 # LB_PATH_DMU
360 #
361 AC_DEFUN([LB_PATH_DMU],
362 [AC_ARG_ENABLE([dmu],
363         AC_HELP_STRING([--enable-dmu],
364                        [enable the DMU backend]),
365         [],[with_dmu='default'])
366 AC_MSG_CHECKING([whether to enable DMU])
367 case x$with_dmu in
368         xyes)
369                 dmu_osd='yes'
370                 ;;
371         xno)
372                 dmu_osd='no'
373                 ;;
374         xdefault)
375                 if test x$enable_uoss = xyes -a x$posix_osd != xyes; then
376                         # Enable the DMU if we're configuring a userspace server
377                         dmu_osd='yes'
378                 else
379                         # Enable the DMU by default on the b_hd_kdmu branch
380                         if test -d $PWD/zfs -a x$linux25$enable_server = xyesyes; then
381                                 dmu_osd='yes'
382                         else
383                                 dmu_osd='no'
384                         fi
385                 fi
386                 ;;
387         *)
388                 dmu_osd='yes'
389                 ;;
390 esac
391 AC_MSG_RESULT([$dmu_osd])
392 if test x$dmu_osd = xyes; then
393         AC_DEFINE(DMU_OSD, 1, Enable DMU OSD)
394         if test x$enable_uoss = xyes; then
395                 # Userspace DMU
396                 DMU_SRC="$PWD/lustre/zfs-lustre"
397                 AC_SUBST(DMU_SRC)
398                 LB_CHECK_FILE([$DMU_SRC/src/.patched],[],[
399                         AC_MSG_ERROR([A complete (patched) DMU tree was not found.])
400                 ])
401                 AC_CONFIG_SUBDIRS(lustre/zfs-lustre)
402         else
403                 # Kernel DMU
404                 SPL_DIR="$PWD/spl"
405                 ZFS_DIR="$PWD/zfs"
406                 AC_SUBST(SPL_DIR)
407                 AC_SUBST(ZFS_DIR)
408
409                 AC_SUBST(spl_src)
410
411                 LB_CHECK_FILE([$SPL_DIR/modules/spl/spl-generic.c],[],[
412                         AC_MSG_ERROR([A complete SPL tree was not found in $SPL_DIR.])
413                 ])
414
415                 LB_CHECK_FILE([$ZFS_DIR/zfs/lib/libzpool/dmu.c],[],[
416                         AC_MSG_ERROR([A complete kernel DMU tree was not found in $ZFS_DIR.])
417                 ])
418
419                 AC_CONFIG_SUBDIRS(spl)
420                 ac_configure_args="$ac_configure_args --with-spl=$SPL_DIR"
421                 AC_CONFIG_SUBDIRS(zfs)
422         fi
423 fi
424 AM_CONDITIONAL(DMU_OSD_ENABLED, test x$dmu_osd = xyes)
425 AM_CONDITIONAL(KDMU, test x$dmu_osd$enable_uoss = xyesno)
426 ])
427
428 #
429 # LB_PATH_SNMP
430 #
431 # check for in-tree snmp support
432 #
433 AC_DEFUN([LB_PATH_SNMP],
434 [LB_CHECK_FILE([$srcdir/snmp/lustre-snmp.c],[SNMP_DIST_SUBDIR="snmp"])
435 AC_SUBST(SNMP_DIST_SUBDIR)
436 AC_SUBST(SNMP_SUBDIR)
437 ])
438
439 #
440 # LB_CONFIG_MODULES
441 #
442 # Build kernel modules?
443 #
444 AC_DEFUN([LB_CONFIG_MODULES],
445 [AC_MSG_CHECKING([whether to build kernel modules])
446 AC_ARG_ENABLE([modules],
447         AC_HELP_STRING([--disable-modules],
448                         [disable building of Lustre kernel modules]),
449         [],[
450                 LC_TARGET_SUPPORTED([
451                         enable_modules='yes'
452                 ],[
453                         enable_modules='no'
454                 ])
455         ])
456 AC_MSG_RESULT([$enable_modules ($target_os)])
457
458 if test x$enable_modules = xyes ; then
459         case $target_os in
460                 linux*)
461                         LB_PROG_LINUX
462                         LIBCFS_PROG_LINUX
463                         LN_PROG_LINUX
464                         LC_PROG_LINUX
465                         ;;
466                 darwin*)
467                         LB_PROG_DARWIN
468                         LIBCFS_PROG_DARWIN
469                         ;;
470                 *)
471                         # This is strange - Lustre supports a target we don't
472                         AC_MSG_ERROR([Modules are not supported on $target_os])
473                         ;;
474         esac
475 fi
476 ])
477
478 #
479 # LB_CONFIG_UTILS
480 #
481 # Build utils?
482 #
483 AC_DEFUN([LB_CONFIG_UTILS],
484 [AC_MSG_CHECKING([whether to build utilities])
485 AC_ARG_ENABLE([utils],
486         AC_HELP_STRING([--disable-utils],
487                         [disable building of Lustre utility programs]),
488         [],[enable_utils='yes'])
489 AC_MSG_RESULT([$enable_utils])
490 if test x$enable_utils = xyes ; then 
491         LB_CONFIG_INIT_SCRIPTS
492 fi
493 ])
494
495 #
496 # LB_CONFIG_TESTS
497 #
498 # Build tests?
499 #
500 AC_DEFUN([LB_CONFIG_TESTS],
501 [AC_MSG_CHECKING([whether to build Lustre tests])
502 AC_ARG_ENABLE([tests],
503         AC_HELP_STRING([--disable-tests],
504                         [disable building of Lustre tests]),
505         [],
506         [
507                 enable_tests='yes'
508         ])
509 AC_MSG_RESULT([$enable_tests])
510 ])
511
512 #
513 # LB_CONFIG_DOCS
514 #
515 # Build docs?
516 #
517 AC_DEFUN([LB_CONFIG_DOCS],
518 [AC_MSG_CHECKING([whether to build docs])
519 AC_ARG_ENABLE(doc,
520         AC_HELP_STRING([--disable-doc],
521                         [skip creation of pdf documentation]),
522         [
523                 if test x$enable_doc = xyes ; then
524                     ENABLE_DOC=1           
525                 else
526                     ENABLE_DOC=0
527                 fi
528         ],[
529                 ENABLE_DOC=0
530                 enable_doc='no'
531         ])
532 AC_MSG_RESULT([$enable_doc])
533 AC_SUBST(ENABLE_DOC)
534 ])
535
536 #
537 # LB_CONFIG_INIT_SCRIPTS
538 #
539 # our init scripts only work on red hat linux
540 #
541 AC_DEFUN([LB_CONFIG_INIT_SCRIPTS],
542 [ENABLE_INIT_SCRIPTS=0
543 if test x$enable_utils = xyes ; then
544         AC_MSG_CHECKING([whether to install init scripts])
545         # our scripts only work on red hat systems
546         if test -f /etc/init.d/functions -a -f /etc/sysconfig/network ; then
547                 ENABLE_INIT_SCRIPTS=1
548                 AC_MSG_RESULT([yes])
549         else
550                 AC_MSG_RESULT([no])
551         fi
552 fi
553 AC_SUBST(ENABLE_INIT_SCRIPTS)
554 ])
555
556 #
557 # LB_CONFIG_HEADERS
558 #
559 # add -include config.h
560 #
561 AC_DEFUN([LB_CONFIG_HEADERS],
562 [AC_CONFIG_HEADERS([config.h])
563 CPPFLAGS="-include \$(top_builddir)/config.h $CPPFLAGS"
564 EXTRA_KCFLAGS="-include $PWD/config.h $EXTRA_KCFLAGS"
565 AC_SUBST(EXTRA_KCFLAGS)
566 ])
567
568 #
569 # LB_INCLUDE_RULES
570 #
571 # defines for including the toplevel Rules
572 #
573 AC_DEFUN([LB_INCLUDE_RULES],
574 [INCLUDE_RULES="include $PWD/Rules"
575 AC_SUBST(INCLUDE_RULES)
576 ])
577
578 #
579 # LB_PATH_DEFAULTS
580 #
581 # 'fixup' default paths
582 #
583 AC_DEFUN([LB_PATH_DEFAULTS],
584 [# directories for binaries
585 AC_PREFIX_DEFAULT([/usr])
586
587 sysconfdir='/etc'
588 AC_SUBST(sysconfdir)
589
590 # Directories for documentation and demos.
591 docdir='${datadir}/doc/$(PACKAGE)'
592 AC_SUBST(docdir)
593
594 LIBCFS_PATH_DEFAULTS
595 LN_PATH_DEFAULTS
596 LC_PATH_DEFAULTS
597
598 ])
599
600 #
601 # LB_PROG_CC
602 #
603 # checks on the C compiler
604 #
605 AC_DEFUN([LB_PROG_CC],
606 [AC_PROG_RANLIB
607 AC_MSG_CHECKING([for buggy compiler])
608 CC_VERSION=`$CC -v 2>&1 | grep "^gcc version"`
609 bad_cc() {
610         AC_MSG_RESULT([buggy compiler found!])
611         echo
612         echo "   '$CC_VERSION'"
613         echo "  has been known to generate bad code, "
614         echo "  please get an updated compiler."
615         AC_MSG_ERROR([sorry])
616 }
617 case "$CC_VERSION" in
618         "gcc version 2.95"*)
619                 bad_cc
620                 ;;
621         # ost_pack_niobuf putting 64bit NTOH temporaries on the stack
622         # without "sub    $0xc,%esp" to protect the stack from being
623         # stomped on by interrupts (bug 606)
624         "gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)")
625                 bad_cc
626                 ;;
627         # mandrake's similar sub 0xc compiler bug
628         # http://marc.theaimsgroup.com/?l=linux-kernel&m=104748366226348&w=2
629         "gcc version 2.96 20000731 (Mandrake Linux 8.1 2.96-0.62mdk)")
630                 bad_cc
631                 ;;
632         *)
633                 AC_MSG_RESULT([no known problems])
634                 ;;
635 esac
636
637 # ---------  unsigned long long sane? -------
638 AC_CHECK_SIZEOF(unsigned long long, 0)
639 echo "---> size SIZEOF $SIZEOF_unsigned_long_long"
640 echo "---> size SIZEOF $ac_cv_sizeof_unsigned_long_long"
641 if test $ac_cv_sizeof_unsigned_long_long != 8 ; then
642         AC_MSG_ERROR([** we assume that sizeof(long long) == 8.  Tell phil@clusterfs.com])
643 fi
644
645 if test $target_cpu == "powerpc64"; then
646         AC_MSG_WARN([set compiler with -m64])
647         CFLAGS="$CFLAGS -m64"
648         CC="$CC -m64"
649 fi
650
651 CPPFLAGS="-I\$(top_builddir)/$LIBCFS_INCLUDE_DIR -I\$(top_srcdir)/$LIBCFS_INCLUDE_DIR-I\$(top_builddir)/lnet/include -I\$(top_srcdir)/lnet/include -I\$(top_builddir)/lustre/include -I\$(top_srcdir)/lustre/include $CPPFLAGS"
652
653 LLCPPFLAGS="-D__arch_lib__ -D_LARGEFILE64_SOURCE=1"
654 AC_SUBST(LLCPPFLAGS)
655
656 # Add _GNU_SOURCE for strnlen on linux
657 LLCFLAGS="-g -Wall -fPIC -D_GNU_SOURCE"
658 AC_SUBST(LLCFLAGS)
659
660 # everyone builds against lnet and lustre
661 EXTRA_KCFLAGS="$EXTRA_KCFLAGS -g -I$PWD/$LIBCFS_INCLUDE_DIR -I$PWD/lnet/include -I$PWD/lustre/include"
662 AC_SUBST(EXTRA_KCFLAGS)
663 ])
664
665 #
666 # LB_CONTITIONALS
667 #
668 # AM_CONDITIONAL instances for everything
669 # (so that portals/lustre can disable some if needed)
670 AC_DEFUN([LB_CONDITIONALS],
671 [AM_CONDITIONAL(MODULES, test x$enable_modules = xyes)
672 AM_CONDITIONAL(UTILS, test x$enable_utils = xyes)
673 AM_CONDITIONAL(TESTS, test x$enable_tests = xyes)
674 AM_CONDITIONAL(DOC, test x$ENABLE_DOC = x1)
675 AM_CONDITIONAL(INIT_SCRIPTS, test x$ENABLE_INIT_SCRIPTS = "x1")
676 AM_CONDITIONAL(LINUX, test x$lb_target_os = "xlinux")
677 AM_CONDITIONAL(DARWIN, test x$lb_target_os = "xdarwin")
678 AM_CONDITIONAL(CRAY_XT3, test x$enable_cray_xt3 = "xyes")
679 AM_CONDITIONAL(SUNOS, test x$lb_target_os = "xSunOS")
680
681 # this lets lustre cancel libsysio, per-branch or if liblustre is
682 # disabled
683 if test "x$LIBSYSIO_SUBDIR" = xlibsysio ; then
684         if test "x$with_sysio" != xyes ; then
685                 SYSIO=""
686                 LIBSYSIO_SUBDIR=""
687         fi
688 fi
689 AC_SUBST(LIBSYSIO_SUBDIR)
690 AC_SUBST(SYSIO)
691
692 LB_LINUX_CONDITIONALS
693 LB_DARWIN_CONDITIONALS
694
695 LIBCFS_CONDITIONALS
696 LN_CONDITIONALS
697 LC_CONDITIONALS
698 ])
699
700 #
701 # LB_CONFIG_FILES
702 #
703 # build-specific config files
704 #
705 AC_DEFUN([LB_CONFIG_FILES],
706 [
707 AC_CONFIG_FILES(
708 [Makefile
709 autoMakefile
710 ]
711 [Rules:build/Rules.in]
712 AC_PACKAGE_TARNAME[.spec]
713 )
714 ])
715
716 #
717 # LB_CONFIGURE
718 #
719 # main configure steps
720 #
721 AC_DEFUN([LB_CONFIGURE],
722 [LB_CANONICAL_SYSTEM
723
724 LB_LIBCFS_DIR
725
726 LB_INCLUDE_RULES
727
728 LB_CONFIG_CRAY_XT3
729 LB_CONFIG_BGL
730 LB_PATH_DEFAULTS
731
732 LB_PROG_CC
733
734 LB_UOSS
735 LB_POSIX_OSD
736
737 LB_CONFIG_DOCS
738 LB_CONFIG_UTILS
739 LB_CONFIG_TESTS
740 LC_CONFIG_CLIENT_SERVER
741
742 # two macros for cmd3 
743 m4_ifdef([LC_CONFIG_SPLIT], [LC_CONFIG_SPLIT])
744 LN_CONFIG_CDEBUG
745 LC_QUOTA
746
747 LB_CONFIG_MODULES
748
749 LB_PATH_DMU
750 LB_PATH_LIBSYSIO
751 LB_PATH_SNMP
752 LB_PATH_LDISKFS
753 LB_PATH_LUSTREIOKIT
754
755 LC_CONFIG_LIBLUSTRE
756 LIBCFS_CONFIGURE
757 LN_CONFIGURE
758
759 LC_CONFIGURE
760
761 if test "$SNMP_DIST_SUBDIR" ; then
762         LS_CONFIGURE
763 fi
764
765
766 LB_CONDITIONALS
767 LB_CONFIG_HEADERS
768
769 LIBCFS_CONFIG_FILES
770 LB_CONFIG_FILES
771 LN_CONFIG_FILES
772 LC_CONFIG_FILES
773 if test "$SNMP_DIST_SUBDIR" ; then
774         LS_CONFIG_FILES
775 fi
776
777 AC_SUBST(ac_configure_args)
778
779 MOSTLYCLEANFILES='.*.cmd .*.flags *.o *.ko *.mod.c .depend .*.1.* Modules.symvers Module.symvers'
780 AC_SUBST(MOSTLYCLEANFILES)
781
782 AC_OUTPUT
783
784 cat <<_ACEOF
785
786 CC:            $CC
787 LD:            $LD
788 CPPFLAGS:      $CPPFLAGS
789 LLCPPFLAGS:    $LLCPPFLAGS
790 CFLAGS:        $CFLAGS
791 EXTRA_KCFLAGS: $EXTRA_KCFLAGS
792 LLCFLAGS:      $LLCFLAGS
793
794 Type 'make' to build Lustre.
795 _ACEOF
796 ])