Whamcloud - gitweb
b=11495
[fs/lustre-release.git] / build / lmake
index 612abb8..9020cc1 100755 (executable)
@@ -10,6 +10,7 @@ TARGET_ARCH=
 TARGET_CONFIG=
 JOBS=1
 CONFIGURE_FLAGS=
+TMPDIR=${TMPDIR:-"/var/tmp"}
 
 # commands to run
 BUILD_LUSTRE=0
@@ -260,6 +261,25 @@ load_target()
     fi
 }
 
+# do these after load_target(), which maybe export CC
+setup_ccache_distcc()
+{
+    # distcc can't handle ".incbin"
+    if [ "$TARGET" == "2.6-suse" -o "$TARGET" == "2.6-rhel4" ]; then
+        if [ "$TARGET_ARCH" == "x86_64" ]; then
+            unset DISTCC
+        fi
+    fi
+    
+    CC=${CC:-gcc}
+    if [ "$CCACHE" ]; then
+        CC="$CCACHE $CC"
+        [ "$DISTCC" ] && export CCACHE_PREFIX="$DISTCC"
+    else
+        [ "$DISTCC" ] && CC="$DISTCC $CC"
+    fi
+}
+
 tarflags()
 {
     case "$1" in
@@ -377,6 +397,9 @@ depend_kernel()
     echo "Making depend in $PWD..."
     $MAKE "$MAKE_CC" mrproper || fatal 1 "Error running make mrproper"
     rm -f rpm-release
+    # remove localversion-* files to avoid kernel release string 
+    # srewing up by the top-level Makefile
+    rm -f localversion-*
     cp "$CONFIG_FILE" .config
     local UPDATE_OLDCONFIG=
     for oc in oldconfig_nonint silentoldconfig oldconfig ; do                   
@@ -393,7 +416,9 @@ depend_kernel()
         local logfile=$(mktemp /tmp/XXXXXX)
         #timed_run 300 $TOPDIR/build/update_oldconfig $logfile
         #local RC=${PIPESTATUS[0]}
-        local RC=$(strace -f -o update_oldconfig.strace bash -c "$TOPDIR/build/update_oldconfig $logfile; echo \$?")
+        #local RC=$(strace -f -o update_oldconfig.strace bash -c "$TOPDIR/build/update_oldconfig $logfile; echo \$?")
+        $TOPDIR/build/update_oldconfig $logfile
+        local RC=${PIPESTATUS[0]}
         #$TOPDIR/build/update_oldconfig $logfile
         #local RC=${PIPESTATUS[0]}
         if [ $RC -eq 143 ]; then
@@ -487,9 +512,10 @@ build_lustre()
        -e s^@LINUXRELEASE@^${FULL_VERSION}^g \
        -e s^@RELEASE@^${FULL_VERSION//-/_}^g \
        -e s^@ac_configure_args@^"--with-linux=${PWD}/linux ${CONFIGURE_FLAGS}"^g \
-       < build/lustre.spec.in \
-       > build/lustre.spec
-    $RPMBUILD --target ${TARGET_ARCH} -bb build/lustre.spec \
+       < lustre.spec.in \
+       > lustre.spec
+    $RPMBUILD --target ${TARGET_ARCH} -bb lustre.spec \
+        --define "_tmppath $TMPDIR" \
        --define "_topdir $(lbuild_topdir)" || \
        fatal 1 "Error building Lustre rpms."
     # $MAKE_J "$MAKE_CC" || fatal 1 "Error building Lustre."
@@ -783,6 +809,7 @@ done
 
 check_options
 load_target
+setup_ccache_distcc
 
 extract_kernel
 patch_kernel