Whamcloud - gitweb
b=4642
authorjacob <jacob>
Wed, 5 Jan 2005 23:39:59 +0000 (23:39 +0000)
committerjacob <jacob>
Wed, 5 Jan 2005 23:39:59 +0000 (23:39 +0000)
 - Alternate handling of different OS w/ libcfs and portals headers
 - Add support to the auto* build for building darwin kexts
 - Move libcfs headers to libcfs
 - misc build fixes to build on darwin / x86, and to get liblustre
   building again

If your b_port_* or other branch is broken after updating, please
email me.

build/autoMakefile.am.toplevel
build/autoconf/lustre-build-darwin.m4
build/autoconf/lustre-build-linux.m4
build/autoconf/lustre-build.m4

index 1283dec..030d30b 100644 (file)
@@ -27,12 +27,13 @@ tags:
        find $(top_srcdir) -name '*.[hc]' | xargs ctags $$CTAGSF -a
 
 if MODULES
-all-am: modules
-
 all-sources:
        $(MAKE) sources -C portals
        $(MAKE) sources -C lustre
 
+if LINUX
+all-am: modules
+
 if !LINUX25
 DEP = dep
 dep: .depend
@@ -44,13 +45,14 @@ dep: .depend
        _FASTDEP_ALL_SUB_DIRS="$(PWD)"
 
 CLEANFILES = .depend
-endif
+endif # !LINUX25
 
 modules: $(DEP) all-sources
        $(MAKE) $(ARCH_UM) CC="$(CC)" -C $(LINUX_OBJ)                \
        -f $(PWD)/build/Makefile LUSTRE_LINUX_CONFIG=$(LINUX_CONFIG) \
        $(MODULE_TARGET)=$(PWD) -o tmp_include_depends -o scripts -o \
        include/config/MARKER $@
+endif # LINUX
 
 endif # MODULES
 
index cd1704a..2045c6c 100644 (file)
@@ -1,4 +1,26 @@
 #
+# LB_DARWIN_CHECK_FUNCS
+#
+# check for functions in the darwin kernel
+# Note that this is broken for cross compiling
+#
+AC_DEFUN([LB_DARWIN_CHECK_FUNCS],
+[AC_FOREACH([AC_Func], [$1],
+  [AH_TEMPLATE(AS_TR_CPP(HAVE_[]AC_Func),
+               [Define to 1 if you have the `]AC_Func[' function.])])dnl
+for ac_func in $1
+do
+AC_MSG_CHECKING([for $1])
+AS_IF([AC_TRY_COMMAND(nm /mach | grep "[$1]" >/dev/null 2>/dev/null)],[
+       AC_MSG_RESULT([yes])
+       AC_DEFINE_UNQUOTED([AS_TR_CPP([HAVE_$ac_func])]) $2
+],[
+       AC_MSG_RESULT([no]) $3
+])dnl
+done
+])
+
+#
 # LB_DARWIN_CONDITIONALS
 #
 # AM_CONDITIONALs for darwin
@@ -14,8 +36,20 @@ AC_DEFUN([LB_DARWIN_CONDITIONALS],
 #
 AC_DEFUN([LB_PROG_DARWIN],
 [kernel_framework="/System/Library/Frameworks/Kernel.framework"
-EXTRA_KCFLAGS="$EXTRA_KCFLAGS -x c -arch ppc -pipe -Wno-trigraphs"
-EXTRA_KCFLAGS="$EXTRA_KCFLAGS -fasm-blocks -g -O0 -mtune=G4"
+#
+# FIXME: there should be a better way to get these than hard coding them
+#
+case $target_cpu in 
+       powerpc*)
+               EXTRA_KCFLAGS="$EXTRA_KCFLAGS -arch ppc -mtune=G4 -mlong-branch"
+               EXTRA_KLDFLAGS="-arch ppc"
+               ;;
+       i?86 | x86_64)
+               EXTRA_KCFLAGS="$EXTRA_KCFLAGS -arch i386"
+               EXTRA_KLDFLAGS="-arch i386"
+               ;;
+esac
+EXTRA_KCFLAGS="$EXTRA_KCFLAGS -x c -pipe -Wno-trigraphs -fasm-blocks -g -O0"
 EXTRA_KCFLAGS="$EXTRA_KCFLAGS -Wno-four-char-constants -Wmost -O0"
 EXTRA_KCFLAGS="$EXTRA_KCFLAGS -fmessage-length=0 -ffix-and-continue"
 EXTRA_KCFLAGS="$EXTRA_KCFLAGS -I$kernel_framework/Headers"
@@ -24,11 +58,24 @@ EXTRA_KCFLAGS="$EXTRA_KCFLAGS -I$kernel_framework/PrivateHeaders"
 EXTRA_KCFLAGS="$EXTRA_KCFLAGS -fno-common -nostdinc -fno-builtin"
 EXTRA_KCFLAGS="$EXTRA_KCFLAGS -finline -fno-keep-inline-functions"
 EXTRA_KCFLAGS="$EXTRA_KCFLAGS -force_cpusubtype_ALL -fno-exceptions"
-EXTRA_KCFLAGS="$EXTRA_KCFLAGS -msoft-float -static -mlong-branch"
+EXTRA_KCFLAGS="$EXTRA_KCFLAGS -msoft-float -static"
 EXTRA_KCFLAGS="$EXTRA_KCFLAGS -DKERNEL -DKERNEL_PRIVATE"
 EXTRA_KCFLAGS="$EXTRA_KCFLAGS -DDRIVER_PRIVATE -DAPPLE -DNeXT"
 EXTRA_KCFLAGS="$EXTRA_KCFLAGS -D__KERNEL__ -D__DARWIN__"
-EXTRA_KLDFLAGS="-arch ppc -static -nostdlib -r"
+EXTRA_KLDFLAGS="$EXTRA_KLDFLAGS -static -nostdlib -r"
 EXTRA_KLIBS="-lkmodc++ -lkmod -lcc_kext"
 KMODEXT=""
+
+AC_SUBST(EXTRA_KLDFLAGS)
+AC_SUBST(EXTRA_KLIBS)
+
+plistdir='/System/Library/Extensions/$(firstword $(macos_PROGRAMS)).kext/Contents'
+macosdir='$(plistdir)/MacOS'
+
+AC_SUBST(plistdir)
+AC_SUBST(macosdir)
+
+LP_PROG_DARWIN
+
+LC_PROG_DARWIN
 ])
index 3aa2603..f79dca4 100644 (file)
@@ -36,7 +36,7 @@ else
 fi
 
 AC_SUBST(MODULE_TARGET)
-AC_SUBST(LINUX25)
+AC_SUBST(linux25)
 AC_SUBST(KMODEXT)
 ])
 
index 1851e95..2e1cdd1 100644 (file)
@@ -10,6 +10,23 @@ fi
 ])
 
 #
+# LB_CANONICAL_SYSTEM
+#
+# fixup $target_os for use in other places
+#
+AC_DEFUN([LB_CANONICAL_SYSTEM],
+[case $target_os in
+       linux*)
+               lb_target_os="linux"
+               ;;
+       darwin*)
+               lb_target_os="darwin"
+               ;;
+esac
+AC_SUBST(lb_target_os)
+])
+
+#
 # LB_PATH_LIBSYSIO
 #
 # Handle internal/external libsysio
@@ -18,7 +35,16 @@ AC_DEFUN([LB_PATH_LIBSYSIO],
 [AC_ARG_WITH([sysio],
        AC_HELP_STRING([--with-sysio=path],
                        [set path to libsysio source (default is included libsysio)]),
-       [],[with_sysio='yes'])
+       [],[
+               case $lb_target_os in
+                       linux)
+                               with_sysio='yes'
+                               ;;
+                       *)
+                               with_sysio='no'
+                               ;;
+               esac
+       ])
 AC_MSG_CHECKING([location of libsysio])
 enable_sysio="$with_sysio"
 case x$with_sysio in
@@ -329,7 +355,7 @@ AC_TRY_COMPILE([],[],[
        CFLAGS="$CFLAGS_save"
 ])
 
-CPPFLAGS="-I\$(top_srcdir)/lustre/include -I\$(top_srcdir)/portals/include $CPPFLAGS"
+CPPFLAGS="-I\$(top_builddir)/portals/include -I\$(top_srcdir)/portals/include -I\$(top_builddir)/lustre/include -I\$(top_srcdir)/lustre/include $CPPFLAGS"
 
 LLCPPFLAGS="-D__arch_lib__ -D_LARGEFILE64_SOURCE=1"
 AC_SUBST(LLCPPFLAGS)
@@ -354,6 +380,8 @@ AM_CONDITIONAL(TESTS, test x$enable_tests = xyes)
 AM_CONDITIONAL(DOC, test x$ENABLE_DOC = x1)
 AM_CONDITIONAL(CRAY_PORTALS, test x$with_cray_portals != xno)
 AM_CONDITIONAL(INIT_SCRIPTS, test x$ENABLE_INIT_SCRIPTS = "x1")
+AM_CONDITIONAL(LINUX, test x$lb_target_os = "xlinux")
+AM_CONDITIONAL(DARWIN, test x$lb_target_os = "xdarwin")
 
 # this lets lustre cancel libsysio, per-branch or if liblustre is
 # disabled
@@ -379,7 +407,9 @@ LC_CONDITIONALS
 # main configure steps
 #
 AC_DEFUN([LB_CONFIGURE],
-[LB_INCLUDE_RULES
+[LB_CANONICAL_SYSTEM
+
+LB_INCLUDE_RULES
 
 LB_PATH_DEFAULTS