X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=build%2Fautoconf%2Flustre-build-darwin.m4;h=eeb93939ad5e75bc5796e7e81bdf6acf49712d6c;hp=15c3a9daca298f4f19787592097e7386ad571dea;hb=fea8d73ca26e491d311e0644b0f14fc31573d835;hpb=8663ba2dd34c8198798892d3cace181199b04eb4 diff --git a/build/autoconf/lustre-build-darwin.m4 b/build/autoconf/lustre-build-darwin.m4 index 15c3a9d..eeb9393 100644 --- a/build/autoconf/lustre-build-darwin.m4 +++ b/build/autoconf/lustre-build-darwin.m4 @@ -1,8 +1,106 @@ # +# 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 +]) +done +]) + +# +# LB_DARWIN_CONDITIONALS +# +# AM_CONDITIONALs for darwin +# +AC_DEFUN([LB_DARWIN_CONDITIONALS], +[ +]) + +# # LB_PROG_DARWIN # # darwin tests # AC_DEFUN([LB_PROG_DARWIN], -[ +[kernel_framework="/System/Library/Frameworks/Kernel.framework" +# +# 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 + +# Kernel of OS X is not 64bits(even in Tiger), but -m64 can be taken by gcc in Tiger +# (Tiger can support 64bits applications), so we have to eliminate -m64 while +# building kextensions for and OS X. +CC=`echo $CC | sed -e "s/\-m64//g"` +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" +EXTRA_KCFLAGS="$EXTRA_KCFLAGS -I$kernel_framework/Headers" +EXTRA_KCFLAGS="$EXTRA_KCFLAGS -I$kernel_framework/Headers/bsd" +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" +EXTRA_KCFLAGS="$EXTRA_KCFLAGS -DKERNEL -DKERNEL_PRIVATE" +EXTRA_KCFLAGS="$EXTRA_KCFLAGS -DDRIVER_PRIVATE -DAPPLE -DNeXT" +EXTRA_KCFLAGS="$EXTRA_KCFLAGS -D__KERNEL__ -D__DARWIN__" +# +# C flags for Panther/Tiger +# +case $target_os in + darwin8*) + EXTRA_KCFLAGS="$EXTRA_KCFLAGS -D__DARWIN8__" + ;; + darwin7*) + EXTRA_KCFLAGS="$EXTRA_KCFLAGS -ffix-and-continue" + ;; +esac + +# +# Debugging flags. Remove! +# +EXTRA_KCFLAGS="$EXTRA_KCFLAGS -O0 -DMACH_ASSERT=1" +EXTRA_KLDFLAGS="$EXTRA_KLDFLAGS -static -nostdlib -r" +EXTRA_KLIBS="-lkmodc++ -lkmod -lcc_kext" +KMODEXT="" + +AC_SUBST(EXTRA_KLDFLAGS) +AC_SUBST(EXTRA_KLIBS) + +kextdir='/System/Library/Extensions/$(firstword $(macos_PROGRAMS)).kext' +plistdir='$(kextdir)/Contents' +macosdir='$(plistdir)/MacOS' + +AC_SUBST(kextdir) +AC_SUBST(plistdir) +AC_SUBST(macosdir) + +LN_PROG_DARWIN + +LP_PROG_DARWIN + +LC_PROG_DARWIN ])