#!/bin/bash

cd /usr/src/linux
unset JOBS

while [ $# -ne 0 ]; do
    if J=$(expr "$1" + 0); then
	JOBS="-j $J"
    elif [ -d "/usr/src/$1" ]; then
	cd "/usr/src/$1"
    elif [ -d "$1" ]; then
	cd "$1"
    fi
    shift
done

n=1
make clean >/dev/null 2>&1
DATE=$(date +%Y.%m.%d-%H:%M)
LOG="$HOME/kernel-testmem-$DATE.log"
echo "Pass #$n started at $DATE with options: $JOBS" > "$LOG"
echo "================" >> "$LOG"
echo >> "$LOG"
sync;

while make $JOBS bzImage >>"$LOG" 2>&1 \
    && echo -e "\nmodules\n=======\n" >>"$LOG" \
    && make $JOBS modules >>"$LOG" 2>&1
do
    sync;
    make clean >/dev/null 2>&1
    n=$[n+1]
    echo >> "$LOG"
    echo "Pass #$n started at $(date +%Y.%m.%d-%H:%M)" >> "$LOG"
    echo "================" >> "$LOG"
    echo >> "$LOG"
    sync;
done

sync;
make clean >/dev/null 2>&1
echo >> "$LOG"
echo "Finished at $(date +%Y.%m.%d-%H:%M)" >> "$LOG"
echo "================" >> "$LOG"
echo >> "$LOG"
sync;
