Whamcloud - gitweb
Branch: b_cray
[fs/lustre-release.git] / build / lmake
index c110acf..ff61519 100755 (executable)
@@ -33,6 +33,7 @@ BOOT_ARCHS=
 JENSEN_ARCHS=
 SMP_ARCHS=
 BIGSMP_ARCHS=
+PSERIES64_ARCHS=
 UP_ARCHS=
 
 RHBUILD=0
@@ -182,7 +183,11 @@ check_options()
 
 get_lustre_version()
 {
-    lustre_patch=$(grep lustre_version "$SERIES_FILE" 2>/dev/null)
+    for series in $SERIES ; do
+       SERIES_FILE="$TOPDIR/lustre/kernel_patches/series/$series"
+       lustre_patch=$(grep lustre_version "$SERIES_FILE" 2>/dev/null)
+       [ "$lustre_patch" ] && break
+    done
     [ "$lustre_patch" ] || \
        fatal 1 "Could not determine Lustre version from $SERIES series."
 
@@ -208,10 +213,12 @@ load_target()
            fatal 1 "Target $TARGET's kernel file $KERNEL not found in kernel directory $KERNELDIR."
     fi
 
-    if [ "$SERIES" ]; then
-        SERIES_FILE="$TOPDIR/lustre/kernel_patches/series/$SERIES"
-        [ -r "$SERIES_FILE" ] || \
-           fatal 1 "Target $TARGET's series $SERIES missing from $TOPDIR/lustre/kernel_patches/series."
+    if [ "$SERIES" ] ; then
+       for series in $SERIES ; do
+           SERIES_FILE="$TOPDIR/lustre/kernel_patches/series/$series"
+           [ -r "$SERIES_FILE" ] || \
+               fatal 1 "Target $TARGET's series $SERIES missing from $TOPDIR/lustre/kernel_patches/series."
+       done
     fi
 
     TARGET_ARCH=${TARGET_ARCH:-$BASE_ARCHS}
@@ -270,15 +277,18 @@ patch_kernel()
     (( $UNPACK_KERNEL )) || return 0
     [ "$SERIES" ] || return 0
     pushd "$TOPDIR/linux" >/dev/null
-    echo -n "Applying patch"
-    for patch in $(<"$SERIES_FILE") ; do
-       PATCH_FILE="$TOPDIR/lustre/kernel_patches/patches/$patch"
-       [ -r "$PATCH_FILE" ] || \
-           fatal 1 "Patch file not found: $patch"
-       echo -n " $patch"
-       patch -s -p1 < "$PATCH_FILE" || fatal 1 "Error applying patch $patch."
+    for series in $SERIES ; do
+       echo -n "Applying series $series:"
+       SERIES_FILE="$TOPDIR/lustre/kernel_patches/series/$series"
+       for patch in $(<"$SERIES_FILE") ; do
+           PATCH_FILE="$TOPDIR/lustre/kernel_patches/patches/$patch"
+           [ -r "$PATCH_FILE" ] || \
+               fatal 1 "Patch file not found: $patch"
+           echo -n " $patch"
+           patch -s -p1 < "$PATCH_FILE" || fatal 1 "Error applying patch $patch."
+       done
+       echo
     done
-    echo
     popd >/dev/null
 }
 
@@ -286,7 +296,7 @@ set_make()
 {
     MAKE="make -s"
     if [ "$CC" ] ; then
-       MAKE="$MAKE CC=$CC"
+       MAKE_CC="CC=$CC"
     fi
     if [ "$ARCH" ] ; then
        MAKE_ARCH="$MAKE ARCH=$ARCH"
@@ -312,26 +322,24 @@ depend_kernel()
     echo "Overriding EXTRAVERSION in kernel..."
     perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -${EXTRA_VERSION}${TARGET_CONFIG}/" Makefile
     echo "Making depend in $PWD..."
-    $MAKE mrproper || fatal 1 "Error running make mrproper"
+    $MAKE "$MAKE_CC" mrproper || fatal 1 "Error running make mrproper"
     cp "$CONFIG_FILE" .config
     for oc in oldconfig_nonint silentoldconfig oldconfig ; do
        if grep -q "$oc" Makefile ; then
-           OLDCONFIG="$oc"
+           $MAKE "$MAKE_CC" $oc || fatal 1 "Error running make oldconfig"
            break
        fi
     done
-    $MAKE $OLDCONFIG || fatal 1 "Error running make oldconfig"
     case "$VERSION" in
        2.6*)
-            SYMLINKS="include/asm"
+            $MAKE "$MAKE_CC" include/asm
             ;;
         2.4*)
-           SYMLINKS="symlinks"
+           $MAKE "$MAKE_CC" symlinks
+           $MAKE "$MAKE_CC" dep || fatal 1 "Error running make dep"
            ;;
     esac
-    $MAKE $SYMLINKS
-    $MAKE_J dep || fatal 1 "Error running make dep"
-    $MAKE include/linux/version.h || fatal 1 "Error making include/linux/version.h"
+    $MAKE "$MAKE_CC" include/linux/version.h || fatal 1 "Error making include/linux/version.h"
 }
 
 build_kernel()
@@ -341,16 +349,16 @@ build_kernel()
     echo "Building kernel in $PWD..."
     case "$TARGET_ARCH" in
        i386 | i586 | i686 | athlon | x86_64)
-           $MAKE_J bzImage || fatal 1 "Error making bzImage."
+           $MAKE_J "$MAKE_CC" bzImage || fatal 1 "Error making bzImage."
            ;;
-        ppc | ppc64)
-           $MAKE_J vmlinux || fatal 1 "Error making vmlinux."
+    ia64 | ppc | ppc64)
+           $MAKE_J "$MAKE_CC" vmlinux || fatal 1 "Error making vmlinux."
            ;;
        *)
-           $MAKE_J boot || fatal 1 "Error making boot."
+           $MAKE_J "$MAKE_CC" boot || fatal 1 "Error making boot."
            ;;
     esac
-    $MAKE_J modules || fatal 1 "Error building modules."
+    $MAKE_J "$MAKE_CC" modules || fatal 1 "Error building modules."
 
     popd >/dev/null
 }
@@ -371,7 +379,7 @@ build_lustre()
     (( $BUILD_LUSTRE )) || return 0
     set_make
     pushd "$TOPDIR" >/dev/null
-    $MAKE_J || fatal 1 "Error building Lustre."
+    $MAKE_J "$MAKE_CC" || fatal 1 "Error building Lustre."
     popd >/dev/null
 }
 
@@ -390,7 +398,7 @@ install_kernel()
     mkdir -p "$DESTDIR/dev/shm"
     mkdir -p "$DESTDIR/lib/modules/${FULL_VERSION}"
 
-    $MAKE INSTALL_MOD_PATH="$DESTDIR" KERNELRELEASE="$FULL_VERSION" \
+    $MAKE "$MAKE_CC" INSTALL_MOD_PATH="$DESTDIR" KERNELRELEASE="$FULL_VERSION" \
        -s modules_install || \
        fatal 1 "Error installing modules."
 
@@ -438,7 +446,7 @@ install_lustre()
     set_make
     FULL_VERSION="${VERSION}-${EXTRA_VERSION}${TARGET_CONFIG}"
     pushd "$TOPDIR" >/dev/null
-    $MAKE -s install "DESTDIR=$DESTDIR" KERNELRELEASE="$FULL_VERSION" || fatal 1 "Error installing Lustre."
+    $MAKE "$MAKE_CC" -s install "DESTDIR=$DESTDIR" KERNELRELEASE="$FULL_VERSION" || fatal 1 "Error installing Lustre."
     popd >/dev/null
 }
 
@@ -455,7 +463,7 @@ build_kms()
            build_dir="${TOPDIR}/modules-${FULL_VERSION}/${dir##*/}"
            cp -a $dir $build_dir
            # these modules are terrible, and don't all build
-           $MAKE_J -C $build_dir modules KERNEL_SOURCE="${TOPDIR}/linux"
+           $MAKE_J "$MAKE_CC" -C $build_dir modules KERNEL_SOURCE="${TOPDIR}/linux"
        fi
     done
 }
@@ -470,13 +478,13 @@ symver()
 install_kms()
 {
     (( $INSTALL_KERNEL )) || return 0
-    (( $SUSEBUILD )) || return 0
+    (( $LINUX26 )) || return 0
     set_make
     FULL_VERSION="${VERSION}-${EXTRA_VERSION}${TARGET_CONFIG}"
     for build_dir in "${TOPDIR}/modules-${FULL_VERSION}/*" ; do
        [ -d $build_dir ] || continue
         # these modules are terrible, and don't all build
-       $MAKE -C $build_dir KERNEL_SOURCE="${TOPDIR}/linux" INSTALL_MOD_PATH="$DESTDIR" 
+       $MAKE "$MAKE_CC" -C $build_dir KERNEL_SOURCE="${TOPDIR}/linux" INSTALL_MOD_PATH="$DESTDIR" 
     done
     (   symver vmlinux
        moddir="${DESTDIR}/lib/modules/${FULL_VERSION}"
@@ -495,18 +503,21 @@ install_kms()
 
 save_headers()
 {
-    echo "Saving headers for $1 $2..."
+    (( $SAVE_HEADERS )) || return 0
+
+    echo "Saving headers for ${TARGET_CONFIG:-up} ${TARGET_ARCH}..."
     pushd linux >/dev/null
 
     KVERREL="${VERSION}-${EXTRA_VERSION}"
     # deal with the kernel headers that are version specific
     
-    saveddir="$RPM_BUILD_ROOT/usr/src/linux-${KVERREL}/savedheaders/$2/$1"
+    saveddir="$RPM_BUILD_ROOT/usr/src/linux-${KVERREL}/savedheaders/${TARGET_ARCH}/${TARGET_CONFIG:-up}"
     mkdir -p "$saveddir"
     install -m 644 include/linux/autoconf.h "$saveddir/autoconf.h"
     install -m 644 include/linux/version.h  "$saveddir/version.h"
     mv include/linux/modules "$saveddir/"
-    echo $2 $1 ../../savedheaders/$2/$1/ >>  $RPM_BUILD_ROOT/usr/src/linux-${KVERREL}/savedheaders/list
+    echo ${TARGET_ARCH} ${TARGET_CONFIG} ../../savedheaders/${TARGET_ARCH}/${TARGET_CONFIG:-up}/ \
+       >>  "$RPM_BUILD_ROOT/usr/src/linux-${KVERREL}/savedheaders/list"
     popd >/dev/null
 }
 
@@ -533,6 +544,9 @@ save_all_headers()
     for arch in $BIGSMP_ARCHS ; do
        save_headers bigsmp $arch
     done
+    for arch in $PSERIES64_ARCHS ; do
+       save_headers pseries64 $arch
+    done
     for arch in $UP_ARCHS ; do
        save_headers up $arch
     done
@@ -653,6 +667,6 @@ install_lustre
 
 install_kms
 
-save_all_headers
+save_headers
 
 exit 0